盧韋平
(中興通訊,陜西 西安 710065)
1553B 總線是飛機內部時分制指令響應式多路傳輸數據總線[1-5],最早應用于20世紀70年代末美國軍用飛機,近年來逐步擴展到航天、坦克、艦船等領域。我國從20世紀80年代開始對1553B 總線接口進行研究,由于早期研究受工藝和器件的限制,設計的產品體積大、集成度不高。隨著計算機技術的快速發展,特別是大規模集成電路的應用,設計的1553B 總線產品體積減小、集成度有所提高。本文采用FMQL[6]中的PL 部分配置HT-61843GB 器件,讀取BC 端發送的數據;然后再通過AXI 總線傳遞給PS 端進一步處理,實現了1553B 總線RT 端[7]的功能。
硬件關鍵器件包括FMQL、HT-61843GB、變壓器。
FMQL 芯片采用復旦微電子的全可編程PSOC 芯片,它在單芯片集成了四核高性能處理器(Processing System,PS)和可編程邏輯(Programmable Logic,PL),PL 部分為PS 部分的可擴展單元,它既可以配合PS 完成一些外部邏輯的處理,也可以利用PL 部分并行、硬件處理的特點,構成PS 中算法的一個外部協處理單元,形成一個強大的算法加速器。
HT-61843GB 是國微電子的一款傳輸速率為4 Mb/s 的1553B 總線通信控制器,可實現1553B 總線數據傳輸方向控制、遠程終端節點間的數據傳輸,以及總線數據監控,主要應用于航天航空、導彈等領域[8]。HT-61843GB 的讀寫時序如圖1、圖2所示。信號說明見表1所列。HT-61843GB 內部寄存器見表2所列。

表1 信號說明

表2 內部寄存器

圖1 讀時序

圖2 寫時序
PL 部分軟件實現采用Verilog 語言編寫[9-10]。RT 協議處理消息的基本流程如圖3所示。

圖3 RT 協議處理消息的基本流程
實驗驗證在Vivado 開發環境上實現[11-12],分為讀寫寄存器、讀寫內部存儲器、接收BC 發送的數據三部分。上電后,復位端口(mstclr_1553b_temp)輸出低電平,10 ms 后輸出高電平,復位HT-61843GB 芯片。ssflag_1553b 輸出高電平,極性選擇端口polarity_sel_1553b 輸出高電平,rtad_1553b輸出“11010”,rtap_1553b 輸出低電平,配置本地模塊地址為26。
FMQL 寫HT-61843GB 寄存器時序如圖4所示。圖中寄存器存儲器選擇信號(mem_reg_1553b_temp)輸出低電平,讀寫選擇信號(re_wr_1553b_temp)輸出低電平,配置為寫寄存器模式,片選信號(select_strbd_1553b_temp)輸出低電平,地址線(address_1553b_temp)輸出十六進制3、7、0、2 等地址;數據線(data_1553b_temp)輸出十六進制1、8000、6294、b87b 等數據;數據有效信號(data_1553b_select)輸出高電平。在數據寫完成信號(ready_1553b)電平上升沿時刻,片選信號(select_strbd_1553b_temp)輸出高電平,數據有效信號(data_1553b_select)輸出低電平。

圖4 寫寄存器
FMQL 讀HT-61843GB 寄存器時序如圖5所示。圖中寄存器存儲器選擇信號(mem_reg_1553b_temp)輸出低電平,讀寫選擇信號(re_wr_1553b_temp)輸出高電平,配置為讀寄存器模式,片選信號(select_strbd_1553b_temp)輸出低電平,地址線(address_1553b_temp)輸出十六進制3、7、0、2、7 等地址;在數據讀完成信號(ready_1553b)上升沿時刻將HT-61843GB芯片數據線上數據鎖存入data_temp,片選信號(select_strbd_1553b_temp)輸出高電平,從圖中觀察讀出數據為十六進制8099、6294、b87b,數據正確。

圖5 讀寄存器
FMQL 寫HT-61843GB 存儲器時序如圖6所示。圖中寄存器存儲器選擇信號(mem_reg_1553b_temp)輸出高電平,讀寫選擇信號(re_wr_1553b_temp)輸出低電平,配置為寫存儲器模式,片選信號(select_strbd_1553b_temp)輸出低電平,地址線(address_1553b_temp)輸出十六進制140、141、142、143 等地址;數據線(data_1553b_temp)輸出十六進制400、420、440、460 等數據;數據有效信號(data_1553b_select)輸出高電平。在數據寫完成信號(ready_1553b)電平上升沿時刻,片選信號(select_strbd_1553b_temp)輸出高電平,數據有效信號(data_1553b_select)輸出低電平。

圖6 寫存儲器
FMQL 讀HT-61843GB 存儲器時序如圖7所示。圖中寄存器存儲器選擇信號(mem_reg_1553b_temp)輸出高電平,讀寫選擇信號(re_wr_1553b_temp)輸出高電平,配置為讀存儲器模式,片選信號(select_strbd_1553b_temp)輸出低電平,地址線(address_1553b_temp)輸出十六進制140、141、142、143、144 等地址;在數據讀完成信號(ready_1553b)上升沿時刻將HT-61843GB 芯片數據線上數據鎖存入data_temp,片選信號(select_strbd_1553b_temp)輸出高電平,從圖中觀察讀出數據為十六進制400、420、440、460,讀出數據正確。

圖7 讀存儲器
初始化配置完成后等待中斷,準備接收BC 數據。中斷信號(int_1553b)輸入高電平后,讀命令堆棧寄存器、中斷狀態寄存器、消息命令存儲器、消息數據塊地址、消息時間、消息塊狀態、拆解子地址、數據長度。如果為發送數據指令,則完成發送數據;如果為接收數據指令,則根據子地址讀取接收數據查找表指針,根據數據查找表指針讀取數據。本文需要接收BC 數據,接收BC 數據時序如圖8所示。圖中寄存器存儲器選擇信號(mem_reg_1553b_temp)輸出低電平,讀寫選擇信號(re_wr_1553b_temp)輸出高電平,配置為讀寄存器模式,片選信號(select_strbd_1553b_temp)輸出低電平,地址線(address_1553b_temp)輸出十六進制6、3 地址;在數據讀完成信號(ready_1553b)上升沿時刻將HT-61843GB芯片輸出數據線上數據鎖存入rtcommandstackpointer,值為十六進制8041、0054,片選信號(select_strbd_1553b_temp)輸出高電平。同理讀取消息命令存儲器(message_command)54、消息數據塊地址存儲器(message_datablockaddr)55、消息時標存儲器(message_timetag)56、消息塊狀態存儲器(message_blockstatus)57,其值為十六進制d020、0600、905b、800,從中解析出命令信息(message_command[10])為0,判斷為接收命令,子地址(subaddress)為1,長度(message_command[4:0])為0,因為用5 位數據只能表示0~31,因此用0 代表32個數據,讀存儲器141,輸出接收查找表(receivelookuppointer)值為十六進制600,從存儲器地址600~620 中讀取接收數據(data_temp)為0~31,讀出數據與發送數據一致,數據接收正確。

圖8 接收數據
本文采用國產化FMQL、HT-61843GB 芯片,通過Verilog 編程,實現了1553B 總線RT 端關鍵器件國產芯片化,提高了1553B 總線RT 端模塊國產芯片率,降低了對進口芯片的依賴,對促進國產芯片[13-14]的推廣應用具有一定意義。