基于LabVIEW和ARM嵌入式數據采集與遠程傳輸控制系統_第1頁
基于LabVIEW和ARM嵌入式數據采集與遠程傳輸控制系統_第2頁
基于LabVIEW和ARM嵌入式數據采集與遠程傳輸控制系統_第3頁
基于LabVIEW和ARM嵌入式數據采集與遠程傳輸控制系統_第4頁
基于LabVIEW和ARM嵌入式數據采集與遠程傳輸控制系統_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于LabVIEW和ARM嵌入式數據采集與遠程傳輸控制系統基于嵌入式網絡的遠程數據采集系統具有不受地理環境、氣候、時間的影響,小型便攜,使用靈活方便,交互操作性好,傳輸速率高,可靠性高,功耗低和移動性好等優點。目前常用的嵌入式CPU中,ARM由于性價比在同類產品中比較突出,目前用得越來越多,尤其是結合開源的嵌入式Linux操作系統以后,更是得到越來越多設計者的青睞。LabVIW作為一種功能強大,簡單易用和設計靈活的圖形化編程語言,已經廣泛地被工業界、學術界和研究實驗室所接受,越來越多地應用在虛擬儀器、測試測量、數據分析、信號處理以及遠程控制中。本設計中,遠程數據采集系統采用基于ARM和嵌入式L

2、inux的方案來實現。采用高性能的ARM嵌入式微處理器Samsung S3C2440作為系統的核心,結合數據采集、下變頻、存儲模塊,實現了數據高速實時采集。同時,利用處理器外部配備的以太網控制器CS8900完成與主機上運行的LabVIEW服務器通信,實現數據的傳輸與系統的遠程控制。1 系統整體結構采用SamsungS3C2440作為前端數據采集系統的核心控制器件。系統的整體設計任務分為信號采集與下變頻、數據存儲與傳輸、信號顯示與處理分析等。整體設計方案構架見圖1。信號采集部分采用ADI公司的AD9244完成,AD9244是一款14 bit,4065 MSPS的高性能ADC。為了滿足AD9244

3、差分輸入的要求,在信號的輸入端配合了AD8138低失真單端轉差分ADC驅動芯片。信號采集完成后,送至ADC6620正交數字下變頻器(Digital Down Conversion,DDC)處理,經過抽取和濾波后的I,Q兩路正交信號在其輸出的數據有效以及IQ指示信號的配合下,由FPGA產生靜態隨機存取存儲器(static Random Access Memory,SRAM)存儲時序并存儲至64 K×16 bit的SRAM中。在FPGA中主要完成SRAM讀寫時序產生、SRAM讀寫地址生成、數據通道選擇等工作,FPGA中的邏輯在一個16 bit的控制字寄存器的控制下有序地工作。當SRAM中

4、存儲一定量的數據后產生中斷信號,提示ARM將數據取走。為了提高系統的速度,ARM采用直接數據存儲(Direct Memory Address,DMA)方式讀取數據。之后運行在ARM上的客戶端程序將數據通過網絡發送給遠程主機。遠程主機上的LabVIEW服務器程序對收到的數據進行顯示、頻譜分析、存儲回放等處理,同時遠程主機的控制信號以及為下變頻器ADC6620設計的濾波器文件也可以通過網絡發送給客戶端,實現遠程控制。2 現場數據采集系統的硬件設計21 ADC設計外部模擬信號從SMA(Sub Miniature-A)接口輸入,隔離直流后進入AD8138 ADC驅動芯片,AD8138將單路輸入信號變成

5、兩路差分信號,送至AD9244轉換。AD9244中幾個重要引腳的含義及接法:a)CML(CommonMode Reference):串聯一個01F的電容后接地。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電源時輸出

6、數據格式為補碼,接地時為直接二進制碼輸出。由于ADC6620將其輸入數據解釋成補碼,本設計中DFS接+5 V電源。22 ADC6620設計AD6620的任務是將高速數據流變成當前可實時處理的中低速數據流。在本設計中,AD6620數據輸入端代表指數含義的3位(EXP0EXP2)接地,且工作在單輸入通道模式下(AB=33 V),以模式0接收來自于ARM的配置信息(MODE=GND),采用并行方式輸出數據(PARSER=33 V)。23 其它設計本設計所采用的ARM開發板是由廣州友善之臂公司所生產的QQ2440V3,其上有一個44針的系統總線接口,它與FPGA連接起來完成數據與控制信息的傳輸。FPG

