摘 要:在某些軍用測控系統中,經常存在1553B總線與CAN總線之間的總線轉換,這就促使了1553B與CAN總線轉換卡的誕生。本文1553B與CAN總線轉換卡采用ARM9處理器作為中間轉換平臺,RTLinux操作系統作為調度,通過上層應用程序實現了1553B總線與CAN總線之間的信息轉換。轉換卡還通過擴展的LCD接口和串口,實現了轉換數據的實時監控。該系統在實際應用中得到了實時性,可靠性等方面的驗證。
關鍵詞:ARM9;1553B;CAN;總線轉換;設計
中圖分類號:TN915.05 文獻標識碼:B
文章編號:1004-373X(2008)09-045-03
Design and Realization of CAN Bus Transition Card and 1553B Based on ARM9
TANG Taigang,ZENG Chao
(Institute of Electronic Engineering,China Academy of Engineering Physics,Mianyang,621900,China)
Abstract:In some military measurement control system there always exist bus transition between the 1553B bus and CAN bus.This transition boost the design and realization of 1553B and CAN bus transition card.The 1553B and CAN bus transition card take ARM9 processor as the transition platform,RTLinux operation system as the scheduler and achieved the information transition between 1553B bus and CAN bus through the top layer application program.The transition card also achieved the real-time monitor and control of transform data through the extended LCD interface and serial interface and validated its real-time ability and reliability by the application.
Keywords:ARM9;1553B;CAN;bus transition;design
1 引 言
20世紀70年代誕生的1553B總線是一種主從式多冗余度總線對總線硬件有嚴格的規定,可靠性和實時性好,傳輸速率達到1 Mb/s,對于大多數的應用都能滿足,通過幾十年的發展,已經成為當今軍用電子總線的首選。而由德國BOSCH公司開發的CAN總線,采用多主方式,最高速率為1 Mb/s,由于其在汽車電子系統中的卓越表現,現在受到了越來越多的用戶的關注和認可。這兩種總線都是傳輸速率高、可靠性高、實時性能好的總線,但是他們都存在一定的不足。1553B總線的任一次數據傳輸都是由主節點發出命令開始, 從節點接到命令后解析并執行,同時把相應狀態反饋給主節點, 這使得網絡上的數據傳輸率大大降低,并使主節點控制器非常繁忙,而且在下端出現異常時,數據不能立即上傳, 必須等待主節點的傳輸命令,靈活性較差。而CAN總線為多主競發總線,能較好解決這個問題。但是CAN總線也存在很多不足, 例如他無法和1553B總線一樣給出一個比較確定的響應時間, 而且沒有雙冗余或多冗余結構設計,這使得他的可靠性和實時性不如1553B,而在軍用電子中,可靠性和實時性是最重要的。因此軍用電子系統中,1553B總線得到了廣泛的應用,但同時1553B總線硬件成本非常高,相同條件下是CAN總線的幾百倍,對于測試系統來說是很難承受的,所以在現在的測控系統中對于控制仍舊采用1553B總線,對于測試采用CAN總線,而這兩者之間的信息交互就成了整個系統的關鍵,促使了對1553B和CAN總線轉換卡的設計與實現。
2 設計思想
1553B總線的幀結構有2種,其實命令字和狀態字共用一種幀結構。而這兩種幀僅僅是同步頭不同,如圖1所示。

1553B的幀中,開始3位為同步位,數據字是上跳沿,而命令字和狀態字為下降沿,4~19位為數據位,數據字中為傳輸的數據,而命令字和狀態字中為命令或狀態位,最后一位為奇偶校驗位。而在CAN總線中,只有一種幀結構,僅僅是是否采用擴展幀而已,其幀結構如圖2所示。

