多通道實(shí)時(shí)CAN模擬器設(shè)計(jì)方案
CAN總線與一般的串行通信總線相比,它的數(shù)據(jù)通信具有可靠性高,實(shí)時(shí)性高,靈活性強(qiáng)等優(yōu)點(diǎn),不僅廣泛應(yīng)用于汽車(chē)行業(yè),而且擴(kuò)展到了機(jī)械工業(yè)、機(jī)器人、數(shù)控機(jī)床等諸多領(lǐng)域。尤其在大量數(shù)據(jù)通信處理中,高可靠性及實(shí)時(shí)響應(yīng)的場(chǎng)合,單通道CAN總線不能滿足實(shí)際通信的要求。為此,介紹一種基于多通道實(shí)時(shí)CAN模擬器的設(shè)計(jì)方案。
本文引用地址:http://2s4d.com/article/150229.htm1 CAN總線技術(shù)介紹
1.1 CAN總線特性
CAN(Controller Area Network)總線是一種串行多主站控制器局域網(wǎng)總線。它具有很高的網(wǎng)絡(luò)安全性、通信可靠性和實(shí)時(shí)性,并且簡(jiǎn)單實(shí)用,網(wǎng)絡(luò)成本低。它主要用于各種過(guò)程監(jiān)測(cè)及控制的一種網(wǎng)絡(luò)。CAN最初是由德國(guó)BOSCH公司為汽車(chē)的監(jiān)測(cè)、控制系統(tǒng)而設(shè)計(jì)的。由于CAN總線具有卓越的特性和極高的可靠性,特別適合于工業(yè)過(guò)程中監(jiān)控設(shè)備的互連。
1.2 CAN通信協(xié)議
在CAN 2.0B的版本協(xié)議中有兩種不同的幀格式,不同之處為標(biāo)識(shí)符域的長(zhǎng)度不同,含有11位標(biāo)識(shí)符的幀稱(chēng)為標(biāo)準(zhǔn)幀,而含有29位標(biāo)識(shí)符的幀稱(chēng)為擴(kuò)展幀。擴(kuò)展格式是CAN 2.0B協(xié)議新增加的特性。在報(bào)文傳輸時(shí),不同的幀具有不同的傳輸結(jié)構(gòu),只有嚴(yán)格按照該結(jié)構(gòu)進(jìn)行幀的傳輸,才能被節(jié)點(diǎn)正確接收和發(fā)送。下面將分別介紹四種傳輸幀的結(jié)構(gòu):
(1)數(shù)據(jù)幀(Data):數(shù)據(jù)幀將數(shù)據(jù)從發(fā)送器傳輸?shù)浇邮掌?。CAN協(xié)議有兩種數(shù)據(jù)幀類(lèi)型標(biāo)準(zhǔn)2.0A和標(biāo)準(zhǔn)2.0B。兩者本質(zhì)的不同在于ID的長(zhǎng)度不同。在2.0A類(lèi)型中,ID的長(zhǎng)度為11位;在2.0B類(lèi)型中,ID的長(zhǎng)度為29位。它由7個(gè)域組成:幀起始、仲裁域、控制域、數(shù)據(jù)域、CRC校驗(yàn)碼域、應(yīng)答域、幀結(jié)束。
(2)遠(yuǎn)程幀(Remote):總線單元發(fā)出遠(yuǎn)程幀,請(qǐng)求發(fā)送具有同一標(biāo)識(shí)符的數(shù)據(jù)幀。接收數(shù)據(jù)的節(jié)點(diǎn)可通過(guò)發(fā)遠(yuǎn)程幀請(qǐng)求源節(jié)點(diǎn)發(fā)送數(shù)據(jù)。它由6個(gè)域組成:幀起始、仲裁域、控制域、校驗(yàn)域、應(yīng)答域、幀結(jié)束。
(3)錯(cuò)誤幀(Error):任何單元檢測(cè)到總線錯(cuò)誤就發(fā)出錯(cuò)誤幀。由錯(cuò)誤標(biāo)志和錯(cuò)誤分界兩個(gè)域組成。接收節(jié)點(diǎn)發(fā)現(xiàn)總線上的報(bào)文有誤時(shí),將自動(dòng)發(fā)出“活動(dòng)錯(cuò)誤標(biāo)志”,其他節(jié)點(diǎn)檢測(cè)到活動(dòng)錯(cuò)誤標(biāo)志后發(fā)送“錯(cuò)誤認(rèn)可標(biāo)志”。
(4)過(guò)載幀(Overload):過(guò)載幀用在相鄰數(shù)據(jù)幀或遠(yuǎn)程幀之間提供附加的延時(shí)。由超載標(biāo)志和超載分隔符組成。超載幀只能在一個(gè)幀結(jié)束后開(kāi)始。當(dāng)接收方在接收下一幀之前,需要過(guò)多的時(shí)間處理當(dāng)前的數(shù)據(jù),或在幀間空隙域檢測(cè)到顯性電平時(shí),則導(dǎo)致發(fā)送超載幀。
1.3 CAN協(xié)議控制器
目前主流的CAN協(xié)議控制器一般采用I/O總線(SJA1000等)或SPI接口(M(2P2515等)與處理器進(jìn)行通信。該設(shè)計(jì)采用SJA1000控制器。
SJA1000是一款獨(dú)立CAN控制器,應(yīng)用于移動(dòng)目標(biāo)和工業(yè)局域網(wǎng)控制領(lǐng)域。SJA1000具有兩種工作模式:BasicCAN和PeliCAN。該設(shè)計(jì)采用PeliCAN工作模式。SJA1000用來(lái)完成CAN協(xié)議所規(guī)定的物理層和數(shù)據(jù)鏈路層的所有功能,它可以支持多種處理器的時(shí)序特性,如Intel模式或Motorola模式,與微處理器的接口非常簡(jiǎn)單,微處理器以訪問(wèn)外部存儲(chǔ)器的方式來(lái)訪問(wèn)SJA1000。
SJA1000通過(guò)CAN控制器接口即PCA82C250芯片接到CAN總線上。CAN收發(fā)器使用飛利浦公司的PCA82C250,它是連接CAN控制器和物理總線之間的接口,提供了對(duì)總線的差動(dòng)發(fā)動(dòng)和接收能力,與ISO11898標(biāo)準(zhǔn)完全兼容,有三種不同的工作方式即高速、斜率控制和待機(jī),可根據(jù)實(shí)際情況選擇。硬件電路中使用PCA82C250是為了增加通信距離,提高系統(tǒng)的瞬間抗干擾能力,保護(hù)總線,降低干擾等。
評(píng)論