Autosar: time duration between Full COM request by ComM and Can Interrupt should be less then 20ms

443 Views Asked by At

There is customer requirement that time duration between Full COM request by ComM and Can Interrupt should be less then 20m but it when I calculated it is showing 56ms. Is there any parameter in Davinci that we can reducue this time. ComM_mainfuction(); is called in 10ms. Also all the main functions are called in 10ms tasks.

Just to inform I am using Comasso stack for Com stack development.

2

There are 2 best solutions below

0
On

There are multiple questions here:

  • How do you test this actually? Do you have a restbus simulation, which just uses normal cyclic messages every 10..20ms (or even longer) cycle, or do you simulate a message (which the ECU actually is configured to receive), that you send like every 1ms for this measurement?
  • What do you mean with "all mainfunctions are run in 10ms tasks"? Your ComStack modules and the ComM are not running in the same task? Also, what order do you have? Maybe the other mainfunctions of the ComStack have to take this in the next task cycle, since they run before your ComM mainfunction?
  • Did you check, when all your ComStack modules, like ComM, CanSM, CanDrv .. actually are all in COMM_FULL_COMMUNICATION or CAN_CS_STARTED mode? Is the transceiver also in CANTRCV_OPMODE_NORMAL?
  • Do you measure in a certain RxIndication function? On which level (CanIf_RxIndication, Com_RxIndication, ...)?
  • Do you actually have CanDrv CanRxProcessing configured to POLLING or INTERRUPT (or since AR4.3.1 MIXED)?

Keep in mind, if CanRxProcessing is POLLING, reception is handled in CanDrv on Tasklevel, and CanIf_RxIndication is
called on task context of Can_Read(). Even if CanRxProcessing is INTERRUPT, if ComIPDUProcessing is DEFERRED, ComIPDUCallout and SigRxIndications are called on Tasklevel too. If CanRxProcessing is MIXED, it depends on, the PDU if reception is handled in ISR or tasklevel.

Maybe the CanDriver has an internal RxIndication handler, which is called from both, all the CanRxISRs and the Can_Read().

0
On

If your scenario is related to wakeup by CAN then, 20ms is probably your response time. After validation of the wakeup or reception of CAN msg indication COMM transits from no com to full com, this takes few cycles of COM Main Function as well. Hence, better reduce the cycle time of COM Main function to certain extent where your 20ms response time requirement is met.