SAM7 Controller Area Network - PowerPoint PPT Presentation

1 / 58
About This Presentation
Title:

SAM7 Controller Area Network

Description:

SAM7 Controller Area Network CAN Agenda What is CAN ? What is CAN ? Why CAN ? CAN Protocol ISO-OSI Reference Model ISO-OSI Reference Model (2) CAN Bus Logic Typical ... – PowerPoint PPT presentation

Number of Views:460
Avg rating:3.0/5.0
Slides: 59
Provided by: at91Comre
Category:

less

Transcript and Presenter's Notes

Title: SAM7 Controller Area Network


1
SAM7Controller Area Network
2
CAN Agenda
  • What is CAN ?
  • Why CAN ?
  • CAN Protocol
  • CAN Higher Layer Protocols
  • CAN Applications
  • AT91 CAN Microcontrollers Roadmap

3
What is CAN ?
  • Controller Area Network
  • Invented by Robert Bosch GmbH in 1980 for
    automotive applications
  • Asynchronous Serial Bus
  • Simple 2-wire differential bus
  • Absence of node addressing
  • Message identifier specifies contents and
    priority
  • Lowest message identifier has highest priority
  • Non-destructive arbitration system by CSMA with
    collision detection
  • Multi-master / Broadcasting concept
  • Sophisticated error detection handling system

4
What is CAN ?
  • The CAN is an ISO standard (ISO 11898) for serial
    communication
  • Today CAN has gained widespread use
  • Industrial Automation
  • Automotive, etc.
  • The CAN standard includes
  • Physical layer
  • Data-link layer
  • Some message types
  • Arbitration rules for bus access
  • Methods for fault detection and fault confinement

5
Why CAN ?
  • Mature Standard
  • CAN protocol more than 16 years
  • Numerous CAN products and tools on the market
  • Hardware implementation of the protocol
  • Combination of error handling and fault
    confinement with high transmission speed (up to
    1Mb/s)
  • Simple Transmission Medium
  • Twisted pair of wires is the standard, but also
    just one wire will work
  • Other links works, too Opto - or radio links
  • Excellent Error Handling
  • CRC error detection mechanism
  • Fault Confinement
  • Built-in feature to prevent faulty node to block
    system
  • Most used protocol in industrial and automotive
    world

6
CAN Protocol
Protocol -
7
ISO-OSI Reference Model
Protocol -
HLPs CANopen, DeviceNet, OSEK/VDX
7. Application Layer
6. Presentation Layer
Partially Implemented by High Layer Protocol (HLP)
5. Session Layer
CAN Layers
4. Transport Layer
3. Network Layer
2. Data Link Layer
CAN Protocol
1. Physical Layer
8
ISO-OSI Reference Model (2)
Protocol -
CAN Controller
CAN Transceiver
9
CAN Bus Logic
Protocol -
1 Recessive (r)
0 Dominant (D)
Two logic states on the CAN bus
Wired-AND Function
Bus in dominant state
Bus in recessive state or idle
10
Typical CAN Node
Protocol -
CAN_H
TXD
CAN Controller
CAN Transceiver
CAN Bus
µController
CAN_L
RXD
CAN Bus is a simple 2-wire differential serial
bus CAN Bus is terminated on each side by a 120
Ohm resistor
11
CAN Bit Coding Bit Stuffing
Protocol -
  • Bit Coding NRZ (Non-Return-To-Zero code) does
    not ensure enough edges for synchronization
  • Stuff Bits are inserted after 5 consecutive bits
    of the same level
  • Stuff Bits have the inverse level of the previous
    bit.
  • No deterministic encoding, frame length depends
    on transmitted data

Number of consecutive bits with the same polarity
12
CAN Bus Access and ArbitrationCSMA/CD and AMP
Protocol -
  • CSMA/CD Carrier Sense Multiple Access /
    Collision Detection
  • AMP Arbitration by Message Priority

13
CAN Bus Synchronization
Protocol -
  • Hard synchronization at Start Of Frame bit
  • Re-Synchronization on each Recessive to Dominant
    bit

