<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è) > 嵌入式系統 > 設計應用 > 基于Ethernet 的冗余CAN 總線(xiàn)協(xié)議轉換器設計

基于Ethernet 的冗余CAN 總線(xiàn)協(xié)議轉換器設計

作者: 時(shí)間:2013-07-31 來(lái)源:網(wǎng)絡(luò ) 收藏

  0 引 言

  CAN(Controller Area Network) 總線(xiàn)又稱(chēng)控制局域網(wǎng)絡(luò ),最早由德國B(niǎo)OSCH 公司推出,用于汽車(chē)內部測量與執行部件之間的數據通信,已被公認為幾種最有前途的現場(chǎng)總線(xiàn)之一 .CAN 總線(xiàn)采用短幀結構.非破壞仲裁技術(shù),具有傳輸速度快.可靠性高.結構簡(jiǎn)單.實(shí)時(shí)性和抗干擾能力較強等諸多優(yōu)點(diǎn) ,可以滿(mǎn)足控制系統安全性.可靠性.快捷性的要求,但收發(fā)器驅動(dòng)能力的限制使它不適合遠距離數據傳輸及遠程控制.而以太網(wǎng)技術(shù)成熟.通信速度快.軟硬件產(chǎn)品豐富和外圍技術(shù)支持全面,可以進(jìn)行遠距離通信,因此將以太網(wǎng)和CAN 總線(xiàn)進(jìn)行互聯(lián),能夠有效解決分布式控制系統中現場(chǎng)總線(xiàn)和上層信息管理層的互聯(lián)問(wèn)題,可以方便地將現場(chǎng)總線(xiàn)控制系統改造為基于以太網(wǎng)的分布式控制系統,既能滿(mǎn)足控制網(wǎng)絡(luò )的實(shí)時(shí)性,又能滿(mǎn)足控制系統的分布性,極大地促進(jìn)了信息從節點(diǎn)設備到管理層的集成.文中設計了基于 接口的雙通道CAN 總線(xiàn)協(xié)議,能夠方便地實(shí)現以太網(wǎng)與現有CAN 總線(xiàn)網(wǎng)絡(luò )的直接數據互聯(lián),從而達到通過(guò)上位機進(jìn)行總線(xiàn)數據遠程監控.總線(xiàn)協(xié)議分析等目的.

  1 系統硬件設計

  本設計的硬件電路主要由單片機電路.雙通道CAN 總線(xiàn)接口電路.以太網(wǎng)接口電路.EEPROM 電路.POE 電路等電路組成.主控芯片電路是將CAN 協(xié)議數據包與UDP / TCP 協(xié)議數據包進(jìn)行轉換,并負責對以太網(wǎng)接口芯片和CAN 接口芯片進(jìn)行控制;CAN 通信接口電路主要用于采集現場(chǎng)儀表的數據和與主控芯片電路之間的數據傳遞;以太網(wǎng)通信接口電路主要負責主控芯片電路與以太網(wǎng)之間的數據傳輸;EEPROM電路實(shí)現CAN 總線(xiàn)初始化參數的寫(xiě)入與讀取功能.

  工作原理如下:當以太網(wǎng)接口芯片收到以太網(wǎng)數據后,觸發(fā)單片機的中斷,單片機調用中斷響應程序把數據從以太網(wǎng)接口芯片的數據緩沖區存儲到自己的內存空間,然后將數據轉換成CAN 格式再通過(guò)CAN 接口芯片轉發(fā)到CAN 總線(xiàn)網(wǎng)絡(luò );當CAN 總線(xiàn)上的節點(diǎn)設備需要將數據發(fā)送到以太網(wǎng),就會(huì )通過(guò)CAN 總線(xiàn)接口芯片向單片機發(fā)出中斷信號,單片機響應中斷將來(lái)自CAN 總線(xiàn)的數據存入相應的內存空間,然后將數據拷貝至以太網(wǎng)接口芯片的發(fā)送緩沖區轉發(fā)數據,最后由以太網(wǎng)接口芯片通過(guò)RJ45 插座發(fā)至以太網(wǎng).

