王 闖,任勇峰,李輝景(中北大學(xué)儀器科學(xué)與動態(tài)測試教育部重點實驗室,電子測試技術(shù)重點實驗室,太原030051)
遙測PCM數(shù)據(jù)收發(fā)接口模塊設(shè)計
王闖,任勇峰*,李輝景
(中北大學(xué)儀器科學(xué)與動態(tài)測試教育部重點實驗室,電子測試技術(shù)重點實驗室,太原030051)
為了實現(xiàn)無線遙測PCM數(shù)據(jù)的備份,設(shè)計了基于FPGA的PCM數(shù)據(jù)收發(fā)接口模塊。該模塊包括RS-422命令下發(fā)接口、PCM碼接收接口、LVDS數(shù)據(jù)回收接口和與存儲器數(shù)據(jù)交換接口。配合單元測試設(shè)備和存儲器,通過上位機軟件對回收數(shù)據(jù)進行解包分析,用以檢驗接收到的PCM碼的誤碼與丟幀,判斷設(shè)備的工作情況。該模塊采用獨立幀結(jié)構(gòu),PCM數(shù)據(jù)完全由后續(xù)上位機處理,因而具有極強的通用性。經(jīng)過反復(fù)測試驗證了數(shù)據(jù)收發(fā)接口模塊工作的可靠性與設(shè)計的合理性。
無線遙測;通用;獨立幀結(jié)構(gòu);PCM;FPGA
在飛行器的研制試飛試驗中,常常需要通過遙測的方法來獲取系統(tǒng)內(nèi)部設(shè)備的一些關(guān)鍵參數(shù)[1]。由于遙測系統(tǒng)工作的可靠性問題,需要對遙測數(shù)據(jù)進行備份。
針對需要獲取的數(shù)據(jù)包含的信息量多,為了方便的解包出原始數(shù)據(jù),減小硬件消耗,使用PCM(脈沖編碼調(diào)制)就顯示出其優(yōu)越性。PCM就是對一個連續(xù)的模擬信號進行采樣、量化,成為離散的數(shù)字信號。將數(shù)字信號按一定幀格式編碼,送入信道傳輸。為了保證回收后的數(shù)據(jù)能夠正確地解包還原出原始模擬信號,需要在每一幀數(shù)據(jù)當(dāng)中插入幀同步碼,作為一幀數(shù)據(jù)的起始或結(jié)尾[2]。
PCM數(shù)據(jù)收發(fā)接口模塊作為遙測PCM數(shù)據(jù)備份的通信接口,可以接收PCM數(shù)據(jù)并發(fā)往存儲設(shè)備,并在單元測試時,讀取存儲數(shù)據(jù)發(fā)送給單元測試設(shè)備。PCM數(shù)據(jù)收發(fā)接口作為該系統(tǒng)的重要組成部分,包括RS-422命令下發(fā)接口、PCM碼接收接口、LVDS數(shù)據(jù)回收接口和與存儲器數(shù)據(jù)交換接口。單元測試設(shè)備接收上位機通過USB總線下發(fā)的命令,將命令發(fā)送給數(shù)據(jù)收發(fā)接口模塊,同時模擬PCM碼信源產(chǎn)生PCM碼流,通過RS-422接口發(fā)送給數(shù)據(jù)收發(fā)接口模塊;數(shù)據(jù)收發(fā)接口模塊響應(yīng)命令,接收數(shù)據(jù)并轉(zhuǎn)存到存儲模塊,或者讀取存儲數(shù)據(jù)并通過LVDS接口發(fā)送給單元測試設(shè)備;單元測試設(shè)備將回收數(shù)據(jù)經(jīng)USB總線發(fā)送給上位機,通過上位機獲取數(shù)據(jù)并分析,可以檢驗PCM數(shù)據(jù)傳輸?shù)目煽啃???傮w框圖如圖1所示。
圖1 系統(tǒng)總體框圖
硬件系統(tǒng)使用FPGA作為中心邏輯控制器,完成PCM信號的接收和數(shù)據(jù)存儲、回收的功能。
2.1PCM數(shù)據(jù)接收接口設(shè)計
PCM數(shù)據(jù)接收使用高速光耦進行數(shù)據(jù)解碼譯出及電氣隔離,接口電路如圖2所示。選用仙童半導(dǎo)體的 FODM8071,速度達到 20 Mbit/s,且對共模干擾具有很好的抑制作用。當(dāng)光耦合器輸入端發(fā)光二極管的陽極對陰極的壓差達到其正向?qū)▔航担ǖ湫椭?.35 V),發(fā)光二極管導(dǎo)通,輸出端光敏三極管接受光照后導(dǎo)通,將輸出(5腳)拉低到地;當(dāng)光耦合器輸入端發(fā)光二極管的陽極對陰極的壓差未達到使發(fā)光二極管導(dǎo)通的閾值電壓,輸出端光敏三極管關(guān)斷,將輸出(5腳)拉高到3.3 V。即PCM數(shù)據(jù)接收為反相接收。
圖2 PCM數(shù)據(jù)接收接口電路
光耦合器傳輸信號是經(jīng)過電-光-電轉(zhuǎn)化來實現(xiàn)的,輸入、輸出端電路沒有直接的電氣連接,從而避免了輸入信號帶來的干擾影響內(nèi)部電路的正常工作。同時由于其為電流傳輸型器件,可以有效地消除傳輸線上串?dāng)_對于數(shù)據(jù)傳輸?shù)挠绊懀?]。
2.2命令接收接口設(shè)計
數(shù)據(jù)收發(fā)接口模塊需要響應(yīng)命令,并進行相對應(yīng)的操作。使用RS-422接口來接收命令,電路原理圖如圖3所示。使用差分線可以消除共模干擾,但是對于印制電路板設(shè)計提出了以下幾點要求:(1)兩根差分線保持等長,以減小信號傳輸?shù)难訒r差;(2)差分線對之間保持等距,保證差分阻抗的連續(xù)性,減少反射;(3)印制電路板的疊層設(shè)計要合理,差分線保持在同一地平面上,避免跨地平面布線,引入干擾[4]。
圖3 命令接收接口電路
DS26C32差分線端接1個100Ω電阻,這是因為差分線作為傳輸線,其末端電壓為源端向負(fù)載傳輸?shù)碾妷号c負(fù)載反射的疊加。為了消除反射,要求負(fù)載阻抗等于傳輸線的特性阻抗。而差分線的特性阻抗一般控制在100Ω左右,故在靠近 DS26C32末端的差分線上跨接一個100Ω電阻,以保證差分線末端電壓完全降落在電阻兩側(cè)[5-6]。
2.3LVDS數(shù)據(jù)回收接口設(shè)計
數(shù)據(jù)回收使用SN65LV1023A作為差分驅(qū)動芯片,將并行的 10 bit數(shù)據(jù)差分化。SN65 LV1023A是數(shù)據(jù)位寬 10 bit,外部時鐘頻率為10MHz~66 MHz的LVDS并串轉(zhuǎn)化器,數(shù)據(jù)傳輸速率達到100 Mbps~660 Mbps。針對LVDS驅(qū)動能力不足的缺點,使用串行數(shù)據(jù)電纜驅(qū)動器CLC001作為LVDS數(shù)據(jù)的輸出驅(qū)動芯片。原理圖如圖4所示。
SN65LV1023A輸出驅(qū)動為約3.5mA的恒定電流源,在靠近CLC001輸入端跨接一個100Ω電阻,電阻兩側(cè)形成±350mV電壓,以作為傳輸線路高低邏輯的判斷。CLC001輸出源端端接49.9Ω電阻,主要作用是消除末端反射。105電容用以隔離CLC001差分線上約800mV~1000mV直流電壓分量。
圖4 數(shù)據(jù)回收接口電路
2.4與存儲器數(shù)據(jù)交換接口設(shè)計
使用并行總線分時復(fù)用的方式來進行數(shù)據(jù)的存儲及回收,節(jié)約了數(shù)據(jù)線,減少了硬件消耗。在進行數(shù)據(jù)存儲時,發(fā)送相關(guān)指令跟數(shù)據(jù);在數(shù)據(jù)回收時,接收存儲器數(shù)據(jù)跟返回存儲器當(dāng)前工作地址。
中心邏輯控制器FPGA被動接收PCM數(shù)據(jù),控制Flash讀寫,響應(yīng)單元測試設(shè)備下發(fā)的命令并回傳數(shù)據(jù),其程序原理框圖如圖5所示。
圖5 FPGA程序原理框圖
3.1PCM接收模塊
單元測試設(shè)備發(fā)送的模擬遙測PCM碼流采用同步時鐘方式,既有PCM數(shù)據(jù)流,也有同步采樣時鐘,傳輸速率為10 Mbit/s。由于碼元數(shù)據(jù)同步于時鐘的上升沿,故使用時鐘下降沿進行解碼。PCM數(shù)據(jù)接收時采用一個8 bit的寄存器,在每一個PCM時鐘下降沿依次移入一位數(shù)據(jù),完成8 bit數(shù)據(jù)的接收后,發(fā)送給4K異步FIFO,判斷FIFO半滿之后,從FIFO取數(shù)并進行后續(xù)的轉(zhuǎn)存處理[7],PCM數(shù)據(jù)接收接口模塊的工作時序如圖6所示。
圖6 PCM數(shù)據(jù)接收接口模塊程序原理圖
異步FIFO的引入,使跨時鐘域的通信變得更加有效和可靠。上電配置后即使能FIFO,發(fā)送寫FIFO時鐘(上升沿),即將寄存器當(dāng)中8 bit數(shù)據(jù)寫入FIFO低地址(由“000000000000”開始);每當(dāng)寫完8 bit數(shù)據(jù),寫地址加1。由于FIFO異步的特點,需要判斷FIFO中是否有數(shù)據(jù),引入FIFO半滿信號(half=寫 FIFO地址-讀 FIFO地址),僅當(dāng)half>2 K時,才開始從當(dāng)前讀FIFO地址開始取數(shù);否則等待。同時為了避免寫FIFO的速度太快而覆蓋之前的數(shù)據(jù),要求讀FIFO的速度要比寫FIFO的速度快。
3.2LVDS-422控制模塊
該模塊接收單元測試設(shè)備包括復(fù)位、記錄、讀數(shù)、停止讀數(shù)、請求有效、請求無效等命令,為了保證命令的可靠響應(yīng),按表1所示的幀結(jié)構(gòu)校對命令,通過依次判斷幀頭、命令長度、命令高低位交換兩次判定、校驗兩次命令累加和,有效地防止了因為命令錯誤響應(yīng)而造成的設(shè)備工作狀態(tài)混亂[8]。
表1 命令幀結(jié)構(gòu)
在接收到讀數(shù)控制命令時,根據(jù)對FIFO半滿信號的判斷來讀取FIFO當(dāng)中的數(shù)據(jù)。以TCLK的上升沿作為一次并行數(shù)據(jù)發(fā)送的標(biāo)志。
3.3M em接口模塊
Mem接口模塊響應(yīng)記錄命令,接收來自FIFO 的PCM數(shù)據(jù),將數(shù)據(jù)通過數(shù)據(jù)總線發(fā)送給存儲模塊;響應(yīng)讀數(shù)命令,接收來自存儲模塊的數(shù)據(jù),將數(shù)據(jù)發(fā)送給LVDS-422控制模塊的FIFO。
幀同步的作用是通過對數(shù)據(jù)進行位同步、字同步、幀同步,以解包出原始數(shù)據(jù)。幀同步的方法一般是通過在數(shù)據(jù)序列中加入幀同步碼的方式來實現(xiàn)的[9]。
單元測試時,單元測試設(shè)備發(fā)送遞增數(shù)或遞減數(shù),PCM碼流與采樣時鐘從第1個時鐘即同步傳輸,且在時鐘下降沿按位接收,并以每8 bit數(shù)據(jù)為一個字節(jié)轉(zhuǎn)存,故其幀結(jié)構(gòu)始終是同步的,數(shù)據(jù)遞增幀格式如表2所示。
接收遙測PCM時,為了適應(yīng)不同幀格式PCM數(shù)據(jù)接收的要求,數(shù)據(jù)收發(fā)接口模塊不進行幀同步的判斷,而以上電配置完成后接收到的第1個時鐘下降沿所對應(yīng)的數(shù)據(jù)作為PCM數(shù)據(jù)的起始,并仍然按表2所示的幀格式轉(zhuǎn)存。硬回收后,回讀數(shù)據(jù)到上位機,根據(jù)數(shù)據(jù)收發(fā)接口模塊的幀格式,可以解包出原有的遙測PCM數(shù)據(jù)。使用這種方式各種幀格式的遙測PCM數(shù)據(jù)均可以正常收發(fā),后續(xù)僅需要修改上位機軟件對于遙測PCM數(shù)據(jù)幀同步碼的判斷邏輯,就可適用于新的幀結(jié)構(gòu),這極大地提高了設(shè)備通用性。
表2 PCM數(shù)據(jù)遞增幀格式
使用單元測試設(shè)備來模擬這種情況。如圖7(a)所示為沒有進行幀同步的遞減數(shù)據(jù),通過上位機軟件對數(shù)據(jù)依次移位(循環(huán)左移或右移)來搜索數(shù)據(jù)碼流當(dāng)中的幀同步碼“1110101110010000”(EB、90)。采用多次判定的方法,即搜索到幀同步碼之后,在后面一幀同樣位置檢測是否為該幀同步碼,經(jīng)過3到5次的判斷,可以提高數(shù)據(jù)還原出來的準(zhǔn)確性。如圖7(b)所示,為將接收到的數(shù)據(jù)左移2 bit,得到的還原之后的數(shù)據(jù)。
圖7 數(shù)據(jù)還原
為了驗證該接口模塊工作的可靠性,使用單元測試設(shè)備對其進行反復(fù)測試。對回收之后的PCM數(shù)據(jù)經(jīng)上位機軟件顯示后如圖8所示,EB、90即為幀同步碼,在其之前 4 byte數(shù)據(jù)為幀計數(shù),每幀數(shù)據(jù)從00遞增至F9,沒有誤碼和丟幀,且與單元測試設(shè)備發(fā)送的數(shù)據(jù)幀格式一致。
圖8 解碼接收數(shù)據(jù)
該PCM數(shù)據(jù)收發(fā)接口模塊,整體滿足設(shè)計要求,實現(xiàn)接收遙測系統(tǒng)以10 Mbit/s速率發(fā)送的PCM數(shù)據(jù),并在硬回收后獲取數(shù)據(jù);能夠配合單元測試設(shè)備及存儲器,完成對設(shè)備工作狀況的檢驗。該設(shè)計方案能夠適應(yīng)不同幀格式PCM數(shù)據(jù)備份的需求,具有極大的可移植性,對其它PCM數(shù)據(jù)回收設(shè)備的設(shè)計也具有一定的參考價值。
[1] 張鵬,陳鴻,武錦輝.基于FPGA的PCM碼收發(fā)模塊設(shè)計[J].計算機與數(shù)字工程,2011,39(7):190-192.
[2] 夏利利,劉冰,周江,等.PCM遙測幀同步技術(shù)性能分析[J].電訊技術(shù),2014,54(6):803-807.
[3] 李丹榮,王新第,杜維.光電耦合器的實用技巧[J].自動化儀表,2003,24(6):58-61.
[4] 吳健,孔德升.高速數(shù)據(jù)采集卡的信號完整性分析[J].儀表技術(shù)與傳感器,2013(12):93-96.
[5] 張婧.高速數(shù)字電路信號完整性仿真設(shè)計與驗證[D].西安:西安電子科技大學(xué),2012.
[6] 羅映紅,張博.傳輸線端接阻抗對線間串?dāng)_的影響研究[J].鄭州大學(xué)學(xué)報(工學(xué)版),2009,30(4):120-122,127.
[7] 裴向東,陳簫,譚秋林,等.基于USB-FIFO的FPGA與上位機通信的設(shè)計與實現(xiàn)[J].計算機測量與控制,2012,20(4):1073-1075.
[8] 周濤,李輝景,任勇峰,等.長線422高速傳輸中的收發(fā)模塊設(shè)計[J].科學(xué)技術(shù)與工程,2014,14(35):68-71.
[9] 甄國涌,林華亮.串行PCM碼流解碼電路設(shè)計與應(yīng)用[J].航空計算技術(shù),2005,35(1):79-81.
王闖(1990-),男,漢族,四川南充人,中北大學(xué),碩士研究生,主要研究方向為嵌入式電子電路系統(tǒng),wangchuangqq123@ 163.com;
任勇峰(1968-),男,漢族,山西中陽人,中北大學(xué),教授,博士研究生導(dǎo)師,主要研究方向為微電路系統(tǒng)、電路系統(tǒng)檢測與診斷技術(shù),renyongfeng@nuc.edu.cn。
Design of Telemetry PCM Data Transceiver Interface Module
WANG Chuang,REN Yongfeng*,LI Huijing
(Key Laboratory of Instrumentation Science&Dynamic Measuremen(tNorth Uniυersity of China),Ministry ofEducation;Scienceand Technology on Electronic Testand Measurement Laboratory,Taiyuan 030051,China)
In order to achieve the backup ofwireless telemetry PCM data,a PCM data transceiver interfacemodule is designed based on FPGA.Thismodule includes a sending command interface using RS-422,a receiving interface of PCM code,a data receiving interface using LVDS and a data exchange interface with the storage device. Workingwith the unit testequipmentand storage device,it can be used to check out the biterror and the lost frame of the
PCM code to judge theworking condition of the equipment through using the host computer software to unpack and analyze the recycling data.Thismodule uses independent frame structure.All the PCM data is dealt with the host computer,thus ithas strong generality.Through repeated test,itverifies theworking reliability and design rationality of the data transceiver interfacemodule.
wireless telemetry;generality;independent frame structure;PCM;FPGA
TN914
A
1005-9490(2016)04-0861-05
2015-09-15修改日期:2015-10-26
EEACC:7210G10.3969/j.issn.1005-9490.2016.04.022