AIDA PSAVANpoll Component

The PSAVANpoll component is a protocol helper component. It must be placed directly above a VAN component. The PSAVANpoll component can be used with ECUs that use inframe responses (IFR) to answer requests. In this case not only the host has to generate the request but also must poll for the response. Since the response message can be polled while the ECU is updating its IFR object it is necessary to secure the access.

Remarks

The PSAVANpoll component assumes that user data of the response message is surrounded and in this way protected by two copies of a byte wide counter where both copies contain the same value when no update is in progress.

The PSAVANpoll component starts polling when a transmit data event's source ID matches a certain ID configured in the PSAVANpoll component. The time between two poll cycles can be configured. After a configurable time polling stops unless retrigger mode is activated and more IFR messages arrive.

When receiving IFR messages the PSAVANpoll component strips the counter copies from the response and delivers only the user data to the next component.

The PSAVANpoll component is configured as a stream component in its upper info block. This enables the component to directly connect to protocol components like BDiag. The PSAVANpoll component validates the data size of transmit data events. In case that a transmit data event contains more data than the VAN component can handle the PSAVANpoll component rejects the event with the flags AIDA_nSendError and AIDA_nOverrun set in the dwFlags member of the AIDA event.

When the stack goes online the PSAVANpoll component immediately starts a polling cycle but ignores the first valid IFR message.

Parameters

PollTriggerID
Specifies the ID of transmit data events that triggers polling. This parameter must match the low dword of the source ID of a transmit data event to start the polling. When PollTriggerID is set to 0xFFFFFFFF polling is triggered when no source ID is set in a transmit data event.
PollIFRID
The IFR ID used for polling.
PollMsgFlags
This is entered into the AIDA_bDataFlags member of the transmit data events generated as IFR requests. MSGFLAG_IFR (0x10) is always set. A desciption of the possible values can be found in the documentation of the VAN component in the remarks section.
PollCycleTime
The time between two consecutive IFR requests in [ms].
PollTimeout
The total polling time in [ms] after IFR polling has been triggered. New transmit data events that match the PollTriggerID reset the total polling time to PollTimeout.
PollRetrigger
When set to 0 retriggering is deactivated.

A value of 1 activates retrigger mode. When retriggering is activated any counter change in IFR responses retriggers the total poll time. PollRetrigger should be set to 1 when the ECU can generate fragmented answers.

When setting PollRetrigger to 2 polling stops as soon as any counter change in IFR responses is detected. This can be used to reduce VAN bus activities when no fragmentented answers are expected.

Any value other than the ones described above are treated like a value of 0.

See Also

AIDA Overview, list of AIDA components