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