a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Ethernet 的冗余CAN 總線協議轉換器設計

基于Ethernet 的冗余CAN 總線協議轉換器設計

作者: 時間:2013-07-31 來源:網絡 收藏

  0 引 言

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

  1 系統硬件設計

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

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

1. 1 單片機電路

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

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

  1. 2 CAN 總線接口電路

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

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

  1. 3 以太網接口電路

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

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

  1. 4 EEPROM 接口電路

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

  1. 5 POE 電路

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

  2 軟件設計

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

  2. 1 CAN 通信程序

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

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

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

  2. 2 CAN / 以太網協議轉換程序

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

  協議轉換流程圖見圖5.

  2. 3 以太網通信程序

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

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

  本設計的嵌入式TCP/ IP 協議棧的流程見圖6.

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

  3 結束語

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

塵埃粒子計數器相關文章:塵埃粒子計數器原理
晶振相關文章:晶振原理


評論


相關推薦

技術專區

關閉