《電子技術(shù)應用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > CAN中繼器設(shè)計及其應用

CAN中繼器設(shè)計及其應用

2008-08-26
作者:鄒繼軍 饒運濤

???摘? 要: 闡述了CAN中繼器" title="中繼器">中繼器的重要作用,詳細分析了CAN中繼器的軟、硬件設(shè)計方法,并對其在食堂售飯系統(tǒng)中的應用作了分析說明。

  關(guān)鍵詞: CAN總線? CAN控制器? CAN中繼器

?

  CAN總線是Bosch公司為現(xiàn)代汽車應用而推出的一種總線,與一般的通信總線相比,CAN總線的數(shù)據(jù)通信具有突出的可靠性、實時性和靈活性。CAN 總線現(xiàn)已廣泛應用于工業(yè)現(xiàn)場控制、小區(qū)安防、環(huán)境監(jiān)控等眾多領(lǐng)域中。CAN總線為多主方式工作,網(wǎng)絡上任一節(jié)點均可在任意時刻主動地向網(wǎng)絡上其它節(jié)點發(fā)送信息而不分主從,通信方式靈活,且無需站地址等節(jié)點信息。

  CAN中繼器是CAN總線系統(tǒng)組網(wǎng)的關(guān)鍵設(shè)備之一,在稍大型的CAN總線系統(tǒng)中經(jīng)常會用到中繼器。本文所討論的中繼器除了具有中繼功能以外,還具有一定的網(wǎng)橋功能。因為只要對中繼器的初始化參數(shù)進行適當配置,就能使中繼器既具有報文轉(zhuǎn)發(fā)功能,又具有報文過濾功能,這里只是借用了中繼器的名稱而已。

  使用中繼器的優(yōu)點主要表現(xiàn)在以下幾方面:

  (1)過濾通信量。中繼器接收一個子網(wǎng)" title="子網(wǎng)">子網(wǎng)的報文,只有當報文是發(fā)送給中繼器所連的另一個子網(wǎng)時,中繼器才轉(zhuǎn)發(fā),否則不轉(zhuǎn)發(fā)。

  (2)擴大了通信距離,但代價是增加了一些存儲轉(zhuǎn)發(fā)延時。

  (3)增加了節(jié)點的最大數(shù)目。

  (4)各個網(wǎng)段可使用不同的通信速率。

  (5)提高了可靠性。當網(wǎng)絡出現(xiàn)故障時,一般只影響個別網(wǎng)段。

  (6)性能得到改善。

  當然,使用中繼器也有一定的缺點,例如:

  (1)由于中繼器對接收的幀要先存儲后轉(zhuǎn)發(fā),增加了延時。

  (2)CAN總線的MAC子層并沒有流量控制功能。當網(wǎng)絡上的負荷很重時,可能因中繼器中緩沖區(qū)的存儲空間不夠而發(fā)生溢出,以致產(chǎn)生幀丟失的現(xiàn)象。

  (3)中繼器若出現(xiàn)故障,對相鄰兩個子網(wǎng)的工作都將產(chǎn)生影響。

1 CAN中繼器硬件電路設(shè)計

  圖1所示為CAN中繼器硬件結(jié)構(gòu)框圖。CAN中繼器主要由89C52" title="89C52">89C52和兩路CAN控制器接口組成。89C52作為CAN中繼器的微控制器,負責整個中繼器的監(jiān)控任務。兩路CAN控制器接口電路基本相同,都是由CAN通信控制器SJA1000、光電耦合電路和CAN總線驅(qū)動器82C250組成。CAN總線驅(qū)動器都采用帶隔離的DC/DC模塊單獨供電。這樣,不僅實現(xiàn)了兩路CAN接口之間的電氣隔離,也實現(xiàn)了中繼器與CAN總線的隔離。雖然這在一定程度上增加了中繼器硬件的復雜性和成本,但卻是值得的。采取隔離措施可使故障局限在某一網(wǎng)段內(nèi),而不至于影響其它網(wǎng)段,既便于維護,又保證了系統(tǒng)設(shè)備的安全。

?

?

  中繼器硬件除了以上主要部分以外,還有EEPROM、看門狗和LED指示等部分。幾個LED分別用于中繼器上電指示和CAN接口當前的接收和發(fā)送狀態(tài)指示,以及接口的通信故障(如總線關(guān)閉)指示??撮T狗采用MAX1232。MAX1232具有高電平、低電平上電復位和看門狗功能。EEPROM采用具有1K字節(jié)容量的24LC08,可用于保存中繼器的配置參數(shù)等信息,便于系統(tǒng)的靈活配置。