其中幀起始由單個顯位組成,仲裁場由標識符和RTR位組成,一共12位,控制場由2個保留位和4個DLC位組成,數據場由0到8個字組成,每個字8位,CRC場由15位的CRC序列和1位標識位組成,ACK場由1位ACK間隙和一位ACK界定符組成,最后的幀結束由連續的7個隱性位組成。
由此可見,1553B和CAN總線不但幀結構不同,命令體系不一樣,而且不同的1553B與CAN總線之間的轉換方法也是不一樣的,因此1553B與CAN總線之間的轉換不僅僅是幀結構的轉換,還涉及到兩個系統之間命令的解析,所以采用軟件的方式可以更加靈活的實現這兩種總線的轉換。
而要實現轉換就需要在CAN和1553B總線端點之間需要搭建一個能夠運行并合理調度多個應用程序的平臺。綜合整個轉換板的考慮,采用帶操作系統的ARM9處理器來實現這個平臺是比較合適的。CAN總線部分,可以設計成一般的主節點,而對于1553B總線部分,由于1553B有3種不同的端點,為了擴展轉換板的功能,可以把轉換板的這個端點設計成為可以通過不同的配置來實現不同功能,因此這需要1553B端點的協議和上層應用程序可配置,為此可以采用FPGA和ARM共同工作的方式來實現這個端點。而為了實現實時監控,可以通過從ARM9上擴展串口和LCD接口來實現。
3 轉換卡的設計實現
3.1 轉化卡硬件的選擇
轉換卡的硬件是整個轉換卡功能的基礎,其實現框圖如圖3所示。而在轉換卡的硬件設計中,器件的選擇決定了設計的實際方案和電路。對于CAN節點,采用了PHILIPS公司的SJA1000T CAN總線控制器和TJA1050 CAN總線收發器來共同實現。對于1553B節點,實現協議部分功能的FPGA采用ALTERA 的EP1C3T144,收發器和變壓器采用了HOLT公司的HI-1567和PD2725,他們與ARM9 共同完成了1553B端點協議。最后的核心處理器ARM9則采用ATMEL的AT91RM9200T,他擁有180 MHz的頻率,4個PIO接口,不但能夠與FPGA共同完成1553B端點功能,滿足1553B對實時性的要求,而且還能運行需要的操作系統和應用程序,完成整個轉化工作。而對于用于實時監控,LCD芯片采用了EPSON的S1D13506擴展芯片,而串口則采用了傳統的MAX3232。以上的這些芯片構成了整個轉換卡的框架,通過他們就構成了轉換卡的硬件。