14
CAN Bit Construction
Protocol -
  • CAN Bit Period ? Four Time Segments
  • Each Time Segment represents a number of Time
    Quanta (TQ)
  • 1 Time Quantum ? 1 period of CAN Controller Clock
  • SYNC_SEG synchronize the different nodes
  • PROP_SEG compensate for signal delays across the
    network
  • PHASE_SEG1 2 compensate for edge phase errors

1 Bit Time ? 8 to 25 Time Quanta
15
Relation between Baud Rate and Bus Length
Protocol -
16
Frame Formats
Protocol -
  • SOF Start Of Frame
  • CRC Cyclic Redundancy Code
  • ACK Acknowledge
  • EOF End of Frame
  • IFS Inter Frame Space

17
Frame Formats (2)
Protocol -
  • CAN V2.0A Standard Frame Identifier is 11 bits
    long
  • CAN V2.0B Extended Frame Identifier is 29 bits
    long
  • ID Identifier
  • IDE Identifier Extension
  • RTR Remote Transmission Request
  • SRR Substitute Remote Request
  • RB0/1 Reserved bits
  • DLC Data Length Code

Our CANs supports CAN V2.0A CAN V2.0B
Specification
18
Frame Formats (3)
Protocol -
  • Four different frame formats
  • Data Frame RTR Dominant 0
  • Remote Frame RTR Recessive 1 and No Data Field

Data Frame has priority on Remote Frame
19
Frame Formats (4)
Protocol -
  • Error Frame sent after a violation frame format
  • Overload Frame prevents data overflow from a
    slower CAN

Overload Frames are not really used
20
Fault Confinement
Protocol -
  • CAN Node Error States
  • Error Active Normal state, node can send all
    frames (error frames included)
  • Error passive Node can send all frames excluding
    error frames
  • Bus off Node is isolated from bus
  • Internal Counters TEC REC
  • TEC Transmit Error Counter
  • REC Receive Error Counter

TEC and REC counters allows to prevent from
faulty nodes
21
Error Detection Analysis
Protocol -
  • Error statistics depend on the entire environment
  • Total number of nodes
  • Physical layout
  • EMI disturbance
  • Automotive example
  • 2000 hours/year
  • Baud rate 500 kbps
  • 25 bus load

One undetected error every 1000 years !!!
22
CAN High Layer Protocols
HLP -
23
HLP Definition
HLP -
  • CAN protocol defines only the physical and a low
    data link layer !
  • The HLP defines
  • Start-up behavior
  • Definition of message identifiers for the
    different nodes
  • Flow control
  • Transportation of messages gt 8bytes
  • Definition of contents of Data Frames
  • Status reporting in the system

One undetected error every 1000 years !!!
24
CANopen
HLP -
  • Features
  • CANopen is a subset from CAL (CAN Application
    Layer) developed by CiA
  • Auto configuration the network
  • Easy access to all device parameters
  • Device synchronization
  • Cyclic and event-driven data transfer
  • Synchronous reading or setting of inputs, outputs
    or parameters
  • Applications
  • Machine Automation
  • Advantages
  • Accommodating the integration of very small
    sensors and actuators
  • Open and vendor independent
  • Supports inter-operability of different devices
  • High speed real-time capability

CiA (CAN in Automation)
25
DeviceNet
HLP -
  • Features
  • Created by Allen-Bradley (Rockwell Automation
    nowadays), now presented by the users group ODVA
    (Open DeviceNet Vendor Association)
  • Power and signal on the same network cable
  • Bus addressing by Peer-to-Peer with multi-cast
    Multi-Master Master-Slave
  • Supports only standard CAN
  • Applications
  • Machine Automation
  • Advantages
  • Low cost communication link and vendor
    independent
  • Removal and replacement of devices from the
    network under power

CANopen (Europe) DeviceNet (USA)
26
CAN Kingdom
HLP -
  • CAN Kingdom is more than a HLP (Meta Protocol)
  • Introduced by KVASER, Sweden
  • A King (system designer) takes the full
    responsibility of the system
  • The King is represented by the Capital
    (supervising node)s
  • CAN Kingdom provides simple unique identification
    of system nodes
  • Applications
  • Machine Automation
  • Advantages
  • Designed for safety critical applications
  • Real time performance
  • Scalability
  • Integration of DeviceNet modules in CAN Kingdom
    possible

