陶 沛,劉 瑩,張 頎
(中移鐵通有限公司北京通信技術(shù)中心,北京 100000)
通信技術(shù)以及互聯(lián)網(wǎng)的快速發(fā)展,使得互聯(lián)網(wǎng)網(wǎng)絡(luò)的建設(shè)規(guī)模無論是在速度的提升上,還是在規(guī)模的擴(kuò)大上都得到了很大促進(jìn)[1]。因此,設(shè)計了一個能夠?qū)崟r采集和處理的通信數(shù)據(jù)采集系統(tǒng),并根據(jù)時代的要求,設(shè)計了一個用VB控制和完成前端通信數(shù)據(jù)采集模塊的系統(tǒng)。VB的主要設(shè)計模塊包括圖形用戶界面和應(yīng)用開發(fā)系統(tǒng)[2]。通過VB無線傳感器網(wǎng)絡(luò)進(jìn)行系統(tǒng)開發(fā)可利于將DAO、RDO、ADO與數(shù)據(jù)庫建立連接,同時也為LiveX控件的建立提供便利,能夠更加高效地進(jìn)行應(yīng)用程序的開發(fā)[3]。利用VB提供的intergroup,可以快速建立應(yīng)用程序。
通過將傳統(tǒng)通信數(shù)據(jù)采集系統(tǒng)框架進(jìn)行具體分析研究,并且以此作為基礎(chǔ),最終根據(jù)實際需求采用VB方法完成通信數(shù)據(jù)采集系統(tǒng)的設(shè)計。通信數(shù)據(jù)采集與處理系統(tǒng)又可以具體劃分為數(shù)據(jù)采集、數(shù)據(jù)處理及數(shù)據(jù)輸出[4]。通信數(shù)據(jù)采集系統(tǒng)通常由數(shù)據(jù)傳感器完成,而后續(xù)關(guān)于數(shù)據(jù)的處理和輸出主要需要依靠VB模塊及外部模塊實現(xiàn)[5]。系統(tǒng)中的3種模塊還可分為幾大功能模塊,如圖1所示。

