現(xiàn)場總線CANbus與RS-485之間透明轉換的實現(xiàn)
CAN現(xiàn)場總線技術是德國BOSCH公司于80年代初為解決現(xiàn)代汽車業(yè)中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā),目前已逐步應用到其它領域的一種符合國際標準的串行數(shù)據(jù)通信協(xié)議。CAN的主要技術特點有:
(1)對等網(wǎng)絡結構,網(wǎng)絡上任意節(jié)點可在任意時刻向網(wǎng)絡其它節(jié)點發(fā)送信息,不分主從,通信方式靈活。
(2)采用非破壞性總線仲裁技術,網(wǎng)絡中的節(jié)點可以分成不同的優(yōu)先級,當多個節(jié)點同時向網(wǎng)絡上傳送信息時,優(yōu)先級低的節(jié)點主動暫停數(shù)據(jù)發(fā)送,而優(yōu)先級高的節(jié)點可不受影響地繼續(xù)傳送數(shù)據(jù)。之后,按優(yōu)先級高低,其它節(jié)點在總線空閑時依次進行被暫停的數(shù)據(jù)傳送,有效地避免了總線沖突。
(3)每一幀的有效字節(jié)數(shù)最多為8個,幀傳送時間短,受干擾概率小,重發(fā)時間短。每一幀信息都有CRC校驗及其它檢錯措施,通信誤碼率低。
(4)網(wǎng)絡節(jié)點在錯誤嚴重的情況下,具有自動關閉總線接口的功能,避免影響總線上的其它節(jié)點的正常操作。
(5)通信距離最遠達10km(5kB/s),通信速率最高可達到1MB/s(40M),節(jié)點數(shù)目實際可達110個。通信介質采用雙絞線,也可用光纖。
2 實現(xiàn)方法
CAN現(xiàn)場總線與RS-485總線的主要區(qū)別是:CAN總線是以幀為單位進行數(shù)據(jù)通信的,且每幀均攜帶對應的ID標示符,而RS-485是以字節(jié)為單位進行數(shù)據(jù)通信,不帶任何其它附屬信息。如果不考慮幀中的ID標示符,那么這二種總線傳輸?shù)男畔⒕涂梢哉J為完全相同??紤]到絕大多數(shù)應用CAN總線的場合都不可能分配完系統(tǒng)中的ID標示符資源,因而在系統(tǒng)中可以另分配一至多個ID標示符給RS-485總線數(shù)據(jù),即給總線透明轉換電路所用,收、發(fā)數(shù)據(jù)的ID標識符可以不相同。CAN總線系統(tǒng)中的公用主控設備一般被設置成直通狀態(tài),它可通過發(fā)送、接收具有不同ID標示符的不同數(shù)據(jù)幀,方便地對網(wǎng)絡中的各種設備進行管理和控制。對那些純粹靠幀數(shù)據(jù)本身而忽略ID標示符的系統(tǒng)來說,這種不同總線之間的轉換更加簡單。
實現(xiàn)二種總線之間的透明轉換的基本過程是這樣的:電路加電進入正常狀態(tài)后,首先以電路中保存的參數(shù)(如未初始化則以缺省參數(shù))對二個總線通信端口分別進行初始化,并將所有通訊端口設置成中斷接收工作方式,在啟動內(nèi)部看門狗(Watchdog)后,電路等待外來數(shù)據(jù)的中斷。一旦某一總線端口有有效數(shù)據(jù)進入,電路首先將這些數(shù)據(jù)讀入內(nèi)部數(shù)據(jù)緩沖區(qū),置相關內(nèi)部標志,關閉其它端口的中斷,以使接收端數(shù)據(jù)能及時被接收到。在下一數(shù)據(jù)到來之前,電路將及時通過另一端口將緩沖區(qū)中的數(shù)據(jù)轉發(fā)出去,直到緩沖區(qū)空。在這種轉換過程中,如果數(shù)據(jù)是自CANBUS一端流入,則電路只將幀內(nèi)數(shù)據(jù)讀入到緩沖區(qū)。相反,則電路在轉發(fā)數(shù)據(jù)之前自動按設置將設定ID標示符加到發(fā)送信息中,一旦轉換過程結束,所有端口又被允許中斷接收。電路中緩沖區(qū)一般可配置8k~32K字節(jié)的靜態(tài)RAM。
評論