Download presentation
1
MotoHawk Training CAN Controller Area Network
2
OUTLINE CAN Introduction CAN Physical Network CAN Message Format
MotoHawk Block Walk Through MotoHawk “Post Office” MotoHawk Advanced CAN Blocks CAN Protocol Overview
3
INTRODUCTION CAN = Controller Area Network
Communication specification implemented for automotive applications in the 1980s Often, the term “CAN” is misused CAN is a hardware definition for interoperability between modules CAN specification does not state the data content of a given message Protocols built on top of CAN state the data content (ex. J1939, GMLAN) MotoHawk doesn’t define a protocol, but allows access to the CAN hardware to implement a protocol By itself, CAN is not difficult (I mean it)
4
OUTLINE CAN Introduction CAN Physical Network CAN Message Format
MotoHawk Block Walk Through MotoHawk “Post Office” MotoHawk Advanced CAN Blocks CAN Protocol Overview
5
PHYSICAL NETWORK Two wire robust serial communication
Up to 1Mbps data rate which is limited by wire length Kbps 30 1Mbps Termination resistance required Maximum bandwidth 2000 messages per 4000 messages per 8000 messages per Designed bandwidth should not exceed 70% of the maximum bandwidth CAN + CAN - Wire Length 120 Ω
6
PHYSICAL NETWORK Bus arbitration is handled with a simple strategy
All modules on the bus attempt to transmit a message at the same time The message with the lowest address wins This strategy is handled at the hardware level Dominant Bits (0) vs. Recessive Bits (1) Multiple modules on the same bus cannot transmit the same address at the same time Module 0 continues to transmit while Module 1 waits for next opportunity to transmit Module 0 Module 1 T0 T1 T2 T3
7
OUTLINE CAN Introduction CAN Physical Network CAN Message Format
MotoHawk Block Walk Through MotoHawk “Post Office” MotoHawk Advanced CAN Blocks CAN Protocol Overview
8
MESSAGE FORMAT A CAN 2.0B Message can contain up to 131 bits
As application developers, 3 fields are important: 4 bits determine the length of the data (aka payload) (Range : 0-8) Up to 64 bits of data depending on data length ID Format Extended IDs are 29 bits Standard IDs are 11 bits Extended and Standard IDs can exist on the same bus at the same time Standard IDs have less message overhead (higher percentage of data per message)
9
OUTLINE CAN Physical Network CAN Message Format
MotoHawk Block Walk Through MotoHawk “Post Office” MotoHawk Advanced CAN Blocks CAN Protocol Overview
10
CAN DEFINITION BLOCK First, the CAN hardware needs to be initialized
Baud rate and transmit queue size configured If the baud rate and/or MotoTune protocol settings are not configured properly, then MotoTune can’t talk to the module via CAN (and therefore programming cannot be performed via CAN) Boot key sets CAN baud rate to 250kbps
11
Send CAN Raw Block
12
CAN Exercise #1 CAN Bus Test
Construct a calibratable CAN message transmitter Use CANKing to monitor bus traffic System Diagram
13
CAN Exercise #1 Transmit a message using the Send CAN Raw Block on address 0x1F4. CAN 1 ID Type : Standard (0) Data Length : 8 Transmission Rate : 50 ms Use calibrations for visibility from MotoTune Change the Tx ID and note that the CAN bus traffic changes Change the Data and Data length and note that the traffic changes Use CANKing to debug any failed communication or monitor the bus traffic
14
OUTLINE CAN Introduction CAN Physical Network CAN Message Format
MotoHawk Block Walk Through MotoHawk “Post Office” MotoHawk Advanced CAN Blocks CAN Protocol Overview
15
POST OFFICE CAN is the hardware layer, so how are transmitted messages sorted and filtered in MotoHawk? A Post Office is the simplest analogy Mailboxes Letters Addresses Zip Codes
16
POST OFFICE Many messages are transmitted on a bus at a given time, but a module may only be interested in a small subset Similar to a post office where the messages are letters and the software dispatcher is the postman A “mail box” in MotoHawk is called a “slot”
17
POST OFFICE A “slot” has an address known as a CAN ID similar to the address on a mailbox The MotoHawk post office needs to deliver messages to these slots How does it happen?
18
POST OFFICE Filtering is done with 2 masks
ID Mask : Filters a message by the address or the ID Payload Mask : Filters a message by the data content A mask is similar to assigning a “Don’t Care” or a “Do Care” to a particular number in the mask
19
Filtering Filtering is done with 2 masks
ID Mask : Filters a message by the address or the ID Payload Mask : Filters a message by the data content A ‘1’ in the mask means that the data and the value must match exactly For example, if ID mask = 0x7F0 ( ) and ID = 0x7E4 ( ) If incoming ID = 0x7E0, ( ) message goes to mailbox If incoming ID = 0x7F4, ( ) x message is rejected by mailbox If incoming ID = 0x7E1, ( )
20
READ CAN RAW BLOCK
21
POST OFFICE The “Slot Name” is the name of the mailbox at the post office The slot has default settings for the ID, ID Mask, Payload Value, and Payload Mask This is the design time mailbox configuration
22
POST OFFICE The properties of the mailboxes can be changed at run time
The filters determined at design time can be strengthened (more restrictive), but cannot be weakened In MotoHawk, the CAN Receive Slot Properties Block allows the user to change the filters at run time
23
POST OFFICE What happens if the postal worker rings your doorbell to deliver a message? This is an asynchronous reception of a message The advantage is that processing time can be saved by not periodically polling this message How does MotoHawk handle this situation? Asynchronous reception processed with CAN Receive Slot Trigger Block Slot name in this block must match the slot name specified in Read CAN Raw block or Read CAN Message block
24
OUTLINE CAN Introduction CAN Physical Network CAN Message Format
MotoHawk Basic Transmit Block Exercise MotoHawk “Post Office” MotoHawk Advanced CAN Blocks CAN Protocol Overview
25
MOTOHAWK ADVANCED CAN The Read and Send CAN blocks are nice, but sometimes more advanced data parsing is necessary. Common questions: I have 12 bit scaled data that spans across multiple bytes. How do I convert it into engineering units? I have more data that can fit into 64 bits. How do I create multi-page messages? I’m using a protocol that has a variable ID. How do I dynamically create the ID easily? These are valid questions and there is an answer…
26
MOTOHAWK ADVANCED CAN MotoHawk has 2 blocks – Read CAN Message and Send CAN Message (below) These are very powerful blocks that allow users to set up multi-page documents and parse and scale both variables and IDs
27
MOTOHAWK ADVANCED CAN >> edit motohawk_can_example.m
Type this command in your MATLAB command prompt. I will do the same.
28
LITTLE ENDIAN vs BIG ENDIAN
Terminology originates from “Gulliver’s Travels” “Endianness” refers to the order in which bytes are stored in memory This table shows the 4 byte storage for 1025 (0x41) Address Big Endian Representation Little Endian Representation 00 01 02 03 By default, the MotoHawk CAN scripts use Big Endian byte ordering…which can lead to confusion
29
LITTLE ENDIAN vs BIG ENDIAN
Given this CAN definition byte ordering for a 4 byte variable: Big Endian MSB Little Endian LSB 63...….56 55...….48 47...….40 MSB 39...….32 LSB Now, go let’s back to the script definition…
30
OUTLINE CAN Introduction CAN Physical Network CAN Message Format
MotoHawk Basic Transmit Block Exercise MotoHawk “Post Office” MotoHawk Advanced CAN Blocks CAN Protocol Overview
31
PID ECU 2 ECU 1 CLASS EXERCISE
Create a distributed control system to control the ETC over CAN Pedal Duty Cycle PID Analog signal from potentiometer CAN message send TPS % City ID 0x81 ECU 2 CAN message receive TPS % TPS % Analog signal from ECT CAN message send City ID 0x0B Duty Cycle Duty Cycle ECU 1 CAN message receive PWM output
32
CLASS EXERCISE Duty Cycle message definition
CAN 1 ID Type : Standard (0) ID : 0x1F4 Data Length : 2 Bytes Transmission Rate : 10 ms Data Field Duty Cycle (SIGNED) Scale : 200/65,535 Offset : 0 Start bit: 48 Size: 2 bytes TPS Percent message definition ID : 0x2F4 Data Length : 1 Byte Transmission Rate : 15 ms TPS Percent (UNSIGNED) Scale : 100/255 Start bit: 56 Size: 1 byte
33
PROTOCOL OVERVIEW CAN gets complicated when protocols are considered
J1939, SmartCraft, CCP, GMLAN, etc. are all examples of protocols that adhere to strict rules These protocols can be implemented using Simulink and/or Stateflow Some message formats (J1939) have already been implemented for other projects
34
MotoTron Control Solutions Production Controls in a Flash
MotoTron Control Solutions Production Controls in a Flash
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.