天堂网www中文天堂在线/色操在线/成人精品视频一区二区三区/欧美特黄一片aa大片免费看

  • 基于CANopen協議的車載平臺數據通訊系統———基于CANopen協議的車載平臺數據通訊系統

    引言

      在現代戰爭中,隨著武器裝備系統的機動化、自動化和信息化程度的不斷提高,軍用車輛上的車載設備也不斷增多,其中很多設備如車載雷達、車載光學瞄準設備、車載武器設備等,都需要一個穩定的水平平臺作為基座,以保證武器系統的瞄準、跟蹤和精確打擊。同時,隨著網絡技術的不斷發展,車輛系統中的網絡化程度也越來越高,這就要求一個車載裝置能和其它的設備進行互連,從而有利于形成整車監控系統。目前,在車輛中大多數設備都通過CAN總線進行連接,但是其應用層協議的不統一給不同廠商之間的設備互連帶來了困難。

      CANopen 是基于CAN(Controller Area Network)總線的應用層協議,它最初由從事工業控制的CiA (CAN in Automation)會員開發。由于CANopen是一種公共、開放、通用的協議,而且精練透明、容易開發,因此在發布后不久就獲得了廣泛的承認。如今已經被接受為CAN高層協議的標準之一。尤其在歐洲,CANopen協議被認為是在基于CAN的工業系統中占領導地位的標準,已經應用于多種領域,如越野車、海上電子設備、醫療設備甚至于還可應用于公共汽車和鐵路,且針對行業應用,實現比較簡潔。

      一方面,將CANopen應用于車載平臺裝置,可使它很方便地掛接到總線上,這樣不僅解決了設備間的互連問題,同時也提高了信息傳輸的可靠性、實時性及裝置的標準化、開放化程度。另一方面,在國外CANopen的應用已經非常廣泛,而在國內有關CANopen的文章還很少,希望借此文章給從事CAN總線技術開發的人員提供一些有用的信息,使我國的CAN總線應用早日與國際接軌。

      一、CANopen協議設計的實質和核心內容

      CAN 處于OSI網絡模型中物理層和數據鏈路層,而CANopen是基于CAN的應用層,因為現場總線通常只包括一個網段,因此不需要第3層(傳輸層)和第4層 (網絡層),也不需要第5層(會話層)、第6層(描述層)的作用。正是因為有了CANopen這樣應用層協議的存在,從而使CAN總線成為了一個更加完善的網絡系統。

      1.1 CANopen協議設計的實質--面向對象

      CANopen 協議在設計的時候,對總線上傳輸的數據進行了分類,即每一個傳輸數據都是某一特定類的對象,從而實現了面向對象的程序設計。在CANopen中每一類傳輸對象都有其規范化的格式,從而實現了應用層結構上的統一。這樣無論從規范化角度,還是從模塊化程序設計角度講,CANopen協議都是一個設計比較完善的協議。

      在CANopen 協議的數據傳輸中共定義了4類對象(通訊模式),分別為管理對象(NMT)、服務數據對象(SDO)、過程數據對象(PDO)和特殊功能對象。其中NMT 用來傳遞主節點對整個網絡系統的管理信息,SDO用來傳遞網絡系統中的配置信息,PDO用來傳遞過程數據信息(例如電壓的變化值),特殊功能對象包括同步對象(SYNC)、緊急對象(Emergency)、時間基準(Time-Stamp)等。各類對象傳輸時的幀格式在參考文獻中有詳細的規定,在這里就不詳細介紹了。在實際的工程中用戶只要根據需要,按照類的規定把要傳輸的數據映射到相應的對象中就可以了。

      1.2 CANopen協議中的核心內容--對象字典(Object Dictionary)

      為了對各類對象進行規范化和方便的管理,在CANopen協議中定義了對象字典的概念。它是一個有序的對象組,其中定義了一個設備的所有信息,在 CANopen網絡系統中每一個設備都要有一個唯一的對象字典,每個設備的對象字典具有結構相同、內容不同的特點。通過對對象字典中的對象定義一個唯一的 16位主索引和8位子索引,就可以方便地訪問對象字典中的對象。CANopen協議中定義了通用的對象字典結構,其中規定了各種數據在對象字典中的位置區域。在我們建立設備對象字典的時候,主要工作應集中在定義通訊子協議區域(1000~1FFF)和制造商特定子協議區域(2000~5FFF)部分。

      在整個CANopen協議中對象字典起到了連接DLL模塊(通訊接口)和應用程序的作用。我們要想把一個應用程序中的數據(如I/O的輸入值)送到CAN總線上,我們首先要確定這個數據屬于對象字典中的哪一類對象(例如I/O口的輸入值應為過程數據對象),然后用DLL模塊訪問對象字典中相應的對象并把其按照相應的幀格式發送到CAN總線上去,從而完成了數據的傳輸。

      二、車載平臺數據通訊系統的實現

      2.1 數據通訊系統的組成

      在我們的調平系統中,平臺采用4點支撐,由4個1KW、24V的直流電機和減速器、T型絲杠相連接,以控制平臺中4個支點的上升或下降。主控制器、4個電機控制器和USB-to-CAN通過CAN總線相連,水平傳感器和手操器通過RS232接口和主控制器相連,其結構如圖1所示。其中主控制、電機控制器和手操器為我們自行開發的嵌入式設備,電機控制器可以實現準確的電機位置控制,手操器可以提供手動調平功能。水平傳感器為Crossbow Technology公司生產的CXTD02型,它可以由RS232口送出精確的平臺X、Y軸角度密位信息;USB-to-CAN設備為德國IXXAT公司生產的USB-to-CAN compact,其中包含了SJA1000 CAN控制器可完成消息的收發,并可以將CAN信號轉換成USB信號傳遞給上位機,上位機通過運行IXXAT公司的監視軟件(miniMON)可以在線觀察總線上傳輸的數據。

      2.2 系統中CAN硬件接口設計

      在主控制器和電機控制器中微處理器采用FUJITSU公司的MB90F543芯片,其本身帶有內嵌CAN控制器,因此只需加一個CAN總線驅動器,就可方便地實現主控制器和4個電機控制器之間的通信。本系統中選用了PCA82C250收發控制器,該芯片提供對總線的差動發送能力和對CAN控制器的差動接收能力,PCA82C250是標準的CAN收發器,實驗顯示,只要總線的每米電容小于120pf條件下,就滿足CAN總線傳送距離的標準。CAN總線驅動電路圖略。為了加強總線的抗干擾能力,總線的通信介質采用帶屏蔽線的雙絞線。

      2.3 對象字典的建立

      在網絡系統中每一個設備都要有一個唯一的對象字典,其中定義了各種對象的屬性(如ID、發送方式等)。在我們的系統中共有5個節點,它們以主從方式工作(1 個主節點和4個從節點),主控制器對應主節點,4個電機控制器對應4個從節點。為了系統擴展的方便,我們設4個從節點的節點號分別為10、11、12、 13,在各個節點對象字典中的對象ID都采用預定義連接集中規定的11位ID,它由4位功能代碼和7位節點號組成。

      下面以主節點對象字典的建立為例說明對象字典的建立方法。首先要分析主節點在網絡中的作用,從而確定對象字典中要包含哪一類對象及其個數,然后定義對象的屬性。在我們的系統中主節點要支持從節點的訪問,因此需要一個SDO;主節點要向4個從節點發送位置信息,因此要有4個Tx-PDO和4個Rx-PDO,其中每個PDO又由Tx(Rx)PDO Parameter和Tx(Rx)-PDO mapping兩部分組成;當系統中發生緊急情況的時候主節點要發送緊急信息,因此要有1個應急指示緊急對象(Emergency Object);向從節點發送的位置信息保存在制造商特定子協議區域(2000~5FFF)中;另外主節點要完成各個從節點的管理工作,因此還要有NMT 管理模塊。SDO、PDO的屬性設置如表1、2所示,由于4對PDO的屬性除了映射值不用以外,其他屬性基本相同,因此只給出了向(從)節點號為10的從節點發送(接收)PDO的設置。

            • 表1 表2
              對象 索引 接收ID 發送ID
              SDO I200H 580H 600H

               
               
                對象 索引 ID 傳輸類型 映射參數
                Tx-PDO I800H 0x18A