,3
(1.空軍工程大學(xué) 工程學(xué)院,西安 710038; 2.空軍通信訓(xùn)練基地,河北 保定 071051; 3.解放軍駐成都飛機工業(yè)公司軍事代表室,成都 610092)
俄羅斯標(biāo)準(zhǔn)ΓОСТ18977-79[1](以下簡稱ΓОСТ18977)和PTM1495-75[1](以下簡稱PTM1495)采用32位雙極性歸零串行數(shù)據(jù)(簡稱為32位碼)傳送方式來進行數(shù)字信息的傳送和交換。ΓОСТ18977規(guī)定的是飛機和直升機的成套機載設(shè)備功能互聯(lián)的類型、電信號的形式和電平,其中一部分規(guī)定了與美國標(biāo)準(zhǔn)ARINC429[1]相對應(yīng)的串行碼信號的類型及其電氣標(biāo)準(zhǔn),而與之配套的PTM1495技術(shù)資料中則規(guī)定了按照ΓОСТ18977采用雙極性碼進行信息交換的具體方法[1]。該標(biāo)準(zhǔn)在俄制軍用飛機的機載設(shè)備上得到了廣泛的應(yīng)用。目前,我國對符合俄羅斯標(biāo)準(zhǔn)ΓОСТ18977的接口板不多,并且接口種類少,不能同時滿足多種主機接口的要求,影響了部隊?wèi)?zhàn)斗力的提高,因此對符合ΓОСТ18977標(biāo)準(zhǔn)的多用途接口板的研制,具有重要的軍事意義和應(yīng)用前景。根據(jù)以上需求,本文設(shè)計開發(fā)了一種能夠兼容USB、CPCI和PXI 3種接口的通用多用途接口板。
在電氣標(biāo)準(zhǔn)方面,依照ΓОСТ18977的規(guī)定采用與ARINC429標(biāo)準(zhǔn)相同的雙極性歸零制的三態(tài)碼調(diào)制方式,而在對信號電平的定義上,ΓОСТ18977的定義見表1(表中所列均為A線到B線電位差)所示。
表1 ΓОСТ 18977信號的電平標(biāo)準(zhǔn)
根據(jù)ΓОСТ18977和PTM1495的規(guī)定,采用二進制碼作為所有系統(tǒng)間、全套設(shè)備間通信的統(tǒng)一語言。而它同時又規(guī)定了通信中可以采用二進制碼、二-十進制碼(BCD)、指令和標(biāo)志碼,以及由字母、符號、數(shù)字組成的字符碼等4種數(shù)據(jù)的格式。這4種數(shù)據(jù)的通信都要按照ΓОСТ18977規(guī)定的32位串行數(shù)據(jù)的方式來發(fā)送和接收,具體在32位的字中格式定義如圖1所示。
圖1 ΓОСТ18977傳輸字格式
目前國內(nèi)外已有產(chǎn)品的接口電路均僅支持一種接口用途。這樣做的缺點是當(dāng)需要更換為另一種主機總線接口時,不但要更改FPGA內(nèi)的程序,還需重新設(shè)計接口電路,導(dǎo)致開發(fā)時間延長、經(jīng)費增加。此外,國內(nèi)的工控機普遍采用的是CPCI或PXI插槽,普通的臺式機電腦則采用PCI和USB接口,而在沒有PCI和PXI等插槽的筆記本電腦上均具有USB接口。因此,本系統(tǒng)采用主子板結(jié)合的方式同時實現(xiàn)USB、CPCI和PXI 3種接口用途的接口電路,可使該接口卡滿足當(dāng)前各種主機的接口要求。
鑒于上述原因,本系統(tǒng)采用FPGA、USB、CPCI及PXI技術(shù),依據(jù)ΓОСТ18977航空總線規(guī)范,設(shè)計并開發(fā)一種兼容3種接口的多通道總線接口板,可以滿足當(dāng)前各種主機的接口要求,節(jié)省大量經(jīng)費。并設(shè)計了采用雙口RAM IDT70V658S[2]作為FPGA和接口控制器件之間的共享存儲器,通過它來協(xié)調(diào)FPGA和各個接口控制器件之間傳輸?shù)男畔ⅲ瑥亩鴮崿F(xiàn)系統(tǒng)多接口用途的設(shè)計。
本系統(tǒng)的硬件設(shè)計在結(jié)構(gòu)上采用主子板的方式,主板主要由FPGA、雙口RAM和電平轉(zhuǎn)換3部分組成,子板主要由接口控制芯片和總線接口組成,具體分為USB接口子板、CPCI接口子板以及PXI接口子板3個子板。主板和子板間通過連接電纜相連,用戶需要什么接口便可選擇相應(yīng)的接口子板與主板相連。系統(tǒng)總體結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)結(jié)構(gòu)圖
主板主要由FPGA、DPRAM和電平轉(zhuǎn)換3部分組成,其功能主要是實現(xiàn)ΓОСТ18977航空總線協(xié)議。其功能分為兩部分:一是接收經(jīng)過轉(zhuǎn)換成數(shù)字信號的符合ΓОСТ18977航空總線的數(shù)據(jù)并將其送入雙口RAM;二是將雙口RAM中暫存的數(shù)字信號按照ΓОСТ18977航空總線協(xié)議的數(shù)據(jù)格式輸出。
圖3 USB接口子板結(jié)構(gòu)圖
CPCI接口子板主要由PCI控制器件PCI9054[3]和熱插拔控制器件LTC1644[4]組成。PCI9054主要用來處理CPCI接口的PCI特性,它將復(fù)雜的PCI總線的數(shù)據(jù)傳輸邏輯轉(zhuǎn)化為簡單的本地控制邏輯;LTC1644則主要用來處理CPCI接口的熱插拔特性。
CPCI接口子板的功能主要分為兩部分:一是將主機的CPCI信號轉(zhuǎn)換成并行信號傳給雙口RAM;二是將雙口RAM中暫存的并行信號轉(zhuǎn)換成串行信號通過CPCI接口傳給主機。CPCI接口子板結(jié)構(gòu)如圖4所示。
圖4 CPCI接口子板結(jié)構(gòu)圖
PXI接口子板主要由PCI控制器件PCI9054[3]、熱插拔控制器件LTC1644[4]和FPGA[5]組成。其功能主要分為兩部分:一是將主機的PXI信號轉(zhuǎn)換成并行信號傳給雙口RAM;二是將雙口RAM中暫存的并行信號轉(zhuǎn)換成串行信號通過PXI接口傳給主機。PXI接口子板結(jié)構(gòu)如圖5所示[6-7]。
本接口卡支持3種接口用途,各個接口傳輸?shù)臄?shù)據(jù)字格式、控制信號等均有差異,所以采用了雙口RAM IDT70V658S[2]作為FPGA和接口控制器件之間的共享存儲器,通過它來協(xié)調(diào)FPGA和各個接口控制器件之間傳輸?shù)男畔ⅲ瑥亩鴮崿F(xiàn)系統(tǒng)多接口用途的設(shè)計。另外,各個接口總線和ΓОСТ18977航空總線標(biāo)準(zhǔn)傳輸速率相差很大,采用雙口RAM可以很好地解決兩者之間讀寫速度問題。
雙口RAM的存儲器端口一邊由各子板上的控制器件通過連接電纜來使用,另一邊由主板上實現(xiàn)ΓОСТ18977航空總線協(xié)議的FPGA器件來使用。存儲器的主要用途是保存ΓОСТ18977數(shù)據(jù)字,由于本系統(tǒng)可用于多種接口用途,存儲器訪問單元可根據(jù)需要選擇8位、16位或32位字,具體是通過控制信號-BE0L~-BE3L進行選擇。IDT70V658S共有36根數(shù)據(jù)總線,而ΓОСТ18977數(shù)據(jù)字為32位,所以設(shè)計時將IDT70V658S左端口的I/O8L、I/O17L、I/O25L、I/O35L數(shù)據(jù)線不連,呈高阻態(tài)。32位數(shù)據(jù)字從高到低依次為I/O34L~I/O26L、I/O24L~I/O18L、I/O16L~I/O9L、I/O7L~I/O0L。右端口的數(shù)據(jù)線連接與左端口相同。IDT70V658S主要引腳說明如表2所示。
表2 IDT70V658S主要引腳說明
使用雙口RAM時,若兩端同時對同一地址單元執(zhí)行寫操作或者一讀一寫操作,就會發(fā)生沖突,造成寫錯誤或者讀錯誤,即爭用問題。該設(shè)計中選擇使用雙口RAM的硬件判優(yōu)方式來解決這個問題。這樣,當(dāng)存儲器兩端同時對同一地址單元訪問時,只有一方可以進行有效訪問,而另一端的訪問為不確定。所以存儲器使用-BUSY信號表示雙方訪問的有效性(-BUSY=0有效,-BUSY=1無效),即-BUSY有效的一方表示訪問不確定,不確定方訪問操作需要重復(fù)。在連線存儲器時,把存儲器左右端口的-BUSY都引入FPGA中??梢允褂肍PGA硬件邏輯對-BUSY進行判斷,使訪問無效一方重新訪問存儲器[2]。
根據(jù)研制的需要,將雙口RAM分為發(fā)送、接收兩部分。結(jié)合對雙口RAM可以同時讀寫的特點,又將發(fā)送、接收RAM地址區(qū)各劃分為8部分,分別對應(yīng)8個發(fā)送、接收通道。雙口RAM的分配見文獻[8-9]。
每個發(fā)送緩沖區(qū)的前5個單元用來存儲發(fā)送控制字、SPOS指針、RPOS指針,每個接收的前7個單元用來存儲發(fā)送控制字、LABEL標(biāo)志、SPOS指針、RPOS指針。存儲發(fā)送命令或接收命令的單元均只用最后8位,這是由本設(shè)計中雙口RAM的最小訪問單元為8位所決定的。
將翻轉(zhuǎn)課堂應(yīng)用到“射頻識別原理與應(yīng)用”課程教學(xué)中,可以解決當(dāng)前該課程教學(xué)中存在的問題,引導(dǎo)學(xué)生自主學(xué)習(xí),促進師生之間的交流,提高學(xué)生的深度學(xué)習(xí)能力。目前,基于翻轉(zhuǎn)課堂的“射頻識別原理與應(yīng)用”課程教學(xué)設(shè)計已經(jīng)完成,還需建立一個“射頻識別原理與應(yīng)用”課程的在線學(xué)習(xí)平臺或APP,將教學(xué)資源分類細(xì)化列出,學(xué)生可以通過這個平臺進行學(xué)習(xí)交流,老師在教學(xué)過程中可以不斷地去補充和完善教學(xué)資源和設(shè)計,并通過這個平臺針對學(xué)生的學(xué)習(xí)記錄和學(xué)習(xí)互動情況進行評價考核。
發(fā)送控制字位寬為8位;接收控制字位寬為16位;LABEL為8位標(biāo)志數(shù)據(jù);SPOS和RPOS為每個緩存區(qū)的兩個指針,每個指針大小為16位,用來控制讀寫,指針SPOS指向緩沖區(qū)中當(dāng)前第一個空閑存儲單元,指針RPOS指向緩沖區(qū)中當(dāng)前第一個保存有效數(shù)據(jù)的存儲單元。
雙口RAM緩沖區(qū)的讀寫數(shù)據(jù)流程如圖6所示。
(a)讀數(shù)據(jù)流程
(b)寫數(shù)據(jù)流程
數(shù)據(jù)的保存采用循環(huán)緩沖區(qū)結(jié)構(gòu)。雙口RAM的兩端通過讀取SPOS和RPOS兩個指針變量來判斷當(dāng)前緩沖區(qū)的狀態(tài)是空還是滿。本系統(tǒng)規(guī)定緩沖區(qū)滿時存儲數(shù)據(jù)的容量為Δ-1,其中Δ為緩沖區(qū)最大容量。
在對緩沖區(qū)進行讀寫操作后,應(yīng)用程序要判斷兩個指針內(nèi)容。當(dāng)兩個指針?biāo)傅刂返竭_(dá)緩沖區(qū)終端時,應(yīng)用程序把這兩個指針復(fù)位到緩沖區(qū)的起始地址,這樣即實現(xiàn)了循環(huán)緩沖區(qū)的存取。循環(huán)緩沖區(qū)結(jié)構(gòu)見文獻[10]。
當(dāng)讀數(shù)據(jù)一方進入緩沖區(qū)后,先讀取SPOS和RPOS指針變量,然后判斷當(dāng)前緩沖區(qū)是否為空。如果緩沖區(qū)非空,則根據(jù)RPOS指針把數(shù)據(jù)取出。每取出一個數(shù)據(jù)后,應(yīng)用程序要判斷RPOS指針是否已到達(dá)緩沖區(qū)終端,如果RPOS到達(dá)緩沖區(qū)終端,則復(fù)位該指針指向該緩沖區(qū)的起始地址。最后讀數(shù)據(jù)一方要把RPOS指針值更新到固定內(nèi)存單元中。
當(dāng)寫數(shù)據(jù)一方進入緩沖區(qū)后,先讀取SPOS和RPOS指針變量,然后判斷當(dāng)前緩沖區(qū)是否已滿。如果緩沖區(qū)仍有空閑單元,則根據(jù)SPOS指針把數(shù)據(jù)存入存儲器中。每保存一個數(shù)據(jù)后,應(yīng)用程序要判斷SPOS指針是否己到達(dá)緩沖區(qū)終端,如果SPOS指針到達(dá)緩沖區(qū)終端,則復(fù)位該指針指向該緩沖區(qū)的起始地址。最后寫數(shù)據(jù)一方要把SPOS指針值更新到固定的內(nèi)存單元中。
本接口板具有USB、CPCI和PXI多接口的設(shè)計,使得該接口板具有很好的通用性和兼容性。經(jīng)測試表明,采用雙口RAM作為FPGA和接口控制器件之間的共享存儲器,可以很好地協(xié)調(diào)FPGA和各個接口控制器件之間傳輸?shù)男畔ⅲ瑥亩鴮崿F(xiàn)系統(tǒng)多接口用途的設(shè)計。另外,各個接口總線和ΓОСТ18977航空總線標(biāo)準(zhǔn)傳輸速率相差很大,采用雙口RAM也可以很好地解決兩者之間讀寫速度的問題。
參考文獻:
[1] 王勇,于宏坤.機載計算機系統(tǒng)[M].北京:國防工業(yè)出版社,2008.
WANG Yong,YU Hong-kun.Airborne Computer System[M].Beijing:National Defense Industry Press,2008.(in Chinese)
[2] Integrated Device Technology,Inc. High-speed 3.3V 128/64/32K 36 Asynchronous Dual-Port Static RAM[M].CA,USA:Integrated Device Technology,Inc.,2005.
[3] PLX Technology,Inc.PCI 9054 Data Book V2.1[M].CA,USA:PLX Technology,Inc.,2000.
[4] Linear Technology Corporation.LTC1644 Data Sheet[M].CA,USA:Linear Technology Corporation,2001.
[5] Altera Corporation.Cyclone-device-handbook[M].CA,USA:Altera Corporation,2008.
[6] 何光亞.基于PXI總線的QPSK解調(diào)模塊設(shè)計[D].成都:電子科技大學(xué),2007.
HE Guang-ya.The design of a PXI bus-based QPSK demodulation module[D].Chengdu:University of Electronic Science and Technology of China,2007.(in Chinese)
[7] 聶玉慶.基于PXI總線的QPSK解調(diào)器設(shè)計實現(xiàn)[D].成都:電子科技大學(xué),2007.
NIE Yu-qing. The design and realization of QPSK modulator based on PXI bus[D]. Chengdu:University of Electronic Science and Technology of China,2007.(in Chinese)
[8] 蔣謝芳.基于嵌入式微處理機和Compact PCI的ARINC429總線接口板的設(shè)計[D].西安:西北工業(yè)大學(xué),2006.
JIANG Xie-fang. The design of ARINC 429 bus interface card based on the embedded microprocessor and Compact PCI[D]. Xi′an: Northwestern Polytechnical University, 2006. (in Chinese)
[9] 賓辰忠.基于MCF5206的ARINC429通信板卡的設(shè)計與實現(xiàn)[D].西安:西北工業(yè)大學(xué),2005.
BIN Chen-zhong. The design and realization of ARINC 429 communication card based on MCF5206[D]. Xi′an: Northwestern Polytechnical University, 2005. (in Chinese)
[10] 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)[M].北京:清華大學(xué)出版社,2004.
YAN Wei-min, WU Wei-min. Data Structure[M].Beijing: Tsinghua University Press, 2004. (in Chinese)