摘 要: 為了克服航天飛行器進(jìn)行地面模擬測(cè)試時(shí),外系統(tǒng)等效器通訊容易中斷的問(wèn)題,設(shè)計(jì)了一種基于PCI和USB通信技術(shù)的外系統(tǒng)等效器。系統(tǒng)以FPGA為中央控制核心,圍繞FT245RL和PCI9054芯片進(jìn)行電路設(shè)計(jì),完成對(duì)上位機(jī)的信息傳輸,實(shí)現(xiàn)了10路RS 485信號(hào)和PCM信號(hào)的輸出。經(jīng)長(zhǎng)期測(cè)試,信號(hào)輸出穩(wěn)定,滿足任務(wù)要求,已成功應(yīng)用于某航天測(cè)量系統(tǒng)中。
關(guān)鍵詞: PCI; USB; FPGA; FT245RL; PCI9054
中圖分類號(hào): TN911?34; TP274 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2016)11?0074?05
Abstract: To overcome the problem of poor communication stability between the external system equivalent devices while the aerospace craft performing the ground simulation tests, an external system equivalent device based on PCI and USB communication technology was designed. This system takes FPGA as the central control unit, and its circuit design is based on chips FT245RL and PCI9054 to accomplish the information transformation to the upper computer. The outputs of PCM signal and 10 RS 485 signals were realized. Long?term test results show that the signal output is stable, and can satisfy the task requirements. This system was applied to a certain aerospace measurement system.
Keywords: PCI; USB; FPGA; FT245RL; PCI9054
0 引 言
隨著航空航天設(shè)備、軍用系統(tǒng)等產(chǎn)品的自動(dòng)測(cè)試系統(tǒng)(ATS)面對(duì)越來(lái)越復(fù)雜的測(cè)試環(huán)境,影響系統(tǒng)穩(wěn)定工作的因素也越來(lái)越多,傳統(tǒng)工控機(jī)與外系統(tǒng)等效器之間往往采取單總線通信,由于總線通信受到干擾導(dǎo)致信號(hào)通信中斷,降低了測(cè)試設(shè)備的可靠性[1]。為了提高通信可靠性,本文設(shè)計(jì)了一種基于PCI和以太網(wǎng)總線接口的外系統(tǒng)等效器,為了保證數(shù)據(jù)可靠傳輸,采用了雙總線通信,當(dāng)一條總線中斷時(shí),另一條總線也可以繼續(xù)工作,用以高效穩(wěn)定地模擬控制系統(tǒng)及測(cè)試系統(tǒng)的接口,實(shí)現(xiàn)了在地面實(shí)驗(yàn)室完成對(duì)飛行器系統(tǒng)的閉環(huán)測(cè)試。
1 系統(tǒng)原理設(shè)計(jì)
外系統(tǒng)等效器基于FPGA,USB,PCI技術(shù),采用模塊化設(shè)計(jì),按照功能設(shè)計(jì)區(qū)分各板卡,設(shè)計(jì)框圖如圖1所示。上位機(jī)發(fā)送的命令和數(shù)據(jù)通過(guò)光纖或者USB接口下發(fā),經(jīng)過(guò)背板,將命令有序傳達(dá)至各功能板。背板在外系統(tǒng)等效器中的功能為上位機(jī)與外系統(tǒng)等效器的數(shù)據(jù)中轉(zhuǎn)站,此板卡不對(duì)數(shù)據(jù)或命令作任何處理,接收下發(fā)的數(shù)據(jù)、命令,直接轉(zhuǎn)發(fā)給功能板[2]。功能板接收到背板發(fā)送的數(shù)據(jù)或命令信息,進(jìn)行命令解析,按照寄存器執(zhí)行各通道功能。
數(shù)字信號(hào)板即該等效器功能板,主要實(shí)現(xiàn)RS 485信號(hào)和PCM信號(hào)。RS 485信號(hào)通過(guò)標(biāo)準(zhǔn)的RS 485接口芯片實(shí)現(xiàn)信號(hào)輸出,同時(shí)用光耦隔離提高FPGA引腳對(duì)RS 485接口芯片的驅(qū)動(dòng)能力。另外,此板卡能夠接收測(cè)量系統(tǒng)發(fā)送的位同步、字同步信號(hào),并按照一定的幀格式輸出PCM信號(hào)。
2 硬件電路設(shè)計(jì)
2.1 PCI接口電路設(shè)計(jì)
在本設(shè)計(jì)中PCI總線與FPGA的橋接芯片選用PCI9054,它集成了PCI接口協(xié)議,用戶不需要深入掌握PCI通信協(xié)議,降低了PCI總線的開(kāi)發(fā)難度,方便用戶使用[3]。其工作時(shí)鐘為33 MHz,允許支持32位數(shù)據(jù)總線,符合PCI 2.2協(xié)議,傳輸速度根據(jù)項(xiàng)目要求設(shè)計(jì)為10 MB/s。本設(shè)計(jì)中PCI9054選擇從模式,從模式允許PCI總線上的主控設(shè)備訪問(wèn)局部總線上的配置寄存器和內(nèi)存,支持單周期和突發(fā)動(dòng)模式傳輸[4]。PCI9054通過(guò)PCI從設(shè)備從FIFO中讀寫(xiě)數(shù)據(jù)的長(zhǎng)度分別為16 B和32 B,以支持從PCI總線到局部總線上的突發(fā)和單周期存儲(chǔ)器映射訪問(wèn)和I/O映射訪問(wèn)。PCI9054作為本地總線主控設(shè)備通過(guò)和進(jìn)行本地總線仲裁。
仲裁過(guò)程如下:當(dāng)PCI9054收到PCI端發(fā)出的讀寫(xiě)控制命令后,隨即向FPGA發(fā)出控制信號(hào),表明PCI端已經(jīng)準(zhǔn)備就緒,此時(shí)FPGA將信號(hào)回饋給PCI9054,表明雙方都已準(zhǔn)備就緒,可以進(jìn)行正常的數(shù)據(jù)傳輸,否則需等待12個(gè)CLK才能釋放總線。PCI接口與FPGA硬件接口如圖2所示。
2.2 USB接口電路設(shè)計(jì)
USB接口是計(jì)算機(jī)常用的通信接口之一,以數(shù)據(jù)傳輸可靠穩(wěn)定,傳輸速率快,通用性強(qiáng),擴(kuò)展性強(qiáng),支持熱插拔等優(yōu)勢(shì)廣泛應(yīng)用于各個(gè)領(lǐng)域的產(chǎn)品開(kāi)發(fā)[5]。選擇了FTDI公司的FT245L作為USB接口芯片,其接口電路如圖3所示,F(xiàn)T245RL有總線供電和自供電兩種供電模式,總線供電模式中,USB接口最大驅(qū)動(dòng)電流只能達(dá)到500 mA,此種供電模式只適用于小電流、低功耗的系統(tǒng)[6]。由于本系統(tǒng)功耗較大,所以設(shè)計(jì)中選擇5 V自供電模式來(lái)滿足功耗要求。
為了進(jìn)一步優(yōu)化外界和電磁干擾對(duì)USB數(shù)據(jù)傳輸造成的影響,一方面增加磁珠配置在USB電源接口處,從而減少設(shè)備與主機(jī)的干擾;另一方面串入濾波器ADCM2012在USB接口數(shù)據(jù)傳輸線中減少紋波引起的干擾。
2.3 數(shù)字信號(hào)板電路模塊設(shè)計(jì)
在本設(shè)計(jì)中選用SN55LBC176作為RS 485接口芯片,接口電路如圖4所示,SN55LBC176是一款抗雷擊芯片,對(duì)于多節(jié)點(diǎn)系統(tǒng)中復(fù)雜的現(xiàn)場(chǎng)狀況,選用此款芯片可以有效避免由于雷擊而引起的故障[7]。在設(shè)計(jì)電路時(shí),選用光耦器件HCPL?0631作為隔離芯片,由于光耦器件的輸入端為發(fā)光二極管,其干擾源等效電阻很大,可以有效地抑制尖峰脈沖,從而進(jìn)一步優(yōu)化系統(tǒng),降低電磁干擾對(duì)系統(tǒng)的影響。
PCM信號(hào)源模塊實(shí)現(xiàn)的功能是接收測(cè)試系統(tǒng)字同步和位同步信號(hào),按照測(cè)試系統(tǒng)數(shù)據(jù)傳輸?shù)牟ㄌ芈十a(chǎn)生一路帶有幀格式且數(shù)據(jù)量可調(diào)的PCM碼流。設(shè)計(jì)中采用DS26C31和DS26C32分別作為RS 422信號(hào)的驅(qū)動(dòng)和接收芯片。由于兩者的電源腳、地腳、信號(hào)使能端以及4路差分信號(hào)同相端均相同,不同之處是DS26C32和DS26C31的TTL信號(hào)端反相[8]。根據(jù)這個(gè)特點(diǎn),在PCB布局時(shí),將RS 422電路模塊設(shè)計(jì)為通用型,使DS26C31,DS26C32根據(jù)后續(xù)項(xiàng)目需要隨時(shí)進(jìn)行替換。電路設(shè)計(jì)如圖5所示。R18,R19,R20,R21是一個(gè)0805封裝的四腳焊盤(pán),當(dāng)芯片選用DS26C31時(shí),則在1,4管腳和2,3管腳間分別焊接0 Ω電阻以實(shí)現(xiàn)信號(hào)連接,當(dāng)選用DS26C32時(shí),1,3管腳和2,4管腳間焊接0 Ω電阻,此設(shè)計(jì)大大增加了模塊的可拓展性和通用性。
3 關(guān)鍵技術(shù)實(shí)現(xiàn)
3.1 PCI通信設(shè)計(jì)
PCI接口板通過(guò)金手指連接在工控機(jī)的PCI總線上,其作用為在工控機(jī)與等效器的通信之間起數(shù)據(jù)打包和數(shù)據(jù)轉(zhuǎn)發(fā)的作用。PCI接口板與背板之間采用異步串行通信,由于其數(shù)據(jù)傳輸速率與PCI總線的讀寫(xiě)速率不一致,需通過(guò)建立內(nèi)部FIFO解決通信速率匹配問(wèn)題。設(shè)計(jì)中采用FPGA內(nèi)部自帶的雙口RAM搭建了位寬為32 b,深度為8 KB的內(nèi)部FIFO。雙口RAM選用了數(shù)據(jù)位為2 b,地址位為13 b的RAMB16_S2_S2,16個(gè)雙口RAM共用地址線并置為32 b數(shù)據(jù)端口以實(shí)現(xiàn)32 b數(shù)據(jù)的輸出。
雙口RAM的A,B兩組接口都可以實(shí)現(xiàn)數(shù)據(jù)的讀寫(xiě)操作。設(shè)計(jì)中內(nèi)部FIFO端口連接如圖6所示, A端口設(shè)計(jì)為寫(xiě)FIFO,并將WE內(nèi)部置高,其時(shí)鐘信號(hào)等同于FIFO的寫(xiě)信號(hào),在寫(xiě)時(shí)鐘的上升沿,從FIFO中寫(xiě)入數(shù)據(jù),同時(shí)端口A的寫(xiě)地址遞增加1;B端口設(shè)為讀FIFO,將WE內(nèi)部置低,B端口的時(shí)鐘信號(hào)等同于FIFO的讀信號(hào),在讀時(shí)鐘的上升沿,從FIFO中讀取數(shù)據(jù)。PCI板卡向上位機(jī)上傳批量數(shù)據(jù)時(shí),需要將數(shù)據(jù)先緩存于FIFO中,F(xiàn)IFO的工作原理是先進(jìn)先出,通過(guò)判斷FIFO的讀、寫(xiě)地址差值辨別FIFO的空、半滿、滿的狀態(tài)信息。當(dāng)判別到FIFO半滿,即寫(xiě)FIFO地址與讀FIFO地址差值達(dá)到4 096 B時(shí)將產(chǎn)生中斷,LINT#置低,通知PCI9054可以從本地總線上讀取數(shù)據(jù)。
3.2 系統(tǒng)通信協(xié)議設(shè)計(jì)
系統(tǒng)通信協(xié)議是為了建立統(tǒng)一的通信標(biāo)準(zhǔn),各板卡按照協(xié)議傳遞命令、狀態(tài)、數(shù)據(jù),從而使系統(tǒng)的通用性和可擴(kuò)展性更強(qiáng)。在本系統(tǒng)中上位機(jī)與外系統(tǒng)等效器的通信方式有PCI總線通信和USB總線通信兩種方式,由于PCI總線與USB總線數(shù)據(jù)位不同,為了實(shí)現(xiàn)協(xié)議的標(biāo)準(zhǔn)化,統(tǒng)一二者的通信協(xié)議是本系統(tǒng)設(shè)計(jì)的關(guān)鍵。
標(biāo)準(zhǔn)化協(xié)議采用40 b異步串行通信方式,通信包格式為1 b起始位+2 b模式域+32 b數(shù)據(jù)位+2 b模式域+1 b校驗(yàn)位+2 b停止位,其中32 b數(shù)據(jù)位為下發(fā)功能板的有效信息。采用PCI通信時(shí),上位機(jī)發(fā)送32 b數(shù)據(jù),雙模通信接口卡接收PCI總線數(shù)據(jù),并將其打包為40 b串行數(shù)據(jù)通過(guò)光纖下發(fā)給背板;采用USB通信時(shí),上位機(jī)下發(fā)6 B數(shù)據(jù)至雙模通信接口卡,轉(zhuǎn)換為40 b串行標(biāo)準(zhǔn)數(shù)據(jù)包下發(fā)至背板。
3.3 USB邏輯控制設(shè)計(jì)
USB接口控制采用FT245RL完成,F(xiàn)T245RL可以自動(dòng)實(shí)現(xiàn)USB接口和并行I/O的協(xié)議轉(zhuǎn)換,芯片內(nèi)部配置有實(shí)現(xiàn)接收和發(fā)送緩沖的兩個(gè)FIFO。在本設(shè)計(jì)中,數(shù)據(jù)傳輸遵循標(biāo)準(zhǔn)協(xié)議,由于FT245RL一次只能傳輸一個(gè)字節(jié)的數(shù)據(jù),所以上位機(jī)需發(fā)送6個(gè)字節(jié)的數(shù)據(jù)以包含標(biāo)準(zhǔn)協(xié)議中的所有信息。USB接口邏輯控制流程圖如圖7所示。
FPGA讀取USB總線上的數(shù)據(jù):
(1) 自檢,首先判斷是否為自檢命令,若接收到0x5C,雙模通信板產(chǎn)生帶有幀結(jié)構(gòu)的遞增數(shù)據(jù)上傳至上位機(jī),上位機(jī)將檢測(cè)讀取到數(shù)據(jù),若數(shù)據(jù)正確,則USB 接口通信正常,自檢正確,上位機(jī)可以繼續(xù)下發(fā)命令或數(shù)據(jù),否則切換至PCI總線通信模式;
(2) 讀取命令,確認(rèn)USB通信正常后,若接收到0xEB,進(jìn)入讀取USB接口命令模式,讀取6 B數(shù)據(jù),并將其緩存至48位的緩存寄存器中;
(3) 解析USB命令,D[47:40]表示數(shù)據(jù)是否為有效數(shù)據(jù),D[39:36]為USB工作模式,根據(jù)不同的工作模式,進(jìn)入不同的狀態(tài)。若工作模式為下發(fā)命令,將按照標(biāo)準(zhǔn)協(xié)議將命令信息進(jìn)行重組,并轉(zhuǎn)換為40位的異步串行數(shù)據(jù)并下發(fā)。若工作模式為讀取狀態(tài),讀取32位狀態(tài)信息增加幀頭0x5C,幀尾0x5C至USB并行端口,依次發(fā)送即可。若工作模式為上傳批量數(shù)據(jù),批量數(shù)據(jù)緩存于8 KB FIFO中,當(dāng)FIFO達(dá)到半滿時(shí),在批量數(shù)據(jù)前添加幀頭EBEB和幀尾6F6F,再以字節(jié)為單位依次向上位機(jī)發(fā)送數(shù)據(jù)。
4 實(shí)驗(yàn)結(jié)果
4.1 RS 485信號(hào)測(cè)試結(jié)果
RS 485差分信號(hào)輸出如圖8所示,RS 485標(biāo)準(zhǔn)閾值為±200 mV。對(duì)于RS 485接口芯片而言,時(shí),輸出為“1”;輸出為0。本設(shè)計(jì)中所以輸出信號(hào)是確定的,試驗(yàn)結(jié)果正確。
4.2 PCM信號(hào)測(cè)試結(jié)果
PCM碼流的檢測(cè)還需另一塊數(shù)字量板模擬系統(tǒng)實(shí)現(xiàn)發(fā)送字同步信號(hào)、位同步信號(hào),并將接收到的PCM碼流上傳到上位機(jī)進(jìn)行檢測(cè)。圖9為測(cè)試板發(fā)出的字同步、位同步信號(hào)。
測(cè)試板收到PCM數(shù)據(jù)會(huì)上傳至上位機(jī),上位機(jī)存儲(chǔ)數(shù)據(jù)文件,如圖11所示。此數(shù)據(jù)包設(shè)定模式為遞增數(shù),幀頭、幀尾分別設(shè)為0xEB90,0x146F,幀長(zhǎng)度設(shè)為256 B。
5 結(jié) 語(yǔ)
為了對(duì)抗惡劣環(huán)境的干擾,提高信號(hào)傳輸?shù)目煽啃约巴ㄓ眯裕庀到y(tǒng)等效器采用PCI接口及USB接口雙接口通信設(shè)計(jì),實(shí)現(xiàn)了測(cè)試系統(tǒng)所需全部接口信號(hào)的輸出。雙接口通信解決了單接口掉線系統(tǒng)無(wú)法正常工作的問(wèn)題。等效器采用標(biāo)準(zhǔn)化板卡設(shè)計(jì),增強(qiáng)了可拓展性以及可移植性,為產(chǎn)品升級(jí)及類似產(chǎn)品生產(chǎn)提供了便利,現(xiàn)已成功應(yīng)用于某航天測(cè)量項(xiàng)目中。
參考文獻(xiàn)
[1] 屈建兵.軍用自動(dòng)測(cè)試系統(tǒng)的發(fā)展綜述[J].直升機(jī)技術(shù),2014(1):59?64.
[2] 連恒興.集成多總線接口的外系統(tǒng)等效器設(shè)計(jì)與實(shí)現(xiàn)[D].太原:中北大學(xué),2012.
[3] 陳嫣然,張會(huì)新,鄭燕露.基于PCI9054的通信卡設(shè)計(jì)[J].電視技術(shù),2012,36(5):33?34.
[4] 嚴(yán)發(fā)寶,張京,王能,等.基于FPGA的PCI數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].火力與指揮控制,2012(z1):77?79.
[5] 蘇虎平,沈三民,劉文怡,等.基于USB和FPGA的多功能等效器設(shè)計(jì)[J].電視技術(shù),2012,36(23):50?53.
[6] 易春莉,張彥軍,王瑾琪,等.USB 2.0接口傳輸?shù)腇PGA控制與實(shí)現(xiàn)[J].化工自動(dòng)化及儀表,2011(6):733?735.
[7] 張昊.基于PCI總線的外系統(tǒng)等效器的設(shè)計(jì)與實(shí)現(xiàn)[D].太原:中北大學(xué),2014.
[8] 王輝,陳愛(ài)生.基于FT2232H的USB 2.0數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].電子器件,2015,38(1):33?34.