當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于LabVIEW和ARM嵌入式數(shù)據(jù)采集與遠(yuǎn)程傳輸控制系統(tǒng)


    基于嵌入式網(wǎng)絡(luò)的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)具有不受地理環(huán)境、氣候、時間的影響,小型便攜,使用靈活方便,交互操作性好,傳輸速率高,可靠性高,功耗低和移動性好等優(yōu)點。目前常用的嵌入式CPU中,ARM由于性價比在同類產(chǎn)品中比較突出,目前用得越來越多,尤其是結(jié)合開源的嵌入式Linux操作系統(tǒng)以后,更是得到越來越多設(shè)計者的青睞。LabVIW作為一種功能強(qiáng)大,簡單易用和設(shè)計靈活的圖形化編程語言,已經(jīng)廣泛地被工業(yè)界、學(xué)術(shù)界和研究實驗室所接受,越來越多地應(yīng)用在虛擬儀器、測試測量、數(shù)據(jù)分析、信號處理以及遠(yuǎn)程控制中。本設(shè)計中,遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)采用基于ARM和嵌入式Linux的方案來實現(xiàn)。采用高性能的ARM嵌入式微處理器Samsung S3C2440作為系統(tǒng)的核心,結(jié)合數(shù)據(jù)采集、下變頻、存儲模塊,實現(xiàn)了數(shù)據(jù)高速實時采集。同時,利用處理器外部配備的以太網(wǎng)控制器CS8900完成與主機(jī)上運行的LabVIEW服務(wù)器通信,實現(xiàn)數(shù)據(jù)的傳輸與系統(tǒng)的遠(yuǎn)程控制。


1 系統(tǒng)整體結(jié)構(gòu)
    采用SamsungS3C2440作為前端數(shù)據(jù)采集系統(tǒng)的核心控制器件。系統(tǒng)的整體設(shè)計任務(wù)分為信號采集與下變頻、數(shù)據(jù)存儲與傳輸、信號顯示與處理分析等。整體設(shè)計方案構(gòu)架見圖1。信號采集部分采用ADI公司的AD9244完成,AD9244是一款14 bit,40/65 MSPS的高性能ADC。為了滿足AD9244差分輸入的要求,在信號的輸入端配合了AD8138低失真單端轉(zhuǎn)差分ADC驅(qū)動芯片。信號采集完成后,送至ADC6620正交數(shù)字下變頻器(Digital Down Conversion,DDC)處理,經(jīng)過抽取和濾波后的I,Q兩路正交信號在其輸出的數(shù)據(jù)有效以及I/Q指示信號的配合下,由FPGA產(chǎn)生靜態(tài)隨機(jī)存取存儲器(static Random Access Memory,SRAM)存儲時序并存儲至64 K×16 bit的SRAM中。


    在FPGA中主要完成SRAM讀寫時序產(chǎn)生、SRAM讀寫地址生成、數(shù)據(jù)通道選擇等工作,F(xiàn)PGA中的邏輯在一個16 bit的控制字寄存器的控制下有序地工作。當(dāng)SRAM中存儲一定量的數(shù)據(jù)后產(chǎn)生中斷信號,提示ARM將數(shù)據(jù)取走。為了提高系統(tǒng)的速度,ARM采用直接數(shù)據(jù)存儲(Direct Memory Address,DMA)方式讀取數(shù)據(jù)。之后運行在ARM上的客戶端程序?qū)?shù)據(jù)通過網(wǎng)絡(luò)發(fā)送給遠(yuǎn)程主機(jī)。遠(yuǎn)程主機(jī)上的LabVIEW服務(wù)器程序?qū)κ盏降臄?shù)據(jù)進(jìn)行顯示、頻譜分析、存儲回放等處理,同時遠(yuǎn)程主機(jī)的控制信號以及為下變頻器ADC6620設(shè)計的濾波器文件也可以通過網(wǎng)絡(luò)發(fā)送給客戶端,實現(xiàn)遠(yuǎn)程控制。