27
SAE J1939
HLP -
  • Features
  • Developed by Society of Automotive Engineers
    heavy trucks and bus division (SAE)
  • Use of the 29 identifiers
  • Support of real-time close loop control
  • Applications
  • Light to heavy trucks
  • Agriculture equipment e.g. tractors, harvester
    etc
  • Engines for public work

28
X-by-wire systems Time-triggered protocols
HLP -
  • Predictable new protocols
  • Applications
  • Automotive, aircraft
  • TTCAN Time Triggered CAN
  • Robert Bosch GmbH, CiA.
  • FLexRay
  • General Motors, DaimlerChrysler, BMW, Motorola,
    Philips Semiconductors and Bosch Automotive
    Group.
  • TTP Time Triggered Protocol
  • PSA Peugeot Citroen, Audi,Volkswagen, Honeywell
    and Delphi Automotive Systems.

FlexRay is becoming the reference
29
OSEK/VDX
HLP -
  • Initiative of
  • BMW, Bosch, DaimlerChrysler, Opel, Siemens,VW
    IIIT of the University of Karlsruhe / PSA and
    Renault
  • Goal Portability and re-usability of the
    application software
  • OSEK/VDX includes
  • Communication (Data exchange within and between
    Control Units)
  • Network Management (Configuration determination
    and monitoring)
  • Operating System (Real-time executive for ECU
    software)
  • Applications
  • Automotive
  • Advantages Saving in costs and development time

Usually called OSEK
30
CAN Applications
Applications -
31
CAN a Large Field of Applications
Applications -
  • Building Automation
  • Heating control, Air Conditioning, Security,
    Access Light Control
  • Domestic Food distribution appliances
  • Washing machines, dishes cleaner, self-service
    bottle distributors
  • Automotive Transportation
  • Dash Board, Power train Car Body
  • Train, bus and truck equipment
  • Robotic
  • Production Automation
  • Control link of production machines
  • Medical
  • Agriculture
  • Harvester, seeding, sowing machines, tractor
    control...

32
AT91SAM7 CAN Embedded ControllersA1 - A2 - A3 - X
AT91SAM7 -
33
CAN Controllers Types
AT91SAM7 -
  • 3 types of CAN controllers exist
  • CAN Controllers 2.0 Part A standard frames
  • CAN Controllers 2.0 Part B Passive or extended
    frames passive
  • CAN Controllers 2.0 Part B Active or extended
    frames active
  • CAN Implementations 2 main implementations
    strategy
  • BasicCAN cheaper CAN Controller
  • 1 or 2 Rx buffers (FIFO) and 1 Tx buffer
  • Minimal Filtering
  • FullCAN high performance CAN Controllers
  • Set of buffers called Mailboxes
  • Dedicated Mailbox Filtering

Our CANs 2.0A/2.0B (Active) FullCAN
34
CAN Controllers Features
AT91SAM7 -
  • Two different CAN implementations for the
    AT91SAM7 family
  • CAN embedded in SAM7A1 SAM7A2 (Europe
    Technologies CAN)
  • CAN embedded in SAM7A3 SAM7X (ATMEL Rousset
    CAN)
  • AT91SAM7A1
  • 1 CAN Controller 2.0A and 2.0B FullCAN with 16
    Mailboxes
  • AT91SAM7A2
  • 4 CAN Controllers 2.0A and 2.0B FullCAN
  • 1 with 32 Mailboxes, 3 with 16 Mailboxes
  • AT91SAM7A3
  • 2 CAN Controllers 2.0A and 2.0B FullCAN with 16
    Mailboxes
  • AT91SAM7X
  • 1 CAN Controller 2.0A and 2.0B FullCAN with 8
    Mailboxes

