User’s Manual
BOSCH
- 43/77 -
Revision 1.6
TTCAN
11.11.02
manual_about.fm
4.1.3 Acceptance Filtering of Received Messages
When the arbitration and control field (Iden IDE + RTR + DLC) of an incoming message
is completely shifted into the shift register of the CAN_Core, the Message Handler FSM starts
the scanning of the Message RAM for a matching valid Message Object.
To scan the Message RAM for a matching Message Object, the Acceptance Filtering unit is
loaded with the arbitration bits from the CAN_Core shift register. Then the arbitration and
mask fields (including MsgVal, UMask, NewDat, and EoB) of Message Object 1 are loaded
into the Acceptance Filtering unit and compared with the arbitration field from the shift register.
This is repeated with each following Message Object until a matching Message Object is
found or until the end of the Message RAM is reached.
If a match occurs, the scanning is stopped and the Message Handler FSM proceeds
depending on the type of frame (Data Frame or Remote Frame) received.
4.1.3.1 Reception of Data Frame
The Message Handler FSM stores the message from the CAN_Core shift register into the
respective Message Object in the Message RAM. Not only the data bytes, but all arbitration
bits and the Data Length Code are stored into the corresponding Message Object. This is
implemented to keep the data bytes connected with the identifier even if arbitration mask
registers are used.
The NewDat bit is set to indicate that new data (not yet seen by the CPU) has been received.
The CPU should reset NewDat when it reads the Message Object. If at the time of the
reception the NewDat bit was already set, MsgLst is set to indicate that the previous data
(supposedly not seen by the CPU) is lost. If the RxIE bit is set, the IntPnd bit is set, causing
the Interrupt Register to point to this Message Object.
The TxRqst bit of this Message Object is reset to prevent the transmission of a Remote
Frame, while the requested Data Frame has just been received.
4.1.3.2 Reception of Remote Frame
When a Remote Frame is received, three different configurations of the matching Message
Object have to be considered:
1) Dir = ‘1’ (direction =
transmit
), RmtEn = ‘1’, UMask = ‘1’ or ‘0’
The TxRqst bit of this Message Object is set at the reception of a matching Remote Frame.
The rest of the Message Object remains unchanged.
2) Dir = ‘1’ (direction =
transmit
), RmtEn = ‘0’, UMask = ‘0’
The Remote Frame is ignored, this Message Object remains unchanged.
3) Dir = ‘1’ (direction =
transmit
), RmtEn = ‘0’, UMask = ‘1’
The Remote Frame is treated similar to a received Data Frame. At the reception of a matching
Remote Frame, the TxRqst bit of this Message Object is reset. The arbitration and control
field (Iden IDE + RTR + DLC) from the shift register is stored into the Message Object in
the Message RAM and the NewDat bit of this Message Object is set. The data field of the
Message Object remains unchanged.
4.1.4 Storing Received Messages in FIFO Buffers
Several Message Objects may be grouped to form one or more FIFO Buffers, each FIFO
Buffer configured to store received messages with a particular (group of) Identifier(s).
Arbitration and Mask Registers of the FIFO Buffer’s Message Objects are identical. The EoB
(End of Buffer) bits of all but the last of the FIFO Buffer’s Message Objects are ‘0’, in the last
one the EoB bit is ‘1’.