2 現(xiàn)場數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計
2.1 ADC設(shè)計
    外部模擬信號從SMA(Sub Miniature-A)接口輸入,隔離直流后進(jìn)入AD8138 ADC驅(qū)動芯片,AD8138將單路輸入信號變成兩路差分信號,送至AD9244轉(zhuǎn)換。AD9244中幾個重要引腳的含義及接法:
    a)CML(Common Mode Reference):串聯(lián)一個0.1μF的電容后接地。
    b)DCS(Duty Cycle Stabilizer):接+5 V電源時表示轉(zhuǎn)換時鐘為50%占空比,接地表示轉(zhuǎn)換時鐘的上升沿與下降沿均由外界控制。本設(shè)計中DCS接+5 V電源。
    c)SENSE(Internal Reference Control):接地時將輸入信號峰峰值的范圍限制為1 V,接VREF時將輸入信號峰峰值的范圍限制為2 V。本設(shè)計中SENSE接VREF。
    d)DFS(Data Format Select):接+5 V電源時輸出數(shù)據(jù)格式為補(bǔ)碼,接地時為直接二進(jìn)制碼輸出。由于ADC6620將其輸入數(shù)據(jù)解釋成補(bǔ)碼,本設(shè)計中DFS接+5 V電源。[!--empirenews.page--]
2.2 ADC6620設(shè)計
    AD6620的任務(wù)是將高速數(shù)據(jù)流變成當(dāng)前可實時處理的中低速數(shù)據(jù)流。在本設(shè)計中,AD6620數(shù)據(jù)輸入端代表指數(shù)含義的3位(EXP0~EXP2)接地,且工作在單輸入通道模式下(A/B=3.3 V),以模式0接收來自于ARM的配置信息(MODE=GND),采用并行方式輸出數(shù)據(jù)(PAR/SER=3.3 V)。
2.3 其它設(shè)計
    本設(shè)計所采用的ARM開發(fā)板是由廣州友善之臂公司所生產(chǎn)的QQ2440V3,其上有一個44針的系統(tǒng)總線接口,它與FPGA連接起來完成數(shù)據(jù)與控制信息的傳輸。FPGA與SRAM的設(shè)計比較簡單,這里不再贅述。


3 數(shù)據(jù)采集系統(tǒng)的軟件設(shè)計
    為完成系統(tǒng)任務(wù),需要實現(xiàn)幾個方面的軟件設(shè)計:
    a)正交數(shù)字下變頻器AD6620濾波器以及控制寄存器設(shè)計。
    b)在FPGA上實現(xiàn)系統(tǒng)控制、SRAM讀寫地址生成、數(shù)據(jù)通道選擇等功能的Verilog HDL程序。
    c)ARM上基于嵌入式Linux操作系統(tǒng)的數(shù)據(jù)采集硬件驅(qū)動程序。
    d)ARM上客戶端應(yīng)用程序。
    e)遠(yuǎn)程主機(jī)上基于LabVIEW的服務(wù)器以及顯示、頻譜分析、存儲與回放程序。
3.1 AD6620濾波器及控制寄存器設(shè)計
    AD公司專門針對AD6620芯片推出了濾波器設(shè)計軟件fltrdsn以及監(jiān)視控制軟件AD6620,但該軟件是基于計算機(jī)并口與AD6620芯片連接的,不適應(yīng)設(shè)計中遠(yuǎn)程數(shù)據(jù)傳輸與控制、多客戶端的任務(wù)要求??梢岳迷撥浖⒃O(shè)計成功的濾波器以及配置文件保存下來,利用LabVIEW的文件處理功能自動將信息提取出來,通過網(wǎng)絡(luò)遠(yuǎn)程配置AD6620。

