李 亮,于圣武
(1.中國電子科技集團公司第四十七研究所,沈陽 110000;2.南京微盟電子有限公司,南京 210002)12
1553B總線標準是在上世紀70年代美國軍方提出的一種航空串行總線協(xié)議,具有線性局域網(wǎng)絡(luò)結(jié)構(gòu),兼有高可靠性、雙冗余容錯能力、良好實時性等特點,現(xiàn)已廣泛用于諸如飛機綜合航電系統(tǒng)、裝甲車輛綜合電子系統(tǒng)、艦船綜合電子系統(tǒng)等航空、航天、船舶、兵器、電子等領(lǐng)域[1]。
目前,國內(nèi)自主研發(fā)的1553B總線通信板卡主要有兩種開發(fā)方式。第一種是基于1553B協(xié)議芯片,如國外DDC公司的BU-61580S3-110K、國內(nèi)中電58所的JBU61580S3-1H、航天時代電子772所的B61580S3等[2]。第二種是基于FPGA的1553B IP核,如FlightCORE-1553、用戶自定義IP核等,主要包括編解碼器和協(xié)議處理器兩部分。綜合對比來看,前一種方式成本較高,但可靠性好,功能更豐富,性能更穩(wěn)定;后一種方式則有設(shè)計靈活的優(yōu)點,具備可移植性,降低因為ASIC芯片停產(chǎn)或斷供帶來的風險,缺點是不能適應(yīng)高強度的應(yīng)用環(huán)境。無論哪種方式,都需要大量的硬件描述語言來實現(xiàn)1553B總線的信號采集及外圍接口電路的數(shù)據(jù)通信,因此工作量巨大,開發(fā)周期長。為克服這一問題,在此研究一款基于Nios II的1553B總線板卡,可自定義控制接口,提供靈活的控制和開發(fā)平臺。
系統(tǒng)以BU-61580S3協(xié)議芯片為核心[3],控制器選用FPGA,內(nèi)嵌Nios II 32 bit CPU。通過變壓器隔離,提供雙通道單功能的總線接口。通過與通用IO口復用,分出一路UART接口,實現(xiàn)與主機的信息交互。FPGA采用SOPC技術(shù),CPU通過Avalon總線連接SRAM、SDRAM、Flash、UART等外設(shè),形成一個完整的硬件系統(tǒng),再通過Nios II軟件開發(fā)平臺編寫應(yīng)用程序,完成系統(tǒng)總體設(shè)計。系統(tǒng)設(shè)計流程圖如圖1所示。
圖1 系統(tǒng)整體設(shè)計流程圖
1553B總線通信板卡采用Quartus II 9.0開發(fā)環(huán)境作為硬件設(shè)計平臺,運用SOPC片上可編程系統(tǒng)將處理器、存儲器、片內(nèi)RAM、通用IO、調(diào)試配置模塊等功能模塊集成在一塊FPGA器件上[4]。硬件設(shè)計總體框圖如圖2所示。
圖2 硬件設(shè)計系統(tǒng)框圖
BU61580電路與1553B總線系統(tǒng)有兩種連接方式,分別為直接耦合方式和變壓器耦合方式[5]。無論哪種連接方式,BU61580必須通過隔離變壓器與1553B總線相連,可以在系統(tǒng)和終端之間起到短路保護、直流隔離和阻抗匹配的作用。為了便于調(diào)試,設(shè)計中同時保留了兩種耦合方式。
控制器采用Altera Cyclone I代FPGA,型號為EP1C12F324C8??刂破髋c主機的接口方式為16位緩沖模式,通過A11~A0地址線訪問BU61580寄存器和內(nèi)部4KRAM,通過A4~A0地址線實現(xiàn)寄存器的選擇。FPGA與BU61580接口設(shè)計圖如圖3。
圖3 FPGA與BU61580接口圖
由于FPGA端口電平為3.3 V的CMOS電平,而BU61580的電路電平為5 V,是TTL電平,為了滿足兩者之間的接口要求,采用型號為74LVC16T245的芯片進行電平轉(zhuǎn)換。BU61580與FPGA之間接口有四種信號,分別是地址信號、數(shù)據(jù)信號、控制信號、反饋信號。對于地址信號和反饋信號,F(xiàn)PGA是輸出端,BU61580是輸入端。FPGA輸出的是CMOS電平,BU61580接收的是3.3 V CMOS電平,滿足TTL電平要求,因此不用進行電平轉(zhuǎn)換。對于雙向數(shù)據(jù)總線、反饋信號INT#和READYD#,BU61580的TTL電平不滿足CMOS的電平要求,有燒壞FPGA的風險,必須進行電平轉(zhuǎn)換。
使用Quartus II中的SOPC builder組件將復雜的系統(tǒng)組件集成在FPGA上。由于SOPC在管理BU61580接口芯片時要運行應(yīng)用程序,為了提高系統(tǒng)的處理速度,采用SDRAM,由此,程序在上電時,位于EPCS串行Flash中的Bootloader就會自動加載Flash中的應(yīng)用程序到SDRAM中運行。
設(shè)計的SOPC硬件系統(tǒng)[6]如圖4所示。包括標準Nios II軟核處理器cpu_0;EPCS串行閃存控制器epcs_controller;1553B總線ext_1553B_bus;Avalon三態(tài)橋ext_bus;外部Flash存儲器接口ext_cfi_flash;外部SDRAM存儲器接口ext_sdram;UART接口ext_uart;IO接口pio1_int_n、pio2_set、pio_user;JTAG調(diào)試接口sys_jtag_uart;定時器sys_timer;系統(tǒng)識別模塊sysid;1553B用戶自定義模塊user_logic_1553B_NATIVE_15_0。
圖4 SOPC硬件系統(tǒng)
PCB采用六層電路板設(shè)計[7],頂層到底層依次為信號層、地層、信號層、信號層、電源層、信號層,電源和地之間使用去耦電容和旁路電容,PCB布局示意圖如圖5。
圖5 1553B通訊板卡PCB布局示意圖
模擬端口輸出采用差分信號,信號線四圍不能覆銅、不能走普通信號線,以防止引入干擾信號。差分信號線盡量保持等長,并適度加粗信號線。模擬端到隔離變壓器及接入總線端口之間的距離盡量縮短,有助于確保來自電路板的噪聲不被拾取到差分線路上,并且不會從電路板的互聯(lián)電纜泄露而造成對電路板EMI的干擾。
隔離變壓器放置在離收發(fā)引腳盡可能近的位置,且與接插件DB62的距離越短越好,由此不僅能夠限制發(fā)送時模擬信號通道上的電壓降,還能最小化電路板上其他信號的干擾。此外隔離變壓器下方不要走線,避免形成渦流。
BU61580電路與FPGA的軟件接口包括17個內(nèi)部常規(guī)寄存器和8個額外的測試寄存器[8],以及4k×16位的內(nèi)部存儲器空間。軟件設(shè)計的重點是對寄存器的配置和內(nèi)部存儲空間的初始化。
本板卡可實現(xiàn)BC和RT兩種模式的功能,其中BC模式包括BC to RT,RT to RT和帶數(shù)據(jù)的模式碼功能,RT模式包括帶中斷的發(fā)送和單消息的發(fā)送、接收和廣播功能。
設(shè)計采用了Nios II 9.0 IDE的開發(fā)環(huán)境,分別建立起應(yīng)用程序和系統(tǒng)庫,與PC機的信息交互采用串口的形式。系統(tǒng)上電后,通過串口打印相關(guān)信息,選擇系統(tǒng)運行模式。寄存器和RAM中的數(shù)據(jù)信息均可顯示在PC端界面窗口中。系統(tǒng)軟件設(shè)計流程圖如圖6。
圖6 系統(tǒng)軟件設(shè)計流程圖
以下為寄存器和RAM初始化的部分程序:
寄存器初始化:
IOWR(REGISTER_BASE,0x3,0x0001);//軟件復位
IOWR(REGISTER_BASE,0x7,0x8000);//使能增強模式
IOWR(REGISTER_BASE,0x0,0x0018);//使能BC控制字中斷和幀結(jié)束中斷
IOWR(REGISTER_BASE,0x1,0x0130);//設(shè)置幀自動重發(fā)、使能消息間隔時間定時器和重試
IOWR(REGISTER_BASE,0x2,0x0400);//禁止256字邊界,設(shè)置脈沖中斷請求
IOWR(REGISTER_BASE,0x8,0x1068);//使能擴展的BC控制字,若消息出錯且無數(shù)據(jù)響應(yīng)也有效,忙且無數(shù)據(jù)響應(yīng)也有效
IOWR(REGISTER_BASE,0x9,0x0E00);//使能擴展的過零點,設(shè)置BC響應(yīng)超時
IOWR(REGISTER_BASE,0x5,0x0000);//初始化時標寄存器為0
IOWR(REGISTER_BASE,0x3,0x0002);//初始化消息幀
RAM初始化:
IOWR(MEMORY_BASE,0x0100,0x0000);//初始化區(qū)域A棧指針
IOWR(MEMORY_BASE,0x0101,0xFFFC);//初始化區(qū)域A消息計數(shù)
IOWR(MEMORY_BASE,0x0000,0x0000);//初始化消息1的塊狀態(tài)字
IOWR(MEMORY_BASE,0x0001,0x0000);//初始化消息1的時標字
IOWR(MEMORY_BASE,0x0002,0x0320);//初始化消息1的消息時間間隔字為800μs
IOWR(MEMORY_BASE,0x0003,0x0108);//初始化消息1的消息塊地址
為了驗證板卡設(shè)計的合理性,以BC模式為例進行試驗。將通信板卡設(shè)置為BC模式,仿真測試終端設(shè)置為RT模式,使用A通道,通過轉(zhuǎn)換線纜分別連接在耦合器上,耦合器兩端匹配終端電阻。實驗平臺搭建圖如圖7所示。
圖7 實驗平臺實物圖
通訊板卡通過串口與PC機相連,在PC機端運行串口調(diào)試助手,仿真測試終端通過PCI接口與主機相連,由主機運行應(yīng)用程序。串口設(shè)置為9600波特率,8位數(shù)據(jù)位,1位停止位,無奇偶校驗。串口調(diào)試界面如圖8所示。
圖8 串口調(diào)試界面
通訊板卡發(fā)送一條格式為BC->RT的消息,該消息發(fā)送給終端1,子地址1,由1111、2222、3333、4444四個數(shù)據(jù)字構(gòu)成。打開串口,系統(tǒng)上電,串口打印模式選擇信息,通過發(fā)送“a”選擇通信板為BC模式。應(yīng)用程序數(shù)據(jù)采集界面如圖9。通過主機應(yīng)用程序觀察RT端接收的消息,識別出指令字和接收終端地址,且接收到的數(shù)據(jù)與發(fā)送數(shù)據(jù)一致,表明測試結(jié)果準確無誤。
圖9 應(yīng)用程序數(shù)據(jù)采集界面
本1553B通訊板卡采用基于Nios II的嵌入式軟核CPU,運用Altra提供的IP核,通過SOPC技術(shù)快速搭建系統(tǒng),完成總線的信息交互,減小了開發(fā)難度,縮短了開發(fā)周期,且設(shè)計中所有模塊都是以軟核的形式在FPGA中實現(xiàn)的,具有較強的可移植性。本系統(tǒng)作為靈活的開發(fā)平臺,可在其基礎(chǔ)上擴展PCI、CPCI/PXI、PCIE、以太網(wǎng)等PC接口,具有很強的工程應(yīng)用價值。