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

現(xiàn)場(chǎng)總線(xiàn)CANbus與RS-485之間透明轉(zhuǎn)換的實(shí)現(xiàn)

2009-02-27
作者:鄧檢華

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

  關(guān)鍵詞: 現(xiàn)場(chǎng)總線(xiàn)? CANbus? 透明轉(zhuǎn)換

?

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

1 CANbus簡(jiǎn)述

  CAN現(xiàn)場(chǎng)總線(xiàn)技術(shù)是德國(guó)BOSCH公司于80年代初為解決現(xiàn)代汽車(chē)業(yè)中眾多的控制與測(cè)試儀器之間的數(shù)據(jù)交換而開(kāi)發(fā),目前已逐步應(yīng)用到其它領(lǐng)域的一種符合國(guó)際標(biāo)準(zhǔn)的串行數(shù)據(jù)通信協(xié)議。CAN的主要技術(shù)特點(diǎn)有:

  (1)對(duì)等網(wǎng)絡(luò)結(jié)構(gòu),網(wǎng)絡(luò)上任意節(jié)點(diǎn)可在任意時(shí)刻向網(wǎng)絡(luò)其它節(jié)點(diǎn)發(fā)送信息,不分主從,通信方式靈活。

  (2)采用非破壞性總線(xiàn)仲裁技術(shù),網(wǎng)絡(luò)中的節(jié)點(diǎn)可以分成不同的優(yōu)先級(jí),當(dāng)多個(gè)節(jié)點(diǎn)同時(shí)向網(wǎng)絡(luò)上傳送信息時(shí),優(yōu)先級(jí)低的節(jié)點(diǎn)主動(dòng)暫停數(shù)據(jù)發(fā)送,而優(yōu)先級(jí)高的節(jié)點(diǎn)可不受影響地繼續(xù)傳送數(shù)據(jù)。之后,按優(yōu)先級(jí)高低,其它節(jié)點(diǎn)在總線(xiàn)空閑時(shí)依次進(jìn)行被暫停的數(shù)據(jù)傳送,有效地避免了總線(xiàn)沖突。

  (3)每一幀的有效字節(jié)數(shù)最多為8個(gè),幀傳送時(shí)間短,受干擾概率小,重發(fā)時(shí)間短。每一幀信息都有CRC校驗(yàn)及其它檢錯(cuò)措施,通信誤碼率低。

  (4)網(wǎng)絡(luò)節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下,具有自動(dòng)關(guān)閉總線(xiàn)接口的功能,避免影響總線(xiàn)上的其它節(jié)點(diǎn)的正常操作。

  (5)通信距離最遠(yuǎn)達(dá)10km(5kB/s),通信速率最高可達(dá)到1MB/s(40M),節(jié)點(diǎn)數(shù)目實(shí)際可達(dá)110個(gè)。通信介質(zhì)采用雙絞線(xiàn),也可用光纖。

2 實(shí)現(xiàn)方法

  CAN現(xiàn)場(chǎng)總線(xiàn)與RS-485總線(xiàn)的主要區(qū)別是:CAN總線(xiàn)是以幀為單位進(jìn)行數(shù)據(jù)通信的,且每幀均攜帶對(duì)應(yīng)的ID標(biāo)示符,而RS-485是以字節(jié)為單位進(jìn)行數(shù)據(jù)通信,不帶任何其它附屬信息。如果不考慮幀中的ID標(biāo)示符,那么這二種總線(xiàn)傳輸?shù)男畔⒕涂梢哉J(rèn)為完全相同。考慮到絕大多數(shù)應(yīng)用CAN總線(xiàn)的場(chǎng)合都不可能分配完系統(tǒng)中的ID標(biāo)示符資源,因而在系統(tǒng)中可以另分配一至多個(gè)ID標(biāo)示符給RS-485總線(xiàn)數(shù)據(jù),即給總線(xiàn)透明轉(zhuǎn)換電路所用,收、發(fā)數(shù)據(jù)的ID標(biāo)識(shí)符可以不相同。CAN總線(xiàn)系統(tǒng)中的公用主控設(shè)備一般被設(shè)置成直通狀態(tài),它可通過(guò)發(fā)送、接收具有不同ID標(biāo)示符的不同數(shù)據(jù)幀,方便地對(duì)網(wǎng)絡(luò)中的各種設(shè)備進(jìn)行管理和控制。對(duì)那些純粹靠幀數(shù)據(jù)本身而忽略ID標(biāo)示符的系統(tǒng)來(lái)說(shuō),這種不同總線(xiàn)之間的轉(zhuǎn)換更加簡(jiǎn)單。

  實(shí)現(xiàn)二種總線(xiàn)之間的透明轉(zhuǎn)換的基本過(guò)程是這樣的:電路加電進(jìn)入正常狀態(tài)后,首先以電路中保存的參數(shù)(如未初始化則以缺省參數(shù))對(duì)二個(gè)總線(xiàn)通信端口分別進(jìn)行初始化,并將所有通訊端口設(shè)置成中斷接收工作方式,在啟動(dòng)內(nèi)部看門(mén)狗(Watchdog)后,電路等待外來(lái)數(shù)據(jù)的中斷。一旦某一總線(xiàn)端口有有效數(shù)據(jù)進(jìn)入,電路首先將這些數(shù)據(jù)讀入內(nèi)部數(shù)據(jù)緩沖區(qū),置相關(guān)內(nèi)部標(biāo)志,關(guān)閉其它端口的中斷,以使接收端數(shù)據(jù)能及時(shí)被接收到。在下一數(shù)據(jù)到來(lái)之前,電路將及時(shí)通過(guò)另一端口將緩沖區(qū)中的數(shù)據(jù)轉(zhuǎn)發(fā)出去,直到緩沖區(qū)空。在這種轉(zhuǎn)換過(guò)程中,如果數(shù)據(jù)是自CANBUS一端流入,則電路只將幀內(nèi)數(shù)據(jù)讀入到緩沖區(qū)。相反,則電路在轉(zhuǎn)發(fā)數(shù)據(jù)之前自動(dòng)按設(shè)置將設(shè)定ID標(biāo)示符加到發(fā)送信息中,一旦轉(zhuǎn)換過(guò)程結(jié)束,所有端口又被允許中斷接收。電路中緩沖區(qū)一般可配置8k~32K字節(jié)的靜態(tài)RAM。

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

?

?

3 實(shí)現(xiàn)電路

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

?

?

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

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

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

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

?

參考文獻(xiàn)

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總線(xiàn)原理和應(yīng)用系統(tǒng)設(shè)計(jì).北京:北京航空航天大學(xué)出版社,1996

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