崔惠珊+崔海青+李淼
摘 要: 為解決航電系統(tǒng)仿真驗(yàn)證過(guò)程中大多數(shù)ARINC429板卡軟件定時(shí)不精確、不可靠的問(wèn)題,擬從硬件上實(shí)現(xiàn)多通道、并行、高精度定時(shí)循環(huán)發(fā)送,采用基于標(biāo)準(zhǔn)SystemVerilog語(yǔ)言智能配置循環(huán)存儲(chǔ)器的方法實(shí)現(xiàn)優(yōu)化定時(shí)功能,提出一種多通道航空總線通信板卡設(shè)計(jì)方案。該方法采用通用網(wǎng)絡(luò)接口與計(jì)算機(jī)連接,在基于LabVIEW的航空總線測(cè)試平臺(tái)下,對(duì)所設(shè)計(jì)板卡進(jìn)行測(cè)試和驗(yàn)證,結(jié)果表明該方法能夠滿足多個(gè)通道并行定時(shí)發(fā)送數(shù)據(jù)的要求,并且各項(xiàng)指標(biāo)符合ARINC429電氣標(biāo)準(zhǔn)。
關(guān)鍵字: SystemVerilog; 多通道ARINC429; 定時(shí)循環(huán)發(fā)送; LabVIEW
中圖分類號(hào): TN964?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2014)16?0054?04
Design of multi?channel ARINC429 bus communication card based on SystemVerilog
CUI Hui?shan1, CUI Hai?qing2, LI Miao1
(1. School of Urban Rail Traffic, Beijing Jiaotong Vocational Technical College, Beijing 102200, China;
2. School of Aviation Automation, Civil Aviation University of China, Tianjin 300300, China)
Abstract: In order to solve the problem that most ARINC429 card softwares has imprecise and unreliable timing in validation of avionics system simulation, it is planned to realize multi?channel, parallel and high?accuracy timing cycle transmission by hardware, and implement the optimal timing function with the method that uses SystemVerilog language to intelligently configure a cyclic memory. A design scheme of multi?channel avionics bus communication card is proposed, in which a common network interface is adopted to connect with the computer. The designed board card was tested and validated on the LabVIEW?based aviation bus test platform. The results shows that this method can meet the requirements of parallel and timing data transmission in multiple channels, and each index meets ARINC429 electrical standard.
Keywords: SystemVerilog; mult?channel ARINC429; clocked cycle transmission; LabVIEW
0 引 言
ARINC429總線是美國(guó)航空無(wú)線電公司(RTCA)制定的一種串行通信標(biāo)準(zhǔn),是基于Mark33數(shù)字信息傳輸系統(tǒng)DITS(Digital Information Transfer System)的單向數(shù)據(jù)總線標(biāo)準(zhǔn),是專為航空電子系統(tǒng)通信規(guī)定的航空工業(yè)標(biāo)準(zhǔn),它詳細(xì)規(guī)劃了航空電子系統(tǒng)中各個(gè)電子設(shè)備之間及電子設(shè)備和系統(tǒng)之間的電氣接口標(biāo)準(zhǔn)和通信方式[1]。隨著我國(guó)對(duì)航空工業(yè)投入的重視,和大飛機(jī)項(xiàng)目的進(jìn)展,國(guó)內(nèi)很多企業(yè)和研究所開(kāi)始進(jìn)入航空電子研究領(lǐng)域。新型現(xiàn)代民航客機(jī)如Boeing787,和我國(guó)正在研發(fā)生產(chǎn)的C919大飛機(jī)的智能電子系統(tǒng)需要的大量的數(shù)據(jù)通道和數(shù)據(jù)量。而當(dāng)前市場(chǎng)上的ARINC429總線板卡價(jià)格昂貴,功能簡(jiǎn)單,在實(shí)現(xiàn)多個(gè)標(biāo)號(hào)的定時(shí)循環(huán)發(fā)送功能時(shí),大多是由軟件定時(shí)實(shí)現(xiàn)。Windows操作系統(tǒng)定時(shí)精度10 ms,而一個(gè)ARINC429字的發(fā)送周期為2.88 ms(低速)或0.36 ms(高速),所以這種方法定時(shí)精度不高。而且由于需要定時(shí)從上位機(jī)向下發(fā)送數(shù)據(jù),會(huì)大量占用總線資源,從而出現(xiàn)數(shù)據(jù)擁塞現(xiàn)象,導(dǎo)致板卡無(wú)法向上位機(jī)發(fā)送數(shù)據(jù)。在做飛機(jī)電子系統(tǒng)研究的過(guò)程中難以達(dá)到要求。
要解決上述問(wèn)題,主要有兩個(gè)途徑:一是提高板卡與計(jì)算機(jī)之間的總線傳輸速度,這種方法雖然可以緩解數(shù)據(jù)擁塞現(xiàn)象,但依然無(wú)法解決定時(shí)精度不高的問(wèn)題,且隨著ARINC429通道數(shù)的增多(比如16收16發(fā)),數(shù)據(jù)擁塞現(xiàn)象仍會(huì)出現(xiàn)。二是由硬件實(shí)現(xiàn)定時(shí),即每當(dāng)要循環(huán)發(fā)送數(shù)據(jù)時(shí),上位機(jī)告知下位機(jī)要發(fā)送的數(shù)據(jù)和循環(huán)頻率,由硬件自主定時(shí)發(fā)送。顯然第二種方式更符合ARINC429電氣標(biāo)準(zhǔn),但是對(duì)硬件的設(shè)計(jì)提出了更高的要求。
1 系統(tǒng)總體方案
本文提出的設(shè)計(jì)方法,基于SystemVerilog語(yǔ)言,設(shè)計(jì)一個(gè)包含16個(gè)ARINC429發(fā)送通道和16個(gè)ARINC429接收通道,通過(guò)網(wǎng)絡(luò)端口和上位機(jī)進(jìn)行數(shù)據(jù)通信,系統(tǒng)總體設(shè)計(jì)方案如圖1所示。
圖1 系統(tǒng)總體設(shè)計(jì)方案
由于ARINC429協(xié)議芯片如HS?3282數(shù)據(jù)格式固定,使用不夠靈活方便,價(jià)格昂貴,所以采用FPGA進(jìn)行設(shè)計(jì),實(shí)現(xiàn)ARINC429數(shù)據(jù)的發(fā)送和接收,使用電平轉(zhuǎn)換芯片HI?8585和HI?8588,將ARINC429電平轉(zhuǎn)換成FPGA能接受的TTL電平和將TTL電平轉(zhuǎn)換成ARINC429電平。板卡和上位機(jī)的網(wǎng)絡(luò)通信協(xié)議較為復(fù)雜,所以使用W5100協(xié)議芯片,既節(jié)省了設(shè)計(jì)時(shí)間,也利于將板卡應(yīng)用于各種不同的操作系統(tǒng),提高了傳輸速度和通用性。
2 SystemVerilog
SystemVerilog是對(duì)IEEEStd l364?200l Verilog Standard的一個(gè)擴(kuò)展,這種擴(kuò)展可被歸納為兩個(gè)方面:對(duì)硬件建模的擴(kuò)展,主要集成SUPERLOG和C語(yǔ)言的很多特點(diǎn);對(duì)驗(yàn)證和斷言方面的擴(kuò)展,主要集成來(lái)自SUPERLOG,VERA,C,C++和VHDL語(yǔ)言的特點(diǎn),另外還有來(lái)自O(shè)VA和PSL的斷言。
2.1 設(shè)計(jì)意圖
和Verilog相比,SystemVerilog加入了一些新的關(guān)鍵字,更能體現(xiàn)出設(shè)計(jì)者的設(shè)計(jì)意圖,避免潛在的錯(cuò)誤。
在Verilog中使用case語(yǔ)句時(shí),通常用綜合導(dǎo)向(pragma)來(lái)指導(dǎo)并行結(jié)構(gòu)的實(shí)現(xiàn),但這樣會(huì)導(dǎo)致RTL仿真和門級(jí)仿真不一致。而System Verilog加入了關(guān)鍵字unique和priority,unique表示生成并行結(jié)構(gòu),priority表示生成優(yōu)先級(jí)結(jié)構(gòu),從而從設(shè)計(jì)時(shí)就使仿真和驗(yàn)證保持高度一致。
在Verilog中使用always語(yǔ)句描述組合邏輯電路時(shí),若在敏感表中不小心錯(cuò)誤地遺漏了輸入信號(hào),會(huì)導(dǎo)致綜合后產(chǎn)生意外的寄存器。而SystemVerilog加入了關(guān)鍵字always_comb,表示所描述的是組合邏輯電路,無(wú)需寫敏感表,從而減少了錯(cuò)誤[2]。
2.2 斷 言
斷言是對(duì)設(shè)計(jì)意圖的一種陳述,說(shuō)明某些行為必須發(fā)生或從不發(fā)生。它不屬于設(shè)計(jì),但能提高設(shè)計(jì)的可觀察性和可控性。在仿真時(shí),通過(guò)觀察信號(hào)波形來(lái)尋找設(shè)計(jì)錯(cuò)誤是一項(xiàng)非常單調(diào)乏味的工作,而斷言可以幫助設(shè)計(jì)人員縮短調(diào)試時(shí)間。斷言以正規(guī)且自然的語(yǔ)言形式描述了信號(hào)應(yīng)有的行為(無(wú)需綜合),斷言失敗時(shí)產(chǎn)生的錯(cuò)誤信息可供用戶作為參考文檔,即“活”的注釋[3]。
3 ARINC429數(shù)據(jù)發(fā)送
3.1 設(shè)計(jì)需求
要實(shí)現(xiàn)16個(gè)發(fā)送通道發(fā)送ARINC429數(shù)據(jù),且具備硬件自主定時(shí)發(fā)送功能,能以50 ms,100 ms,150 ms,200 ms,250 ms,300 ms,350 ms,400 ms,450 ms,500 ms為間隔發(fā)送定時(shí)循環(huán)數(shù)據(jù),定時(shí)間隔精度為1 μs。
3.2 循環(huán)存儲(chǔ)器
由于所需實(shí)現(xiàn)的定時(shí)循環(huán)發(fā)送的發(fā)送間隔均是50 ms的整數(shù)倍,所以每隔50 ms安排一次所需發(fā)送的數(shù)據(jù)。比如第一個(gè)50 ms,所有存儲(chǔ)器的數(shù)據(jù)都發(fā)送;第二個(gè)50 ms,則只需發(fā)送50 ms寄存器的數(shù)據(jù);第三個(gè)50 ms,只需發(fā)送50 ms寄存器和100 ms寄存器的數(shù)據(jù),以此類推。在硬件實(shí)現(xiàn)上,給每個(gè)存儲(chǔ)器配置一個(gè)計(jì)數(shù)器,以判斷當(dāng)前的50 ms內(nèi)該循環(huán)存儲(chǔ)器的數(shù)據(jù)是否該被發(fā)送。每個(gè)循環(huán)存儲(chǔ)器的循環(huán)頻率都是可以設(shè)置的,上位機(jī)通過(guò)發(fā)送命令字,可以改變對(duì)應(yīng)的循環(huán)存儲(chǔ)器的循環(huán)頻率。也可以發(fā)送清除命令,清空該存儲(chǔ)器。
為保證發(fā)送的時(shí)間精度,在50 ms內(nèi)為每個(gè)循環(huán)存儲(chǔ)器設(shè)定了其專有的時(shí)間段,如圖2所示。
圖2 兩種模式下循環(huán)存儲(chǔ)器時(shí)間段分配圖
以高速模式下的存儲(chǔ)器1為例,假設(shè)該存儲(chǔ)器的循環(huán)間隔為100 ms。在第5 ms,首次發(fā)送該存儲(chǔ)器內(nèi)的數(shù)據(jù),在105 ms到來(lái)時(shí),發(fā)送第二次,以此類推。整個(gè)系統(tǒng)采用32 MHz晶振作為時(shí)鐘,采用這種方法足以保證時(shí)間間隔精度。在空余的時(shí)段,或循環(huán)存儲(chǔ)器數(shù)據(jù)不滿的情況下,發(fā)送只發(fā)送一次的數(shù)據(jù)。
3.3 循環(huán)發(fā)送
之所以按發(fā)送速率的不同安排存儲(chǔ)器的時(shí)間分配,主要是由于發(fā)送一個(gè)低速ARINC429字需要2.88 ms,在5 ms內(nèi)只能發(fā)送1個(gè)數(shù)據(jù)字,會(huì)造成時(shí)間浪費(fèi)。所以,兩種模式分開(kāi)安排,使板卡在有限的時(shí)間內(nèi)盡可能多的發(fā)送數(shù)據(jù)。
在高速模式下,發(fā)送每個(gè)數(shù)據(jù)字需要0.36 ms(包括4位空閑位),5 ms內(nèi)最多可發(fā)送可以發(fā)送13個(gè)數(shù)據(jù)字(0.36×13=4.68 ms),而剩余的0.32 ms則處于空閑狀態(tài),等待下一次5 ms到來(lái),以保證每個(gè)5 ms的開(kāi)始都是精確定時(shí)。在每5 ms開(kāi)始時(shí),根據(jù)當(dāng)前時(shí)間,從相應(yīng)的循環(huán)存儲(chǔ)器內(nèi)按時(shí)段安排讀出數(shù)據(jù),如果該循環(huán)存儲(chǔ)器內(nèi)數(shù)據(jù)不足13個(gè),則讀取單次發(fā)送的數(shù)據(jù)加到后面,保證單次發(fā)送的數(shù)據(jù)也能及時(shí)發(fā)送。
低速模式和高速模式基本相同,只不過(guò)高速模式發(fā)送每個(gè)數(shù)據(jù)字需要2.88 ms,所以在50 ms內(nèi)只分配了5個(gè)循環(huán)存儲(chǔ)器,每個(gè)循環(huán)存儲(chǔ)器只能發(fā)送3個(gè)數(shù)據(jù)字。
3.4 循環(huán)存儲(chǔ)器智能配置
系統(tǒng)能夠?qū)崿F(xiàn)以50 ms,100 ms,150 ms,200 ms,250 ms,300 ms,350 ms,400 ms,450 ms,500 ms為間隔進(jìn)行定是循環(huán)發(fā)送,但在實(shí)際使用中,并非每個(gè)通道都需要這10種循環(huán)間隔,只需要其中某一個(gè)或幾個(gè)循環(huán)間隔。所以,每個(gè)循環(huán)寄存器對(duì)應(yīng)的循環(huán)間隔并非是不變的,而是可通過(guò)上位機(jī)發(fā)出指令改變,這樣就能最大程度的利用硬件資源,實(shí)現(xiàn)更多數(shù)據(jù)的定時(shí)循環(huán)發(fā)送。
3.5 發(fā)送ARINC429數(shù)據(jù)
ARINC429規(guī)范規(guī)定每個(gè)ARINC429通道的速率都是固定的,不可中途改變。所以,只需在初始化時(shí)由上位機(jī)發(fā)送命令字,控制每個(gè)通道的速率。對(duì)于每個(gè)發(fā)送模塊,都采用16倍頻發(fā)送。由于FPGA發(fā)送出來(lái)的電平是TTL電平,不是標(biāo)準(zhǔn)的ARINC429電平,所以采用ARINC429專用的電平轉(zhuǎn)換芯片HI?8585,進(jìn)行電平轉(zhuǎn)換。
4 ARINC429數(shù)據(jù)接收
4.1 設(shè)計(jì)需求和實(shí)現(xiàn)方法
接收到ARINC429數(shù)據(jù)后,要能進(jìn)行制定Label號(hào)過(guò)濾,并具有自動(dòng)添加時(shí)間標(biāo)簽功能。
ARINC429數(shù)據(jù)的接收過(guò)程見(jiàn)圖3,首先由接收模塊接收ARINC429數(shù)據(jù),然后交給處理模塊進(jìn)行Label號(hào)過(guò)濾盒添加時(shí)間標(biāo)簽。16個(gè)通道的處理模塊把數(shù)據(jù)傳送給并串轉(zhuǎn)換模塊之后,再寫入FIFO,等待網(wǎng)絡(luò)模塊來(lái)讀取。
4.2 接收模塊
在總線信號(hào)進(jìn)入FPGA之前,同樣要做電平轉(zhuǎn)換,采用HI?8588將ARINC429電平轉(zhuǎn)換成TTL電平。接收通道的速率,也是由上位機(jī)通過(guò)發(fā)送命令字來(lái)控制。采用16倍頻進(jìn)行接收,在接收完成后進(jìn)行奇偶校驗(yàn),如果校驗(yàn)正確則發(fā)送給處理模塊。
圖3 ARINC429數(shù)據(jù)接收過(guò)程
4.3 處理模塊
處理模塊收到數(shù)據(jù)后首先要進(jìn)行Label號(hào)過(guò)濾,待過(guò)濾的Label號(hào)都是由上位機(jī)通過(guò)命令字的形式發(fā)送下來(lái),存儲(chǔ)在FPGA中,每個(gè)通道可最多過(guò)濾16個(gè)Label號(hào)。在過(guò)濾完Label號(hào)后,給數(shù)據(jù)添加上時(shí)間標(biāo)簽。時(shí)間標(biāo)簽是一個(gè)28位的二進(jìn)制碼,最低位表示10 μs,由于即使高速模式下,一個(gè)ARINC429數(shù)據(jù)字的時(shí)長(zhǎng)也有360 μs,所以10 μs的精度已經(jīng)足夠了。
4.4 并行通道數(shù)據(jù)轉(zhuǎn)換模塊
并行通道數(shù)據(jù)轉(zhuǎn)換模塊是采取輪詢的方式,向處理模塊發(fā)送讀取請(qǐng)求,如果處理模塊當(dāng)前有數(shù)據(jù),則在兩個(gè)時(shí)刻后將數(shù)據(jù)和使能信號(hào)發(fā)出,并行通道數(shù)據(jù)轉(zhuǎn)換模塊檢測(cè)到使能信號(hào)則將該數(shù)據(jù)接收。接收到數(shù)據(jù)后,依據(jù)接收到的時(shí)刻,可以判斷出該數(shù)據(jù)所處的通道,給該數(shù)據(jù)添加上4位的通道標(biāo)簽。綜上所述,進(jìn)入到FIFO的數(shù)據(jù)共有64位,ARINC429數(shù)據(jù)32位,時(shí)間標(biāo)簽28位,通道標(biāo)簽4位。
5 網(wǎng)絡(luò)通信和控制
5.1 W5100
W5100 是一款多功能的單片網(wǎng)絡(luò)接口芯片,內(nèi)部集成有 10 M/100 M以太網(wǎng)控制器,主要應(yīng)用于高集成、高穩(wěn)定、高性能和低成本的嵌入式系統(tǒng)中。W5100 內(nèi)部集成了全硬件的、且經(jīng)過(guò)多年市場(chǎng)驗(yàn)證的 TCP/IP 協(xié)議棧、以太網(wǎng)介質(zhì)傳輸層(MAC)和物理層(PHY)。硬件 TCP/IP 協(xié)議棧支持 TCP,UDP,IPv4,ICMP,ARP,IGMP 和 PPPoE,這些協(xié)議已經(jīng)在很多領(lǐng)域經(jīng)過(guò)了多年的驗(yàn)證。W5100 內(nèi)部還集成有 16 KB 存儲(chǔ)器用于數(shù)據(jù)傳輸。使用W5100不需要考慮以太網(wǎng)的控制,只需要進(jìn)行簡(jiǎn)單的端口(Socket)編程[4]。
5.2 直接并行讀/寫時(shí)序
W5100提供 3種接口:直接并行總線、間接并行總線和 SPI總線。采用SPI總線最為簡(jiǎn)單,但是SPI傳輸速度較直接并行總線慢很多,本系統(tǒng)對(duì)網(wǎng)絡(luò)傳輸速度要求比較高,所以采用直接并行總線方式。由于系統(tǒng)時(shí)鐘是32 MHz,通過(guò)Altera提供的PLL IPCore產(chǎn)生100 MHz時(shí)鐘[5],來(lái)產(chǎn)生讀/寫時(shí)序,讀/寫時(shí)序如圖4所示。
圖4 W5100讀/寫時(shí)序
6 測(cè) 試
板卡的測(cè)試是通過(guò)一塊標(biāo)準(zhǔn)的AIRNC429板卡,來(lái)測(cè)試待測(cè)板卡的性能。校驗(yàn)板卡選用NI公司的ACX429?3U?16板卡,該板卡具有通過(guò)PCI接口和計(jì)算機(jī)進(jìn)行數(shù)據(jù)交互。
測(cè)試主要包括兩部分:第一部分是上位機(jī)—待測(cè)板卡—校驗(yàn)板卡—上位機(jī)通路,即上位機(jī)軟件將數(shù)據(jù)通過(guò)網(wǎng)絡(luò)發(fā)送給待測(cè)板卡,同時(shí)記錄下此數(shù)據(jù),待測(cè)板卡接到數(shù)據(jù)后通過(guò)ARINC429通道將數(shù)據(jù)發(fā)送給校驗(yàn)板卡,校驗(yàn)板卡接收到數(shù)據(jù)后通過(guò)PCI接口回傳給上位機(jī),上位機(jī)軟件將此數(shù)據(jù)和原數(shù)據(jù)進(jìn)行對(duì)比,從而實(shí)現(xiàn)了對(duì)板卡ARINC429發(fā)送功能的測(cè)試。第二部分是上位機(jī)—校驗(yàn)板卡—待測(cè)板卡—上位機(jī),原理和第一部分相同,能夠測(cè)試板卡的ARINC429數(shù)據(jù)接收功能。圖5為在偶校驗(yàn)方式下某次ARINC429發(fā)送波形圖,圖6為在上位機(jī)采用LabVIEW測(cè)試程序獲取的數(shù)據(jù)列表。
7 結(jié) 論
本文提出的設(shè)計(jì)方法,適用于新型現(xiàn)代客機(jī)研制過(guò)程中,對(duì)航空電子系統(tǒng)中大量ARINC429總線數(shù)據(jù)傳輸?shù)臏y(cè)試和驗(yàn)證,對(duì)于飛機(jī)電子系統(tǒng)總線通信規(guī)范設(shè)計(jì)的的合理性和可靠性提供了測(cè)試方法?;诒痉桨傅耐ㄐ虐蹇ń涌诓皇懿僮飨到y(tǒng)的限制,也不需要復(fù)雜的驅(qū)動(dòng)程序,基于此可以開(kāi)發(fā)各種新型的總線測(cè)試設(shè)備。驗(yàn)證結(jié)果證明,板卡符合ARINC429設(shè)計(jì)標(biāo)準(zhǔn),能夠?qū)崿F(xiàn)多通道并行發(fā)送、接收ARINC429數(shù)據(jù),基于硬件的定時(shí)功能設(shè)計(jì)提高了定時(shí)精度。
圖5 雙極性歸零碼偶校驗(yàn)波形圖
圖6 測(cè)試結(jié)果圖
參考文獻(xiàn)
[1] 鄧智敏,張軍.基于HS3282的ARINC429總線通信卡的設(shè)計(jì)與應(yīng)用[J].計(jì)算機(jī)測(cè)量與控制,2004(5):476?479.
[2] ZWOLINSKI Mark. Digital system design with system [M]. [S.l.]: Pearson Education, Inc, 2010: 43?129.
[3] BERGERON Janick, CERNY Eduard, HUNTER Alan, et al. Verification methodology manual for SystemVerilog [M]. USA: Synopsys, Inc, 2006.
[4] 佚名.W5100數(shù)據(jù)手冊(cè)(Version 1.1.6)[EB/OL].[2010?02?11].http://www.wiznet.co.kr.
[5] 吳繼華,蔡海寧,王誠(chéng).Altera FPGA/CPLD設(shè)計(jì)(高級(jí)篇)[M].北京:人民郵電出版社,2005.
[6] 周德新,樊智勇.基于USB的ARINC429總線接口設(shè)計(jì)與實(shí)現(xiàn)[J].電子器件,2005(2):432?434.
4 ARINC429數(shù)據(jù)接收
4.1 設(shè)計(jì)需求和實(shí)現(xiàn)方法
接收到ARINC429數(shù)據(jù)后,要能進(jìn)行制定Label號(hào)過(guò)濾,并具有自動(dòng)添加時(shí)間標(biāo)簽功能。
ARINC429數(shù)據(jù)的接收過(guò)程見(jiàn)圖3,首先由接收模塊接收ARINC429數(shù)據(jù),然后交給處理模塊進(jìn)行Label號(hào)過(guò)濾盒添加時(shí)間標(biāo)簽。16個(gè)通道的處理模塊把數(shù)據(jù)傳送給并串轉(zhuǎn)換模塊之后,再寫入FIFO,等待網(wǎng)絡(luò)模塊來(lái)讀取。
4.2 接收模塊
在總線信號(hào)進(jìn)入FPGA之前,同樣要做電平轉(zhuǎn)換,采用HI?8588將ARINC429電平轉(zhuǎn)換成TTL電平。接收通道的速率,也是由上位機(jī)通過(guò)發(fā)送命令字來(lái)控制。采用16倍頻進(jìn)行接收,在接收完成后進(jìn)行奇偶校驗(yàn),如果校驗(yàn)正確則發(fā)送給處理模塊。
圖3 ARINC429數(shù)據(jù)接收過(guò)程
4.3 處理模塊
處理模塊收到數(shù)據(jù)后首先要進(jìn)行Label號(hào)過(guò)濾,待過(guò)濾的Label號(hào)都是由上位機(jī)通過(guò)命令字的形式發(fā)送下來(lái),存儲(chǔ)在FPGA中,每個(gè)通道可最多過(guò)濾16個(gè)Label號(hào)。在過(guò)濾完Label號(hào)后,給數(shù)據(jù)添加上時(shí)間標(biāo)簽。時(shí)間標(biāo)簽是一個(gè)28位的二進(jìn)制碼,最低位表示10 μs,由于即使高速模式下,一個(gè)ARINC429數(shù)據(jù)字的時(shí)長(zhǎng)也有360 μs,所以10 μs的精度已經(jīng)足夠了。
4.4 并行通道數(shù)據(jù)轉(zhuǎn)換模塊
并行通道數(shù)據(jù)轉(zhuǎn)換模塊是采取輪詢的方式,向處理模塊發(fā)送讀取請(qǐng)求,如果處理模塊當(dāng)前有數(shù)據(jù),則在兩個(gè)時(shí)刻后將數(shù)據(jù)和使能信號(hào)發(fā)出,并行通道數(shù)據(jù)轉(zhuǎn)換模塊檢測(cè)到使能信號(hào)則將該數(shù)據(jù)接收。接收到數(shù)據(jù)后,依據(jù)接收到的時(shí)刻,可以判斷出該數(shù)據(jù)所處的通道,給該數(shù)據(jù)添加上4位的通道標(biāo)簽。綜上所述,進(jìn)入到FIFO的數(shù)據(jù)共有64位,ARINC429數(shù)據(jù)32位,時(shí)間標(biāo)簽28位,通道標(biāo)簽4位。
5 網(wǎng)絡(luò)通信和控制
5.1 W5100
W5100 是一款多功能的單片網(wǎng)絡(luò)接口芯片,內(nèi)部集成有 10 M/100 M以太網(wǎng)控制器,主要應(yīng)用于高集成、高穩(wěn)定、高性能和低成本的嵌入式系統(tǒng)中。W5100 內(nèi)部集成了全硬件的、且經(jīng)過(guò)多年市場(chǎng)驗(yàn)證的 TCP/IP 協(xié)議棧、以太網(wǎng)介質(zhì)傳輸層(MAC)和物理層(PHY)。硬件 TCP/IP 協(xié)議棧支持 TCP,UDP,IPv4,ICMP,ARP,IGMP 和 PPPoE,這些協(xié)議已經(jīng)在很多領(lǐng)域經(jīng)過(guò)了多年的驗(yàn)證。W5100 內(nèi)部還集成有 16 KB 存儲(chǔ)器用于數(shù)據(jù)傳輸。使用W5100不需要考慮以太網(wǎng)的控制,只需要進(jìn)行簡(jiǎn)單的端口(Socket)編程[4]。
5.2 直接并行讀/寫時(shí)序
W5100提供 3種接口:直接并行總線、間接并行總線和 SPI總線。采用SPI總線最為簡(jiǎn)單,但是SPI傳輸速度較直接并行總線慢很多,本系統(tǒng)對(duì)網(wǎng)絡(luò)傳輸速度要求比較高,所以采用直接并行總線方式。由于系統(tǒng)時(shí)鐘是32 MHz,通過(guò)Altera提供的PLL IPCore產(chǎn)生100 MHz時(shí)鐘[5],來(lái)產(chǎn)生讀/寫時(shí)序,讀/寫時(shí)序如圖4所示。
圖4 W5100讀/寫時(shí)序
6 測(cè) 試
板卡的測(cè)試是通過(guò)一塊標(biāo)準(zhǔn)的AIRNC429板卡,來(lái)測(cè)試待測(cè)板卡的性能。校驗(yàn)板卡選用NI公司的ACX429?3U?16板卡,該板卡具有通過(guò)PCI接口和計(jì)算機(jī)進(jìn)行數(shù)據(jù)交互。
測(cè)試主要包括兩部分:第一部分是上位機(jī)—待測(cè)板卡—校驗(yàn)板卡—上位機(jī)通路,即上位機(jī)軟件將數(shù)據(jù)通過(guò)網(wǎng)絡(luò)發(fā)送給待測(cè)板卡,同時(shí)記錄下此數(shù)據(jù),待測(cè)板卡接到數(shù)據(jù)后通過(guò)ARINC429通道將數(shù)據(jù)發(fā)送給校驗(yàn)板卡,校驗(yàn)板卡接收到數(shù)據(jù)后通過(guò)PCI接口回傳給上位機(jī),上位機(jī)軟件將此數(shù)據(jù)和原數(shù)據(jù)進(jìn)行對(duì)比,從而實(shí)現(xiàn)了對(duì)板卡ARINC429發(fā)送功能的測(cè)試。第二部分是上位機(jī)—校驗(yàn)板卡—待測(cè)板卡—上位機(jī),原理和第一部分相同,能夠測(cè)試板卡的ARINC429數(shù)據(jù)接收功能。圖5為在偶校驗(yàn)方式下某次ARINC429發(fā)送波形圖,圖6為在上位機(jī)采用LabVIEW測(cè)試程序獲取的數(shù)據(jù)列表。
7 結(jié) 論
本文提出的設(shè)計(jì)方法,適用于新型現(xiàn)代客機(jī)研制過(guò)程中,對(duì)航空電子系統(tǒng)中大量ARINC429總線數(shù)據(jù)傳輸?shù)臏y(cè)試和驗(yàn)證,對(duì)于飛機(jī)電子系統(tǒng)總線通信規(guī)范設(shè)計(jì)的的合理性和可靠性提供了測(cè)試方法?;诒痉桨傅耐ㄐ虐蹇ń涌诓皇懿僮飨到y(tǒng)的限制,也不需要復(fù)雜的驅(qū)動(dòng)程序,基于此可以開(kāi)發(fā)各種新型的總線測(cè)試設(shè)備。驗(yàn)證結(jié)果證明,板卡符合ARINC429設(shè)計(jì)標(biāo)準(zhǔn),能夠?qū)崿F(xiàn)多通道并行發(fā)送、接收ARINC429數(shù)據(jù),基于硬件的定時(shí)功能設(shè)計(jì)提高了定時(shí)精度。
圖5 雙極性歸零碼偶校驗(yàn)波形圖
圖6 測(cè)試結(jié)果圖
參考文獻(xiàn)
[1] 鄧智敏,張軍.基于HS3282的ARINC429總線通信卡的設(shè)計(jì)與應(yīng)用[J].計(jì)算機(jī)測(cè)量與控制,2004(5):476?479.
[2] ZWOLINSKI Mark. Digital system design with system [M]. [S.l.]: Pearson Education, Inc, 2010: 43?129.
[3] BERGERON Janick, CERNY Eduard, HUNTER Alan, et al. Verification methodology manual for SystemVerilog [M]. USA: Synopsys, Inc, 2006.
[4] 佚名.W5100數(shù)據(jù)手冊(cè)(Version 1.1.6)[EB/OL].[2010?02?11].http://www.wiznet.co.kr.
[5] 吳繼華,蔡海寧,王誠(chéng).Altera FPGA/CPLD設(shè)計(jì)(高級(jí)篇)[M].北京:人民郵電出版社,2005.
[6] 周德新,樊智勇.基于USB的ARINC429總線接口設(shè)計(jì)與實(shí)現(xiàn)[J].電子器件,2005(2):432?434.
4 ARINC429數(shù)據(jù)接收
4.1 設(shè)計(jì)需求和實(shí)現(xiàn)方法
接收到ARINC429數(shù)據(jù)后,要能進(jìn)行制定Label號(hào)過(guò)濾,并具有自動(dòng)添加時(shí)間標(biāo)簽功能。
ARINC429數(shù)據(jù)的接收過(guò)程見(jiàn)圖3,首先由接收模塊接收ARINC429數(shù)據(jù),然后交給處理模塊進(jìn)行Label號(hào)過(guò)濾盒添加時(shí)間標(biāo)簽。16個(gè)通道的處理模塊把數(shù)據(jù)傳送給并串轉(zhuǎn)換模塊之后,再寫入FIFO,等待網(wǎng)絡(luò)模塊來(lái)讀取。
4.2 接收模塊
在總線信號(hào)進(jìn)入FPGA之前,同樣要做電平轉(zhuǎn)換,采用HI?8588將ARINC429電平轉(zhuǎn)換成TTL電平。接收通道的速率,也是由上位機(jī)通過(guò)發(fā)送命令字來(lái)控制。采用16倍頻進(jìn)行接收,在接收完成后進(jìn)行奇偶校驗(yàn),如果校驗(yàn)正確則發(fā)送給處理模塊。
圖3 ARINC429數(shù)據(jù)接收過(guò)程
4.3 處理模塊
處理模塊收到數(shù)據(jù)后首先要進(jìn)行Label號(hào)過(guò)濾,待過(guò)濾的Label號(hào)都是由上位機(jī)通過(guò)命令字的形式發(fā)送下來(lái),存儲(chǔ)在FPGA中,每個(gè)通道可最多過(guò)濾16個(gè)Label號(hào)。在過(guò)濾完Label號(hào)后,給數(shù)據(jù)添加上時(shí)間標(biāo)簽。時(shí)間標(biāo)簽是一個(gè)28位的二進(jìn)制碼,最低位表示10 μs,由于即使高速模式下,一個(gè)ARINC429數(shù)據(jù)字的時(shí)長(zhǎng)也有360 μs,所以10 μs的精度已經(jīng)足夠了。
4.4 并行通道數(shù)據(jù)轉(zhuǎn)換模塊
并行通道數(shù)據(jù)轉(zhuǎn)換模塊是采取輪詢的方式,向處理模塊發(fā)送讀取請(qǐng)求,如果處理模塊當(dāng)前有數(shù)據(jù),則在兩個(gè)時(shí)刻后將數(shù)據(jù)和使能信號(hào)發(fā)出,并行通道數(shù)據(jù)轉(zhuǎn)換模塊檢測(cè)到使能信號(hào)則將該數(shù)據(jù)接收。接收到數(shù)據(jù)后,依據(jù)接收到的時(shí)刻,可以判斷出該數(shù)據(jù)所處的通道,給該數(shù)據(jù)添加上4位的通道標(biāo)簽。綜上所述,進(jìn)入到FIFO的數(shù)據(jù)共有64位,ARINC429數(shù)據(jù)32位,時(shí)間標(biāo)簽28位,通道標(biāo)簽4位。
5 網(wǎng)絡(luò)通信和控制
5.1 W5100
W5100 是一款多功能的單片網(wǎng)絡(luò)接口芯片,內(nèi)部集成有 10 M/100 M以太網(wǎng)控制器,主要應(yīng)用于高集成、高穩(wěn)定、高性能和低成本的嵌入式系統(tǒng)中。W5100 內(nèi)部集成了全硬件的、且經(jīng)過(guò)多年市場(chǎng)驗(yàn)證的 TCP/IP 協(xié)議棧、以太網(wǎng)介質(zhì)傳輸層(MAC)和物理層(PHY)。硬件 TCP/IP 協(xié)議棧支持 TCP,UDP,IPv4,ICMP,ARP,IGMP 和 PPPoE,這些協(xié)議已經(jīng)在很多領(lǐng)域經(jīng)過(guò)了多年的驗(yàn)證。W5100 內(nèi)部還集成有 16 KB 存儲(chǔ)器用于數(shù)據(jù)傳輸。使用W5100不需要考慮以太網(wǎng)的控制,只需要進(jìn)行簡(jiǎn)單的端口(Socket)編程[4]。
5.2 直接并行讀/寫時(shí)序
W5100提供 3種接口:直接并行總線、間接并行總線和 SPI總線。采用SPI總線最為簡(jiǎn)單,但是SPI傳輸速度較直接并行總線慢很多,本系統(tǒng)對(duì)網(wǎng)絡(luò)傳輸速度要求比較高,所以采用直接并行總線方式。由于系統(tǒng)時(shí)鐘是32 MHz,通過(guò)Altera提供的PLL IPCore產(chǎn)生100 MHz時(shí)鐘[5],來(lái)產(chǎn)生讀/寫時(shí)序,讀/寫時(shí)序如圖4所示。
圖4 W5100讀/寫時(shí)序
6 測(cè) 試
板卡的測(cè)試是通過(guò)一塊標(biāo)準(zhǔn)的AIRNC429板卡,來(lái)測(cè)試待測(cè)板卡的性能。校驗(yàn)板卡選用NI公司的ACX429?3U?16板卡,該板卡具有通過(guò)PCI接口和計(jì)算機(jī)進(jìn)行數(shù)據(jù)交互。
測(cè)試主要包括兩部分:第一部分是上位機(jī)—待測(cè)板卡—校驗(yàn)板卡—上位機(jī)通路,即上位機(jī)軟件將數(shù)據(jù)通過(guò)網(wǎng)絡(luò)發(fā)送給待測(cè)板卡,同時(shí)記錄下此數(shù)據(jù),待測(cè)板卡接到數(shù)據(jù)后通過(guò)ARINC429通道將數(shù)據(jù)發(fā)送給校驗(yàn)板卡,校驗(yàn)板卡接收到數(shù)據(jù)后通過(guò)PCI接口回傳給上位機(jī),上位機(jī)軟件將此數(shù)據(jù)和原數(shù)據(jù)進(jìn)行對(duì)比,從而實(shí)現(xiàn)了對(duì)板卡ARINC429發(fā)送功能的測(cè)試。第二部分是上位機(jī)—校驗(yàn)板卡—待測(cè)板卡—上位機(jī),原理和第一部分相同,能夠測(cè)試板卡的ARINC429數(shù)據(jù)接收功能。圖5為在偶校驗(yàn)方式下某次ARINC429發(fā)送波形圖,圖6為在上位機(jī)采用LabVIEW測(cè)試程序獲取的數(shù)據(jù)列表。
7 結(jié) 論
本文提出的設(shè)計(jì)方法,適用于新型現(xiàn)代客機(jī)研制過(guò)程中,對(duì)航空電子系統(tǒng)中大量ARINC429總線數(shù)據(jù)傳輸?shù)臏y(cè)試和驗(yàn)證,對(duì)于飛機(jī)電子系統(tǒng)總線通信規(guī)范設(shè)計(jì)的的合理性和可靠性提供了測(cè)試方法?;诒痉桨傅耐ㄐ虐蹇ń涌诓皇懿僮飨到y(tǒng)的限制,也不需要復(fù)雜的驅(qū)動(dòng)程序,基于此可以開(kāi)發(fā)各種新型的總線測(cè)試設(shè)備。驗(yàn)證結(jié)果證明,板卡符合ARINC429設(shè)計(jì)標(biāo)準(zhǔn),能夠?qū)崿F(xiàn)多通道并行發(fā)送、接收ARINC429數(shù)據(jù),基于硬件的定時(shí)功能設(shè)計(jì)提高了定時(shí)精度。
圖5 雙極性歸零碼偶校驗(yàn)波形圖
圖6 測(cè)試結(jié)果圖
參考文獻(xiàn)
[1] 鄧智敏,張軍.基于HS3282的ARINC429總線通信卡的設(shè)計(jì)與應(yīng)用[J].計(jì)算機(jī)測(cè)量與控制,2004(5):476?479.
[2] ZWOLINSKI Mark. Digital system design with system [M]. [S.l.]: Pearson Education, Inc, 2010: 43?129.
[3] BERGERON Janick, CERNY Eduard, HUNTER Alan, et al. Verification methodology manual for SystemVerilog [M]. USA: Synopsys, Inc, 2006.
[4] 佚名.W5100數(shù)據(jù)手冊(cè)(Version 1.1.6)[EB/OL].[2010?02?11].http://www.wiznet.co.kr.
[5] 吳繼華,蔡海寧,王誠(chéng).Altera FPGA/CPLD設(shè)計(jì)(高級(jí)篇)[M].北京:人民郵電出版社,2005.
[6] 周德新,樊智勇.基于USB的ARINC429總線接口設(shè)計(jì)與實(shí)現(xiàn)[J].電子器件,2005(2):432?434.