7、A與SRAM的設計比較簡單,這里不再贅述。3 數據采集系統的軟件設計為完成系統任務,需要實現幾個方面的軟件設計:a)正交數字下變頻器AD6620濾波器以及控制寄存器設計。b)在FPGA上實現系統控制、SRAM讀寫地址生成、數據通道選擇等功能的Verilog HDL程序。c)ARM上基于嵌入式Linux操作系統的數據采集硬件驅動程序。d)ARM上客戶端應用程序。e)遠程主機上基于LabVIEW的服務器以及顯示、頻譜分析、存儲與回放程序。31 AD6620濾波器及控制寄存器設計AD公司專門針對AD6620芯片推出了濾波器設計軟件fltrdsn以及監視控制軟件AD6620,但該軟件是基于計算機并口與

8、AD6620芯片連接的,不適應設計中遠程數據傳輸與控制、多客戶端的任務要求。可以利用該軟件將設計成功的濾波器以及配置文件保存下來,利用LabVIEW的文件處理功能自動將信息提取出來,通過網絡遠程配置AD6620。32 FPGA邏輯設計FPGA內部邏輯電路結構見圖2。考慮到后續設計的需要,FPGA內部使用ARM地址總線的低3位來選擇當前操作的模塊,具體的地址與內部模塊對應關系見表1。圖2中各模塊功能進一步說明如下:a)Input_db_part:雙向數據總線分離。配合由Control_register送來的控制信號,在Conf_6620有效時將數據總線上的數據送至Config_6620模塊,完成

9、AD6620配置,在Fetch_sram信號有效時將讀SRAM得到的數據傳送至ARM數據總線。b)Control_register:控制寄存器。內部模塊有序工作的核心,具體的控制定義見表2。c)Config_6620:配置AD6620。此模塊在Conf 6620位有效時接收由ARM傳來的AD6620配置信息,完成DDC濾波器和控制寄存器配置。它除了本身使用ARM地址總線的3位ARM ADD3:1作為FPGA內部模塊選擇之外,還用了ARM ADD6:4作為AD6620的外部接口寄存器地址。Rdy in信號用于指示寫入操作成功,ARM檢測到此信號有效后,進行下一次的寫操作。d)PII:鎖相環。Cy

10、clone EP1C6Q240中有2個鎖相環模塊,設計中使用了其中的一個將20 MHz的時鐘倍頻至50 MHz,供AD9244,AD6620以及FPGA內部使用。e)Ad_to_sram:AD6620輸出數據寫入SRAM時序產生模塊。AD6620工作在單通道模式時典型輸出時序見圖。此模塊主要完成的功能有:用2個數據鎖存器在DV與IQ信號的控制下鎖存I路和Q路數據,產生寫SRAM所需的地址。由于AD6620抽取率較高的緣故,輸出數據率一般較低,在模塊中使用了狀態機在2次有效數據期間產生寫SRAM的時序。此外,當寫地址到達設定值時,模塊產生寫溢出中斷,提示ARM改變控制寄存器內容,讀取數據。a)R

11、ead_add_gen:讀地址產生。在Fetch_sram位的控制下,產生讀SRAM時的地址,當讀地址到達設定值時,產生讀溢出中斷,提示ARM改變控制寄存器內容,進行下一步操作。b)Control_logic:控制邏輯。模塊在Start_daq有效時選擇由Ad_to_sram模塊產生的寫SRAM的地址、數據與控制總線與SRAM相接,而在Fetch_sram有效時選擇讀SRAM的地址、數據與控制總線與SRAM相接。與DMA讀取有關的請求與響應信號也在此模塊中處理。33 嵌入式Linux驅動程序設計驅動程序是硬件與應用程序的接口。針對設計任務與硬件特點,在驅動程序中設計了以下函數:a) AD662