在這種方案中,RAM采用了雙口RAM,1553B和ARM9共用一個口,這樣CAN總線出來的數據和1553B總線過來的數據不用轉存就可以直接通過另外一段輸出或者緩沖等待發送。S1D13506芯片是一個多功能擴展芯片,他還有多種功能擴展,可以擴展出音頻和視頻接口。
3.2 轉換卡軟件實現方式
在整個的轉換卡實現中面臨的最大問題就是轉換的實時性和緩沖數據管理,為此轉換卡通過使用實時性非常好的搶占式多任務操作系統RTLinux來解決。他不但能滿足系統對實時性的要求,完成總線兩邊緩沖數據管理,還能為應用程序和轉換程序提供一個良好的運行環境。轉換程序主要完成兩個功能:把1553B總線來的數據轉換成CAN總線的幀結構,或者相反;把1553B總線來的命令解析,轉換成CAN總線系統的命令并組成CAN的幀結構發送。轉換卡采用MiniGUI來為用戶提供實現實時監控的圖形界面,這個圖形界面可以通過轉換卡擴展的LCD很好地完成信息交換過程實時監視的任務。最后通過ARM9的JTAG口可以對ARM9中運行的應用程序和轉換程序進行修改與調試。
3.3 轉換卡轉換機制
設計中采用中斷源優先級控制機制,不同的中斷源設置不同的中斷等級,以滿足系統對實時性的要求。這種機制主要是基于下列考慮:
(1) 來自1553B,CAN以及串口的硬中斷請求信號及來自應用程序的軟中斷信號都是隨機的。中斷機制可以使ARM9能夠實時地響應各個中斷,并做出相應的動作。實時性要求相對比較高的1553B端點中斷被賦予高優先級,可以剝奪CAN,串口等相對低優先級的中斷的服務。而CAN被賦予次高優先級,應用程序以及串口被賦予最低優先級。
(2) 1553B和CAN的數據傳輸速率是不同的。CAN總線的不同配置,1553B總線控制器的不同調度都會引起1553B和CAN總線的數據傳輸速率的變化,可能1553B比CAN快,也可能CAN比1553B快。采用中斷方式可以大大降低慢速對較高速設備的處理延時。
同時在硬件的設計中考慮到軟件編程的靈活性,因此所有的中斷信號都設計成可以通過查詢得到。
3.4 硬件測試
在硬件完成后,對整個硬件進行了測試。首先把1553B端點聯入1553B總線系統中,他能正確地響應總線,通過示波器觀測由變壓器和收發器變換后的信號和序列,得到的信號電平和序列都符合既定的要求。然后把1553B端點協議寫入FPGA和ARM,測試端點的反應時間,即接收命令字到發出狀態字之間的間隔,這個時間為15~25 μs之間,完全滿足1553B總線的協議要求。最后把CAN總線、串口、LCD接口都連接上,整個硬件工作良好。
4 轉換卡功能及特點
4.1 轉換卡的主要功能
(1) 轉換卡在一個既定的協議下能夠實現CAN總線系統與1553B總線系統的信息交互,同時滿足兩總線系統對實時性的要求。
(2) 轉換卡可以單獨作為一個CAN總線的節點或者1553B總線端點連入總線系統,完成相應的節點功能。
(3) 實現現場調試和監控。應用轉換卡的LCD擴展口和串口,用戶可以通過LCD顯示屏或者外部計算機實時監視和控制兩總線之間的信息轉換。
4.2 硬件主要特點
(1) 1553B端點協議采用FPGA與ARM芯片共同實現,這種設計不但可以通過更改協議實現程序把端點配置成遠程端點、控制器、監視器等3種不同功能的端點,而且因為是通過ARM9與FPGA共同實現的總線協議,所以當接收完1553B總線數據后可以直接觸發總線轉換程序,從而減少單獨采用1553B協議芯片時對ARM9的數據中斷請求時間,更好地滿足了控制系統的實時性要求。最后這種設計與直接購買1553B端點協議芯片相比明顯地減少了硬件成本,有利于1553B總線的推廣和應用。
(2) 可以兼容不同速率的CAN總線,通過改變初始化配置,可以實現不同速率的CAN總線與1553B總線系統通信。轉換卡對ARM9實現了存儲擴展,外擴了16 MB FLASH和32 MB RAM,因此當總線兩邊數據傳輸速率不匹配時,就可以把等待發送的數據放到專門開辟的緩沖區中存放,等待總線空閑時再發送,雖然CAN總線的最快傳輸速率與1553B相同,但是由于1553B是主從式總線,每個節點在一個周期內只能傳輸一定的數據量,所以他的數據傳輸速率有可能還比CAN總線慢,因此數據的緩沖是兩方面的。
(3) 擴展了LCD接口和串口。在現場可以通過40針接口的LCD或者上層的計算機監控兩總線之間的信息交互,還可以通過串口和ARM9的JTAG口實時地調試ARM9中的程序。
(4) 良好的實時性。在接口中,通過對CAN和1553B總線中斷應答優先級的設置,可以非常好地滿足整個系統對實時性的要求。
5 結 語
通過實際應用證明,基于ARM9的1553B和CAN總線轉換卡無論硬件還是軟件都能夠很好地滿足1553B和CAN總線對實時性、可靠性以及速率的要求,在一定的命令體系中能夠很好地完成CAN與1553B總線之間的信息轉換。
參 考 文 獻
[1]梁君,熊華鋼.1553B與CAN總線的互連[J].遙測遙控,2003(5):30-34.
[2]鄔寬民.CAN總線原理與應用系統設計[M].北京:北京航空航天大學出版社,2004.
[3]MIL-HDBK-1553A.DEPARTMENT OF DEFENSE,USA.1 November,1988.
[4]陳賾.ARM9嵌入式技術及Linux高級實踐教程[M].北京:北京航空航天大學出版社,2005.
[5]趙月琴.基于BU-61580的嵌入式1553B終端的設計[J].航空兵器,2004(4):28-31.
[6]安萬先.FPGA在1553B總線MBI板中的應用[J].光電與控制,1995(4):34-40.
[7]羅一鋒,蔡嵩.基于1553B總線的接口設計與實現[J].現代電子技術,2006,29(2):55-57,60.
[8]石紅梅,姬勞,謝栓勤.用FPGA實現1553B總線接口中的曼碼編解碼器[J].單片機嵌入式系統應用,2004(4):42-46.
[9]李宗金.1553B總線系統的技術指標分析[J].電訊技術, 1998,38(4):30-34.
作者簡介 唐太崗 男,1982年出生,重慶大足縣人,碩士研究生。主要從事嵌入式系統的研究與設計。
曾 超 男,1968年出生,貴州貴陽市人,研究員。主要從事電子工程電路與系統設計方面的研究