湖南涉外經(jīng)濟學(xué)院信息科學(xué)與工程學(xué)院 歐陽娣
基于嵌入式的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計
湖南涉外經(jīng)濟學(xué)院信息科學(xué)與工程學(xué)院 歐陽娣
本文設(shè)計了一種基于嵌入式高精度高速數(shù)據(jù)采集模塊,利用高速多路模擬開關(guān)選擇8路模擬信號輸入,實現(xiàn)程序控制采集任意1路或者輪流采集1~8路信號。論文介紹了系統(tǒng)設(shè)計的總體方案及詳細的軟硬件設(shè)計。
高精度;數(shù)據(jù)采集;USB總線
數(shù)據(jù)采集在現(xiàn)代工業(yè)生產(chǎn)及科學(xué)研究中的重要地位日益突出,并且對實時高速數(shù)據(jù)采集的要求也不斷提高。在信號測量、圖像處理、音頻信號處理等一些高速、高精度的測量中,都需要進行高速數(shù)據(jù)采集?;谟嬎銠C和嵌入式的分布式數(shù)據(jù)采集系統(tǒng)架構(gòu)以其開發(fā)成本低、開放性、運算能力、通訊能力強、易于使用,逐漸成為設(shè)計應(yīng)用的主流[1],而目前在微機系統(tǒng)中,外設(shè)與CPU的連接存在接口標(biāo)準(zhǔn)各自獨立、互不兼容、無法共享的問題,并且安裝、配置亦很麻煩,而通用串行總線(USB)的優(yōu)良特性對此提供了極佳的解決方案[1]。
圖1 系統(tǒng)硬件框圖
圖2 信號調(diào)理電路圖
圖3 主程序流程圖
如圖1,系統(tǒng)的工作方式為,模擬信號輸入部分實現(xiàn)采樣多路信號的選擇,同時對輸入的模擬信號進行調(diào)理后送入A/D采樣,而利用FPGA作為邏輯控制器實現(xiàn)系統(tǒng)內(nèi)器件邏輯控制信號的產(chǎn)生,并且控制A/D的采樣頻率。在FPGA內(nèi)部配置雙口RAM實現(xiàn)數(shù)據(jù)緩沖。嵌入式處理器負責(zé)讀取數(shù)據(jù),并通過USB總線傳輸?shù)接嬎銠C,嵌入式處理器還負責(zé)整個系統(tǒng)的協(xié)調(diào)工作[2]。
信號輸入通道為多通道輸入,系統(tǒng)可以采用ADG608高速多路模擬開關(guān)組成,由1條片選線和3條地址線實現(xiàn)從8路單端信號中選擇其中一路,送入后級電路處理。同時,在高速數(shù)據(jù)采集系統(tǒng)中,由于現(xiàn)場輸入信號大小范圍廣,因而需要將信號放大或者衰減,滿足A/D轉(zhuǎn)換器模擬輸入要求(0~5V),并盡可能的使A/D轉(zhuǎn)換后有效位數(shù)大。AD8551是一款低漂移,單電源的軌對軌輸入/輸出運算放大器,可由+2.7~+5V的單電源驅(qū)動。它具有極低的失調(diào)、漂移和偏置電流[3]。
信號調(diào)理電路如圖2,AIN為模擬輸入信號,AO信號輸出。第一級放大倍數(shù)N1=1+R2/R1,第二級放大倍數(shù)N2=1+R3/R4,總的放大倍數(shù)N=N1×N2,通過R1、R2、R3和R4的不同取值,可實現(xiàn)不同倍數(shù)放大或衰減。
圖4 固件程序流程圖
濾波部分包括信號濾波和電源濾波,主要是減少噪聲的干擾。電容C3和C4為電源去耦電容,對電源進行濾波。信號濾波共有4級,濾波器均采用RC濾波器。其中R6和C6組成第一級信號濾波;R2和C1組成第二級信號濾波;R5和C5組成第三級信號濾波;R4和C2組成第四級信號濾波。RC濾波器的計算方法:f=1/(2πRC)。其中f為截止頻率,也就是說大于f的頻率的信號通過RC濾波器以后都會有較大的衰減抑制。
本系統(tǒng)選用ATMEL公司的AT91RM9200。AT91RM9200是完全圍繞ARM920T ARM Thumb處理器構(gòu)建的ARM系統(tǒng),AT91RM9200集成了許多標(biāo)準(zhǔn)接口,其中包括USB2.0(全速)的主機和設(shè)備端口,USB2.0全速(12Mb/s)主機端口含片上收發(fā)器(208引腳PQFP封裝中僅為一個)和集成的FIFO及專用的DMA通道;USB2.0全速(12Mb/s)器件端口含片上收發(fā)器,2K字節(jié)可配置的集成FIFO。
如圖3所示,主程序首先完成硬件初始化,初始化內(nèi)容包括初始化嵌入式處理器的I/O口狀態(tài)、中斷寄存器以及定時器/計數(shù)器的寄存器等等。然后進入一個循環(huán)體,在此循環(huán)中通過檢測USB接口中的電源端)輸入到嵌入式處理器I/O口上的電平高低來判斷USB設(shè)備是否插入到主機設(shè)備中,如果USB設(shè)備插入到主機設(shè)備中,USB接口中的電源端輸入到嵌入式處理器I/O口電平為高,程序進入到USB設(shè)備端點枚舉過程,完成USB設(shè)備枚舉后,進入采樣服務(wù)程序,等待上位PC機的命令,設(shè)置采樣狀態(tài),開始數(shù)據(jù)采集。主程序?qū)D轉(zhuǎn)換采樣后得到的數(shù)據(jù)寫到USB端點緩沖區(qū)中,等待上位PC機發(fā)送命令讀取USB端點緩沖區(qū)中的數(shù)據(jù);如果主程序已經(jīng)工作在USB設(shè)備插入到主機設(shè)備中的狀態(tài)下,而將USB設(shè)備從主機設(shè)備中撥出,主程序會跳到本循環(huán)體的入口處檢測電平的高低;如果嵌入式處理器I/O口上的電平保持為低,主程序?qū)⑼A粼谶@個循環(huán)體中,等待USB設(shè)備插入到主機設(shè)備中,嵌入式處理器I/O電平發(fā)生變化后進入數(shù)據(jù)采集和傳輸工作狀態(tài)。
固件程序包含在主程序中,如圖4所示,作為主程序的一個子程序,USB設(shè)備在正常使用之前,必須由主機完成USB設(shè)備的配置。主機一般會從USB設(shè)備獲取配置信息后再確定此設(shè)備有哪些功能。作為配置操作的一部分,主機會設(shè)置設(shè)備的配置值,如果必要的話會選擇合適的接口備選設(shè)備。在發(fā)出連接USB命令后,主機先讀取設(shè)備描述符,然后發(fā)出設(shè)置USB地址SETUP包,設(shè)置USB地址后,進行主機客戶驅(qū)動與設(shè)備初始化,其余端點依此類推。
本文設(shè)計采用USB總線傳輸數(shù)據(jù),USB總線具有USB總線傳輸具有速度快、支持熱插拔和即插即用、使用靈活和易于擴展,能夠采用USB總線供電方式,無需外部電源,更好的適用于室外場合的數(shù)據(jù)采集。該系統(tǒng)能夠外置于計算機,避免了傳統(tǒng)內(nèi)置式集卡需要插入計算機內(nèi)部插槽才能采集數(shù)據(jù),能與便攜式計算機配合使用,提高系統(tǒng)的便攜性。
[1]周俊蓉.高速數(shù)據(jù)采集系統(tǒng)[J].通信與信息技術(shù), 2004,10:32-35.
[2]馬凱,劉要文.高速數(shù)據(jù)采集卡的設(shè)計[J].計算機工程.2004,24(30):180-182.
[3]何朝陽,石菡貞.高速高精度實時數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)[J].國外電子測量技術(shù),2005,6(12):30-33.
歐陽娣(1982—),女,湖南長沙人,大學(xué)本科,湖南涉外經(jīng)濟學(xué)院信息科學(xué)與工程學(xué)院助理實驗師,研究方向:電子通信工程。