(2)can总线技术规范
来源:互联网 发布:网络感叹号怎么解决 编辑:程序博客网 时间:2024/05/19 23:14
本文从以下四个方面介绍CAN2.0B的技术规范。
1.CAN的分层结构
2.CAN报文传送及总线上的位电平表示
3.CAN总线报文的帧结构
4.错误类型和界定
4.位定时与同步
总线上的位电平表示,报文的帧结构,错误类型这些前文均有讲过,下面进行深入介绍。
1.CAN的分层结构
为了使设计透明和执行灵活,遵循ISO/OSI标准模型,CAN分为数据链路层(包括逻辑链路层LLC和媒体访问控制层MAC)和物理层,
在CAN技术规范2.0A的版本中,数据链路层的LLC和MAC子层的服务和功能被描述为“目标层”和“传输层”。 各层的具体功能不做深究。
2.CAN报文传送及总线上的位电平表示
(1)进行数据传送时,发出报文的单元成为该报文的发送器。该单元在总线空闲或丢失仲裁前恒为发送器。
(2)如果一个单元不是报文发送器,并且总线不出现空闲状态,则该单元为接收器。
报文中的位流是按照非归零(NZR)码方法编码的,这意味着一个完整的位电平要么是显性,要么是隐性。
在“隐性”状态下,Vcanh和Vcanl被固定于平均电压电平,Vdiff近似为零。在总线空闲或“隐性”位期间,发送“隐性”状态。
在“显性”状态下,以大于最小阀值的差分电压表示。
3.CAN总线报文的帧结构
CAN总线的报文传送由4种不同类型的帧表示和控制:
●数据帧携带数据由发送器至接收器;
●远程帧通过总线单元发送,以请求发送具有相同标识符的数据帧;
●出错帧由检测出总线错误的任何单元发送;
●超载帧用于提供当前的和后续的数据帧的附加延迟。
数据帧和远程帧借助帧间空间和当前帧分开。
1、数据帧
数据帧由7个不同的位场组成,即帧起始、仲裁场、控制场、数据场、CRC场、应答场和帧结束。数据长度可为0。CAN技术规范2.0B数据帧的组成如下图所示。
在CAN技术规范2.0B中存在两种不同的帧格式,其主要区别在于标识符的长度,具有11位标识符的帧称为标准帧,而包括29位标识符的称为扩展帧。标准格式和扩展格式的数据帧结构如图所示。
CAN技术规范2.0B对报文滤波特别加以描述,报文滤波器以整个标识符位基准。屏蔽寄存器可用于选择一组标识符,以便映像至接收缓存器中,屏蔽寄存器每一位都必须是可编程的,它的长度可以是整个标识符,也可以仅是其中一部分。
(1)帧起始(SOF):标志数据帧和远程帧的起始,它仅由一个显性位构成,只有在总线处于空闲状态时,才允许单元开始发送。所有单元都必须同步于首先开始发送的那个单元的帧起始前沿。(这就是后文介绍的帧同步)
(2)仲裁场:由标识符和远程发送请求位(RTR)组成,见上图。
何谓标识符?就是用于标识报文的一组数字。这些位一从高位到低位的顺序发送。
标准格式和扩展格式的仲裁场有很大区别。
2.0B的标准格式:
标识符的长度为11位,这些位一从高位到低位的顺序发送,最低位为ID.0,其中最高7位不能全为隐性。RTR位在数据帧中必须为显性,而在远程帧中必须为隐性。
扩展格式:
仲裁场:29位标识符ID.28--ID.0 ;
替代远程请求SRR位(隐性位);(Substitute Remote Request BIT)
之所以叫替代远程请求位,是因为它在相当于标准帧中远程请求位(RTR)的位置被发送,代替标准帧的RTR位。
can总线如何仲裁?
若有A,B
为什么最小的ID的优先级最高?根据前面的规则,显性电平会替代隐性电平可知。
先列举2种特殊情况,根据仲裁来判断优先级。
需要注意的一点是:只有仲裁场的位参与仲裁,数据场是不参与仲裁的,所以,不要以为如果两节点发送的数据帧或远程请求帧中的仲裁场各位相同,就回逐位比较数据场的数据。
CAN-bus规范V2.0的P8页上有如下语句:
Arbitration
Whenever the bus is free, any unit may start to transmit a message. If 2 or more units
start transmitting messages at the same time, the bus access conflict is resolved by
bitwise arbitration using the IDENTIFIER. The mechanism of arbitration guarantees that
neither information nor time is lost. If a DATA and a REMOTE with the
same IDENTIFIER are initiated at the same time, the DATA prevails over the
REMOTE . During arbitration every transmitter compares the level of the bit
transmitted with the level that is monitored on the bus. If these levels are equal the unit
may continue to send. When a ’recessive’ level is sent and a ’dominant’ level is
monitored (see Bus Values), the unit has lost arbitration and must withdraw without
sending one more bit.
本人人工翻译(相信我的英语):
在总线空闲的任何时候,任何单元都有可以开始发送消息。如果有2个或以上的单元同时开始发送消息,总线的冲突由标识符按位仲裁来解决。仲裁机制保证了信息不会丢失,时间不会浪费。
如果一个数据帧和远程请求帧的ID相同,数据帧在仲裁中胜过远程请求帧。
在仲裁期间,每个发送器都会比较自己发送的位的电平和监测到的总线上的电平的高低。如果相等则继续发送,如果发送的是隐性位,却从总线上检测到显性位,则该单元失去仲裁权,然后必须退出不能再发任何一位数据。
标识位扩展位IDE(隐性位);用于标识该帧是扩展格式。全称“识别符扩展位”(Identifier Extension Bit)
远程发送请求位RTR 。为隐性时表明该帧是远程请求帧。
3)控制场:由6位组成,由图可见,控制场包括数据长度码和两个保留位,这两个保留位必须发送显性位,但接收器认可显性和隐性的全部组合。数据长度码DLC指出数据场的字节数目。数据长度码为四位,在控制场中被发送,数据字节的允许使用数目为0-8,不能使用其它数值。
(4)数据场:是又数据帧中被发送的数据组成,它可包括0-8个字节,每个字节8位,首先发送的是最高有效位。
跟以太网中46-1500字节的数据量相比,就可以理解前文讲到的CAN总线采用的是短报文传输。一次最多8个字节。(5)CRC场:包括CRC序列,后随CRC界定符。CRC场结构如图8所示。CRC序列由循环冗余码求得的帧检查序列组成,最适用于位数小于127(BCH码)的帧。CRC序列之后是CRC界定符,包含一个单独的“隐性位”
(6)应答场(ACK):为两位,包括应答间隙和应答界定符,如图所示。在应答场中,发送器送出两个隐性位。
一个正确地接收到有效报文的接收器,在应答间隙,将此信息通过发送一个显性位报告给发送器。所有接收到匹配CRC序列的站,通过在应答间隙内把显性位写入发送器的隐性位来报告。应答界定符是应答场的第二位,并且必须是隐性位,
(7)帧结束:每个数据帧和远程帧均由7个隐性位组成的标志序列界定。
至此,终于介绍完了数据帧的7个场,篇幅太长,剩下的另起一文。
- (2)can总线技术规范
- (3)can总线技术规范
- (5)can总线技术规范----位定时与同步技术
- CAN总线技术
- CAN总线技术2--CAN网络控制芯片SJA1000
- 谈汽车CAN总线技术
- CAN总线技术详解
- LIN总线技术及应用——协议规范(一)
- LIN总线技术及应用——协议规范(一)
- CAN总线技术1--协议摘要
- 浅析CAN总线技术的现状与未来
- 总线技术
- CAN总线技术在船舶监控系统的应用
- CAN、USART、SPI、SCI等常见总线技术介绍
- 总线技术介绍
- 使用总线技术
- 总线技术介绍
- 总线技术介绍
- 使用mysql导入文件
- sqoop的使用过程出现的问题
- php集成redis
- 守护进程(精灵进程)
- netcat nc ncat
- (2)can总线技术规范
- redis- hash操作
- webstorm2017.1.3破解教程
- android AsyncTask介绍
- LeetCode 15. 3Sum
- Springboot+Mybatis+Maven+Oracle+Cassandra+事务(Aop)+定时任务实现
- stanford Java公开课 Karel机器人开发环境eclipse安装与配置
- 【ubuntu】vi/vim 基本使用方法
- D