《電子技術應用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 現(xiàn)場總線CANbus與RS-485之間透明轉換的實現(xiàn)

現(xiàn)場總線CANbus與RS-485之間透明轉換的實現(xiàn)

2009-02-27
作者:鄧檢華

  摘? 要: 給出了一種能在CANbus現(xiàn)場總線與RS-485總線之間透明轉換的實現(xiàn)方法和實際電路,。同時介紹了它的幾種典型應用,。

  關鍵詞: 現(xiàn)場總線? CANbus? 透明轉換

?

  現(xiàn)場總線技術以其獨有的技術優(yōu)勢和特點,在現(xiàn)代分布式測量與控制技術領域中的應用已愈來愈廣泛,。各種現(xiàn)場總線的主控制器一般都內嵌有相當完善的,、開放式的互聯(lián)通信協(xié)議,它具有通信速度快,、誤碼率低,、開發(fā)設計簡單及網(wǎng)絡使用維護方便等諸多特點,是實現(xiàn)網(wǎng)絡化現(xiàn)場測量與控制技術的一個發(fā)展方向,。但目前,,在許多現(xiàn)場已投入使用的測量與控制系統(tǒng)中,各儀器設備或裝置之間通信所使用的仍是傳統(tǒng)的RS-485或RS-422總線,。在不斷投入新型現(xiàn)場總線系統(tǒng)的同時,,要在短期內改造或淘汰那些舊系統(tǒng)是不現(xiàn)實的。況且,,在許多應用場合,,新老系統(tǒng)中主機的控制算法及功能是相似或兼容的,所以在一定時期內,,新老總線系統(tǒng)同時并存是客觀的現(xiàn)實需要,。對此,若能將新老儀器設備或裝置通過一種透明轉換裝置而有機地柔合在一起,,去掉老系統(tǒng)中重復的部分,,是一種很好的選擇。

1 CANbus簡述

  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ù))對二個總線通信端口分別進行初始化,,并將所有通訊端口設置成中斷接收工作方式,在啟動內部看門狗(Watchdog)后,,電路等待外來數(shù)據(jù)的中斷,。一旦某一總線端口有有效數(shù)據(jù)進入,電路首先將這些數(shù)據(jù)讀入內部數(shù)據(jù)緩沖區(qū),,置相關內部標志,關閉其它端口的中斷,,以使接收端數(shù)據(jù)能及時被接收到,。在下一數(shù)據(jù)到來之前,電路將及時通過另一端口將緩沖區(qū)中的數(shù)據(jù)轉發(fā)出去,,直到緩沖區(qū)空,。在這種轉換過程中,如果數(shù)據(jù)是自CANBUS一端流入,,則電路只將幀內數(shù)據(jù)讀入到緩沖區(qū),。相反,則電路在轉發(fā)數(shù)據(jù)之前自動按設置將設定ID標示符加到發(fā)送信息中,,一旦轉換過程結束,,所有端口又被允許中斷接收。電路中緩沖區(qū)一般可配置8k~32K字節(jié)的靜態(tài)RAM,。

  在未進入轉換工作時,,電路允許參數(shù)設置端口的設置中斷進入。參數(shù)設置包括:設置RS-485的通信波特率(當然端口數(shù)據(jù)格式也可設);設置CANBUS的通信波特率,、接收碼(accept-code),、屏蔽字(mask-code)、發(fā)送標示符,。參數(shù)設置好后將立即生效,,通過該端口還可查詢當前電路中的各運行參數(shù)值。電路工作的主要流程圖如圖1所示,。

?

?

3 實現(xiàn)電路

  圖2是一種可選的線路原理示意圖,。電路中使用的單片機是ATMEL公司的AT89S8252,它是一種內帶8K Flash RAM,、2K EEPROM,、同時內嵌獨立的硬件Watchdog電路,,最高工作主頻為24MHz的新型單片機。所配數(shù)據(jù)緩沖器62256為32K 字節(jié)的靜態(tài)RAM,。配置較大緩沖區(qū)的明顯好處是提高了對二種不同速率總線的適應能力,。圖中RS232口是專用來設置二總線端口的工作參數(shù),所設參數(shù)均保存在CPU的2K EEPROM中,。另外,,為提高線路的可靠性,對CANBUS端采用了電隔離措施,,RS-485端所使用的MAX1480也是一種內部電隔離的芯片,。圖中VCC與VCC1為相互隔離的二組5V電源。

?

?

  對于那些對總線響應速度要求比較苛刻的場合,,可采用雙CPU控制電路,,即每個CPU分別負責一端總線的通信事務。數(shù)據(jù)緩沖區(qū)仍采用公用的單口或雙口RAM,。相應的控制算法必須增加一些有關對公共數(shù)據(jù)區(qū)的管理操作,,在此不做詳述。

  以上電路多適用于二種總線并存于同一系統(tǒng)的場合,,以實現(xiàn)二種總線之間的有機結合,,使新老設備能很好地同時運行,節(jié)省系統(tǒng)開支,。這種透明轉換電路在已研制的分布式數(shù)據(jù)采集系統(tǒng)中應用以后,,效果良好。

  對以上電路稍做修改,,即將MAX1480換成MAX232芯片就可設計出一種能在CAN現(xiàn)場總線與RS-232之間實現(xiàn)透明轉換的電路,。這種電路可用于那些需要用便攜機與現(xiàn)場設備之間實現(xiàn)通信(如現(xiàn)場調試等)的場合,因為目前便攜機一般只配RS-232接口,。另外,,如將電路的二個總線端口設計成相同的接口,那么它還可以用在使用同一種總線,,但不同的區(qū)域卻有不同通信速率的應用場合,。

  對于那些首次接觸CANBUS技術的開發(fā)人員來說,以上電路還是一種很好的端點開發(fā)輔助設備,,即開發(fā)人員只要對該電路設置合適的端口參數(shù),,并將用戶電路與之連接好后,開發(fā)人員即可在一相對熟悉的環(huán)境下專心開發(fā)自己的應用電路,。

?

參考文獻

1 SJA1000 Stand-alone CAN controller.Philips Semiconductors,,1997; (04)

2 8-Bit Microcontroller with 8K Bytes Flash,AT89S8252.ATMEL,,0401D-A-12/97

3 鄔寬明.CAN總線原理和應用系統(tǒng)設計.北京:北京航空航天大學出版社,,1996

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉載的所有的文章、圖片,、音/視頻文件等資料的版權歸版權所有權人所有,。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容,、版權和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。