0 引言
MIL-STD-1553B由美國在20世紀70年代提出,具有可靠性高、實時性好、靈活性強的特點,已經發展成國際公認的數據總線標準,廣泛應用于現代飛機、導彈、衛星、艦艇、坦克等航空、航天、兵器領域,并且逐漸擴展到地鐵交通控制等民用領域。我國從20世紀90年代初開始引進1553B數據總線,經過十多年的發展,1553B已經成為國內航空航天的主要航電總線之一。
國內一些研究機構也通過不斷努力,已經有能力研制生產出符合1553B標準的接口芯片,本文在設計中即采用了中國電子科技集團公司第58研究所自主研發的JBU61580作為1553B總線通信控制器,其與DDC公司的同型號芯片BU61580完全兼容,支持插拔替換,具有總線控制(BC)、遠程終端(RT)和監測終端(MT)三大功能[1]。
1 系統硬件設計
系統采用Altera公司Cyclone Ⅱ系列的FPGA(EP2C8Q208C8)作為主控芯片,內嵌NIOS Ⅱ軟核處理器,輸入時鐘為20 MHz,由PLL倍頻出兩個100 MHz時鐘分別提供給NIOS Ⅱ軟核處理器和外接的SDRAM使用。USB接口部分采用CH375芯片,1553B接口部分采用JBU61580芯片,均利用SoPC Builder支持的用戶自定義元件定制時序轉換邏輯,以提高接口芯片的讀寫速度,而NIOS Ⅱ則負責兩者之間的數據解析和交換。
1.1 總體設計思想
硬件原理框圖如圖1所示,整個系統可以分為5個部分:(1)系統核心模塊:NIOS Ⅱ處理器;(2)處理器外圍支持電路:時鐘單元及SDRAM控制器;(3)程序下載調試模塊:JTAG接口控制器和異步通信接口(UART用于打印調試信息);(4)系統內部外設模塊:諸如系統ID、定時器、用戶自定制邏輯等;(5)系統外圍設備:EPCS存儲器、CH375、JBU61580。
1.2 系統外圍接口設計
1.2.1 EPCS接口
系統采用Altera專用的配置芯片EPCS4存儲FPGA的配置數據和NIOS Ⅱ的程序,EPCS4總共有4 Mbit的存儲空間,分成8個64 KB的塊,并通過專用電路接口與FPGA連接[2]。FPGA的配置數據從EPCS4中偏移地址為0的地方開始存放,緊接著FPGA的配置數據就是NIOS Ⅱ的程序,也就是說FPGA的配置數據和NIOS Ⅱ的程序從EPCS4的低端地址開始存放,而在本設計中只占用了不到4個塊的存儲空間,所以高端塊的存儲空間可以用來存放JBU61580的配置數據。
1.2.2 CH375接口
CH375是一個USB總線的通用設備接口芯片,工作在全速模式,兼容USB2.0,其內置了USB通信中的底層協議,具有省事的內置固件模式和靈活的外置固件模式[3]。在內置固件模式下,屏蔽了相關的USB協議,自動完成標準的USB枚舉配置過程,完全不需要本地端控制器作任何處理,簡化了NIOS Ⅱ的固件編程。本設計中CH375芯片只負責數據的交換,接收上位機下傳的數據和NIOS Ⅱ上傳的數據。CH375的8位數據總線、4線控制信號讀選通、寫選通、片選輸入、中斷輸出通過SoPC自定制邏輯連接到Avalon系統互連結構。
1.2.3 JBU61580接口
JBU61580工作在16位緩沖非零等待模式下,工作電壓為5 V,在3.3 V電壓下工作的FPGA不能與其直接相連,中間需要接總線驅動器245芯片進行電平轉換。JBU61580的寄存器和存儲器的讀寫控制有兩種方法:一是用PIO口來模擬JBU61580的讀寫時序,此方法的優點是實現簡單,擴展性強,但讀寫速度比較慢,不利于系統的模塊化與集成;二是根據HDL語言定制符合JBU61580的時序控制邏輯,以訪問內存的方式來讀寫JBU61580的寄存器和存儲器,此方法實現稍微復雜,但是可以極大地提高JBU61580的數據讀寫速度。本設計中即采用了第二種方法。
2 軟件系統設計
由于JBU61580工作在16位緩沖模式,而CH375只有8位數據總線,因此上位機程序要與NIOS Ⅱ約定相同的數據封裝格式。上位機將JBU61580的16位地址和數據信息以及一些傳輸控制指令拆分成8位數據,經過USB總線傳輸,NIOS Ⅱ收到之后再重新解析成16位的地址和數據。在配置數據全部傳送完成之后,NIOS Ⅱ再根據控制指令來配置JBU61580,使其工作在指令要求的模式(BC、RT或MT)下。另外NIOS Ⅱ還將根據上位機的指令決定是否將配置數據寫入EPCS中,使得單板在上電復位之后不需要再從上位機獲得配置數據,從而可以離線工作。處于離線工作狀態,NIOS Ⅱ還應實時監測CH375的中斷信號,以便接收上位機的控制指令進入聯機工作模式。同樣,若NIOS Ⅱ需要上傳JBU61580的通信數據,也要將讀取的16位數據拆分成兩個8位數據,再寫入CH375的上傳端點中,上位機取走數據之后同樣按照約定的封裝格式將解析成16位的數據顯示出來。
軟件系統設計分為NIOS Ⅱ固件程序和上位機程序。NIOS Ⅱ固件程序又分為固件主程序、中斷處理程序、數據包解析程序。上位機程序則包括BC模式接口及傳輸控制、RT模式接口及傳輸控制、MT接口及傳輸控制3個部分。
2.1 NIOS Ⅱ固件程序
2.1.1 固件主程序
固件主程序主要負責系統初始化及流程控制。初始化主要包括CH375的工作狀態測試、工作模式選擇,JBU61580的初始復位,讀取并判斷EPCS4配置存儲器的高位地址特征字符以確認是否需要單板離線工作等。在初始化之后進入主循環,實時監視USB接口和1553B接口的中斷信號。
2.1.2 中斷處理程序
中斷處理程序包括CH375中斷處理程序和JBU61580中斷處理程序。由于1553B接口的實時要求性高,因此在SoPC系統搭建過程中,JBU61580的中斷優先級要高于CH375的中斷優先級。
在CH375中斷處理程序中首先讀取中斷狀態,判斷中斷類型,再進入相對應的中斷類型處理程序。如果是批量端點接收到數據,則讀取緩沖區的數據,并置位中斷下傳標志,退出中斷[4]。如果是批量端點發送完數據,則應置位中斷上傳標志,退出中斷。其流程如圖2所示。
在JBU61580的中斷處理程序中,由于存在BC、RT、MT 3種不同的工作模式[5],則分別對應了不同的中斷處理程序。以RT模式為例,當JBU61580接收到來自1553B總線的與本地址相關的消息時,若符合中斷條件,將產生中斷。由NIOS Ⅱ進行處理,中斷處理程序中首先讀取JBU61580的中斷狀態寄存器,判斷是否是干擾引起的誤中斷,讀消息描述符中的消息塊狀態字,判斷是否是非法指令;讀RT狀態字寄存器,判斷是否是子地址忙;讀取RT上次命令寄存器,獲取命令字;根據消息描述符中的數據塊指針,找到數據塊并保存數據至消息塊的結構體中[6]。其流程如圖3所示。
2.1.3 數據包解析程序
數據包解析程序負責解析上位機下傳的8位數據及傳輸控制指令,遵從上位機封裝數據的協定,解析出配置JUB61580的16位地址和對應的數據,以及一些如啟動、復位等必要的控制指令。另外數據包解析程序還要將從JBU61580讀取的16位通信數據分拆封裝成8位數據寫到CH375的批量上傳端口,等待上位機取走。數據包解析程序如圖4所示。
2.2 上位機設計
CH375在計算機端提供了應用層接口,應用層接口是由CH375動態鏈接庫DLL提供的面向功能應用的API。用戶可以在上位機軟件中直接調用這些API,極大地減少了編寫USB設備驅動的工作量。CH375動態鏈接庫提供的API包括:設備管理API、數據傳輸API、中斷處理API。上位機的程序可以分成下傳數據和上傳數據兩部分,下傳數據調用CH375WriteData()函數來實現,上傳數據調用CH375ReadData()函數來實現。由于CH375芯片的上傳緩沖區和下傳緩沖區只有64 B,故一次的數據傳輸不能超過64 B。整個上位機軟件采用VB2008編寫,圖5是RT控制接口界面。
3 結論
按照本文的方法已經成功實現了通過USB實時控制JBU61580的1553B總線接口測試系統,整個系統硬件設計簡單,軟件設計穩定可靠,可應用于1553B系統調試和測試以及各種仿真實驗中。
參考文獻
[1] 周遠林,吳忠,丑武勝.基于BU-61580的1553B總線接口設計[J].計算機工程與應用,2010,46(35):65-68.
[2] 任承志,宋克非,王淑榮.基于BU65170與單片機系統的RT設計與實現[J].微計算機信息,2006,22(6-2):18-20.
[3] 雷勇,吳勇,潘莉.基于USB的1553總線通用接口研究[J].計算機測量與控制,2010,18(4):861-864.
[4] DDC. MIL-STD-1553B Designer′s Guide[S]. 1998.
[5] Condor Engineering Inc. MIL-STD-1553 Protocol Tutorial[S]. 2004
[6] 黃長春,徐抒巖.基于DSP的1553B總線系統設計與實現[J].電子設計工程,2010(8):4-7.
編輯:jq
-
usb
+關注
關注
60文章
7903瀏覽量
264046 -
NIOS
+關注
關注
2文章
104瀏覽量
52816 -
軟核處理器
+關注
關注
0文章
11瀏覽量
8423
發布評論請先 登錄
相關推薦
評論