圖1 通過數(shù)據(jù)采集處理系統(tǒng)模塊劃分
(1)通信數(shù)據(jù)傳感器模塊:將光信號轉(zhuǎn)換為電信號,并用句子信號輸出分類數(shù)據(jù)。
(2)實時數(shù)據(jù)采集模塊:主要對數(shù)據(jù)傳感器中輸出的信號進(jìn)行采集。由于現(xiàn)代通信信號主要分為兩種,分為為模擬信號和數(shù)字信號,如采集到模擬信號還需要進(jìn)行數(shù)模轉(zhuǎn)換。
(3)智能數(shù)據(jù)緩存模塊:主要負(fù)責(zé)采集完畢數(shù)據(jù)的存儲。為便于系統(tǒng)運(yùn)行,可連接多個數(shù)據(jù)緩存模塊以提高數(shù)據(jù)存儲效率。
(4)數(shù)據(jù)預(yù)處理模塊:主要對采集后的數(shù)據(jù)進(jìn)行預(yù)處理工作。
(5)高端數(shù)據(jù)處理模塊:主要是對經(jīng)過預(yù)處理的數(shù)據(jù)進(jìn)行再次處理。
(6)數(shù)據(jù)緩存處理模塊:主要是為提升數(shù)據(jù)存儲效率,避免數(shù)據(jù)擁堵的模塊,即對下次需要處理的數(shù)據(jù)進(jìn)行緩存。
通信數(shù)據(jù)采集系統(tǒng)可以對正在進(jìn)行的高速運(yùn)行的數(shù)據(jù)進(jìn)行采集,并可以將數(shù)據(jù)保存下來,通過捕捉到的通信數(shù)據(jù)信息,可以分析數(shù)據(jù)的運(yùn)行狀態(tài)和運(yùn)行規(guī)律。
通信數(shù)據(jù)采集系統(tǒng)由圖形用戶界面(GUI)和快速應(yīng)用開發(fā)(RAD)系統(tǒng)組成,主要用于數(shù)據(jù)采集和數(shù)據(jù)處理[6]。數(shù)據(jù)采集部分包括主控設(shè)備FPGA定時驅(qū)動器,其作用于通知通信數(shù)據(jù)傳感器采集通信數(shù)據(jù)并將傳感器光信號轉(zhuǎn)換為電信號[7]。數(shù)據(jù)處理包括FPGA對傳感器采集的通信數(shù)據(jù)信息進(jìn)行預(yù)處理,然后對預(yù)處理后的數(shù)據(jù)信號進(jìn)行緩沖存儲,最終實現(xiàn)實時顯示。
本文所研究的通信數(shù)據(jù)的采集系統(tǒng)采集數(shù)據(jù)時會利用接口端將數(shù)據(jù)傳輸至上位機(jī),還有部分系統(tǒng)采用數(shù)據(jù)采集卡將數(shù)據(jù)導(dǎo)入至上位機(jī)中[8]。利用上位機(jī)對數(shù)據(jù)進(jìn)行顯示和數(shù)據(jù)處理操作。這種結(jié)構(gòu)的優(yōu)點是PC機(jī)的車載技術(shù)相對成熟,計算機(jī)具有巨大的資源和大量的存儲數(shù)據(jù)。然而,由于整個系統(tǒng)使用分立元件,而且通信數(shù)據(jù)的傳輸速度很慢,因此無法實現(xiàn)高效率。
隨著高速通信數(shù)據(jù)采集技術(shù)的發(fā)展,嵌入式技術(shù)在通信數(shù)據(jù)采集系統(tǒng)中的應(yīng)用越來越普遍[9]。本系統(tǒng)設(shè)計的通信數(shù)據(jù)采集系統(tǒng)集數(shù)據(jù)處理和存儲于一體,系統(tǒng)集成度高,數(shù)據(jù)傳輸速度快。
對于VB設(shè)計,它通??梢苑譃閹讉€過程,即硬件語言代碼輸入、代碼模擬、合成、合成后模擬和實現(xiàn)[10]。布局布線后的模擬、下載、調(diào)試等設(shè)計步驟如圖2所示。目前可以采用的信息輸入方式有兩種,其中一種是直接輸入波形信息,而另一種是通過編寫TestBench來驗證信息。因為這個波形最終的目的是服務(wù)于使用者,所以最后的輸入波形可以是所需要的測試波形,而這種波形可以運(yùn)用編輯器生成[11]。可以通過Verilog HDL編寫測試代碼的這個方法來完成TestBench的編寫,通過這種辦法需要測試的文件能夠被準(zhǔn)確輸入到待測模塊中來進(jìn)行仿真模擬,通過這個模擬能夠清晰地判斷這個文件是否需要修正,再將這個模擬的最終結(jié)果與實際中的數(shù)據(jù)進(jìn)行對比分析,就能看出這個文件是否與實際相匹配。