12、0_read:申請DMA緩存,睡眠等待寫溢出中斷到來,DMA傳輸完成后,將數據從內核空間傳送至用戶空間,釋放DMA緩存。b) AD6620_ioctl:核心是一個switch選擇結構,根據應用程序中用戶命令,完成初始化DMA,寫控制寄存器或者配置AD6620的工作。c)AD6620 open:主要完成DMA通道參數設置,初始化IO端口和信號量。d) AD6620 release:完成與AD6620_open相反的工作,主要是一些清理和釋放申請資源的工作。函數編寫好后,通過下面的file_operations結構體聯系起來:e) AD6620 init:初始化函數,完成驅動程序注冊、中斷與中斷處

13、理函數注冊、創建設備文件節點等。其中的驅動程序注冊的核心就是上面的file_operations結構體。驅動程序編寫好后,用戶就可以在應用程序中調用這些函數,實現通過一組標準化的調用來操作底層硬件。34 客戶端應用程序客戶端應用程序為了保證數據與控制信息的可靠傳輸,采用的是基于TCP協議的Socket網絡編程。本次設計客戶端運行在ARM上,采用的是Linux下的C編程;而服務器端運行在遠程主機上,利用LabVIEW的圖形化語言實現。具體客戶端的通信與控制流程圖見圖4。可以看出。客戶端是依賴于讀取由遠程主機發送的控制字符來完成實時控制,實現與服務器端的交互操作的。因此,無論是客戶端還是服務器端,

14、在每一次發送數據與控制信息時,都會發送一個控制字符,接收端就是依靠識別此字符來完成相應的操作。表3中給出了控制字符與所執行操作之間的對應關系。35 LabVIEW服務器程序設計服務器端的完整程序見圖5。服務器在指定的端口上偵聽,等待遠程客戶端的連接。程序的核心是兩個循環框,上面的循環框完成發送數據和控制信息的任務,主要包括傳送AD6620濾波器設計與控制寄存器配置文件、實時改變AD6620可動態配置寄存器內容、開始數據采集以及停止系統控制等模塊。數據與控制信息內容放在LabVIEW事件框圖中,當用戶單擊前面板上的控制按鈕時,相應的信息被發送,這樣就避免了系統無休止地查詢,節約了系統資源。下面的

15、循環框完成讀SRAM數據接收、分離IQ信號、頻譜分析與顯示等,當用戶使得存儲文件路徑不為空時,可以將此時數據顯示控件上的數據保存下來;而當回放文件路徑不為空時,用戶可以回放之前保存的歷史數據。頻譜顯示控件有線性與對數顯示兩種格式,它受前面板上的一個系統復選框的控制。4 設計結果驗證采用了3組實驗來驗證設計的正確性。實驗條件:現場數據采集系統IP地址1921681230,遠程主機IP地址19216811,二者位于同一個局域網內。系統工作主頻50 MHz,AD6620濾波器為低通濾波器,通帶截止頻率10 kHz,阻帶截止頻率15 kHz,通帶內衰減0 dB,阻帶衰減-60 dB,三級濾波器的抽取系

16、數分別為10,25,2。第1組實驗的輸入信號為單頻信號,頻率1005 MHz,幅度250 mV,AD6620中NCO頻率字設定為1 MHz。實驗恢復的I路信號及其頻譜分析見圖6(a)。從實驗結果來看,系統采集數據頻率準確,較好地恢復了信號。第2組實驗的輸入信號為調幅信號,載波頻率1 MHz,幅度250 mV,單音調制信號頻率為3 kHz,調制深度30。AD6620中NCO頻率字設定為1 MHz。實驗恢復的信號與頻譜分析見圖6(b)。這時從頻譜圖上可以清晰地看出差頻之后,在零頻周圍300 Hz處有1根清晰的譜線。第3組實驗的輸入信號為單頻信號,頻率1018 MHz,幅度250 mV,AD6620中NCO頻率字設定為1 MHz。實驗恢復的I路信號與頻譜分析見圖6(c)。此時由于信號處于濾波器通帶之外,衰減很大,不能恢復信號。I路信號顯示圖中類似于“毛刺”的信

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論