基于嵌入式網(wǎng)絡的遠程數(shù)據(jù)采集系統(tǒng)具有不受地理環(huán)境、氣候、時間的影響,小型便攜,使用靈活方便,交互操作性好,傳輸速率高,可靠性高,功耗低和移動性好等優(yōu)點。目前常用的嵌入式CPU中,ARM由于性價比在同類產(chǎn)品中比較突出,目前用得越來越多,尤其是結合開源的嵌入式Linux操作系統(tǒng)以后,更是得到越來越多設計者的青睞。LabVIW作為一種功能強大,簡單易用和設計靈活的圖形化編程語言,已經(jīng)廣泛地被工業(yè)界、學術界和研究實驗室所接受,越來越多地應用在虛擬儀器、測試測量、數(shù)據(jù)分析、信號處理以及遠程控制中。本設計中,遠程數(shù)據(jù)采集系統(tǒng)采用基于ARM和嵌入式Linux的方案來實現(xiàn)。采用高性能的ARM嵌入式微處理器Samsung S3C2440作為系統(tǒng)的核心,結合數(shù)據(jù)采集、下變頻、存儲模塊,實現(xiàn)了數(shù)據(jù)高速實時采集。同時,利用處理器外部配備的以太網(wǎng)控制器CS8900完成與主機上運行的LabVIEW服務器通信,實現(xiàn)數(shù)據(jù)的傳輸與系統(tǒng)的遠程控制。
1 系統(tǒng)整體結構
采用SamsungS3C2440作為前端數(shù)據(jù)采集系統(tǒng)的核心控制器件。系統(tǒng)的整體設計任務分為信號采集與下變頻、數(shù)據(jù)存儲與傳輸、信號顯示與處理分析等。整體設計方案構架見圖1。信號采集部分采用ADI公司的AD9244完成,AD9244是一款14 bit,40/65 MSPS的高性能ADC。為了滿足AD9244差分輸入的要求,在信號的輸入端配合了AD8138低失真單端轉差分ADC驅動芯片。信號采集完成后,送至ADC6620正交數(shù)字下變頻器(Digital Down Conversion,DDC)處理,經(jīng)過抽取和濾波后的I,Q兩路正交信號在其輸出的數(shù)據(jù)有效以及I/Q指示信號的配合下,由FPGA產(chǎn)生靜態(tài)隨機存取存儲器(static Random Access Memory,SRAM)存儲時序并存儲至64 K×16 bit的SRAM中。
在FPGA中主要完成SRAM讀寫時序產(chǎn)生、SRAM讀寫地址生成、數(shù)據(jù)通道選擇等工作,F(xiàn)PGA中的邏輯在一個16 bit的控制字寄存器的控制下有序地工作。當SRAM中存儲一定量的數(shù)據(jù)后產(chǎn)生中斷信號,提示ARM將數(shù)據(jù)取走。為了提高系統(tǒng)的速度,ARM采用直接數(shù)據(jù)存儲(Direct Memory Address,DMA)方式讀取數(shù)據(jù)。之后運行在ARM上的客戶端程序將數(shù)據(jù)通過網(wǎng)絡發(fā)送給遠程主機。遠程主機上的LabVIEW服務器程序對收到的數(shù)據(jù)進行顯示、頻譜分析、存儲回放等處理,同時遠程主機的控制信號以及為下變頻器ADC6620設計的濾波器文件也可以通過網(wǎng)絡發(fā)送給客戶端,實現(xiàn)遠程控制。
2 現(xiàn)場數(shù)據(jù)采集系統(tǒng)的硬件設計
2.1 ADC設計
外部模擬信號從SMA(Sub Miniature-A)接口輸入,隔離直流后進入AD8138 ADC驅動芯片,AD8138將單路輸入信號變成兩路差分信號,送至AD9244轉換。AD9244中幾個重要引腳的含義及接法:
a)CML(Common Mode Reference):串聯(lián)一個0.1μF的電容后接地。
b)DCS(Duty Cycle Stabilizer):接+5 V電源時表示轉換時鐘為50%占空比,接地表示轉換時鐘的上升沿與下降沿均由外界控制。本設計中DCS接+5 V電源。
c)SENSE(Internal Reference Control):接地時將輸入信號峰峰值的范圍限制為1 V,接VREF時將輸入信號峰峰值的范圍限制為2 V。本設計中SENSE接VREF。
d)DFS(Data Format Select):接+5 V電源時輸出數(shù)據(jù)格式為補碼,接地時為直接二進制碼輸出。由于ADC6620將其輸入數(shù)據(jù)解釋成補碼,本設計中DFS接+5 V電源。[!--empirenews.page--]
2.2 ADC6620設計
AD6620的任務是將高速數(shù)據(jù)流變成當前可實時處理的中低速數(shù)據(jù)流。在本設計中,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 其它設計
本設計所采用的ARM開發(fā)板是由廣州友善之臂公司所生產(chǎn)的QQ2440V3,其上有一個44針的系統(tǒng)總線接口,它與FPGA連接起來完成數(shù)據(jù)與控制信息的傳輸。FPGA與SRAM的設計比較簡單,這里不再贅述。
3 數(shù)據(jù)采集系統(tǒng)的軟件設計
為完成系統(tǒng)任務,需要實現(xiàn)幾個方面的軟件設計:
a)正交數(shù)字下變頻器AD6620濾波器以及控制寄存器設計。
b)在FPGA上實現(xiàn)系統(tǒng)控制、SRAM讀寫地址生成、數(shù)據(jù)通道選擇等功能的Verilog HDL程序。
c)ARM上基于嵌入式Linux操作系統(tǒng)的數(shù)據(jù)采集硬件驅動程序。
d)ARM上客戶端應用程序。
e)遠程主機上基于LabVIEW的服務器以及顯示、頻譜分析、存儲與回放程序。
3.1 AD6620濾波器及控制寄存器設計
AD公司專門針對AD6620芯片推出了濾波器設計軟件fltrdsn以及監(jiān)視控制軟件AD6620,但該軟件是基于計算機并口與AD6620芯片連接的,不適應設計中遠程數(shù)據(jù)傳輸與控制、多客戶端的任務要求??梢岳迷撥浖⒃O計成功的濾波器以及配置文件保存下來,利用LabVIEW的文件處理功能自動將信息提取出來,通過網(wǎng)絡遠程配置AD6620。
3.2 FPGA邏輯設計
FPGA內(nèi)部邏輯電路結構見圖2。考慮到后續(xù)設計的需要,F(xiàn)PGA內(nèi)部使用ARM地址總線的低3位來選擇當前操作的模塊,具體的地址與內(nèi)部模塊對應關系見表1。
圖2中各模塊功能進一步說明如下:
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檢測到此信號有效后,進行下一次的寫操作。
d)PII:鎖相環(huán)。Cyclone EP1C6Q240中有2個鎖相環(huán)模塊,設計中使用了其中的一個將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)機在2次有效數(shù)據(jù)期間產(chǎn)生寫SRAM的時序。此外,當寫地址到達設定值時,模塊產(chǎn)生寫溢出中斷,提示ARM改變控制寄存器內(nèi)容,讀取數(shù)據(jù)。
a)Read_add_gen:讀地址產(chǎn)生。在Fetch_sram位的控制下,產(chǎn)生讀SRAM時的地址,當讀地址到達設定值時,產(chǎn)生讀溢出中斷,提示ARM改變控制寄存器內(nèi)容,進行下一步操作。
b)Control_logic:控制邏輯。模塊在Start_daq有效時選擇由Ad_to_sram模塊產(chǎn)生的寫SRAM的地址、數(shù)據(jù)與控制總線與SRAM相接,而在Fetch_sram有效時選擇讀SRAM的地址、數(shù)據(jù)與控制總線與SRAM相接。與DMA讀取有關的請求與響應信號也在此模塊中處理。
3.3 嵌入式Linux驅動程序設計
驅動程序是硬件與應用程序的接口。針對設計任務與硬件特點,在驅動程序中設計了以下函數(shù):
a) AD6620_read:申請DMA緩存,睡眠等待寫溢出中斷到來,DMA傳輸完成后,將數(shù)據(jù)從內(nèi)核空間傳送至用戶空間,釋放DMA緩存。
b) AD6620_ioctl:核心是一個switch選擇結構,根據(jù)應用程序中用戶命令,完成初始化DMA,寫控制寄存器或者配置AD6620的工作。
c)AD6620 open:主要完成DMA通道參數(shù)設置,初始化IO端口和信號量。
d) AD6620 release:完成與AD6620_open相反的工作,主要是一些清理和釋放申請資源的工作。
函數(shù)編寫好后,通過下面的file_operations結構體聯(lián)系起來:
e) AD6620 init:初始化函數(shù),完成驅動程序注冊、中斷與中斷處理函數(shù)注冊、創(chuàng)建設備文件節(jié)點等。其中的驅動程序注冊的核心就是上面的file_operations結構體。
驅動程序編寫好后,用戶就可以在應用程序中調用這些函數(shù),實現(xiàn)通過一組標準化的調用來操作底層硬件。
3.4 客戶端應用程序
客戶端應用程序為了保證數(shù)據(jù)與控制信息的可靠傳輸,采用的是基于TCP協(xié)議的Socket網(wǎng)絡編程。本次設計客戶端運行在ARM上,采用的是Linux下的C編程;而服務器端運行在遠程主機上,利用LabVIEW的圖形化語言實現(xiàn)。具體客戶端的通信與控制流程圖見圖4??梢钥闯???蛻舳耸且蕾囉谧x取由遠程主機發(fā)送的控制字符來完成實時控制,實現(xiàn)與服務器端的交互操作的。因此,無論是客戶端還是服務器端,在每一次發(fā)送數(shù)據(jù)與控制信息時,都會發(fā)送一個控制字符,接收端就是依靠識別此字符來完成相應的操作。表3中給出了控制字符與所執(zhí)行操作之間的對應關系。
3.5 LabVIEW服務器程序設計
服務器端的完整程序見圖5。服務器在指定的端口上偵聽,等待遠程客戶端的連接。程序的核心是兩個循環(huán)框,上面的循環(huán)框完成發(fā)送數(shù)據(jù)和控制信息的任務,主要包括傳送AD6620濾波器設計與控制寄存器配置文件、實時改變AD6620可動態(tài)配置寄存器內(nèi)容、開始數(shù)據(jù)采集以及停止系統(tǒng)控制等模塊。 [!--empirenews.page--]
數(shù)據(jù)與控制信息內(nèi)容放在LabVIEW事件框圖中,當用戶單擊前面板上的控制按鈕時,相應的信息被發(fā)送,這樣就避免了系統(tǒng)無休止地查詢,節(jié)約了系統(tǒng)資源。下面的循環(huán)框完成讀SRAM數(shù)據(jù)接收、分離IQ信號、頻譜分析與顯示等,當用戶使得存儲文件路徑不為空時,可以將此時數(shù)據(jù)顯示控件上的數(shù)據(jù)保存下來;而當回放文件路徑不為空時,用戶可以回放之前保存的歷史數(shù)據(jù)。頻譜顯示控件有線性與對數(shù)顯示兩種格式,它受前面板上的一個系統(tǒng)復選框的控制。
4 設計結果驗證
采用了3組實驗來驗證設計的正確性。實驗條件:現(xiàn)場數(shù)據(jù)采集系統(tǒng)IP地址192.168.1.230,遠程主機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頻率字設定為1 MHz。實驗恢復的I路信號及其頻譜分析見圖6(a)。從實驗結果來看,系統(tǒng)采集數(shù)據(jù)頻率準確,較好地恢復了信號。第2組實驗的輸入信號為調幅信號,載波頻率1 MHz,幅度250 mV,單音調制信號頻率為3 kHz,調制深度30%。AD6620中NCO頻率字設定為1 MHz。實驗恢復的信號與頻譜分析見圖6(b)。這時從頻譜圖上可以清晰地看出差頻之后,在零頻周圍300 Hz處有1根清晰的譜線。第3組實驗的輸入信號為單頻信號,頻率1.018 MHz,幅度250 mV,AD6620中NCO頻率字設定為1 MHz。實驗恢復的I路信號與頻譜分析見圖6(c)。此時由于信號處于濾波器通帶之外,衰減很大,不能恢復信號。I路信號顯示圖中類似于“毛刺”的信號是由于電路底噪聲在AD6620中運算所產(chǎn)生。綜合3組實驗的結果,本次設計較好地完成了設計任務。
5 結論
數(shù)據(jù)采集與網(wǎng)絡遠程傳輸系統(tǒng)是一個高集成,特別講究軟硬件間相互配合的綜合系統(tǒng),強調的是協(xié)調、穩(wěn)定、高速、精準地完成各項數(shù)據(jù)采樣工作。本設計中,在合理設計硬件的基礎上,分別對FPGA,ARM以及遠程主機上的服務器程序精心設計,解決了以往系統(tǒng)在大量數(shù)據(jù)采集、傳輸、儲存、讀寫和處理時的速度以及靈活性問題。利用LabVIEW功能強大、簡單易用,設計靈活的圖形化編程語言,很容易地實現(xiàn)了對遠程數(shù)據(jù)采集終端的配置與控制。
摘要:目前,我國的沙漠及荒漠化面積仍然較大,沙漠地帶的植被種植情況并不能夠被很好地監(jiān)測。針對這一問題,設計了一種防風固沙裝置,該裝置的核心為Arduino主板及輔助傳感器組件,具有數(shù)據(jù)采集及顯示功能,能夠采集土壤濕度、環(huán)...
關鍵字: 防風固沙 數(shù)據(jù)采集 數(shù)據(jù)顯示摘要:針對我國智慧建筑中能耗數(shù)據(jù)遠程采集的問題,將無線485數(shù)據(jù)通信模塊與移動通信網(wǎng)絡數(shù)據(jù)采集模塊相結合應用于建筑能耗儀表數(shù)據(jù)采集過程中,在對《戶用計量儀表數(shù)據(jù)傳輸技術條件》和《多功能電能表通信協(xié)議》進行研究的基礎上,開...
關鍵字: 建筑能耗 多網(wǎng)融合 數(shù)據(jù)采集摘要:詳細分析了木地板自動鋪設裝置的工作原理,介紹了其結構組成、關鍵部位和控制系統(tǒng),同時闡述了木地板自動鋪設裝置的特點,并從實用角度分析了木地板自動鋪設裝置的可用性。另外,運用UG NX12.0三維建模軟件構建了該裝置的...
關鍵字: 自動鋪設裝置 三維建模 控制系統(tǒng)摘要:隨著我國城鎮(zhèn)化進程加快,汽車保用量劇增,土地資源緊缺,停車難問題日益嚴重,提升車位空間的利用率是目前解決這個問題的有效途徑之一。鑒于此,設計了一種基于PLC與小程序的自助立體停車庫,以PLC為控制系統(tǒng)的核心,服務器...
關鍵字: 控制系統(tǒng) PLC 通信協(xié)議無錫2022年9月28日 /美通社/ -- 近日,江蘇省工業(yè)和信息化廳公示2022年(第9批)省級軟件企業(yè)技術中心擬認定名單,經(jīng)企業(yè)申報、各市推薦、形式審查、專家評審等程序,浪潮卓數(shù)大數(shù)據(jù)產(chǎn)業(yè)發(fā)展有限公司(簡稱浪潮卓數(shù))...
關鍵字: 軟件 數(shù)據(jù)流 數(shù)據(jù)安全 數(shù)據(jù)采集摘要:為了實現(xiàn)對不同品牌機器人的實時監(jiān)控以及集中管理,實現(xiàn)機器人的互通互聯(lián),設計了一套基于NC-Link的機器人遠程監(jiān)控系統(tǒng)。NC-Link適配器通過機器人的二次開發(fā)接口對機器人進行數(shù)據(jù)采集,然后將采集到的數(shù)據(jù)通過htt...
關鍵字: 工業(yè)機器人 數(shù)據(jù)采集 遠程監(jiān)控摘要:隨著我國浮法玻璃技術的不斷發(fā)展,生產(chǎn)浮法玻璃的厚度已發(fā)展至3~12mm,傳統(tǒng)的浮法玻璃拉邊機已不能滿足生產(chǎn)的需要,所以,研制新型浮法玻璃拉邊機已成為當務之急。鑒于此,在介紹現(xiàn)有拉邊機工作原理的基礎上,對已有拉邊機功...
關鍵字: 拉邊機 控制系統(tǒng) 厚度控制摘 要:將歐姆龍CP1H PLC應用于火化機控制系統(tǒng) ,并使用程序控制燃燒系統(tǒng) ,從而提高系統(tǒng)的穩(wěn)定性以及工作效率 , 同時更好 地達到火化效果 。該系統(tǒng)基于歐姆龍的PLC ,具有成本低、效率高、成效好的特點。
關鍵字: 可編程控制器(PLC) 火化機 控制系統(tǒng)在數(shù)據(jù)采集領域,RC濾波器是最常見的信號調理電路,以前我介紹過RC低通濾波器,今天介紹下與之對應的RC高通濾波器,二者結構對比見下圖。
關鍵字: 數(shù)據(jù)采集 RC濾波器 高通濾波器為增進大家對PLC的認識,本文將基于兩點介紹PLC:1.什么是PLC控制系統(tǒng),2.安全PLC和普通PLC有什么區(qū)別?
關鍵字: PLC 指數(shù) 控制系統(tǒng)