(中國(guó)空空導(dǎo)彈研究院,洛陽(yáng) 471009)
圖1 1553B總線數(shù)據(jù)格式
1553B總線是MIL-STD-1553美國(guó)軍用標(biāo)準(zhǔn)總線的簡(jiǎn)稱,在飛機(jī)的航電系統(tǒng)中得到了廣泛的應(yīng)用[1-3]。目前,為了實(shí)現(xiàn)1553B總線的通信,大多是開發(fā)獨(dú)立的通信接口模塊,不但成本高,整個(gè)系統(tǒng)的重量和體積也會(huì)因此增加,不利于航空領(lǐng)域的使用[4-5]。FPGA 近年來在國(guó)內(nèi)發(fā)展得非???,它具有編程方便靈活、集成度高、處理速度快、低功耗等優(yōu)點(diǎn)[6-8],同時(shí)在FPGA內(nèi)部還集成了ARM硬核、MICROBLAZE軟核等微處理器,使得FPGA在嵌入式系統(tǒng)設(shè)計(jì)中得到了更加廣泛的應(yīng)用。本文將ZYNQ-7000系列FPGA內(nèi)部的ARM硬核處理器與1553B總線編碼IP核結(jié)合起來,實(shí)現(xiàn)對(duì)1553B總線數(shù)據(jù)的發(fā)送功能,從而節(jié)約了芯片成本和PCB面積。
1553B總線的數(shù)據(jù)傳輸速率可達(dá)到1 MB/s,即每一位數(shù)據(jù)都是在1 MHz的時(shí)鐘頻率下發(fā)送和接收的[9-10]。1553B總線發(fā)送或者接收的每一個(gè)字都包含20位,其中前3位用來區(qū)分命令/狀態(tài)字和數(shù)據(jù)字,最后一位是奇偶校驗(yàn)位,中間16位是有效數(shù)據(jù)。前3位同步頭在1.5位處有一個(gè)跳變,先高后低表示命令/狀態(tài)字,先低后高表示數(shù)據(jù)字,1553B總線數(shù)據(jù)格式如圖1所示。
1553B總線采用曼徹斯特II型雙相編碼的規(guī)則進(jìn)行編碼,這種編碼方式適用于變壓器耦合。曼徹斯特II型雙相編碼是一個(gè)同步時(shí)鐘編碼技術(shù),被物理層使用來編碼一個(gè)同步位流的時(shí)鐘和數(shù)據(jù)。在曼徹斯特II型雙相編碼中,每一位的中間都存在一個(gè)跳變,這個(gè)跳變既可以作為時(shí)鐘,也可以作為數(shù)據(jù)。先低后高的跳變表示“0”,先高后低的跳變表示“1”。所謂的雙相也就是雙極性,由于這種雙相編碼方式本身就包含了自定時(shí)信息,因此就不再需要獨(dú)立的信道攜帶位定時(shí)信息。曼徹斯特II型雙相編碼如圖2所示。
圖2 曼徹斯特II型雙相編碼
曼徹斯特編碼邏輯的功能框圖如圖3所示。
圖3 曼徹斯特編碼邏輯的功能框圖
編碼模塊輸入輸出端口如下:① 時(shí)鐘輸入:enc_clk;② 16位并行數(shù)據(jù)輸入:tx_dword;③ 命令/狀態(tài)字標(biāo)志輸入:tx_csw;④ 數(shù)據(jù)字標(biāo)志輸入:tx_dw;⑤ 發(fā)送忙狀態(tài)指示輸出:tx_busy;⑥ 串行數(shù)據(jù)輸出:tx_data;⑦ 發(fā)送數(shù)據(jù)有效狀態(tài)指示輸出:tx_dval。
編碼器需要一個(gè)時(shí)鐘頻率為2 MHz的時(shí)鐘(enc_clk),正好是需要的數(shù)據(jù)速率(1 MHz)的2倍。編碼周期開始于tx_csw或tx_dw脈沖,伴隨著命令狀態(tài)字或者數(shù)據(jù)字被發(fā)送。然后編碼器發(fā)出tx_busy信號(hào),直到編碼器按照所有的編碼功能(插入同步頭、插入奇偶校驗(yàn)等)連續(xù)地將這個(gè)字發(fā)送出去,最后釋放tx_busy來等待接收下一個(gè)新字。
首先寫入要發(fā)送的16位并行數(shù)據(jù)tx_dword和字標(biāo)志(命令/狀態(tài)字標(biāo)志tx_csw或者數(shù)據(jù)字標(biāo)志tx_dw),當(dāng)檢測(cè)到有效的字標(biāo)志(tx_csw或tx_dw)后,就開始將16位并行數(shù)據(jù)tx_dword轉(zhuǎn)換成曼徹斯特碼格式的數(shù)據(jù)。因?yàn)榫幋a時(shí)鐘頻率為2 MHz,所以形成的曼徹斯特碼格式的數(shù)據(jù)為40位。同步頭按照有效的字標(biāo)志(tx_csw或tx_dw)形成,命令字或者狀態(tài)字的同步頭為6’b111000,數(shù)據(jù)字的同步頭為6’b000111。16位并行數(shù)據(jù)tx_dword的每一位按照“1”對(duì)應(yīng)2’b10,“0”對(duì)應(yīng)2’b01來進(jìn)行編碼,形成32位數(shù)據(jù)。奇偶檢驗(yàn)位采用16位并行數(shù)據(jù)tx_dword,按位異或的計(jì)算形成奇偶檢驗(yàn)結(jié)果。曼徹斯特II型雙相編碼仿真波形如圖4所示。
圖4 曼徹斯特II型雙相編碼仿真波形
3.2.1 IP核寄存器設(shè)計(jì)
在VIVADO開發(fā)平臺(tái)下自動(dòng)生成自定義IP核的模板,模板中slv_reg0寄存器對(duì)應(yīng)了IP核的基地址,當(dāng)FPGA的ARM硬核處理器對(duì)IP核的基地址進(jìn)行寫操作時(shí),就將數(shù)據(jù)寫入了slv_reg0寄存器,所以可以將slv_reg0寄存器當(dāng)作1553B總線編碼IP核的控制寄存器。slv_reg0寄存器中的第31位表示命令/狀態(tài)字(tx_csw),第30位表示數(shù)據(jù)字(tx_dw),第15位至第0位表示有效數(shù)據(jù)。IP核slv_reg0寄存器設(shè)計(jì)如圖5所示。
圖5 IP核slv_reg0寄存器設(shè)計(jì)
同時(shí),模板中reg_data_out寄存器也對(duì)應(yīng)了IP核的基地址,當(dāng)FPGA的ARM硬核處理器對(duì)IP核的基地址進(jìn)行讀操作時(shí),就將reg_data_out寄存器中的數(shù)據(jù)讀取出來了,所以可以將reg_data_out寄存器當(dāng)作1553B總線編碼IP核的狀態(tài)寄存器。reg_data_out寄存器中的第0位表示串行數(shù)據(jù)有效(tx_dval),第1位表示正在發(fā)送串行數(shù)據(jù)(tx_busy)。IP核reg_data_out寄存器設(shè)計(jì)如圖6所示。
圖6 IP核reg_data_out寄存器設(shè)計(jì)
3.2.2 IP核設(shè)計(jì)仿真驗(yàn)證
硬件系統(tǒng)設(shè)計(jì)如圖7所示。
圖中ZYNQ7 Processing System為ARM硬核處理器,TX1553B_v1_0就是自定義的1553B總線編碼IP核,它們之間通過專用的AXI4Lite總線連接并分配地址。利用在線邏輯分析儀(ila_0)抓取TX1553B_v1_0的串行輸出引腳的波形。設(shè)計(jì)仿真驗(yàn)證:①發(fā)送命令字0x5555,即將0x80005555寫入IP核控制寄存器slv_reg0,觀察輸出波形,如圖8所示;②讀取IP核狀態(tài)寄存器reg_data_out,觀察IP核的狀態(tài),如圖9所示。
圖7 硬件系統(tǒng)設(shè)計(jì)
圖8 1553B總線編碼IP核輸出波形
圖9 IP核狀態(tài)寄存器
[1] 蔣國(guó)峰,白紅.1553B總線監(jiān)控器的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2011,19(17):98-100.
[2] 李輝,張敬波,張磊.1553B多功能RT IP核的設(shè)計(jì)與實(shí)現(xiàn)[J].航天控制,2012,30(1):59-65.
[3] 單忠偉.1553B總線遠(yuǎn)程終端的FPGA程序設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2013,36(9):28-30.
[4] 趙明陽(yáng),朱巖,張建東,等.基于PCI局部總線的1553B總線接口卡設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012,35(10):47-52.
[5] 鄭興,袁斌.基于FPGA的1553B總線RT終端IP核設(shè)計(jì)[J].河南理工大學(xué)學(xué)報(bào):自然科學(xué)版,2014,33(6):793-798.
[6] 周莉,安軍社,謝彥,等.基于ASIC技術(shù)的1553B IP核的設(shè)計(jì)[J].空間科學(xué)學(xué)報(bào),2014,34(1):127-136.
[7] 高亞軍.基于FPGA的數(shù)字信號(hào)處理[M].北京:電子工業(yè)出版社,2012.
[8] 張謹(jǐn),史田甜.基于FPGA的1553B協(xié)議接口的實(shí)現(xiàn)[J].集成電路通信,2011,29(1):15-19.
[9] 熊華剛,王中華.先進(jìn)航空電子綜合技術(shù)[M].北京:國(guó)防工業(yè)出版社,2009.
[10] 李憲強(qiáng).FPGA項(xiàng)目開發(fā)實(shí)戰(zhàn)講解[M].北京:電子工業(yè)出版社,2015.
張文波(工程師),主要研究方向?yàn)榍度胧较到y(tǒng)設(shè)計(jì)。
單片機(jī)與嵌入式系統(tǒng)應(yīng)用2018年1期