Fujitsu FR60 Computer Hardware User Manual


  Open as PDF
of 1038
 
726
Chapter 34 CAN Controller
4.CAN Application
4.5 Acceptance Filtering of Received Messages
When the arbitration and control field (Identifier + IDE + RTR + DLC) of an incoming message is completely
shifted into the Rx/Tx 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.6 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.7 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’
At the reception of a matching Remote Frame, the TxRqst bit of this Message Object is set. The rest of the
Message Object remains unchanged.
2) Dir = ‘1’ (direction = transmit), RmtEn = ‘0’, UMask = ’0’
At the reception of a matching Remote Frame, the TxRqst bit of this Message Object remains unchanged; the
Remote Frame is ignored.
3) Dir = ‘1’ (direction = transmit), RmtEn = ‘0’, UMask = ’1’
At the reception of a matching Remote Frame, the TxRqst bit of this Message Object is reset. The arbitration
and control field (Identifier + 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; the Remote Frame is treated similar to a received Data Frame.
4.8 Receive / Transmit Priority
The receive/transmit priority for the Message Objects is attached to the message number. Message Object 1
has the highest priority, while Message Object 32 (the highest implemented message object number) has the
lowest priority. If more than one transmission request is pending, they are serviced due to the priority of the
corresponding Message Object.
4.9 Configuration of a Transmit Object
Figure 4-2 shows how a Transmit Object should be initialised.