3.2 FPGA邏輯設(shè)計
    FPGA內(nèi)部邏輯電路結(jié)構(gòu)見圖2。考慮到后續(xù)設(shè)計的需要,F(xiàn)PGA內(nèi)部使用ARM地址總線的低3位來選擇當(dāng)前操作的模塊,具體的地址與內(nèi)部模塊對應(yīng)關(guān)系見表1。

    圖2中各模塊功能進(jìn)一步說明如下:
    a)Input_db_part:雙向數(shù)據(jù)總線分離。配合由Control_register送來的控制信號,在Conf_6620有效時將數(shù)據(jù)總線上的數(shù)據(jù)送至Config_6620模塊,完成AD6620配置,在Fetch_sram信號有效時將讀SRAM得到的數(shù)據(jù)傳送至ARM數(shù)據(jù)總線。 [!--empirenews.page--]
    b)Control_register:控制寄存器。內(nèi)部模塊有序工作的核心,具體的控制定義見表2。

    c)Config_6620:配置AD6620。此模塊在Conf 6620位有效時接收由ARM傳來的AD6620配置信息,完成DDC濾波器和控制寄存器配置。它除了本身使用ARM地址總線的3位ARM ADD[3:1]作為FPGA內(nèi)部模塊選擇之外,還用了ARM ADD[6:4]作為AD6620的外部接口寄存器地址。Rdy in信號用于指示寫入操作成功,ARM檢測到此信號有效后,進(jìn)行下一次的寫操作。
    d)PII:鎖相環(huán)。Cyclone EP1C6Q240中有2個鎖相環(huán)模塊,設(shè)計中使用了其中的一個將20 MHz的時鐘倍頻至50 MHz,供AD9244,AD6620以及FPGA內(nèi)部使用。
    e)Ad_to_sram:AD6620輸出數(shù)據(jù)寫入SRAM時序產(chǎn)生模塊。AD6620工作在單通道模式時典型輸出時序見圖。
    此模塊主要完成的功能有:用2個數(shù)據(jù)鎖存器在DV與IQ信號的控制下鎖存I路和Q路數(shù)據(jù),產(chǎn)生寫SRAM所需的地址。由于AD6620抽取率較高的緣故,輸出數(shù)據(jù)率一般較低,在模塊中使用了狀態(tài)機(jī)在2次有效數(shù)據(jù)期間產(chǎn)生寫SRAM的時序。此外,當(dāng)寫地址到達(dá)設(shè)定值時,模塊產(chǎn)生寫溢出中斷,提示ARM改變控制寄存器內(nèi)容,讀取數(shù)據(jù)。
    a)Read_add_gen:讀地址產(chǎn)生。在Fetch_sram位的控制下,產(chǎn)生讀SRAM時的地址,當(dāng)讀地址到達(dá)設(shè)定值時,產(chǎn)生讀溢出中斷,提示ARM改變控制寄存器內(nèi)容,進(jìn)行下一步操作。
    b)Control_logic:控制邏輯。模塊在Start_daq有效時選擇由Ad_to_sram模塊產(chǎn)生的寫SRAM的地址、數(shù)據(jù)與控制總線與SRAM相接,而在Fetch_sram有效時選擇讀SRAM的地址、數(shù)據(jù)與控制總線與SRAM相接。與DMA讀取有關(guān)的請求與響應(yīng)信號也在此模塊中處理。
3.3 嵌入式Linux驅(qū)動程序設(shè)計
    驅(qū)動程序是硬件與應(yīng)用程序的接口。針對設(shè)計任務(wù)與硬件特點,在驅(qū)動程序中設(shè)計了以下函數(shù):
    a) AD6620_read:申請DMA緩存,睡眠等待寫溢出中斷到來,DMA傳輸完成后,將數(shù)據(jù)從內(nèi)核空間傳送至用戶空間,釋放DMA緩存。
    b) AD6620_ioctl:核心是一個switch選擇結(jié)構(gòu),根據(jù)應(yīng)用程序中用戶命令,完成初始化DMA,寫控制寄存器或者配置AD6620的工作。
    c)AD6620 open:主要完成DMA通道參數(shù)設(shè)置,初始化IO端口和信號量。
    d) AD6620 release:完成與AD6620_open相反的工作,主要是一些清理和釋放申請資源的工作。
    函數(shù)編寫好后,通過下面的file_operations結(jié)構(gòu)體聯(lián)系起來:

   
    e) AD6620 init:初始化函數(shù),完成驅(qū)動程序注冊、中斷與中斷處理函數(shù)注冊、創(chuàng)建設(shè)備文件節(jié)點等。其中的驅(qū)動程序注冊的核心就是上面的file_operations結(jié)構(gòu)體。
    驅(qū)動程序編寫好后,用戶就可以在應(yīng)用程序中調(diào)用這些函數(shù),實現(xiàn)通過一組標(biāo)準(zhǔn)化的調(diào)用來操作底層硬件。
3.4 客戶端應(yīng)用程序
    客戶端應(yīng)用程序為了保證數(shù)據(jù)與控制信息的可靠傳輸,采用的是基于TCP協(xié)議的Socket網(wǎng)絡(luò)編程。本次設(shè)計客戶端運行在ARM上,采用的是Linux下的C編程;而服務(wù)器端運行在遠(yuǎn)程主機(jī)上,利用LabVIEW的圖形化語言實現(xiàn)。具體客戶端的通信與控制流程圖見圖4。可以看出??蛻舳耸且蕾囉谧x取由遠(yuǎn)程主機(jī)發(fā)送的控制字符來完成實時控制,實現(xiàn)與服務(wù)器端的交互操作的。因此,無論是客戶端還是服務(wù)器端,在每一次發(fā)送數(shù)據(jù)與控制信息時,都會發(fā)送一個控制字符,接收端就是依靠識別此字符來完成相應(yīng)的操作。表3中給出了控制字符與所執(zhí)行操作之間的對應(yīng)關(guān)系。