SAM7A1-A2 Specific / SAM7A3-X Specific
35
CAN Controllers Features (2)
AT91SAM7 -
  • Fully Compliant with CAN 2.0 Part A and 2.0 Part
    B
  • High Speed CAN Bit Rates up to 1Mbit/s
  • Data, Remote, Error and Overload Frame Handling
  • Mailboxes with the Following Properties
  • Standard or Extended ID Programmable for Each
    Message
  • Mailbox Configurable in Receive (with Overwrite
    or Not) or Transmit Modes
  • Producer Consumer Mailbox Feature
  • Independent 29-bit Identifier and Mask Defined
    for Each Mailbox
  • Uses a 16-bit / 32-bit Timestamp on Receive and
    Transmit Messages
  • Hardware Concatenation of ID Masked Bitfields To
    Speed Up Family ID Processing
  • Global 16-bit / 32-bit Internal Timer for Time
    stamping
  • Priority Management between Transmission
    Mailboxes
  • Mailbox number prioritization
  • Message ID prioritization
  • Autobaud Mode
  • Automatic retransmission of corrupted messages
  • Low Power Mode and Programmable Wake-up

SAM7A1-A2 Specific / SAM7A3-X Specific
36
AT91SAM7A3 AT91SAM7XCAN Controller
SAM7A3 / SAM7X -
37
CAN on SAM7X-EK SAM7A3-EK Boards
SAM7A3 / SAM7X -
  • PMC has to be programmed 1st for CAN to work
    Clock Enabling
  • Set the PMC_PCER (Peripheral Clock Enable
    Register).
  • PIO CAN_TX and CAN_RX have to be configured in
    peripherals.
  • CAN Transceiver must be enabled through a PIO
    configured in Output.
  • CAN Internal Timer is 16-bit long.
  • 8 Mailboxes for SAM7X
  • 16 Mailboxes for SAM7A3

38
CAN Controller Structure
SAM7A3 / SAM7X -
39
CAN Initialization
SAM7A3 / SAM7X -
Status Registers
Mode Register
0
2
Error Flags
CANEN
ABM
  • CANEN 1 Enable CAN Controller
  • Wait for bus synchronization (11 consecutive
    recessive bits are scanned)
  • WAKEUP flag is set
  • ABM 1 Enable Autobaud Mode
  • Error counters are disabled
  • Transmission is disabled

40
CAN Bit Timing Configuration
SAM7A3 / SAM7X -
Baudrate Register
16
BRP
  • Sample Point point in time at which the bus
    level is read as the value of that respective
    bit.
  • 1 Time Quantum ? 1 period of CAN Controller Clock

Time Quantum (BRP 1) / MCK
TBIT TSYNC TPRS TPHS1 TPHS2
41
CAN Bit Timing Configuration (2)
SAM7A3 / SAM7X -
Baudrate Register
8
0
12
4
PROPAG
PHASE2
SJW
PHASE1
  • Nominal Bit Time 8 to 25 TQ long.
  • Information Processing Time (IPT) time required
    to determine the bit level of a sampled bit.
  • SYNC_SEG is 1 TQ long.
  • PROP_SEG 1 to 8 TQ
  • PHASE_SEG1 1 to 8 TQ
  • PHASE_SEG2 Max(IPT, PHASE_SEG1)
  • SJW Min(PHASE_SEG1, 4TQ)

TPRS TCSC (PROPAG1)
TPHS1 TCSC (PHASE11)
TPHS2 TCSC (PHASE21)
TSJW TCSC (SJW1)
IPT is 2 TQ for ATMEL CANs
42
Low Power Mode
SAM7A3 / SAM7X -
Mode Register
Status Register
1
20
21
LPM
SLEEP
WAKEUP
  • Low Power Mode Send or receive messages is
    disabled (Mailboxes inactive)
  • Enter Low Power Mode
  • Set LPM flag
  • All pending transmit messages are sent before
  • Wait for SLEEP signal raising
  • Internal Counter (CAN_TIM) is reset and stuck to
    0x0000.
  • The user can disable CAN Clock (PMC)
  • Exit Low Power Mode
  • Enable CAN Clock (PMC)
  • Clear LPM flag
  • Wait for bus synchronization ? WAKEUP signal
    raising
  • All pending transmit messages are sent before
  • Internal Counter is reset and stuck to 0