2 CAN中繼器的軟件設(shè)計

  CAN中繼器的主要任務是在兩個CAN網(wǎng)段之間實現(xiàn)報文的過濾和轉(zhuǎn)發(fā)。由于通信實時性的要求以及CAN中繼器CPU中緩存容量有限(89C52內(nèi)部RAM容量為256個字節(jié)),所以在進行軟件設(shè)計時,要求做到存儲轉(zhuǎn)發(fā)時間盡量短。為了達到這一要求,CPU采用中斷方式接收兩個CAN控制器的報文,同時盡量精簡CPU收發(fā)子程序" title="子程序">子程序的代碼長度。為了節(jié)省內(nèi)存并對內(nèi)存實行有效管理,CPU采用了FIFO機制管理內(nèi)部RAM。為了保證通過中繼器傳輸報文的通信雙方數(shù)據(jù)的可靠性,唯有使用通信雙方應用層的端端差錯控制才能滿足要求,但在中繼器的軟件設(shè)計中不宜加入過多的差錯控制和流量控制功能,因為這不僅達不到目的,反而還降低了中繼器的運行效率,增加了故障隱患。

  CAN中繼器軟件主要包括以下一些子程序:初始化子程序、主監(jiān)控程序、接收中斷子程序和發(fā)送子程序等。初始化子程序的編寫方法與一般的CAN總線系統(tǒng)智能節(jié)點的初始化子程序的編寫方法基本相同,只是在對兩個CAN控制器進行初始化時應采用不同的初始化參數(shù)。下面主要對主監(jiān)控程序和接收中斷子程序進行介紹。

2.1 主監(jiān)控程序的設(shè)計

  主監(jiān)控程序負責對兩路CAN控制器的接收FIFO緩沖區(qū)進行監(jiān)視,如某一路緩沖區(qū)非空則向另一路轉(zhuǎn)發(fā)。兩路緩沖區(qū)的容量大小可采用不對稱配置。采用這種不對稱配置的一個好處在于可以將容量更大的緩沖區(qū)分配給通信任務更繁忙的一方,從而盡量避免緩沖區(qū)出現(xiàn)溢出。FIFO緩沖區(qū)共有兩個指針:接收數(shù)據(jù)指針和發(fā)送數(shù)據(jù)指針。當兩指針不相等時即證明緩沖區(qū)中存有有效數(shù)據(jù)。緩沖區(qū)接收數(shù)據(jù)指針的調(diào)整是通過接收中斷子程序?qū)崿F(xiàn)的,而發(fā)送數(shù)據(jù)指針的調(diào)整則通過發(fā)送子程序?qū)崿F(xiàn)。在主監(jiān)控程序中,還用到了一個請求狀態(tài)標志,該標志在接收中斷子程序中建立,用于中繼器及時返回本身故障狀態(tài)或響應上位機" title="上位機">上位機的狀態(tài)查詢命令。當該標志為1時,主監(jiān)控程序會向上位機發(fā)送本身狀態(tài),并清除該標志。

2.2 接收中斷子程序的設(shè)計

  中繼器接收中斷子程序流程圖如圖2所示。在進入中斷后,首先判斷中斷類型。若為錯誤警告中斷,則進行相應處理并建立標志,若為接收中斷則接收報文。在報文接收前,要根據(jù)接收報文的長度判斷接收緩沖區(qū)是否會溢出。若會溢出,則判斷是否為狀態(tài)查詢命令,是則置位請求狀態(tài)標志,對于接收的其它報文則丟棄。若緩沖區(qū)不會溢出,則接收該報文。接收報文后取出命令字節(jié),判斷是否是中繼器狀態(tài)查詢命令,若是則置位請求狀態(tài)標志,不進行緩沖區(qū)參數(shù)調(diào)整(因為是上位機發(fā)送給中繼器的命令,只要求中繼器作出響應而不要求其轉(zhuǎn)發(fā),所以不能放入緩沖區(qū)中)。若不是中繼器狀態(tài)查詢命令,則不作處理,只進行緩沖區(qū)參數(shù)調(diào)整,接收報文有效。隨后進行釋放CAN接收緩沖區(qū)、恢復現(xiàn)場和中斷返回等工作。

?

?

3 CAN中繼器在食堂售飯系統(tǒng)的中應用

  按上述方法設(shè)計的中繼器現(xiàn)已成功應用于東華理工學院的食堂售飯系統(tǒng)中。根據(jù)學院食堂及各營業(yè)網(wǎng)點的實際分布情況,設(shè)計的學院食堂售飯系統(tǒng)網(wǎng)絡結(jié)構(gòu)如圖3所示。從圖中可以看出,中繼器是組網(wǎng)的關(guān)鍵設(shè)備,它將窗口機等終端與服務器連接起來。在該網(wǎng)絡結(jié)構(gòu)中,中繼器共分兩級。中繼器1~4為一級中繼器,一端與服務器相連,另一端則與各個食堂窗口機等終端構(gòu)成的子網(wǎng)相連;中繼器5為二級中繼器,一端與一級中繼器相連,另一端與浴室、小賣部等窗口機相連。采用兩級中繼器的設(shè)計,使系統(tǒng)的通信距離可達5km以上,網(wǎng)絡終端數(shù)目幾乎不受限制。

?

?

  該設(shè)計方案已投入實際運行,目前系統(tǒng)網(wǎng)絡規(guī)模為五臺中繼器、一百多臺窗口機,用餐人數(shù)近萬人。從系統(tǒng)的實際運行情況來看,性能非常穩(wěn)定可靠,而且維護和擴容方便,大大提高了食堂的管理水平和工作效率。

?

參考文獻

1 周航慈. 單片機應用程序設(shè)計技術(shù). 北京:北京航空航天大學出版社, 1992

2 鄒繼軍. CAN總線與非接觸式IC卡食堂售飯系統(tǒng):[碩士畢業(yè)論文]. 撫州:華東地質(zhì)學院信工系,2001

3 陽憲惠. 現(xiàn)場總線技術(shù)及其應用. 北京:清華大學出版社,1999

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