汽車(chē)電子控制系統(tǒng)上的CAN總線(xiàn)通訊介紹
汽車(chē)控制功能的網(wǎng)絡(luò)化、智能化已經(jīng)成為現(xiàn)代汽車(chē)工業(yè)發(fā)展的必然趨勢(shì),由于 CAN 總線(xiàn)通訊協(xié)議廢除了傳統(tǒng)的站地址編碼,使得 CAN 網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)數(shù)量將不受限制,且實(shí)時(shí)性好,通訊速率高,因此被廣泛用于汽車(chē)電子控制系統(tǒng)上。
一、引言
(一)CAN 通訊網(wǎng)絡(luò)描述
CAN(Controller Area Network)即控制器局域網(wǎng)絡(luò),最初是由德國(guó) Bosch 公司為解決現(xiàn)代汽車(chē)眾多控制與測(cè)試儀器之間的數(shù)據(jù)交換而開(kāi)發(fā)的一種串行數(shù)據(jù)通信協(xié)議,即以串行通訊協(xié)議為基礎(chǔ)進(jìn)行數(shù)據(jù)交換。
傳統(tǒng)的數(shù)據(jù)傳輸方式為:每條數(shù)據(jù)通過(guò)一條導(dǎo)線(xiàn)進(jìn)行傳輸。當(dāng)數(shù)據(jù)增多時(shí)導(dǎo)線(xiàn)必須增加,控制器的接插件也相應(yīng)增加。該方式只適用于限定數(shù)據(jù)量的數(shù)據(jù)傳輸,而采用 CAN 總線(xiàn),則可解決上述的問(wèn)題。CAN 總線(xiàn)是網(wǎng)絡(luò)通訊的形式,可將所有數(shù)據(jù)通過(guò)兩條雙絞線(xiàn)進(jìn)行傳輸而且不受控制器數(shù)量及控制器間傳輸數(shù)據(jù)多少的限制。CAN 總線(xiàn)在數(shù)據(jù)交換量較大的情況下,其意義更為顯著。
(二)CAN 總線(xiàn)結(jié)構(gòu)形式
CAN 的結(jié)構(gòu)形式如下:
CAN 總線(xiàn)可以在單發(fā)送、多接收方式下工作,只要將需要某條信息的裝置連在總線(xiàn)上,就能在同一時(shí)間收到該信息。反之,如果總線(xiàn)上的某個(gè)節(jié)點(diǎn)需要某條信息,它只要發(fā)送需要該信息的請(qǐng)求,總線(xiàn)就能提供信息單元對(duì)其作出響應(yīng)。
CAN 總線(xiàn)通信接口集成了 CAN 協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對(duì)通信數(shù)據(jù)的成幀處理,包括位填充、數(shù)據(jù)塊編碼、循環(huán)冗余檢驗(yàn)和數(shù)據(jù)鏈路層等功能。
(三)CAN 總線(xiàn)的優(yōu)點(diǎn)
CAN 總線(xiàn)具有以下優(yōu)點(diǎn):1.通過(guò)更改軟件,數(shù)據(jù)傳輸協(xié)議的附加功能就可以得到較大
程度的擴(kuò)展;2.不需改變節(jié)點(diǎn)及應(yīng)用層的軟件和硬件即可增加節(jié)點(diǎn);3.明顯降低錯(cuò)誤發(fā)生率,通過(guò)控制器連續(xù)數(shù)據(jù)傳輸、數(shù)據(jù)比
較以及數(shù)據(jù)傳輸協(xié)議的保障,錯(cuò)誤發(fā)生率將會(huì)降低到最小程度;4.數(shù)據(jù)共享,顯著減小了傳感器和信電纜的數(shù)量;5.控制器間數(shù)據(jù)傳輸速度更快;6.控制器和控制器的接插件體積更小,更節(jié)省空間;
二、CAN 通訊協(xié)議定義
(一)CAN 數(shù)據(jù)傳輸格式 CAN 以幀的形式進(jìn)行傳輸,其標(biāo)準(zhǔn)格式的每一幀數(shù)據(jù)里包含7個(gè)區(qū)域,即幀起始、仲裁區(qū)、控制區(qū)、數(shù)據(jù)區(qū)、CRC 校驗(yàn)、ACK應(yīng)答區(qū)和幀結(jié)束。
如圖所示:
其中:起始位,標(biāo)志數(shù)據(jù)幀的開(kāi)始,它由一顯性位組成,這顯性位用于接收狀態(tài)下 CAN 控制器的硬同步。
RTR 位,一般由發(fā)送者自主向總線(xiàn)送數(shù),但也可以由接收方通過(guò)將該位設(shè)成隱性電平進(jìn)行遠(yuǎn)程請(qǐng)求發(fā)送。 DLC 位,標(biāo)識(shí)數(shù)據(jù)長(zhǎng)度。CRC 校驗(yàn)位,采用循環(huán)冗余校驗(yàn)。
應(yīng)答位,通過(guò)將發(fā)送方應(yīng)答空隙位上的隱性電平置為主控電平來(lái)進(jìn)行確認(rèn)。如果主控電平不出現(xiàn),則發(fā)送者判定為發(fā)送錯(cuò)誤。
結(jié)束位,由 7 位隱性電平組成。
2.2、標(biāo)識(shí)符的定義
優(yōu)先級(jí)指對(duì)傳感器的優(yōu)先級(jí)類(lèi)別的識(shí)別。節(jié)點(diǎn)指對(duì)節(jié)點(diǎn)的識(shí)別。
(二)汽車(chē)系統(tǒng)、子系統(tǒng)及總成定義規(guī)則
CAN 規(guī)范中,數(shù)據(jù)區(qū)共有 8個(gè)字節(jié),將汽車(chē)的系統(tǒng)、子系統(tǒng)及總成的地址以及傳輸?shù)臄?shù)據(jù)和加密處理等都在此 8 個(gè)字節(jié)內(nèi)完成。定義如下:
B7、B6 字節(jié)為地址碼,用于對(duì)系統(tǒng)、子系統(tǒng)、總成進(jìn)行定義,并包含優(yōu)先級(jí),其中優(yōu)先級(jí)的表示是以地址碼的大小來(lái)決定的,地址碼越小,其優(yōu)先級(jí)越高。
B5——B2 共 4 個(gè)字節(jié)(32 位),用于對(duì)總成的數(shù)據(jù)進(jìn)行定義。采用標(biāo)準(zhǔn)的 32 位定點(diǎn)運(yùn)算格式。
B1:保留字節(jié)。保留一個(gè)字節(jié),以備以后擴(kuò)展用。
B0:加密處理
三、CAN 總線(xiàn)通訊模塊電路
CAN 總線(xiàn)通訊模塊是整車(chē) CAN 總線(xiàn)節(jié)點(diǎn)的重要組成部分,采用獨(dú)立于系統(tǒng)的模塊化設(shè)計(jì),500Kbps 通訊速率,軟件兼容整車(chē) CAN 總線(xiàn)通訊協(xié)議,可以移植到任何一個(gè)節(jié)點(diǎn)中去。
模塊由兩個(gè)芯片及其外圍元件組成。內(nèi)嵌帶 CAN 總線(xiàn)管理器的單片機(jī)系統(tǒng)和雙端口RAM。它主要完成以下功能:
1、CAN 總線(xiàn)管理器負(fù)責(zé) CAN 標(biāo)準(zhǔn) 2.0A 的 CAN 總線(xiàn)數(shù)據(jù)通訊;
2、數(shù)據(jù)濾波器;3.本地通訊(包括高速 8 位并口通訊和低速 RS-232 通訊)。
四、結(jié)論
隨著汽車(chē)工業(yè)的發(fā)展,電子控制系統(tǒng)將越來(lái)越多地應(yīng)用到汽車(chē)領(lǐng)域。如果不采用 CAN 總線(xiàn)方式,將無(wú)法實(shí)現(xiàn)電控系統(tǒng)之間的數(shù)據(jù)傳輸和協(xié)調(diào)控制。因此,開(kāi)發(fā)汽車(chē) CAN 總線(xiàn)是現(xiàn)代汽車(chē)發(fā)展的必然趨勢(shì)。