3.5 LabVIEW服務(wù)器程序設(shè)計
    服務(wù)器端的完整程序見圖5。服務(wù)器在指定的端口上偵聽,等待遠(yuǎn)程客戶端的連接。程序的核心是兩個循環(huán)框,上面的循環(huán)框完成發(fā)送數(shù)據(jù)和控制信息的任務(wù),主要包括傳送AD6620濾波器設(shè)計與控制寄存器配置文件、實時改變AD6620可動態(tài)配置寄存器內(nèi)容、開始數(shù)據(jù)采集以及停止系統(tǒng)控制等模塊。 [!--empirenews.page--]

     數(shù)據(jù)與控制信息內(nèi)容放在LabVIEW事件框圖中,當(dāng)用戶單擊前面板上的控制按鈕時,相應(yīng)的信息被發(fā)送,這樣就避免了系統(tǒng)無休止地查詢,節(jié)約了系統(tǒng)資源。下面的循環(huán)框完成讀SRAM數(shù)據(jù)接收、分離IQ信號、頻譜分析與顯示等,當(dāng)用戶使得存儲文件路徑不為空時,可以將此時數(shù)據(jù)顯示控件上的數(shù)據(jù)保存下來;而當(dāng)回放文件路徑不為空時,用戶可以回放之前保存的歷史數(shù)據(jù)。頻譜顯示控件有線性與對數(shù)顯示兩種格式,它受前面板上的一個系統(tǒng)復(fù)選框的控制。

4 設(shè)計結(jié)果驗證
    采用了3組實驗來驗證設(shè)計的正確性。實驗條件:現(xiàn)場數(shù)據(jù)采集系統(tǒng)IP地址192.168.1.230,遠(yuǎn)程主機(jī)IP地址192.168.1.1,二者位于同一個局域網(wǎng)內(nèi)。系統(tǒng)工作主頻50 MHz,AD6620濾波器為低通濾波器,通帶截止頻率10 kHz,阻帶截止頻率15 kHz,通帶內(nèi)衰減0 dB,阻帶衰減-60 dB,三級濾波器的抽取系數(shù)分別為10,25,2。

    第1組實驗的輸入信號為單頻信號,頻率1.005 MHz,幅度250 mV,AD6620中NCO頻率字設(shè)定為1 MHz。實驗恢復(fù)的I路信號及其頻譜分析見圖6(a)。從實驗結(jié)果來看,系統(tǒng)采集數(shù)據(jù)頻率準(zhǔn)確,較好地恢復(fù)了信號。第2組實驗的輸入信號為調(diào)幅信號,載波頻率1 MHz,幅度250 mV,單音調(diào)制信號頻率為3 kHz,調(diào)制深度30%。AD6620中NCO頻率字設(shè)定為1 MHz。實驗恢復(fù)的信號與頻譜分析見圖6(b)。這時從頻譜圖上可以清晰地看出差頻之后,在零頻周圍300 Hz處有1根清晰的譜線。第3組實驗的輸入信號為單頻信號,頻率1.018 MHz,幅度250 mV,AD6620中NCO頻率字設(shè)定為1 MHz。實驗恢復(fù)的I路信號與頻譜分析見圖6(c)。此時由于信號處于濾波器通帶之外,衰減很大,不能恢復(fù)信號。I路信號顯示圖中類似于“毛刺”的信號是由于電路底噪聲在AD6620中運算所產(chǎn)生。綜合3組實驗的結(jié)果,本次設(shè)計較好地完成了設(shè)計任務(wù)。


5 結(jié)論
    數(shù)據(jù)采集與網(wǎng)絡(luò)遠(yuǎn)程傳輸系統(tǒng)是一個高集成,特別講究軟硬件間相互配合的綜合系統(tǒng),強(qiáng)調(diào)的是協(xié)調(diào)、穩(wěn)定、高速、精準(zhǔn)地完成各項數(shù)據(jù)采樣工作。本設(shè)計中,在合理設(shè)計硬件的基礎(chǔ)上,分別對FPGA,ARM以及遠(yuǎn)程主機(jī)上的服務(wù)器程序精心設(shè)計,解決了以往系統(tǒng)在大量數(shù)據(jù)采集、傳輸、儲存、讀寫和處理時的速度以及靈活性問題。利用LabVIEW功能強(qiáng)大、簡單易用,設(shè)計靈活的圖形化編程語言,很容易地實現(xiàn)了對遠(yuǎn)程數(shù)據(jù)采集終端的配置與控制。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