由7个不同的场组成。分别为帧起始、仲裁场、控制场、数据场、CRC场、应答场、帧结尾。 帧起始 (SOF)标志数据帧和远程帧的开始,仅由一个“显性”(逻辑电平“0”为显性电平,“1”为隐性电平)位组成,只有在总线空闲时才允许发送信号。 仲裁场 CAN总线上发送的每一条报文都具有唯一的一个11位或29位的ID。CAN总线状态取决于二进制数“0”而不是“1”,所以ID号越小,则该报文拥有越高的优先权。因此一个为全“0”标志符的报文具有总线传输上的最高优先权。 标准格式帧和扩展格式帧的仲裁场格式不同:
控制场 控制场由6个位组成。标准格式里的帧包括数据长度代码,IDE位及保留位R0。扩展格式里的帧包括数据长度和保留位R1和R0。保留位必须显性发送。 数据场 数据场由数据帧中的发送数据组成。它可以为0-8个字节,每字节包含了8个位,MSB先发送。 CRC场 CRC场包括CRC序列,其后是CRC界定符。CRC序列为循环冗余检验码。CRC序列之后是CRC界定符,它包含一个单独的“隐性”位。 应答场 应答场长度为2位。包含应答间隙和应答界定符。在应答声里,发送两个“隐性”位,当接收器正确地接收到有效报文,接收器就会在应答间隔期间向发送器发送“显性”位以示应答。 帧结尾 每一个数据帧和远程帧均由一标志序列界定。由7个“隐性”位组成。 远程帧目的在于请求发送具有同一标识符的数据帧;远程帧由6个不同位的场组成。分别为帧起始、仲裁场、控制场、CRC场、应答场、帧结尾。与数据帧相反,远程帧的RTR位是“隐性”的。 错误帧由错误标志和错误界定符两部分组成:
过载帧包括过载标志和过载界定符。过载标志由6个“显性”位组成;过载界定符包括8个“隐性”位。 在充分了解CAN协议后,接下来通过示波器展示如何测试CAN总线。示波器在测试总线时一般使用触发和解码同时进行。触发可以根据实际的需求捕获预期事件,而解码则可以把捕获到的信号进行解码。 首先我们通过STB3演示板输出CAN信号并使用无源探头通过测试CAN_L和GND,接入到示波器,然后根据信号特征设置合适的电压和时基档位。 配置如下: 总线选择 首先进入触发菜单,类型选择为“总线”,总线协议设置为“CAN”。如图1所示。 图1:总线选择 信号配置 进入信号菜单,信源设置为信号输入通道,本次输入通道为C1。阈值电平需设置到波形区域内,通常为波形中部。如图2所示。 图2:信号配置 触发配置 进入触发设置菜单,设置合适的触发条件,如图3所示。从图可以看到触发条件分为开始条件、远程帧、ID、ID+数据、错误帧。从上节CAN协议可以知道,这些触发条件均为CAN协议的里规定的帧特征,是捕获CAN信号的核心。根据需求设定触发条件,进而监控CAN总线上的信息。
图3:触发条件 总线配置 进入菜单将标准波特率配置为输入信号的波特率。CAN 最大支持1Mbit/s的传输速率。STB3演示板的波特率为50Kbit/s。如图4。 图4:波特图形 解码功能可以把触发捕获的信号进行解码并以一定格式显示出来。按下示波器的“Decode”按键进入解码菜单并开启总线功能,如图5所示。 图5:解码菜单 解码列表 设置总线并配置解码的行数。显示列表的作用是配置用于显示数据量并查看每帧数据。其中行数可配置1-7行;滚动表示当前正在查询的具体的数据,选中时数据行高亮,可查看屏幕上所有的解码数据。如图6。表示当前采集了43帧数据,正在查看第43帧数据。 图6:解码列表 显示选项 数据显示格式,支持二进制、十进制、十六进制、ASCAII码。如图7。 图7:显示格式 协议信号 与触发菜单类似,设定信源及阈值。需要注意的是,阈值电压需要设置于波形内,若阈值电平位于波形区域外则无法解码。 协议配置 配置与输入信息相同的波特率。 协议复制 若用户非常清楚触发或解码的协议信号和协议配置,可使用此功能快速复制触发参数到解码,或复制解码参数到触发。 通过触发配置和解码配置,我们可以看到CAN总线只要配置好触发条件、触发和解码的阈值电平、波特率以及数据显示格式即可得到CAN数据。 下图为STB3输出的CAN 信号输入到示波器,示波器的触发条件为开始条件,触发和解码的波特率均设置为50kbit/s即可得到CAN 的解码数据,如图8所示。 图8:总线解码 从上图中,我们可以看到,解码列表里显示了与波形相对应的解码数据:
此外还可以通过示波器放大功能,选定数据进行放大。总线解码显示与之对应的解码数据并通过不同颜色标注数据的地址、数据、检验码以及响应位。当显示空间不足时,无法显示的数据均以红点表示。当示波器解码结果与协议不一致时,示波器则会显示相应错误。 |
|
来自: 阿明哥哥资料区 > 《36.电子电力.新能源.电池》