完整的ARINC429 協(xié)議和422協(xié)議的FPGA 硬件調(diào)試簡介并完成多路機(jī)載總線收發(fā)器設(shè)計(jì)與實(shí)現(xiàn)
摘要:本文以workbench 為平臺,vxworks 為操作系統(tǒng),chipscope 為分析工具,介紹了完整的ARINC429 協(xié)議和422協(xié)議的FPGA 硬件調(diào)試,通過硬件調(diào)試發(fā)現(xiàn)modelsim 仿真所不能發(fā)現(xiàn)的問題并分析問題解決問題,從而完成多路機(jī)載總線收發(fā)器的設(shè)計(jì)與實(shí)現(xiàn)。
在航空電子綜合化系統(tǒng)中,快速、有效的數(shù)據(jù)傳輸對整個航空電子系統(tǒng)的性能有很大的影響,因此數(shù)據(jù)總線被稱為現(xiàn)代航空電子系統(tǒng)的骨架,利用FPGA 技術(shù)設(shè)計(jì)集成多路ARINC429[1] 和422[4] 通道的通信芯片,可以有效的提高數(shù)據(jù)通信模塊的處理能力和集成度,降低成本,本文以verilog 語言為基礎(chǔ), 通過ISE 編程,modelsim 仿真, 仿真無誤后綜合實(shí)現(xiàn),用impact 將bit 文件燒寫到FPGA 中,進(jìn)行硬件調(diào)試,并用chipscope 進(jìn)行分析,為了更加方便的進(jìn)行調(diào)試,以workbench 為平臺建立驅(qū)動。關(guān)于429 協(xié)議和422 協(xié)議已經(jīng)非常成熟,因此本文主要從硬件調(diào)試的角度介紹多路機(jī)載總線收發(fā)器的實(shí)現(xiàn)。
1 FPGA 邏輯設(shè)計(jì)原理很多情況下,我們需要一塊板子既具有429[2-3] 功能又具有422 數(shù)據(jù)傳輸功能,因此我們將429 邏輯和422 邏輯[6] 建立在一個模塊下,分別給429 邏輯和422 邏輯分配不同的地址空間,通過不同的地址空間控制429 和422 協(xié)議的片選信號,同時LOCALBUS 數(shù)據(jù)是雙向數(shù)據(jù),429 和422 數(shù)據(jù)是單向數(shù)據(jù),因此需要加一個雙向緩沖器,實(shí)現(xiàn)單向數(shù)據(jù)和雙向數(shù)據(jù)之間的轉(zhuǎn)換。協(xié)議部分已經(jīng)非常成熟,在此不做贅述。
2 原型驗(yàn)證板驗(yàn)證
2.1 原型驗(yàn)證板原理
我們所用的電路板名稱為:MFD-GPM1018。設(shè)計(jì)原理如圖1:CPU 控制FPGA 數(shù)據(jù)的寫入和讀出,F(xiàn)PGA 通過429 或者422 接收到的數(shù)據(jù)按照相應(yīng)的協(xié)議轉(zhuǎn)換之后由cpu 讀出,cpu 通過Localbus 提供FPGA 要發(fā)送的數(shù)據(jù)并配置寄存器。
CPU 讀出來的數(shù)據(jù)通過LBC-1-AD00——07 到鎖存器把地址和數(shù)據(jù)按一定的控制規(guī)則轉(zhuǎn)換為單獨(dú)的地址信號和數(shù)據(jù)信號。LBC-1-AD00——07 表示某時刻是地址信號某時刻是數(shù)據(jù)信號。ROM 存儲cpu 運(yùn)行過程中的中間數(shù)據(jù)程。H1-8445 電平轉(zhuǎn)換,將429 數(shù)據(jù)電平由bus 總線所要求的電平轉(zhuǎn)
換為FPGA 需要的3.3V。ASP105885-01 是連接器將429、422 數(shù)據(jù)連接到GPM 調(diào)試版上,進(jìn)行硬件調(diào)試。MAX3362 將串行數(shù)據(jù)轉(zhuǎn)換為差分的形式。M25P16-AVMN6T 是FPGA 的配置芯片,通過JTAG 接口將bit 文件加載到FPGA 中這樣配置之后,下次上電之后就可以直接將bit 文件load 到FPGA 中而不需重新加載。
2.2 硬件調(diào)試過程
在Workbench 開發(fā)平臺vxworks[3] 操作系統(tǒng)下,首先連接串口網(wǎng)口從調(diào)試板到PC 機(jī),新建超級終端,選擇通信速率為115200,其他都為默認(rèn)值,網(wǎng)口下載操作系統(tǒng)到cpu 中,串口用來控制cpu,串口網(wǎng)口連接好后,連接JTAG 接口,(JTAG連接線連USB 下載線連到PC 機(jī)),電源電壓設(shè)置為28V,然后上電,通過調(diào)試板上的電壓轉(zhuǎn)換器轉(zhuǎn)換為5V 供FPGA 板子使用,上電之后通過IMPACT 下載.bit 文件到FPGA 中,這種配置類型斷電即丟失,下次上電后需要重新下載,同時打開超級終端,建立串口連接,此時vxworks 操作系統(tǒng)將會自動啟動,在此操作系統(tǒng)下輸入一些命令控制cpu,常用的就是讀(d)和寫(m)命令,并且打開chipscope,來進(jìn)行調(diào)試。
為了充分驗(yàn)證邏輯功能的正確性:我們分別進(jìn)行內(nèi)回環(huán)測試,也就是在邏輯內(nèi)部實(shí)現(xiàn)自收自發(fā),然后進(jìn)行外回環(huán)測試,將板子上發(fā)送接口與接收接口連接起來,實(shí)現(xiàn)回環(huán)收發(fā),測試都無誤后進(jìn)行外部測試,對429 協(xié)議采用429 的仿真卡進(jìn)行測試,對422 協(xié)議采用串口調(diào)試工具進(jìn)行測試。
2.2.1 429 測試
429 的仿真卡發(fā)送429 差分?jǐn)?shù)據(jù),通過FPGA 接收,判斷接收到的數(shù)據(jù)是否是發(fā)送的數(shù)據(jù),以此來檢測接收邏輯的正確性。
429 仿真卡BUStools /ARINC v3.20 仿真驗(yàn)證:
1)TX setup : 設(shè)置發(fā)送通道,波特率、奇偶校驗(yàn)
2)DEFINE :ADD new message 添加發(fā)送通道,我們需要TXD1、TXD2,設(shè)置發(fā)送數(shù)據(jù)參數(shù):data——BIN 設(shè)置32—9位數(shù)據(jù),前8 位數(shù)據(jù)通過Label 設(shè)置,Label 是一個233 數(shù)據(jù)類型,2 指的是2 位,比如設(shè)置為256,則為10101110, 映射到發(fā)送的數(shù)據(jù)為0111 0101,即為0x75,最高位為奇偶校驗(yàn)位,在發(fā)送過程中自動產(chǎn)生。
3) 設(shè)置完成后,點(diǎn)擊run,停止發(fā)送的話點(diǎn)擊stop。
通過超級終端讀出接收到的數(shù)據(jù)與發(fā)送的數(shù)據(jù)一致,測試正確。
2.2.2 通過串口調(diào)試工具進(jìn)行422 測試
422 的發(fā)送端口和接收端口通過232 連到PC 機(jī)上,PC機(jī)通過串口調(diào)試工具發(fā)送一串?dāng)?shù)據(jù),經(jīng)過232 轉(zhuǎn)422 接收這些數(shù)據(jù),接收到的數(shù)據(jù)在超級終端中打印,檢測接收是否正確,類似的,調(diào)用驅(qū)動422 發(fā)送一串?dāng)?shù)據(jù),通過232 到PC 機(jī)通過串口調(diào)試工具看到發(fā)送出來的數(shù)據(jù),檢測發(fā)送的數(shù)據(jù)是否正確。調(diào)試過程中比較關(guān)鍵的一點(diǎn)就是發(fā)送和接收端口波特率要設(shè)置一致。