1. 1 單片機電路

  主控芯片選擇的是Silicon Labs 公司的單片機C8051F340,采用12V 直流電源供電或采用以太網(wǎng)48V供電,使用內部看門(mén)狗單元及內部晶體振蕩器.

  C8051F340 是一款完全集成的混合信號片上系統型MCU ,其高速8051 微控制器內核具有流水線(xiàn)指令結構,70% 的指令執行時(shí)間為一個(gè)或兩個(gè)系統時(shí)鐘周期,速率最高可達48MIPS;片內調試電路提供全速.非侵入式的在線(xiàn)系統調試(不需仿真器),使得調試更加方便,比使用仿真芯片.目標仿真頭和仿真插座的仿真系統具有更優(yōu)越的性能;USB 控制器支持8 個(gè)端點(diǎn)通道,集成收發(fā)器并具有1 KB 的USB 緩存;具有一個(gè)10 位的單端/ 差分ADC,轉換速率可達200ksps,并帶有模擬多路復用器,數字外設方面具有16 位可編程計數器/定時(shí)器陣列,具有5 個(gè)捕捉比較模塊,同時(shí)具有4 個(gè)通用16 位計時(shí)器/ 定時(shí)器和40 個(gè)耐5V 電壓的端口I/O;存儲器方面具有4352Byte 的數據RAM 和64KB 的FLASH 存儲器;內部高速振蕩器出廠(chǎng)時(shí)已經(jīng)較準為12MHz±1. 5% ,時(shí)鐘恢復電路允許內部振蕩器與4 倍時(shí)鐘乘法器配合,提供全速方式USB 時(shí)鐘源;具有片內上電復位.時(shí)鐘丟失檢測器和VDD 監視器,電路原理圖見(jiàn)圖1.

  1. 2 CAN 總線(xiàn)接口電路

  采用NXP 公司SJA1000 作為CAN 總線(xiàn).NXP 公司TJA1050 用做CAN 總線(xiàn)收發(fā)器.為了提高CAN 總線(xiàn)電路的可靠性,在設計中采用雙冗余的CAN總線(xiàn)結構,具體設計為:在各節點(diǎn)設備之間布下兩條基于CAN 的系統通信總線(xiàn),即用兩套CAN 總線(xiàn)控制電路分別連接到兩路CAN 總線(xiàn)通路上,正常情況下在兩條總線(xiàn)上傳送相同的通信數據,當一條總線(xiàn)出現故障時(shí)通信數據仍然可以通過(guò)另一條正常的總線(xiàn)傳輸,不影響節點(diǎn)設備的正常通信,然后對故障總線(xiàn)重新初始化使其恢復正常投入使用,這樣即使一條通信通道出現故障也不會(huì )影響整個(gè)系統的數據傳輸;同時(shí)考慮工業(yè)應用,在CAN 總線(xiàn)控制器和CAN 總線(xiàn)收發(fā)器之間進(jìn)行隔離.

  在電路中將SJA1000 的AD0 ~ AD7 直接與主控芯片的低8 位地址/ 數據復用總線(xiàn)相連,MODE 引腳與+5V 相連使得SJA1000 工作于Intel 模式[4] , 兩路SJA1000 的中斷輸出信號分別連接至C8051F340 的端口P0. 2 和P0. 7,使得CAN 通信可以采用中斷或查詢(xún)兩種方式工作,其中雙冗余CAN 總線(xiàn)電路的晶振均為16MHz,復位信號采用軟件復位,詳細電路原理圖見(jiàn)圖2.

  1. 3 以太網(wǎng)接口電路

  在以太網(wǎng)接口電路中選用Silicon Labs 公司的CP2200 作為以太網(wǎng)控制器,采用HanRun 公司的內部集成以太網(wǎng)隔離變壓器.指示燈和RJ45 插座的HR911175A 與以太網(wǎng)接口.CP2200 是Silicon Labs 公司推出的一款主流的8 位總線(xiàn)控制的以太網(wǎng)驅動(dòng)芯片,其外圍電路非常簡(jiǎn)單,集成了IEEE 802. 3 以太網(wǎng)媒體訪(fǎng)問(wèn)控制器( MAC ).10 BASE – T 物理層(PHY) ,完全兼容100/1000 BASE-T 網(wǎng)絡(luò ),具有自動(dòng)極性檢測和糾正功能,可以自適應地工作在全雙工或半雙工模式,具有接收數據包中斷和網(wǎng)絡(luò )喚醒中斷功能.CP2200 內部帶有2K 字節的專(zhuān)用發(fā)送緩沖RAM和4KB 接收FIFO 緩沖RAM ,同時(shí)還具有8K 字節的內部非易失性Flash 存儲器,用于存儲用戶(hù)常數.Web服務(wù)器內容,它的最后6 個(gè)存儲單元是工廠(chǎng)預編程的唯一48 位MAC 地址 ,不需外部EEPROM .此芯片8 位并行總線(xiàn)接口支持Intel 和Motorola 總線(xiàn)方式,可以為具有11 個(gè)以上端口I/ O 引腳的主處理器或微處理器增加以太網(wǎng)通信功能,可以使用復用或非復用方式尋址,在非復用模式下數據傳輸率超過(guò)30Mbps,可以直接連接LED 表示網(wǎng)絡(luò )“連接”.“活動(dòng)”狀態(tài).

  在電路中CP2200 采用數據地址復用模式,晶體頻率為20M,CP2200 的TX.RX 引腳連接到RJ45 插座的收發(fā)針腳,同時(shí)將信號LINK.ACK 也連接到后者的LED 控制針腳上,詳細電路原理圖見(jiàn)圖3.

  1. 4 EEPROM 接口電路

  該電路的作用是實(shí)現CAN 總線(xiàn)初始化參數的寫(xiě)入與讀取功能, 設計中選用了512KB 的EEPROM24C512 芯片.詳細電路原理圖見(jiàn)圖4.

  1. 5 POE 電路

  以太網(wǎng)供電電路分別采用TI 公司的電源管理器芯片TPS 2383 和電源接口芯片TPS 2370,這2 款芯片完全符合以太網(wǎng)供電標準IEEE 802. 3af,利用這2 款芯片即可通過(guò)1 條標準的以太網(wǎng)線(xiàn)纜就實(shí)現同時(shí)傳輸電能和數據.

  2 軟件設計

  本設計的軟件主要分為三部分: CAN-以太網(wǎng)協(xié)議轉換程序.CAN 通信程序和以太網(wǎng)通信程序.軟件整體的設計思路為:當CAN 總線(xiàn)節點(diǎn)設備需要向以太網(wǎng)發(fā)送數據時(shí),首先通過(guò)CAN 通信程序讀取CAN 總線(xiàn)節點(diǎn)設備產(chǎn)生的CAN 協(xié)議數據包,并將其存儲在CAN 總線(xiàn)接口發(fā)送緩沖區中,然后調用CAN-以太網(wǎng)協(xié)議轉換程序將CAN 協(xié)議數據包解析并重新封裝成TCP 或UDP 數據包,最后調用以太網(wǎng)通信程序將數據發(fā)送到以太網(wǎng);要將數據通過(guò)以太網(wǎng)發(fā)送給一個(gè)CAN節點(diǎn)設備時(shí),首先通過(guò)調用以太網(wǎng)通信程序將以太網(wǎng)傳輸層上的TCP 或UDP 數據包存儲到以太網(wǎng)接口的發(fā)送緩沖區,然后調用以太網(wǎng)-CAN 協(xié)議轉換程序將TCP 或UDP 數據包解析并封裝成CAN 協(xié)議數據包,之后再調用CAN 通信程序將CAN 接口發(fā)送緩沖區中的數據發(fā)送到CAN 總線(xiàn)上的指定節點(diǎn).

  2. 1 CAN 通信程序

  CAN 通信程序主要包括以下幾部分:SJA1000 初始化程序.讀寫(xiě)SJA1000 內部寄存器程序.CAN 數據發(fā)送程序.CAN 數據接收程序.CAN 總線(xiàn)冗余控制程序.

  SJA1000 的初始化程序主要作用是設定總線(xiàn)上所有節點(diǎn)的地址.所有總線(xiàn)上節點(diǎn)設備的波特率.設置控制器的工作模式.設置中斷寄存器.命令寄存器等相關(guān)的芯片寄存器 .CAN 數據發(fā)送程序的功能是當發(fā)送CAN 協(xié)議數據包給節點(diǎn)設備時(shí),調用CAN 數據發(fā)送程序,通過(guò)將數據寫(xiě)入SJA1000 的數據發(fā)送寄存器中來(lái)實(shí)現數據發(fā)送.CAN 數據接收程序的功能是當SJA1000 接收到數據時(shí),向單片機發(fā)出中斷請求,單片機響應中斷后調用CAN 數據接收程序讀取SJA1000的內部寄存器程序,將其數據接收緩沖區中接收到的數據讀取到單片機的相應存儲空間內.

  CAN 總線(xiàn)冗余控制程序的基本設計思路為:在上電初始化時(shí)同時(shí)激活兩個(gè)總線(xiàn)控制器的中斷,在節點(diǎn)設備向上位機發(fā)送數據的情況下,單片機通過(guò)兩路CAN 總線(xiàn)向上位機發(fā)送相同內容的數據來(lái)實(shí)現冗余效果.在節點(diǎn)設備接收通信數據的情況下,當兩個(gè)總線(xiàn)控制器同時(shí)接收到來(lái)自上位機的報文時(shí),將分別通過(guò)不同的中斷端口向單片機發(fā)出中斷請求,單片機在響應先到達的中斷請求信號后進(jìn)入中斷服務(wù)程序關(guān)閉中斷,并在對數據進(jìn)行處理完成后,清除中斷并在一段延時(shí)后再打開(kāi)所有中斷,這樣就可以屏蔽后到的另一個(gè)CAN 控制器中斷信號.如果一路CAN 總線(xiàn)接口電路出現故障,那么它就不會(huì )產(chǎn)生中斷信號,單片機只能接收到另一路正常CAN 總線(xiàn)控制器的中斷信號,從而通過(guò)正常的CAN 總線(xiàn)接收數據,這樣就可以實(shí)現雙通道冗余的目的;在節點(diǎn)設備與上位機之間完成數據發(fā)送和接收后,節點(diǎn)設備會(huì )通過(guò)兩路CAN 總線(xiàn)以每秒1次的頻率交替向上位機發(fā)送“心跳”信號,并接收上位機回傳的響應信息,如果一路CAN 總線(xiàn)狀態(tài)異常,不能正常發(fā)送“心跳”信號,則節點(diǎn)設備的單片機就不會(huì )收到響應信息,從而無(wú)法對錯誤計數器進(jìn)行清零,當錯誤計數器的值累加到設定值時(shí),單片機就會(huì )對異常的CAN 總線(xiàn)接口電路復位,重行初始化使其恢復正常,保證雙通道CAN 總線(xiàn)冗余電路的正常.

  2. 2 CAN / 以太網(wǎng)協(xié)議轉換程序

  CAN/ 以太網(wǎng)協(xié)議轉換程序的大致流程如下:在系統接收到數據后會(huì )先對數據的數據類(lèi)型進(jìn)行判斷,如果接收到的數據是以太網(wǎng)數據,就會(huì )依次去掉IP 頭.TCP 或UDP 頭和應用層頭 ,然后將解析后的數據封裝為CAN 報文格式,并存人CAN 接口電路發(fā)送緩沖區,由CAN 接口電路發(fā)往CAN 總線(xiàn)中相應的節點(diǎn)設備.如果接收到的數據是CAN 協(xié)議報文,便解析出數據部分,然后將報文數據部分封裝成規定的應用層格式并存入以太網(wǎng)接口發(fā)送緩沖區,最后將數據封裝成以太網(wǎng)幀格式后通過(guò)以太網(wǎng)接口電路發(fā)往至以太網(wǎng).

  協(xié)議轉換流程圖見(jiàn)圖5.

  2. 3 以太網(wǎng)通信程序

  以太網(wǎng)通信程序主要包括CP2200 初始化程序.以太網(wǎng)數據發(fā)送程序和接收程序.CP2200 芯片的初始化程序的作用主要是對芯片寄存器進(jìn)行常規配置 ,這里就不進(jìn)行詳細說(shuō)明.

  以太網(wǎng)數據的發(fā)送和接收程序:由于主控芯片C8051F340 的處理速度以及內部集成的資源有限,不可能集成所有的TCP/ IP 協(xié)議,因此需要對TCP/ IP 協(xié)議進(jìn)行適當的剪裁后才能使用 .在本設計中的協(xié)議棧主要包括IP 協(xié)議.ICMP 協(xié)議.TCP 協(xié)議.ARP 協(xié)議 .

  本設計的嵌入式TCP/ IP 協(xié)議棧的流程見(jiàn)圖6.

  基本流程為在CP2200 芯片從以太網(wǎng)接收到有效數據后,單片機會(huì )調用相關(guān)程序將該數據包從CP2200 的接收緩沖區讀取,然后判斷該數據幀是IP 數據包還是ARP 數據 ,如果判斷為接收到的是IP 數據包時(shí),那么就繼續判斷是UDP 數據包還是ICMP 數據包,如果是UDP 數據包,就根據UDP 數據包首部的讀取結果來(lái)處理相應數據,完成CAN 協(xié)議數據的提取并將其存儲到相應的數據緩沖區,從而實(shí)現以太網(wǎng)數據的解碼;如果判斷結果是ICMP 數據包那么就處理該數據包并進(jìn)一步處理IP 數據包;如果接收到的是ARP 數據,就判斷其是ARP 請求還是ARP 應答并根據結果進(jìn)行相應的處理,如果該數據幀既不是IP 數據包又不是ARP數據,那么就將該數據視為無(wú)效數據而拋棄,并初始化數據接收緩沖區.

  3 結束語(yǔ)

  通過(guò)在航天器地面仿真測試設備上的實(shí)際應用,表明該以太網(wǎng)與雙通道CAN 總線(xiàn)協(xié)議可以滿(mǎn)足使用要求,性能穩定,可實(shí)現CAN 總線(xiàn)數據的監測.總線(xiàn)參數的設計.總線(xiàn)數據的收發(fā),并且其具有的低成本.高可靠性等特點(diǎn)還可以擴展應用于工廠(chǎng).變電站等工業(yè)場(chǎng)合,實(shí)現分布式控制系統中管理監控層與生產(chǎn)測控層之間的遠程互聯(lián).

塵埃粒子計數器相關(guān)文章:塵埃粒子計數器原理
晶振相關(guān)文章:晶振原理


評論


相關(guān)推薦

技術(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>