43
Time Management Unit
SAM7A3 / SAM7X -
Mode Register
Status Register
Message Mode Register
23
0
4
5
TSTP
MTIMEMARK
TEOF
TTM
  • The CAN controller offers optimized features
    useful to support the Time-Triggered protocols.
  • Time Management Unit can operate in two modes
  • Time Stamping Mode (TTM 0) the value of the
    internal timer (CAN_TIM) is captured in the CAN
    Timestamp register (CAN_TIMESTP) at each
  • start of frame (TEOF 0)
  • end of frame (TEOF 1)
  • Time Triggered Mode (TTM 1) a mailbox transfer
    operation is processed when the internal counter
    reaches the mailbox trigger value (MTIMEMARK
    field in corresponding mailbox CAN_MMR).
  • TSTP 1 A start or an end of frame has been
    detected

44
Time Management Unit (2)
SAM7A3 / SAM7X -
Transfer Cmd Reg
Status Register
Mode Register
31
22
6
TIMRST
TOVF
TIMFRZ
  • CAN_TIM register Free-running 16-bit timer
  • TIMRST 1 Allows to clear the counter
  • TIMFRZ 1 Allows to freeze the counter
  • TOVF 1 A timer overflow is detected
  • CAN_TIMESTP register copy of the CAN_TIM after a
    successful transfer

45
Data, Remote, Error Overload Frames Handling
SAM7A3 / SAM7X -
Mailbox Status Register
Mode Register
22
3
7
23
MABT
OVL
DRPT
MRDY
  • Data Remote Frames can be sent/received thanks
    to the different mailboxes
  • A successful transfer raises the Mailbox Ready
    flag (MRDY) in the mailbox status register.
  • When a transmit mailbox looses bus arbitration,
    the transfer request remains pending.
  • Disable Repeat DRPT 1
  • Transfer request is aborted if the transmit
    mailbox looses bus arbitration.
  • Mailbox Abort flag (MABT) in the mailbox status
    register raises.
  • Error Frames are automatically handled by the
    macro.
  • Overload Frames can be generated by setting OVL
    flag in the Mode Register
  • OVL 1 an overload is generated after each
    successful reception.

46
Mailbox Organisation
SAM7A3 / SAM7X -
  • Eight 32-bit registers by mailbox
  • Mailbox x Mode Register
  • Mailbox x Acceptance Mask Register
  • Mailbox x ID Register
  • Mailbox x Family ID Register
  • Mailbox x Status Register
  • Mailbox x Data Low Register
  • Mailbox x Data High Register
  • Mailbox x Control Register

Mailbox ? Channel ? Buffer
47
Message Acceptance Procedure
SAM7A3 / SAM7X -
Mailbox ID Acceptance Mask Register
29
MIDE
  • CAN_MIDx defines the message ID
  • MIDE 0 standard message
  • MIDE 1 standard or extended message
  • CAN_MAMx defines the mask ID value
  • Allows a mailbox to receive different messages
    ID.
  • CAN_MFIDx concatenation of ID mask ID
  • Speed up message ID decoding

48
Push / Pull Model
SAM7A3 / SAM7X -
  • Push Model Classical Tx Rx
  • Producer ? Tx Mailbox
  • Consumer ? Rx Mailbox
  • Pull Model
  • Producer ? Producer Mailbox
  • Consumer ? Consumer Mailbox
  • Consumer transmit a remote frame to the Producer.
  • Producer transmit the answer to the Consumer.
  • Pull Model
  • With Tx Rx mailboxes 1 Tx 1 Rx Mailbox for
    each node ? 4 Mailboxes
  • With Consumer Producer mailboxes 2 Mailboxes
    only !

