详解基于CAN总线的汽车仪表系统设计—CAN报文传输机制
CAN报文传送
当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的n位字符为标识符(扩展帧格式为29位),定义了报文的优先级。在同一系统中,标识符是唯一的,不可能有两个站发送具有相同标识符的报文1241。当几个站同时竞争总线读取时,这种配置十分重要。当一个站要向其他站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当他收到总线分配时,转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其他站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收处理它。CAN总线以报文为单位进行数据传送,报文的优先级结合在标识符(n位或29位)中,具有最低二进制数的标识符有最高的优先级。总线读取中的冲突可通过位仲裁解决。当几个站同时发送报文时,发送优先级最高的报文的站将获得总线控制权。这种非破坏性位仲裁方法的优点在于,在网络最终确定哪一个站的报文被传送以前,报文的起始部分己经在网络上传送了。所有未获得总线读取权的站都成为具有最高优先权报文的接收站,并且不会在总线再次空闲前发送报文。
在进行数据传送时,发出报文的单元称为该报文的发送器。该单元在总线空闲或丢失仲裁前恒为发送器。如果一个单元不是报文发送器,并且总线不处于空闲状态,则该单元为接收器。对于报文发送器和接收器,报文的实际有效时刻是不相同的。对于发送器而一言,如果直到帧结束末尾一直未出错,则对于发送器报文是有效的,o如果报文受损,将允许按照优先权顺序自动重发送。为了能同其他报文进行总线访问竞争,总线一旦空闲,重发送立即开始。对于接收器而言,如果知道帧结束的最后一位一直未出错,则对于接收器的报文是有效的。构成一帧的帧起始、总裁场、控制场、数据场CRC序列均借助位填充规则进行编码。当发送器在发送的位流中检测到5位连续的相同数值时,将自动地在实际发送位流中插入一个补码位。数据帧和远程帧的其余位场采用固定格式,不进行填充。出错帧和超载帧同样是固定格式,也不进行位填充。报文中的位流按照非归零(NRz)码方法编码,这意味着一个完整位的位电平要么是"0"要么是"1"。报文传送由4种不同类型的帧表示和控制:数据帧携带数据由发送器送至接收器;远程帧通过总线单元发送,以请求发送具有相同标识符的数据帧;出错帧由检测出总线错误的任何单元发出;超载帧用于提供当前的和后续的数据帧的附加时间延迟。
2.2.6CAN的帧结构
CAN2.OB建立了两种不同的帧格式(适用于数据帧和远程帧):一种是具有n位标识符的 Bas1cCAN(标准帧格式),另一种是具有29位标识符的 PeliCAN。
报文传输有以下4种不同类型的帧:
数据帧 (dataframe):数据帧将数据从发送器传输到接收器;
远程帧 (remoteframe):总线单元发出远程帧,请求发送具有同一标识符的数据帧;
错误帧 (errorframe):任何单元检测到总线错误就发出错误帧;
过载帧 (overioadframe):过载帧用在相邻数据帧或远程帧之间提供附加的延时。
1.数据帧
数据帧由7个不同的位场组成:即帧起始、仲裁场、控制场、数据场、CRC
场、应答场、帧结束。结构如图2一4所示
标准帧格式与扩展帧格式中仲裁和控制域结构不同,其结构分别如下:
图2一5标准格式的帧结构
图2一6扩展格式的帧结构
(1)帧起始 (sOF)标志数据帧和远程帧的起始,它仅由一个"1"构成。只有在总线处于空闲状态时,才允许节点开始发送。所有节点都必须同步于首先开始发送的那个节点的帧起始前沿。
(2)仲裁场由标识一符和远程发送请求位(RTR)组成。仲裁场如图2一7所示:
标识符:标识符的长度为11位,这些位以从高位到低位的顺序发送,发送位为ID.0,其中最高7位(ID.10一ID.4)不能全为"1"。RTR位为"O"代表是数据帧,为"1"代表远程帧。为"0"还是为"1"是由用户填写的。
(3)控制场由6位组成,如下图2一8所示:
(4)数据场由数据帧中被发送的数据组成,它包括O一8个字节,每个字节8位。首先发送的是最高有效位。
(5)CRC场包括CRC序列,后随CRC界定符,CRC场结构如下图2一9所示
(6)应答场(AC均为两位,包括应答间隙和应答界定符,结构如下图2一10
(7)帧结束:每个数据帧和远程帧均由"1111111"7个隐性位组成的标志序列界定。
2.远程帧
需要获得数据的节点可以借助于发送一个远程帧来请求对应的节点发送数据给它。远程帧同样存在标准的和扩展的两种格式。在两种格式下,均由6个不同的位场组成:帧起始、仲裁场、控制场、CRC场、应答场和帧结束。同数据帧相比较,不同的是:远程帧的RTR位是"1"(这须由用户用程序填充)。远程帧不存在数据场。DLC的数据值是独立的,它可以是0一8中的任何数值。远程帧的组成如下图2一11所示:
- 现代电动车辆中电控技术应用(03-01)
- CAN总线混合动力汽车电控系统的设计与实现(08-29)
- 利用CAN总线的进行汽车轮速传感器系统设计(09-22)
- CAN总线在CFA6470混合动力汽车中的应用(09-25)
- 基于CAN总线的汽车发动机智能电子控制器研究(10-20)
- 基于CAN总线的电动汽车控制系统设计(05-25)
- 妤傛ḿ楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閸忋劍鏌熸担宥咁劅娑旂姴鐨犳0鎴滅瑩娑撴氨鐓$拠鍡礉閹绘劕宕岄惍鏂垮絺瀹搞儰缍旈懗钘夊閿涘苯濮幃銊ユ彥闁喐鍨氶梹澶歌礋娴兼ḿ顫呴惃鍕殸妫版垵浼愮粙瀣瑎...
- 娑擃厾楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
缁箖鈧拷30婢舵岸妫亸鍕暥閸╃顔勭拠鍓р柤閿涘奔绗撶€硅埖宸跨拠鎾呯礉閸斺晛顒熼崨妯烘彥闁喕鎻崚棰佺娑擃亜鎮庨弽鐓庣殸妫版垵浼愮粙瀣瑎閻ㄥ嫯顩﹀Ч锟�...
- Agilent ADS 閺佹瑥顒熼崺纭咁唲鐠囧墽鈻兼總妤勵棅
娑撴挸顔嶉幒鍫n嚦閿涘苯鍙忛棃銏n唹鐟欘枃DS閸氬嫮顫掗崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱遍崝鈺傚亶閻€劍娓堕惌顓犳畱閺冨爼妫跨€涳缚绱癆DS...
- HFSS鐎涳缚绡勯崺纭咁唲鐠囧墽鈻兼總妤勵棅
鐠у嫭绻佹稉鎾愁啀閹哄牐顕抽敍灞藉弿闂堛垼顔夐幒鍦欶SS閻ㄥ嫬濮涢懗钘夋嫲鎼存梻鏁ら敍灞藉簻閸斺晜鍋嶉崗銊╂桨缁崵绮洪崷鏉款劅娑旂姵甯夐幓顡嶧SS...
- CST瀵邦喗灏濆銉ょ稊鐎广倕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閺夊孩妲戝ú瀣╁瘜鐠佽绱濋崗銊╂桨鐠佸弶宸緾ST閸氬嫰銆嶉崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱濋崝鈺傚亶韫囶偊鈧喕鍤滅€涳附甯夐幓顡塖T鐠佹崘顓告惔鏃傛暏...
- 鐏忓嫰顣堕崺铏诡攨閸╃顔勭拠鍓р柤
娑撳洣绗€妤傛ɑ銈奸獮鍐叉勾鐠у嚖绱濇潻娆庣昂鐠囧墽鈻兼稉杞扮稑閸︺劌鐨犳0鎴炲Η閺堫垶顣崺鐔枫亣鐏炴洘瀚甸懘姘剧礉閹垫挷绗呴崸姘杽閻ㄥ嫪绗撴稉姘唨绾偓...
- 瀵邦喗灏濈亸鍕暥濞村鍣洪幙宥勭稊閸╃顔勭拠鍓р柤閸氬牓娉�
鐠愵厺鎷遍崥鍫ユ肠閺囨潙鐤勯幆鐙呯礉缂冩垵鍨庨妴渚€顣剁拫鍙樺崕閵嗕胶銇氬▔銏犳珤閵嗕椒淇婇崣閿嬬爱閿涘本鍨滅憰浣圭壉閺嶉绨块柅锟�...