圖2 VB設(shè)計流程
(1)電路設(shè)計輸入
電路設(shè)計主要采用硬件描述語言(HDL)的方式完成輸入。硬件描述語言輸入是開發(fā)大規(guī)模邏輯模塊的一種方便方法。如果想要在秒一個狀態(tài)機(jī)、VB控制、總線協(xié)議這些方面做到又快又準(zhǔn)確,那么采用HDL方法是最好的選擇。HDL的優(yōu)勢體現(xiàn)在它可以在EDA的工具作用下做出不殘缺的、不模糊的邏輯單元,換句話說就是使數(shù)據(jù)更完整更具體。通過HDL的方式能夠更容易地做到讓Top-Down的設(shè)計更簡單,可以將代碼進(jìn)行分模塊的編寫,代碼的移植也更方便。更讓人高興地是不會再像以前一樣以器件制造的工藝的為限制,可以根據(jù)工藝的變化也隨之變化。很多人不理解原理圖的這種方式,其實它就像電子設(shè)計一樣,他們都是以EDA為基礎(chǔ)來編輯具有某種功能的原理圖。
(2)數(shù)據(jù)智能功能仿真
很多人一提到功能仿真都是一頭霧水,其實就是常說的前仿真。不是很難操作,也不難理解,就是調(diào)試輸入的邏輯關(guān)系,在這個過程不需要考慮太多,因為這只是第一步進(jìn)行驗證。
(3)綜合
將硬件描述語言編譯成邏輯單元就是綜合,而與門,非門,RAM或者觸發(fā)器又構(gòu)成了這些邏輯單元。除此之外相應(yīng)的模塊單元的速度和面積也可以通過這些構(gòu)成模塊進(jìn)行得到優(yōu)化,并且還能同時輸出edf等格式的文件,最終得到滿意的硬件設(shè)計。得到符合廠家需求的網(wǎng)表文件。
(4)數(shù)據(jù)布局布線
如果根據(jù)上述步驟所產(chǎn)生的的網(wǎng)表文件跟實際器件情況有差別的話,可以借助邏輯器件里面的產(chǎn)商的軟件,通過這個軟件把綜合出來的網(wǎng)表文件裝載到邏輯器件里面,把這個步驟稱為實現(xiàn)[14]。
(5)時序仿真與驗證
接下來再將延時信息放入到這個文件中,習(xí)慣將這樣的仿真稱為后仿真。
VB通信數(shù)據(jù)預(yù)處理主要就是數(shù)據(jù)壓縮處理。經(jīng)過A/D轉(zhuǎn)換器的轉(zhuǎn)化數(shù)據(jù)傳感器的模擬量可以得到的數(shù)據(jù)是10 bit,而經(jīng)過SRAM可以得到的數(shù)據(jù)是8 bit,而為了使數(shù)據(jù)位的匹配更加合理,還需要將10 bit的數(shù)據(jù)轉(zhuǎn)化為8 bit。
有兩種轉(zhuǎn)化方式可以將這組數(shù)據(jù)轉(zhuǎn)化,先用意識直接去2~9 bit,如果這時數(shù)據(jù)低于此數(shù)即為0,如果高于此數(shù)即為255。
這種轉(zhuǎn)化方式是一種雙曲變換,也是最為符合數(shù)據(jù)特征的比較理想的非線性傳輸變換,下面是雙曲變換的公式:

如果想將這個公式運(yùn)用到硬件電路中,由于硬件環(huán)境的限制,則只能近似地實現(xiàn)雙曲變換算法。一般來說,如果使用乘除法的話,太過于復(fù)雜,而運(yùn)用移位寄存器法操作的話就會相對簡單,但是運(yùn)用這種方法必須以2為整除數(shù)才能進(jìn)行。所以在進(jìn)行雙曲公式的近似處理時,y的每段近似公式階梯型都是以2為斜率。
綜合考慮數(shù)據(jù)位轉(zhuǎn)換規(guī)則及移位寄存器特性,通過計算可以得到近似公式為:

其實以上函數(shù)就是一個簡單的選擇器,通過位移操作就能夠?qū)崿F(xiàn)這個選擇器。再運(yùn)用Matlab對線性處理、雙曲變化及擬合雙曲變換這3種算法進(jìn)行仿真,最后就可以算出具體的數(shù)據(jù)結(jié)果。這個數(shù)據(jù)結(jié)果是十分具體的,有利于數(shù)據(jù)的壓縮處理,得到最優(yōu)化的數(shù)據(jù)。
除了預(yù)處理數(shù)據(jù),在處理這個數(shù)據(jù)的同時不僅涉及到了簡單選擇器這個方面,還涉及了其他一些高級處理算法。
兩個用戶之間的通信可以通過簡單的終端、傳輸通道以及交換設(shè)備實現(xiàn)。雖然說這種操作簡單,但是如果想要保證系統(tǒng)完全自動化地運(yùn)行,那么就必須事先做出一些規(guī)定,這些“規(guī)定”通信雙方都需要執(zhí)行,將這些“規(guī)定”稱為通信協(xié)議。
通信協(xié)議的基本要素包括以下幾個方面:
(1)語法規(guī)定,即通信雙方(或多方)之間數(shù)據(jù)傳輸?shù)母袷?、碼型以及信號電平等;
(2)語義規(guī)定,即通信雙方(或多方)規(guī)定他們之間要傳輸怎樣的控制信息以及執(zhí)行如何的動作等;
(3)時序規(guī)定,即通信雙方(或多方)之間執(zhí)行事件的順序,傳輸數(shù)據(jù)的匹配等問題。
VB具有強(qiáng)大的網(wǎng)絡(luò)功能。利用VB的WINSOCK空間,可以有效地將任意兩個IP地址進(jìn)行數(shù)據(jù)上的連接。再運(yùn)用UDP或TCP交換數(shù)據(jù),并在分布式通信系統(tǒng)中使用。遠(yuǎn)程通信很容易實現(xiàn)。
可以通過TCP連接到額遠(yuǎn)程計算機(jī)。通過這種方式連接可以實現(xiàn)相連發(fā)的計算機(jī)之間的相互轉(zhuǎn)換。能夠傳輸任何數(shù)據(jù)。但是如果網(wǎng)絡(luò)中的接收器是錯誤的,那么是無法接受數(shù)據(jù)的,這是因為TCP協(xié)議需要通過正確的網(wǎng)絡(luò)建立連接。當(dāng)數(shù)據(jù)被發(fā)送時,它將被自動重新傳輸,并且使用該協(xié)議可以確認(rèn)傳輸結(jié)果。網(wǎng)絡(luò)中的接收器是錯誤的用戶數(shù)據(jù)報協(xié)議(UDP)是一種數(shù)據(jù)無連接協(xié)議。如果要傳輸數(shù)據(jù),首先要設(shè)置接收計算機(jī)的LoacalPort屬性,然后簡單地將RemoteHost設(shè)置為接收計算機(jī)的Internet地址,并將RemotePort設(shè)置為與接收計算機(jī)的LoacalPort屬性相同的端口。調(diào)用SendData方法發(fā)送信息,接收計算機(jī)使用GetData獲取DataArrival事件中的信息。
還有一些核心模塊化系統(tǒng)組件和服務(wù),其功能如表1所示。

