劉晨暉,任勇峰*,李輝景,王廣才
(1.中北大學(xué),電子測試技術(shù)國家重點實驗室,儀器科學(xué)與動態(tài)測試教育部重點實驗室,太原030051;2.北京導(dǎo)航技術(shù)控制股份有限公司,北京100176)
基于FPGA的多接口PCM傳輸系統(tǒng)的設(shè)計*
劉晨暉1,任勇峰1*,李輝景1,王廣才2
(1.中北大學(xué),電子測試技術(shù)國家重點實驗室,儀器科學(xué)與動態(tài)測試教育部重點實驗室,太原030051;2.北京導(dǎo)航技術(shù)控制股份有限公司,北京100176)
遙測系統(tǒng)中,為解決PCM傳輸系統(tǒng)單一接口通用性不強、應(yīng)用條件局限的問題,設(shè)計了一種以FPGA為控制核心的多接口數(shù)據(jù)傳輸系統(tǒng),該系統(tǒng)通過RS422接口發(fā)送幀同步信號和移位脈沖信號并接收PCM碼,以USB串行接口和PCI并行接口與上位機進行通信,讀取PCM數(shù)據(jù)并分析。設(shè)計中PCI接口采用單次訪問結(jié)合突發(fā)訪問的數(shù)據(jù)傳輸模式,USB采用具有完整協(xié)議的FT245。長期試驗證明:該系統(tǒng)工作穩(wěn)定可靠,數(shù)據(jù)傳輸無誤,通用性強,滿足設(shè)計要求。
遙測系統(tǒng);多接口;PCM傳輸;PCI;USB
遙測系統(tǒng)設(shè)計中,脈沖編碼調(diào)制(PCM)的遙測系統(tǒng)由于其自身的各種優(yōu)點而得到廣泛應(yīng)用,然而由于遙測信息傳輸距離較短,易受干擾,所以將遙測數(shù)據(jù)轉(zhuǎn)化為一種更為可靠的傳輸信號將是一種較好的解決方法。RS422作為一種廣泛使用的傳輸協(xié)議,其可靠性經(jīng)過大量的實際驗證,是極好的替代方式[1-2]。讀取數(shù)據(jù)并分析的接口設(shè)計中,為增強本系統(tǒng)的通用性,集成了一個串行接口和一個并行接口?,F(xiàn)在一般的PC機中都包含2個以上的PCI插槽,而且對于時下流行的PCI-E總線接口,更改相應(yīng)的接口插槽標(biāo)準(zhǔn),便能在PCI-E總線接口上使用。其對PCI總線接口的兼容使得基于PCI總線結(jié)構(gòu)的設(shè)備在以后若干年依然能持續(xù)使用。由于USB接口占用資源少,易于開發(fā)和集成的優(yōu)點,串行接口選用了USB接口,兩種典型的串并接口,使得本系統(tǒng)的適應(yīng)性和靈活性更強,更易于移植和改進。
本傳輸系統(tǒng)通過上位機下發(fā)指令監(jiān)測兩個接口是否正常通信,然后控制RS422接口進行PCM碼接收,并選擇其中一個接口把數(shù)據(jù)回讀到上位機進行分析。系統(tǒng)總體設(shè)計如圖1所示。
圖1 系統(tǒng)總體設(shè)計框圖
本系統(tǒng)主要實現(xiàn)3個功能:(1)通過RS422接口給PCM信號源發(fā)送幀同步信號和移位脈沖信號;(2)通過RS422接收PCM碼;(3)通過PCI或者USB與FPGA通信,并將數(shù)據(jù)回讀給上位機,并對數(shù)據(jù)進行分析。RS422以差動形式進行信息的發(fā)生和接收,不需要以往所采用的數(shù)據(jù)地線,通過兩對雙絞線可以全雙工工作收發(fā)互不影響,同時采用雙端線傳送信號,具有很強的抗干擾能力[3];并行接口總線采用PCI總線,以其獨立于CPU、即插即用、數(shù)據(jù)傳輸率高、功耗低等諸多特點而受到廣泛使用,PCI總線芯片PCI9054技術(shù)成熟,使用便利,與其配合的基于即插即用思想的WDM式驅(qū)動程序,在使用Driverstudio開發(fā)工具時也非常方便,且傳輸速率較快,可達(dá)132 Mbit/s,滿足各項參數(shù)設(shè)計要求,適用于本系統(tǒng)的開發(fā)設(shè)計[4];USB芯片采用FT245RL,F(xiàn)T245RL是具有完整USB協(xié)議的芯片,數(shù)據(jù)傳輸速率可達(dá)1Mbyte/s,而USB接口本身體積小,便于攜帶,便于集成到系統(tǒng)模塊中使用,傳輸性能穩(wěn)定可靠,在數(shù)據(jù)傳輸中扮演著重要的角色。
2.1RS422接口電路設(shè)計
RS422總線的4線接口采用了單獨的發(fā)送和接收通道,因此不必考慮每條走線的數(shù)據(jù)方向,各裝置之間的信號交換均可以按照硬件方式(一對單獨的雙絞線),發(fā)送通道采用ER26C31S芯片,其配置電路如圖2(b),接收通道采用ER26C32S芯片,配置電路如圖2(a),發(fā)送和接收通道相互獨立,具有很強的抗干擾特性。由于ER26C32S輸出的是TTL電平,所以要將輸出的4路電平經(jīng)74LVC4245A電平轉(zhuǎn)換芯片將TTL電平轉(zhuǎn)換為CMOS電平以后與FPGA進行通信,配置電路如圖2(c)。
2.2PCI接口電路設(shè)計
PCI接口選用PLX公司的PCI9054芯片,PCI9054的本地總線端共有3種不同的本地總線接口類型,分別為,M模式、C模式、J模式,分別適合于不同的本地總線邏輯控制端。C模式數(shù)據(jù)線與地址線分開使用,適合有本地端主設(shè)備的情形。而本采集系統(tǒng)的PCI采集板卡具有本地邏輯控制主設(shè)備,則使用C模式。PCI9054支持握手信號控制、中斷產(chǎn)生控制,握手信號實現(xiàn)控制信號觸發(fā)相應(yīng)的功能控制,而中斷信號產(chǎn)生控制則很好的切合了計算機內(nèi)部的各模塊的管理控制[5]。這樣可以實現(xiàn)采集板卡與上位機的有效通信,而不會額外占用電腦的CPU等資源。圖3為PCI9054進行目標(biāo)設(shè)備I/O讀寫時的結(jié)構(gòu)圖,3(a)為讀結(jié)構(gòu)圖,3(b)為寫結(jié)構(gòu)圖。每個圖中的左半部分為PCI9054與PCI局部總線的交互,右半部分為PCI9054與FPGA之間的交互,右半部分包含的控制線、地址線及數(shù)據(jù)線就是進行I/O操作時需要在FPGA內(nèi)進行的接口設(shè)計[6]。
圖2 RS422接口配置電路
圖3 PCI9054目標(biāo)設(shè)備I/O讀寫結(jié)構(gòu)圖
2.3USB接口電路設(shè)計
普通的USB接口雖然通信速度快,但接口電路復(fù)雜,且底層驅(qū)動程序不易編寫.為了保證接口的數(shù)據(jù)傳輸速率,并能避免常規(guī)USB接口設(shè)計的復(fù)雜性,選擇了FTDI公司的FT245RL USB接口芯片。FT245RL是與并行FIFO雙向數(shù)據(jù)傳輸?shù)腢SB獨立芯片,是完整的USB協(xié)議處理芯片,不需具體的USB固件編程,可以實現(xiàn)USB和FIFO并行接口之間的數(shù)據(jù)雙向轉(zhuǎn)換。它128B的FIFO發(fā)送緩沖區(qū)和256 byte的FIFO接收緩沖器能夠?qū)崿F(xiàn)高數(shù)據(jù)吞吐量,且操作電流低,功耗低[7]。FT245提供了VCP 和D2XX兩種驅(qū)動程序,設(shè)計選用D2XX作為USB接口的設(shè)備驅(qū)動程序,編寫程序時,只需要調(diào)用FTD2XX.DLL中的函數(shù)即可實現(xiàn)對FT245的讀寫。FT245RL通過8 bit并行數(shù)據(jù)口AD[7:0]和4個讀寫狀態(tài),控制口RXF、TXE、RD、WR與微控制器進行數(shù)據(jù)傳輸,硬件電路設(shè)計如圖4所示,為了防止信號受到干擾,在USBDM和USBDP接口加一個EMC元件TDK的共模電感(共模濾波器)ACM-2012-900。
圖4 USB接口電路
控制單元FPGA以XILINX公司的ISE13.2作為開發(fā)環(huán)境,使用VHDL語言進行編寫,可開發(fā)性高。FPGA與PCI9054端的接口通信功能為:上位機控制字下傳(PCI至本地端)、采集器中斷申請上傳、采集器的采集數(shù)據(jù)上傳(本地端至PCI端)。其中上位機控制字下傳與采集數(shù)據(jù)上傳均是采用DMA數(shù)據(jù)傳輸方式。DMA數(shù)據(jù)傳輸控制,是在驅(qū)動程序中通過設(shè)置PCI9054與DMA數(shù)據(jù)傳輸相關(guān)的寄存器實現(xiàn)的。FPGA與PCI9054的通信的VH?DL程序流程圖如圖5(a)所示。
圖5 PCI接口和USB接口的VHDL流程圖
FPGA與FT245RL通信實現(xiàn)的功能主要是下發(fā)指令和回傳數(shù)據(jù):上位機下發(fā)命令字,F(xiàn)T245RL通過RXF、WR信號的控制,將串行命令字通過內(nèi)部的SIE轉(zhuǎn)換成8位并行數(shù)據(jù)寫到FT245RL的發(fā)送緩沖區(qū),發(fā)送給FPGA,由FPGA根據(jù)指令執(zhí)行相關(guān)操作;FPGA采集到PCM數(shù)據(jù)后,先將數(shù)據(jù)寫到FT245RL接收緩沖區(qū),然后通過SIE將并行數(shù)據(jù)轉(zhuǎn)換為串行差分信號上傳給上位機,這個過程通過TXE、RD兩個信號來控制[8]。FT245RL的工作方式是單工,因此需要通過一個三態(tài)門來控制雙向端口的輸入與輸出,即OE為1時,雙向端口只能作為輸入端口,接收指令;OE為0時,雙向端口只能作為輸出端口,回傳數(shù)據(jù)給上位機。FT245的讀寫程序流程圖如圖5(b)所示。此外,主程序中還包括信號RS422發(fā)送和接收模塊、消抖模塊、數(shù)據(jù)采集模塊等。
本文設(shè)計的多接口PCM數(shù)據(jù)傳輸系統(tǒng),目的是將RS422接口接收的PCM碼通過USB接口或者PCI接口上傳給上位機,并對數(shù)據(jù)進行分析。在調(diào)試過程中,為了測試相關(guān)功能我們做了一塊模擬PCM信號源的發(fā)射系統(tǒng),信號源接收移位脈沖和幀同步信號,發(fā)送由設(shè)計人員自定的數(shù)據(jù)格式。在本系統(tǒng)接收數(shù)據(jù)并上傳給上位機后用UltraEdit打開并對數(shù)據(jù)分析,經(jīng)過長期試驗證明,本系統(tǒng)讀取數(shù)據(jù)穩(wěn)定可靠,沒有丟幀及誤碼現(xiàn)象,滿足了設(shè)計要求。數(shù)據(jù)格式如圖6所示。
航天系統(tǒng)中遙測數(shù)據(jù)的采集與分析是必不可少的環(huán)節(jié),本系統(tǒng)實現(xiàn)了PCM采集與上傳分析的硬件設(shè)計,并通過ISE進行了軟件設(shè)計,實現(xiàn)了多接口數(shù)據(jù)傳輸?shù)倪壿嫊r序控制,系統(tǒng)同時集成了PCI并行接口和USB串行接口,并通過RS422接口進行PCM通信,使得本系統(tǒng)的通用性更強,應(yīng)用范圍得到進一步拓展。
[1]肖揚彪.基于FPGA的PCM遙測采編器的設(shè)計與實現(xiàn)[D].南昌:南昌大學(xué),2013.
[2]馬睿,張會新,翟成瑞.一種新型遙測模擬測試系統(tǒng)的設(shè)計與實現(xiàn)[J].電子器件,2015,38(1):160-165.
[3]彭濤,劉亞斌.高速并行遙測數(shù)據(jù)轉(zhuǎn)RS422長線傳輸?shù)脑O(shè)計[J].電子設(shè)計工程,2013,21(22):49-51.
[4]董海蘭,康懷祺,鐘午.基于FPGA的多接口高速PCI傳輸系統(tǒng)設(shè)計[J].火控雷達(dá)技術(shù),2012,41(4):43-47.
[5]張丹紅,張孝勇,劉文,等.基于PCI9054的數(shù)據(jù)通信接口卡設(shè)計[J].武漢理工大學(xué)學(xué)報,2013,35(3):49-54
[6]張會新,陳嫣然,鄭燕露.基于PCI9054的通信卡設(shè)計[J].電視技術(shù),2012,36(5):33-34.
[7]張會新,凌偉,馬志剛,等.一種新型GPS實時定位系統(tǒng)的設(shè)計[J].電子器件,2014,37(6):1204-1208.
[8]刁兆奎,張鵬飛,熊繼軍,等.基于FT245BM的數(shù)據(jù)采集系統(tǒng)設(shè)計[J].測試技術(shù)學(xué)報,2011,25(2):163-167.
劉晨暉(1991-),男,漢族,現(xiàn)為中北大學(xué)在讀碩士研究生,研究方向為動態(tài)測試技術(shù);
任勇峰(1968-),男,漢族,教授,博士生導(dǎo)師,主要研究方向為微電路系統(tǒng),動態(tài)測試技術(shù)與儀器。
Multi-Interface PCM Transmission System Design Based on FPGA*
LIU Chenhui1,REN Yongfeng1*,LI Huijing1,WANG Guangcai2
(1.North University of China,National Key Laboratory For Electronic Measurement Technology,Key Laboratory of Instrumentation Science&Dynamic Measurement,Ministry of Education,Taiyuan 030051,China;2.North Navigation Control Technology Co.Ltd,Beijing 100176,China)
In telemetry systems,in order to solve the problems that single-interface test system is not universal,and the application conditions are limited comparatively,a multi-interface data transmission system using FPGA as control core was designed.The system transmits frame synchronization signals and the shift pulse signals through the RS422 interface meanwhile receiving PCM code,communicates with the host computer by serial inter?face USB and parallel interface PCI,and then read PCM data and analysis.PCI interface using a single access combined with burst access data transfer mode,USB interface adopts the FT245 with integrated agreement.The long-term tests prove that the system work stably and transmitted reliably with good genarality,which meets the re?quirements of design.
telemetry systems;multi-interface;PCM transmission;PCI;USB
TP274.2
A
1005-9490(2016)02-0324-05
EEACC:6210J;7210B10.3969/j.issn.1005-9490.2016.02.016
項目來源:國家杰出青年科學(xué)基金項目(51425505)
2015-06-07修改日期:2015-07-10