49
Mailbox Object Type
SAM7A3 / SAM7X -
Mailbox Mode Register
24
MOT
  • Five programmable type of mailboxes (MOT field in
    CAN_MMRx)
  • Reception Mailbox Types
  • Receive mailbox
  • The first message received is stored in mailbox
    data registers.
  • Other messages are ignored by this mailbox.
  • Receive with Overwrite mailbox
  • The first message received is stored in mailbox
    data registers.
  • The next message overwrites the previous one.
  • Consumer mailbox (Enhanced Reception Mailbox)
  • Sends a remote frame to a producer mailbox.
  • Waits automatically for a data frame with the
    same ID from a producer mailbox.

50
Mailbox Object Type (2)
SAM7A3 / SAM7X -
Mailbox Mode Register
24
MOT
  • Transmission Mailbox Types
  • Transmit mailbox
  • Sends either a remote frame or a data frame.
  • Producer mailbox (Enhanced Transmit Mailbox)
  • Waits for a remote frame from a consumer mailbox.
  • Once the remote frame received, sends
    automatically a data frame with the same ID to
    the consumer mailbox.

51
Mailbox Priority
SAM7A3 / SAM7X -
Mailbox Mode Register
16
PRIOR
  • Reception Modes
  • In this modes, the mailbox with the lowest number
    is serviced first.
  • Transmission Modes
  • Mailbox with the highest priority ? PRIOR lowest
    value.
  • When several mailboxes try to transmit a message
    at the same time, the mailbox with the highest
    priority is services first.
  • If at least two mailboxes have the same priority
    (same PRIOR value), the mailbox with the lowest
    number is serviced first.

52
Transmit Mailbox Handling
SAM7A3 / SAM7X -
Mailbox Status Register
Mailbox Control Register
23
MRDY
22
23
16
20
MACR
MTCR
MDLC
MRTR
  • Size of the message is defined in the Mailbox
    Data Length Code field (MDLC)
  • Mailbox Transfer Command Request (MTCR 1)
  • Allows transmission of the current message.
  • Message can be aborted (MACR 1).
  • Mailbox Remote Transmission Request (MRTR 1)
  • Allows to send a remote frame (MDLC value is
    ignored).

53
Receive Mailbox Handling
SAM7A3 / SAM7X -
Mailbox Control Register
Mailbox Status Register
23
23
24
MRDY
MTCR
MMI
  • Mailbox Transfer Command MTCR 1
  • Allows reception of the next message.
  • When MRDY flag is set, mailbox data registers
    content is available.
  • MMI flag is set ? a message has been lost by the
    mailbox

54
Receive with Overwrite Mailbox Handling
SAM7A3 / SAM7X -
Mailbox Control Register
Mailbox Status Register
23
23
24
MRDY
MTCR
MMI
  • Mailbox Transfer Command MTCR 1
  • Allows to reset MRDY flag
  • MMI flag is set ? a new message has overwritten a
    previous one.

55
Chaining Receive Mailboxes
SAM7A3 / SAM7X -
Allows to receive buffer split into several
messages with the same ID ? buffer size gt 8 bytes.
56
Producer Mailbox Handling
SAM7A3 / SAM7X -
Mailbox Control Register
Mailbox Status Register
23
22
24
23
MRDY
MACR
MMI
MTCR
  • Mailbox Transfer Command MTCR 1
  • Allows to wait for a remote frame reception
  • Data is automatically sent after the reception of
    a remote frame
  • MRDY remains at 0 as long as the message has not
    been transmitted or aborted (MACR 1).

57
Consumer Mailbox Handling
SAM7A3 / SAM7X -
Mailbox Control Register
Mailbox Status Register
23
23
MRDY
MTCR
  • Mailbox Transfer Command MTCR 1
  • Allows to send a remote frame.
  • Then, waits automatically for a data frame from a
    producer mailbox.
  • MRDY remains at 0 as long as the data frame has
    not been received or aborted.

58
Multiple Transfer or Abort Requests
SAM7A3 / SAM7X -
  • The CAN Transfer Command Register (CAN_TCR)
    allows to perform several transfer requests at
    the same time.
  • The CAN Abort Command Register (CAN_ACR) allows
    to perform several abort requests at the same
    time.
Write a Comment
User Comments (0)
About PowerShow.com