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