### CAN规约2003版关键知识点解析 #### 规约版本与适用范围 - **版本信息**:本规约版本为ver1.02(发布日期:04/05/21),适用于基于CAN(Controller Area Network)网络进行通信的系统,特别是对于需要在控制器之间进行数据交换的应用场景。 #### CAN帧结构与定义 - **帧的基本概念**:CAN协议规定了以帧的形式发送数据,每个帧由10个字节组成。 - **帧的具体格式**:帧由以下部分组成: - IDH(高8位标识符) - IDL(低8位标识符) - B0至B7(有效载荷) - **标识符定义**: - **IDH** = ID10,ID9,ID8,ID7,ID6,ID5,ID4,ID3 - **IDL** = ID2,ID1,ID0,ITR,M3,M2,M1,M0 - **标识符解释**: - **ITR** = 0,**M3** = 1,**M2** = M1 = M0 = 0 - **ID10** = 方向位;ID10 = 1表示总控发送到子CPU,ID10 = 0表示子CPU发送到总控。 - **ID9~ID3** = CPU地址(01-127),00表示广播地址。 - **ID2、ID1、ID0**定义了消息类型,包括对时报文、短报文传输命令及数据报文等。 #### 规约约定 - **波特率**:使用20/40/50/80/125KHz波特率异步方式。 - **长报文处理**: - 发送侧处理规则: - 发送失败或3秒内未收到应答或应答校验出错,发送方将发送错误帧“IDH,IDL,FF,FF,FF,FF,FF,FF,FF,FF”,并重新开始新报文发送。 - 接收侧处理规则: - 若“报文计数”不连续或最后的“报文计数”不等于“报文包数”减1,或者在3秒内未接收完整个报文,接收方将退出接收程序,不需应答,并重新开始接收新的长报文。 - **短报文处理**: - 如发送短报文后无需对方回答,则发送自然结束,视为发送成功。 - 如需对方回答且1秒内接收到应答,则发送成功;否则尝试重发,重发3次失败后认为该地址不存在,退出发送,跳过该CPU。 - **非法帧处理**:任何帧长不等于8的报文被视为非法帧。 #### 数据库定义 - **数据类型**: - 模拟量:0-(N-1)个,每组16个,每个占用2字节,采用12位二进制补码表示。 - 状态量:0-(M-1)个,每组8个,占用1字节。 - 脉冲量:0-(L-1)个,每组4个,每个占用4字节。 - 遥控量:0-(K-1)个,每组1个。 - **缓存机制**: - COS:循环缓存,确认发送成功后取消一个记录。 - SOE:循环缓存,确认发送成功后取消一个记录。 - 保护事件:循环缓存,确认发送成功后取消一个记录。 - 变化YC:标志保存,发送成功后取消标记。 - **事件状态字节**(Status):用于检测状态变化。 - S.0:1表示CPU有SOE事件,0表示无SOE事件。 - S.1:1表示CPU有保护事件,0表示无保护事件。 - S.2:1表示CPU有工况变化,0表示无工况变化。 - S.3:1表示CPU有超过1.20%变化的遥测,0表示无变化。 - S.4、S.5:保留位。 - S.6:1表示CPU有cos事件,0表示无cos事件。 - S.7:cos事件重发时不变,cos事件非重发时0和1交替变化。 - **CPU定时器**(T2500):用于控制数据自动上送。当CMU查询CPU时,T2500被清零。若T2500溢出时,检查Status字节,若有变化则自动上送一次并清零T2500,否则不上送。 #### 短报文示例 - **对时报文**(ID02ID01ID00 = 000): - Byte0:分秒低位 - Byte1:分秒高位 (0-999) - Byte2:秒 (0-59) - Byte3:分钟 (0-59) - Byte4:小时 (0-23) - Byte5:日期 (0-31) - Byte6:月份 (0-12) - Byte7:年份 (0-99),取实际年份模100。 #### 小结 《CAN规约2003版》详细定义了CAN网络中的数据通信协议,涵盖了帧结构、标识符定义、规约约定等方面。通过对这些核心内容的理解和掌握,可以有效地应用于各种基于CAN网络的实际工程项目中,确保数据传输的准确性和可靠性。
剩余37页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助