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