<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > CAN中繼器設計及其應用

CAN中繼器設計及其應用

作者: 時(shí)間:2016-11-21 來(lái)源:網(wǎng)絡(luò ) 收藏
1引言

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

本文引用地址:http://dyxdggzs.com/article/201611/319435.htm


CAN中繼器是CAN總線(xiàn)系統組網(wǎng)的關(guān)鍵設備之一,在稍大型的CAN總線(xiàn)系統中經(jīng)常會(huì )用到中繼器。本文所討論的中繼器除了具有中繼功能以外,還具有一定的網(wǎng)橋功能。由于只要對中繼器的初始化參數進(jìn)行適當配置,就能使中繼器既具有報文轉發(fā)功能,又具有報文過(guò)濾功能,這里只是借用了中繼器的名稱(chēng)而已。
使用中繼器的優(yōu)點(diǎn)主要表現在以下幾方面:
(1)過(guò)濾通訊量。中繼器接收一個(gè)子網(wǎng)的報文,只有當報文是發(fā)送給中繼器所連的另一個(gè)子網(wǎng)時(shí),中繼器才轉發(fā),否則不轉發(fā)。
(2)擴大了通訊間隔,但代價(jià)是增加了一些存儲轉發(fā)延時(shí)。
(3)增加了節點(diǎn)的最大數目。
(4)各個(gè)網(wǎng)段可使用不同的通訊速率。
(5)進(jìn)步了可靠性。當網(wǎng)絡(luò )出現故障時(shí),一般只影響個(gè)別網(wǎng)段。
(6)性能得到改善。

當然,使用中繼器也有一定的缺點(diǎn),例如:
(1)由于中繼器對接收的幀要先存儲后轉發(fā),增加了延時(shí)。
(2)CAN總線(xiàn)的MAC子層并沒(méi)有流量控制功能。當網(wǎng)絡(luò )上的負荷很重時(shí),可能因中繼器中緩沖區的存儲空間不夠而發(fā)生溢出,以致產(chǎn)生幀丟失的現象。
(3)中繼器若出現故障,對相鄰兩個(gè)子網(wǎng)的工作都將產(chǎn)生影響。

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

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

2器的軟件設計

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


CAN中繼器軟件主要包括以下一些子程序:初始化子程序、主監控程序、接收中斷子程序和發(fā)送子程序等。初始化子程序的編寫(xiě)方法與一般的CAN總線(xiàn)系統智能節點(diǎn)的初始化子程序的編寫(xiě)方法基本相同,只是在對兩個(gè)CAN控制器進(jìn)行初始化時(shí)應采用不同的初始化參數。下面主要對主監控程序和接收中斷子程序進(jìn)行先容。

2.1主監控程序的設計

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

2.2接收中斷子程序的設計

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


3CAN中繼器在食堂售飯系統的中應用

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

該設計方案已投進(jìn)實(shí)際運行,目前系統網(wǎng)絡(luò )規模為五臺中繼器、一百多臺窗口機,用餐人數近萬(wàn)人。從系統的實(shí)際運行情況來(lái)看,性能非常穩定可靠,而且維護和擴容方便,大大進(jìn)步了食堂的治理水平和工作效率。



關(guān)鍵詞: CAN中繼

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>