數(shù)據(jù)傳輸就是依照適當(dāng)?shù)囊?guī)程,經(jīng)過(guò)一條或多條鏈路,在數(shù)據(jù)源和數(shù)據(jù)宿之間傳送數(shù)據(jù)的過(guò)程。也表示借助信道上的信號(hào)將數(shù)據(jù)從一處送往另一處的操作?;?a href="http://wenjunhu.com/v/tag/785/" target="_blank">labviewFPGA數(shù)據(jù)傳輸技術(shù)是基于網(wǎng)絡(luò)傳輸?shù)囊环N,它具有TCP傳輸和UDP傳輸兩種方式,為了保證傳輸過(guò)程中不產(chǎn)生數(shù)據(jù)丟失,本文通過(guò)重新構(gòu)造數(shù)據(jù)類型并通過(guò)打包與接包的方式進(jìn)行數(shù)據(jù)交換,保證了數(shù)據(jù)在高速采樣條件下的連續(xù)性與穩(wěn)定性,為底層FPGA硬件向上位機(jī)數(shù)據(jù)交換提供了一種嶄新的模式。
西安某汽車電子有限公司生產(chǎn)的XLM油泵支架產(chǎn)品功能測(cè)試臺(tái)設(shè)計(jì)中,有一項(xiàng)針對(duì)高度阻值(TSG)的功能測(cè)試。該測(cè)試內(nèi)容要求阻值電壓采樣與液位高度進(jìn)行一一對(duì)應(yīng)。使用傳統(tǒng)的采集方式難以保證采集的可靠性?;柙撛O(shè)計(jì)要求,本文提出了一種采用LabviewFPGA的數(shù)據(jù)傳輸技術(shù),該技術(shù)能夠在高速采樣的前提下確保數(shù)據(jù)傳輸?shù)姆€(wěn)定性與可靠性。
2.?dāng)?shù)據(jù)傳輸
數(shù)據(jù)傳輸技術(shù)主要用于多機(jī)通信領(lǐng)域,一般在數(shù)據(jù)交換過(guò)程中,為保證數(shù)據(jù)的穩(wěn)定可靠傳輸而制定的特殊傳送規(guī)則。其傳輸過(guò)程也根據(jù)傳輸?shù)奈锢斫橘|(zhì)而不同。具體而言可分為以下幾種:
1.1 基帶、頻帶和數(shù)字?jǐn)?shù)據(jù)傳輸
①基帶傳輸是指由數(shù)據(jù)終端設(shè)備(DTE)送出的二進(jìn)制“1”數(shù)據(jù)傳輸或“0”的電信號(hào)直接送到電路的傳輸方式?;鶐盘?hào)未經(jīng)調(diào)制,可以經(jīng)過(guò)碼形變換(或波形變換)進(jìn)行驅(qū)動(dòng)后直接傳輸。
②大多數(shù)傳輸信道是帶通型特性,基帶信號(hào)通不過(guò)。采用調(diào)制方法把基帶信號(hào)調(diào)制到信道帶寬范圍內(nèi)進(jìn)行傳輸,接收端通過(guò)解調(diào)方法再還原出基帶信號(hào)的方式,稱為頻帶傳輸。
③數(shù)字?jǐn)?shù)據(jù)傳輸是利用數(shù)字話路傳輸數(shù)據(jù)信號(hào)的一種方式。
1.2 并行傳輸與串行傳輸
①并行傳輸是構(gòu)成字符的二進(jìn)制代碼在并行信道上同時(shí)傳輸?shù)姆绞健?/p>
②串行傳輸是構(gòu)成字符的二進(jìn)制代碼在一條信道上以位(碼元)為單位,按時(shí)間順序逐位傳輸?shù)姆绞?。速度雖慢,但只需一條傳輸信道,投資小,易于實(shí)現(xiàn),是數(shù)據(jù)傳輸采用的主要傳輸方式。也是目前計(jì)算機(jī)通信采取的一種主要方式。
1.3 異步傳輸和同步傳輸
①異步傳輸是字符同步傳輸?shù)姆绞?。?dāng)發(fā)送一個(gè)字符代碼時(shí),字符前面要加一個(gè)“起”信號(hào),長(zhǎng)度為1個(gè)碼元寬,極性為“0”,即空號(hào)極性;而在發(fā)完一個(gè)字符后面加一個(gè)“止”信號(hào),長(zhǎng)度為1,1.5或2個(gè)碼元寬,極性為“1”,即傳號(hào)極性。接收端通過(guò)檢測(cè)起、止信號(hào),即可區(qū)分出所傳輸?shù)淖址W址梢赃B續(xù)發(fā)送,也可單獨(dú)發(fā)送,不發(fā)送字符時(shí),連續(xù)發(fā)送停止信號(hào)。
②同步傳輸是位(碼元)同步傳輸方式。該方式必須在收、發(fā)雙方建立精確的位定時(shí)信號(hào),以便正確區(qū)分每位數(shù)據(jù)信號(hào)。在傳輸中,數(shù)據(jù)要分成組(或稱幀),一幀含多個(gè)字符代碼或多個(gè)獨(dú)立碼元。在發(fā)送數(shù)據(jù)前,在每幀開(kāi)始必須加上規(guī)定的幀同步碼元序列,接收端檢測(cè)出該序列標(biāo)志后,確定幀的開(kāi)始,建立雙方同步。接收端DCE從接收序列中提取位定時(shí)信號(hào),從而達(dá)到位(碼元)同步。
1.4 單工、半雙工和全雙工傳輸
單工傳輸指數(shù)據(jù)只能按單一方向發(fā)送和接收;半雙工傳輸指數(shù)據(jù)可以在兩個(gè)方向傳輸?shù)荒芡瑫r(shí)進(jìn)行,即交替收、發(fā);全雙工傳輸指數(shù)據(jù)可以在兩個(gè)方向同時(shí)傳輸,即同時(shí)收和發(fā)。一般四線線路為全雙工數(shù)據(jù)傳輸,二線線路可實(shí)現(xiàn)全雙工數(shù)據(jù)傳輸。
3.復(fù)用技術(shù)
復(fù)用技術(shù)是指一種在傳輸路徑上綜合多路信道,然后恢復(fù)原機(jī)制或解除終端各信道復(fù)用技術(shù)的過(guò)程,主要包括以下幾種:
頻分復(fù)用(FDM) ― 載波帶寬被劃分為多種不同頻帶的子信道,每個(gè)子信道可以并行傳送一路信號(hào)。FDM 用于模擬傳輸過(guò)程。
時(shí)分復(fù)用(TDM) ― 在交互時(shí)間間隔內(nèi)在同一信道上傳送多路信號(hào)。TDM 廣泛用于數(shù)字傳輸過(guò)程。
碼分復(fù)用(CDM) ― 每個(gè)信道作為編碼信道實(shí)現(xiàn)位傳輸(特定脈沖序列)。這種編碼傳輸方式通過(guò)傳輸唯一的時(shí)間系列短脈沖完成,但在較長(zhǎng)的位時(shí)間中則采用時(shí)間片斷替代。每個(gè)信道,都有各自的代碼,并可以在同一光纖上進(jìn)行傳輸以及異步解除復(fù)用。
波分復(fù)用(WDM) ― 在一根光纖上使用不同的波長(zhǎng)同時(shí)傳送多路光波信號(hào)。WDM 用于光纖信道。WDM 與 FDM 基于相同原理但是它應(yīng)用于光纖信道上的光波傳輸過(guò)程。
粗波分復(fù)用(CWDM) - WDM 的擴(kuò)張。每根光纖傳送4到8種波長(zhǎng),甚至更多。應(yīng)用于中型網(wǎng)絡(luò)系統(tǒng)(區(qū)域或城域網(wǎng))。
密集型波分復(fù)用(DWDM) - WDM 的擴(kuò)展。典型的 DWDM 系統(tǒng)支持8種或以上波長(zhǎng)。顯現(xiàn)系統(tǒng)支持上百種波長(zhǎng)。?
在數(shù)據(jù)通信中,復(fù)用技術(shù)的使用極大地提高了信道的傳輸效率,取得了廣泛地應(yīng)用。多路復(fù)用技術(shù)就是在發(fā)送端將多路信號(hào)進(jìn)行組合,然后在一條專用的物理信道上實(shí)現(xiàn)傳輸,接收端再將復(fù)合信號(hào)分離出來(lái)。多路復(fù)用技術(shù)主要分為兩大類:頻分多路復(fù)用(簡(jiǎn)稱頻分復(fù)用)和時(shí)分多路復(fù)用(簡(jiǎn)稱時(shí)分復(fù)用),波分復(fù)用和統(tǒng)計(jì)復(fù)用本質(zhì)上也屬于這兩種復(fù)用技術(shù)。另外還有一些其他的復(fù)用技術(shù),如碼分復(fù)用、極化波復(fù)用和空分復(fù)用等。
4. 基于網(wǎng)絡(luò)的傳輸
基于網(wǎng)絡(luò)的傳輸一般分為TCP/IP傳輸與UDP傳輸兩種。
UDP是一個(gè)簡(jiǎn)單的面向數(shù)據(jù)報(bào)的運(yùn)輸層協(xié)議:進(jìn)程的每個(gè)輸出操作都正好產(chǎn)生一個(gè)UDP數(shù)據(jù)報(bào),并組裝成一份待發(fā)送的IP數(shù)據(jù)報(bào)。UDP數(shù)據(jù)報(bào)封裝成一份IP數(shù)據(jù)報(bào)的格式如圖1所示:?
圖1? ?UDP數(shù)據(jù)格式
UDP不提供可靠性連接:它把應(yīng)用程序傳給IP層的數(shù)據(jù)發(fā)送出去,但是并不保證它們能到達(dá)目的地。
TCP和UDP都使用相同的網(wǎng)絡(luò)層(IP)。TCP提供了一種可靠的面向連接的字節(jié)流運(yùn)輸層服務(wù)。如圖2所示:
圖2? TCP數(shù)據(jù)格式
TCP向應(yīng)用層提供與UDP完全不同的服務(wù)。TCP提供一種面向連接的、可靠的字節(jié)流服務(wù)。TCP將用戶數(shù)據(jù)打包構(gòu)成報(bào)文段;它發(fā)送數(shù)據(jù)后啟動(dòng)一個(gè)定時(shí)器,等待對(duì)端數(shù)據(jù)確認(rèn);另一端對(duì)收到的數(shù)據(jù)進(jìn)行確認(rèn),對(duì)失序的數(shù)據(jù)重新排序,丟棄重復(fù)數(shù)據(jù);TCP提供端到端的流量控制,并加以計(jì)算和驗(yàn)證。
面向連接意味著兩個(gè)使用TCP的應(yīng)用(通常是一個(gè)客戶和一個(gè)服務(wù)器)在彼此交換數(shù)據(jù)之前必須先建立一個(gè)TCP連接。這一過(guò)程與打電話很相似,先撥號(hào)振鈴,等待對(duì)方摘機(jī)說(shuō)“喂”,然后才說(shuō)明是誰(shuí)。TCP傳輸協(xié)議連接過(guò)程:
首先建立連接,TCP用三個(gè)報(bào)文段完成連接的建立。這個(gè)過(guò)程也稱為三次握手(three-way handshake)。如圖所示:
圖3? TCP連接握手過(guò)程
終止一個(gè)連接要經(jīng)過(guò)4次握手。如圖4所示:
圖4? TCP終止連接握手過(guò)程
數(shù)據(jù)發(fā)送必須經(jīng)過(guò)接收方確認(rèn),并且有超時(shí)重傳等保障機(jī)制,這是TCP傳輸有一定保障的根本原因,如圖5所示:
圖5? TCP傳輸確認(rèn)機(jī)制
可以看到,完成一次數(shù)據(jù)傳送,除了完成連接、終止連接外,至少還需要一個(gè)數(shù)據(jù)分組與一個(gè)ACK分組。
UDP與TCP提供不同的傳輸方式與不同的傳輸質(zhì)量,TCP以增加網(wǎng)絡(luò)開(kāi)銷的方式提供傳輸保障。在GPRS網(wǎng)絡(luò)實(shí)際測(cè)試,當(dāng)網(wǎng)絡(luò)正常情況下,從GPRS DTU->GPRS網(wǎng)絡(luò)->互聯(lián)網(wǎng)->用戶數(shù)據(jù)中心這個(gè)通路上,UDP傳輸有效性>99%,TCP傳輸有效性≈100%
5. 基于LabvewFPGA的數(shù)據(jù)傳輸
基于LabviewFPGA的數(shù)據(jù)傳輸,是基于TCP/IP的一種改進(jìn)方式。如圖6所示:
圖6? LabviewFPGA數(shù)據(jù)傳輸
這種方式主要用于FPGA架構(gòu)的C-RIO系統(tǒng)與上位機(jī)通信時(shí)為保證底層數(shù)據(jù)能夠可靠傳輸?shù)莫?dú)特?cái)?shù)據(jù)流傳輸方式。其技術(shù)特點(diǎn)在于從FPGA底層進(jìn)行數(shù)據(jù)構(gòu)造,即將一般數(shù)據(jù)類型(如定點(diǎn)型,浮點(diǎn)型)轉(zhuǎn)換成計(jì)算機(jī)底層可識(shí)別的布爾數(shù)據(jù)類型進(jìn)行數(shù)據(jù)構(gòu)造,如圖7所示:
圖7? 數(shù)據(jù)構(gòu)造過(guò)程
當(dāng)數(shù)據(jù)傳輸至RT層,通過(guò)數(shù)據(jù)解析的過(guò)程將FPGA的高速數(shù)據(jù)流進(jìn)行數(shù)據(jù)識(shí)別并轉(zhuǎn)換至上位機(jī)可傳輸?shù)臄?shù)據(jù)格式,如圖8所示:
圖8? 高速數(shù)據(jù)留轉(zhuǎn)換
為保證數(shù)據(jù)的不丟失,RT打包過(guò)程采用了重聯(lián)與數(shù)據(jù)殘留清空方式,以確保每次重聯(lián)的過(guò)程能夠進(jìn)行可靠的數(shù)據(jù)傳輸。上位機(jī)的接收過(guò)程如圖9所示:
圖9? 數(shù)據(jù)接收過(guò)程
當(dāng)數(shù)據(jù)傳送至上位機(jī)后,將不同數(shù)據(jù)類型按照包頭加以解析,并按照構(gòu)造數(shù)據(jù)類型進(jìn)行數(shù)據(jù)重建。過(guò)程如圖10所示:
圖10? 數(shù)據(jù)解析及重建
6. 結(jié)論
基于LabviewFPGA數(shù)據(jù)傳輸方式主要用于高速數(shù)據(jù)流傳輸?shù)那闆r,這種方式是在TCP/IP基礎(chǔ)上的一種改進(jìn)傳輸方式。目前已成功應(yīng)用在西安某汽車電子有限公司所生產(chǎn)的XLM生產(chǎn)線功能測(cè)試臺(tái)改造項(xiàng)目中。該項(xiàng)目要求在電機(jī)運(yùn)行的過(guò)程中對(duì)電阻電壓進(jìn)行高速可靠采樣并傳輸,采用基于Labview FPGA數(shù)據(jù)傳輸方式很好的解決了該問(wèn)題,目前設(shè)備運(yùn)行良好。
參考文獻(xiàn)
[1]?He Yun Signal acquisition sysstem of engine base on?labview?[J]. Manufacturing & Automation, 2010, 9(s):192-194.
[2]?施偉年 凌海宏, GPRS網(wǎng)絡(luò)上數(shù)據(jù)傳輸協(xié)議, 電力系統(tǒng)通信2004,8:61-65
[3]?張銀鴻,李雙語(yǔ),數(shù)據(jù)傳輸, 計(jì)算機(jī)技術(shù)學(xué)報(bào) 2011, 5:78-79
[4]?張峰,李平 等. 降采樣數(shù)據(jù)傳輸過(guò)程詳解, 航空計(jì)算技術(shù)2009, 18(2):65-68.
作者:代華斌,1980.10月生,自動(dòng)控制理論專業(yè)碩士,長(zhǎng)期從事測(cè)控領(lǐng)域項(xiàng)目開(kāi)發(fā)工作。
??編輯:黃飛
評(píng)論
查看更多