CAN是控制器局域網(wǎng)絡(luò)(Controller Area Network, CAN)的簡(jiǎn)稱,,是由研發(fā)和生產(chǎn)汽車(chē)電子產(chǎn)品著稱的德國(guó)BOSCH公司開(kāi)發(fā)了的,,并最終成為國(guó)際標(biāo)準(zhǔn)(ISO11898)。是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一,。到目前為止,,世界上已經(jīng)擁有20多家CAN總線控制器芯片生產(chǎn)商,110多種CAN總線協(xié)議控制器芯片和集成CAN總線協(xié)議控制器的微處理器芯片,。在北美和西歐,,CAN總線協(xié)議已經(jīng)成為汽車(chē)計(jì)算機(jī)控制系統(tǒng)和嵌入式工業(yè)控制局域網(wǎng)的標(biāo)準(zhǔn)總線,并且擁有以CAN為底層協(xié)議專(zhuān)為大型貨車(chē)和重工機(jī)械車(chē)輛設(shè)計(jì)的J1939協(xié)議,。近年來(lái),,其所具有的高可靠性和良好的錯(cuò)誤檢測(cè)能力受到重視,被廣泛應(yīng)用于汽車(chē)計(jì)算機(jī)控制系統(tǒng)和環(huán)境溫度惡劣,、電磁輻射強(qiáng)和振動(dòng)大的工業(yè)環(huán)境,。
近年來(lái),,隨著汽車(chē)電子技術(shù)的不斷發(fā)展,,現(xiàn)代汽車(chē)中所使用的電子控制系統(tǒng)和通訊系統(tǒng)越來(lái)越多,如發(fā)動(dòng)機(jī)電控系統(tǒng),、 自動(dòng)變速器控制系統(tǒng),、防抱死制動(dòng)系統(tǒng)(ABS)、自動(dòng)巡航系統(tǒng)(ACC)和車(chē)載多媒體系
統(tǒng)等,這些系統(tǒng)之間,,系統(tǒng)和汽車(chē)的顯示儀表之間,,系統(tǒng)和汽車(chē)故障診斷系統(tǒng)之間均需要進(jìn)行數(shù)據(jù)交換,如此巨大的數(shù)據(jù)交換量,,如仍然采用傳統(tǒng)數(shù)據(jù)交換的方法,,即用導(dǎo)線進(jìn)行點(diǎn)對(duì)點(diǎn)的連接的傳輸方式將是難以想象的。CAN作為汽車(chē)環(huán)境中的微控制器通訊總線解決了這一問(wèn)題,,它在車(chē)載各電子控制裝置 ECU 之間交換信息,,形成汽車(chē)電子控制網(wǎng)絡(luò),作為一種多主方式的串行通訊總線,,基本設(shè)計(jì)規(guī)范要求有高的位速率,,高抗電磁干擾性,而且能夠檢測(cè)出產(chǎn)生的任何錯(cuò)誤,。當(dāng)信號(hào)傳輸距離達(dá)到10Km時(shí),,CAN總線仍可提供高達(dá)5Kbps的數(shù)據(jù)傳輸速率。CAN用作汽車(chē)中的數(shù)據(jù)和控制通信的網(wǎng)絡(luò),,具有不可比擬的優(yōu)越性,。據(jù)統(tǒng)計(jì),目前CAN總線在汽車(chē)動(dòng)力總成中占了85%的市場(chǎng)份額,,2008年全球主要汽車(chē)生產(chǎn)廠商生產(chǎn)歐Ⅲ/歐Ⅳ排放標(biāo)準(zhǔn)以上的汽車(chē)后,,采用CAN總線的汽車(chē)將超過(guò)95%。
一直以來(lái),,富士通就在16位微控制器和32位微控制器中集成了CAN控制器,。為了滿足各種應(yīng)用需求,提供了多通道類(lèi)型的CAN:1-channel CAN(稱為單CAN), 2-channel CAN (稱為雙CAN),,3-channel CAN(稱為三CAN),。 以下列出了富士通的CAN MCU (Microcontroller Unit)產(chǎn)品系列:
所有這些微控制器都配有閃存,并且有各種容量閃存的控制器可提供,。而且,,這些微控制器允許對(duì)閃存進(jìn)行10,000次以上的重寫(xiě)操作,以便滿足終端用戶對(duì)系統(tǒng)升級(jí)和數(shù)據(jù)變更的需要,。配有閃存的微控制器和內(nèi)置的CAN macro允許在閃存內(nèi)通過(guò)CAN總線對(duì)閃存內(nèi)的程序進(jìn)行重寫(xiě),。
以上數(shù)據(jù)顯示了CAN的特殊功能,它們作為車(chē)載控制器局域網(wǎng)絡(luò)受到了業(yè)內(nèi)的關(guān)注,。
這些特殊功能包括:
快速訪問(wèn) 盡管總線訪問(wèn)取決于數(shù)據(jù)傳輸速率,,CAN卻支持1 Mbps的數(shù)據(jù)傳輸速率。這對(duì)于控制局域網(wǎng)比較適度,。
錯(cuò)誤檢測(cè)能力 CAN提升了錯(cuò)誤檢測(cè)能力:它可以在傳輸過(guò)程中檢測(cè)到2個(gè)錯(cuò)誤,,在接收過(guò)程中可以檢測(cè)到3個(gè)錯(cuò)誤。
短消息 因?yàn)橄⒈容^短(從0到8個(gè)字節(jié)), 重復(fù)傳輸?shù)臅r(shí)間也就相應(yīng)地縮短了。
多主配置 使用多主設(shè)備進(jìn)行的通信被用于數(shù)據(jù)傳輸,。
設(shè)置總線訪問(wèn)優(yōu)先級(jí) 在總線訪問(wèn)中,,給予最低ID No.的總線最高的優(yōu)先級(jí)。
CAN控制器的錯(cuò)誤檢測(cè)
1. 發(fā)送
位錯(cuò)誤(Bit Error)
單元在發(fā)送位的同時(shí)也對(duì)總線進(jìn)行監(jiān)視,。如果所發(fā)送的位值與所監(jiān)視的位值不相符合,,則在此位時(shí)間里檢測(cè)到一個(gè)位錯(cuò)誤。但是在仲裁場(chǎng)(ARBITRATION FIELD)的填充位流期間或應(yīng)答間隙(ACK SLOT)發(fā)送一“隱性”位的情況是例外的—— 此時(shí),,當(dāng)監(jiān)視到一“顯性”位時(shí),,不會(huì)發(fā)出位錯(cuò)誤。當(dāng)發(fā)送器發(fā)送一個(gè)被動(dòng)錯(cuò)誤標(biāo)志但檢測(cè)到“顯性”位時(shí),,也不視為位錯(cuò)誤,。
應(yīng)答錯(cuò)誤(Acknowledgment Error)
只要在應(yīng)答間隙(ACK SLOT)期間所監(jiān)視的位不為“顯性”,則發(fā)送器會(huì)檢測(cè)到一個(gè)應(yīng)答錯(cuò)誤,。
2.接受
填充錯(cuò)誤(Stuff Error)
如果在使用位填充法進(jìn)行編碼的信息中,,出現(xiàn)了第6
個(gè)連續(xù)相同的位電平時(shí),將檢測(cè)到一個(gè)填充錯(cuò)誤,。
CRC 錯(cuò)誤(CRC Error)
CRC 序列包括發(fā)送器的CRC 計(jì)算結(jié)果,。接收器計(jì)算CRC 的方法與發(fā)送器相同。如果計(jì)算結(jié)果與接收到CRC 序列的結(jié)果不相符,,則檢測(cè)到一個(gè)CRC 錯(cuò)誤,。
形式錯(cuò)誤(Form Error)
當(dāng)一個(gè)固定形式的位場(chǎng)含有1 個(gè)或多個(gè)非法位,則檢測(cè)到一個(gè)形式錯(cuò)誤,。(備注:接收器的幀末尾最后一位期間的顯性位不被當(dāng)作幀錯(cuò)誤)
富士通CAN控制器的節(jié)點(diǎn)狀態(tài)處理
節(jié)點(diǎn)狀態(tài)
NS1,NS2 (Node status bits)
無(wú)論是工業(yè)系統(tǒng)還是自動(dòng)化系統(tǒng),,一直以來(lái),大多數(shù)CAN總線網(wǎng)絡(luò)系統(tǒng)都要求有操作系統(tǒng),。在眾多普遍使用的操作系統(tǒng)中,,OSEK作為使用CAN通信的系統(tǒng)的操作系統(tǒng),近來(lái)獲得了廣泛的認(rèn)可,。
具有內(nèi)置CAN 的富士通微控制器支持OSEK/VDX操作系統(tǒng),。日本Vector有限公司發(fā)售有osCAN 16LX和osCAN FR兩套OSEK/VDX操作系統(tǒng)。osCAN系列系統(tǒng)由一個(gè)操作系統(tǒng)的內(nèi)核和車(chē)載控制單元所需的通信軟件模塊等構(gòu)成,。
CAN總線以其組網(wǎng)自由,,擴(kuò)展性強(qiáng);自動(dòng)錯(cuò)誤界定,,簡(jiǎn)化了電控單元對(duì)通信的操作,;可根據(jù)數(shù)據(jù)內(nèi)容確定優(yōu)先權(quán),解決通信的實(shí)時(shí)性問(wèn)題等優(yōu)點(diǎn),,不僅在汽車(chē)控制和通信網(wǎng)絡(luò)中被廣泛采用,,在工業(yè)控制中也將有廣闊的應(yīng)用前景,。