mc9s12c32mpb16 Freescale Semiconductor, Inc, mc9s12c32mpb16 Datasheet - Page 325

no-image

mc9s12c32mpb16

Manufacturer Part Number
mc9s12c32mpb16
Description
Hcs12 Microcontrollers
Manufacturer
Freescale Semiconductor, Inc
Datasheet
10.4.2.1
Modern application layer software is built upon two fundamental assumptions:
The behavior described in the bullets above cannot be achieved with a single transmit buffer. That buffer
must be reloaded immediately after the previous message is sent. This loading process lasts a finite amount
of time and must be completed within the inter-frame sequence (IFS) to be able to send an uninterrupted
stream of messages. Even if this is feasible for limited CAN bus speeds, it requires that the CPU reacts
with short latencies to the transmit interrupt.
A double buffer scheme de-couples the reloading of the transmit buffer from the actual message sending
and, therefore, reduces the reactiveness requirements of the CPU. Problems can arise if the sending of a
message is finished while the CPU re-loads the second buffer. No buffer would then be ready for
transmission, and the CAN bus would be released.
At least three transmit buffers are required to meet the first of the above requirements under all
circumstances. The MSCAN has three transmit buffers.
The second requirement calls for some sort of internal prioritization which the MSCAN implements with
the “local priority” concept described in
10.4.2.2
The MSCAN triple transmit buffer scheme optimizes real-time performance by allowing multiple
messages to be set up in advance. The three buffers are arranged as shown in
All three buffers have a 13-byte data structure similar to the outline of the receive buffers (see
Section 10.3.3, “Programmer’s Model of Message
Buffer Priority Register (TBPR)
“Transmit Buffer Priority Register
message, if required (see
To transmit a message, the CPU must identify an available transmit buffer, which is indicated by a set
transmitter buffer empty (TXEx) flag (see
(CANTFLG)”). If a transmit buffer is available, the CPU must set a pointer to this buffer by writing to the
CANTBSEL register (see
(CANTBSEL)”). This makes the respective buffer accessible within the CANTXFG address space (see
Section 10.3.3, “Programmer’s Model of Message
CANTBSEL register simplifies the transmit buffer selection. In addition, this scheme makes the handler
software simpler because only one address area is applicable for the transmit process, and the required
address space is minimized.
The CPU then stores the identifier, the control bits, and the data content into one of the transmit buffers.
Finally, the buffer is flagged as ready for transmission by clearing the associated TXE flag.
Freescale Semiconductor
Any CAN node is able to send out a stream of scheduled messages without releasing the CAN bus
between the two messages. Such nodes arbitrate for the CAN bus immediately after sending the
previous message and only release the CAN bus in case of lost arbitration.
The internal message queue within any CAN node is organized such that the highest priority
message is sent out first, if more than one message is ready to be sent.
Message Transmit Background
Transmit Structures
Section 10.3.3.5, “Time Stamp Register
Section 10.3.2.11, “MSCAN Transmit Buffer Selection Register
contains an 8-bit local priority field (PRIO) (see
(TBPR)”). The remaining two bytes are used for time stamping of a
MC9S12C-Family / MC9S12GC-Family
Section 10.4.2.2, “Transmit
Section 10.3.2.7, “MSCAN Transmitter Flag Register
Chapter 10 Freescale’s Scalable Controller Area Network (S12MSCANV2)
Rev 01.23
Storage”). The algorithmic feature associated with the
Storage”). An additional
(TSRH–TSRL)”).
Structures.”
Section 10.3.3.4, “Transmit
Figure
Section 10.3.3.4,
10-38.
325

Related parts for mc9s12c32mpb16