表1 Manager功能表
VB同步采集測試主要是測試GUI和RAD中的任意通道的信號幅度的一致性、相位一致性,模擬信號在經(jīng)過模數(shù)轉(zhuǎn)換之后就會轉(zhuǎn)變?yōu)閿?shù)字信號,這樣的數(shù)字信號是無法通過傳統(tǒng)的數(shù)字示波器、相位測試儀等一起來檢測同步一致性的情況,這時候就需要把一個已知的信號一分為二,這個原理聽起來很難,其實就是首先利用發(fā)射信號源產(chǎn)生一個已知的測試信號,這時候就需要把一個已知的信號將其一分為二,然后再將任意兩通道的數(shù)據(jù)段連接,通過F連接到任意兩通道的輸入端,再通過FPGA中的CHIPSCOPE軟件來實時觀察信號的采集結(jié)構(gòu)。
圖3所示的是CHIPSCOPE采集到的兩路同步測試數(shù)據(jù),由圖可知,兩路采集信號的幅度、相位上是完全相同的,為了使這個結(jié)果更加精確,一共是任意的抽取了10組VB采集信號的波形,然后再利用CHIPSCOPE這個軟件將采集到的兩路數(shù)據(jù)轉(zhuǎn)換為PRN的格式,最后再利用MATLAB軟件將采集到的兩路數(shù)據(jù)導(dǎo)入,結(jié)合精密的計算,最終所得的結(jié)果如表2所示。通過此表的測試結(jié)果可以得知,這兩個通道之間的采集信號的幅度一致性、相位一致性都滿足最開始設(shè)計的要求。

圖3 CHIPSCOPE測試VB采集數(shù)據(jù)

表2 采集同步性驗證結(jié)果
本文完成了基于VB的通信數(shù)據(jù)采集系統(tǒng)的設(shè)計,包括通信數(shù)據(jù)采集模塊、系統(tǒng)存儲模塊、數(shù)據(jù)顯示模塊、外圍接口模塊、電源模塊和VB核心控制器模塊。通過這些模塊可以清晰地看到VB系統(tǒng)的優(yōu)勢,VB可以提供快速應(yīng)用程序開發(fā)(RAD)系統(tǒng),支持圖形用戶界面(GUI)系統(tǒng),可通過DAO、RDO、ADO進(jìn)行方便地數(shù)據(jù)庫連接訪問,并支持Active X空間快速創(chuàng)建功能。這是VB與其他的設(shè)計系統(tǒng)相比,無可比擬的優(yōu)勢?;诖?,將VB作為軟件開發(fā)的主要語言工具,不僅讓混亂代碼變得整齊,可以從最開始的時候就避免這個問題。這樣就會省掉反復(fù)改寫代碼的麻煩,可以做到省時省力地編寫語言程序。