劉長虹
【摘要】針對海流傳感器信號微弱、難以采集的特點,設(shè)計了一種基于AT89C52主控芯片的數(shù)據(jù)采集通信系統(tǒng),用以對海流傳感器信號的采集。系統(tǒng)采用LabVIEW作為上位機處理工具,直觀地顯示采集的數(shù)據(jù),并將數(shù)據(jù)以Excel表格文件保存;在下位機硬件設(shè)計中,采用了AD7714芯片作為轉(zhuǎn)換芯片,簡化了數(shù)據(jù)采集系統(tǒng)的復(fù)雜度;上下位機采用串口傳輸數(shù)據(jù)。
【關(guān)鍵詞】AT89C52;數(shù)據(jù)采集;LabVIEW;串口通信
0.引言
海流傳感器是監(jiān)測海洋環(huán)境的重要工具,通過對海洋傳感器反饋的信號的采集與分析,可以清楚的掌握海洋的內(nèi)部環(huán)境。本文針對海流傳感器信號微弱的特點,設(shè)計了一種基于AT89C52單片機的信號采集系統(tǒng),對系統(tǒng)設(shè)計結(jié)構(gòu)和主要功能特點作了較詳細的論述。
1.系統(tǒng)硬件設(shè)計
海流傳感器信號屬于微弱信號,幅度很小且易被噪聲淹沒[1]。傳統(tǒng)的方法是先對信號進行預(yù)處理。在這里采用自帶放大和濾波功能的模數(shù)轉(zhuǎn)換器直接處理信號的方法,有效降低了系統(tǒng)器件噪聲的引入。由于海流傳感器采用自容式的設(shè)計,工作時沒有外接供電電纜和通信電纜[2]。為此傳感器內(nèi)部必須自帶供電單元,通過信號采集電路將海流的微弱信號轉(zhuǎn)化為高精度的數(shù)字信號,并存儲在傳感器內(nèi)部的FLASH數(shù)據(jù)存儲器中。工作時,只需將海流傳感器,錨定在待測海流區(qū)域,海流傳感器開始定時采集海流數(shù)據(jù),并自動保存。一定時間后,采集完成,回收傳感器,通過串口將采集的數(shù)據(jù)輸入計算機。上位機采用基于LabVIEW設(shè)計了數(shù)據(jù)處理程序,可直觀地顯示采集數(shù)據(jù),儲存數(shù)據(jù)為Excel表格文件,方便后續(xù)的數(shù)據(jù)分析。
2.系統(tǒng)軟件設(shè)計
系統(tǒng)軟件設(shè)計主要包含上位機和下位機軟件兩部分。上位機軟件中,設(shè)計了基于LabVIEW的數(shù)據(jù)采集程序,可實現(xiàn)海流傳感器采集數(shù)據(jù)的顯示、存儲、分析等功能。下位機軟件采用keil編程,主要完成采集系統(tǒng)的初始化、AD轉(zhuǎn)換程序的設(shè)計以及單片機中位值平均濾波算法[3]。
2.1 上位機LabVIEW程序設(shè)計
海流傳感器在固定的海域進行數(shù)據(jù)采集,采集完成后,對采集的數(shù)據(jù)需要由計算機處理,這就要求必須設(shè)計合適的上位機程序完成傳感器信號的讀取、顯示、保存、分析等。本設(shè)計中上位機傳感器信號采集程序基于LabVIEW軟件編寫[4]。
2.2 采集系統(tǒng)初始化
采集系統(tǒng)的初始化,主要包括單片機定時器T0和串口的初始化。
定時器T0初始化,需要設(shè)置定時器工作方式,定時時間等。AT89C52單片機中,定時器工作方式寄存器為TMOD,設(shè)置TMOD=0x01,表示定時器工作在方式1,即16位定時器模式。定時器實質(zhì)上是一個16位的加1計數(shù)器,通過設(shè)置合適的計數(shù)初值,可以實現(xiàn)不同時間的定時。
信號采集電路需要通過串口與上位機通信,上位機軟件,通過串口發(fā)送讀取數(shù)據(jù)指令,單片機串口接收到數(shù)據(jù)時,產(chǎn)生串口中斷,執(zhí)行相應(yīng)的中斷處理程序。
2.3 模數(shù)轉(zhuǎn)換程序設(shè)計
信號采集系統(tǒng),模數(shù)轉(zhuǎn)換芯片為AD7714,AD7714包含8個片內(nèi)寄存器,在信號轉(zhuǎn)換中主要用到通信寄存器、模式寄存器、濾波器高寄存器和濾波器低寄存器,這些寄存器都是通過串行口訪問的。首先要寫通信寄存器,初始化AD時,寫入RS2-RS0的值為001,則表示下一步的操作時寫模式寄存器,模式寄存器參數(shù)寫完畢,則自動返回到,等待寫通信寄存器。即對AD芯片的編程操作,都是從寫通信寄存器開始的.
2.4 數(shù)字濾波程序設(shè)計
數(shù)字濾波是指通過數(shù)據(jù)的處理,來濾除干擾信號,進一步提高采集數(shù)據(jù)的準(zhǔn)確度。這里模數(shù)轉(zhuǎn)換過的數(shù)據(jù),通過單片機編寫的濾波程序,來進行數(shù)字濾波。本文在對比了幾種常用的濾波算法之后,決定常用中位值平均濾波算法。
中位值平均濾波,是把連續(xù)采集到的N個數(shù)據(jù),先進行大小的比較,去掉其中的最大值和最小值,再對剩余的N-2個數(shù)據(jù)求均值。通常情況下N選擇為4-12。
2.5 時鐘和存儲模塊程序設(shè)計
信號采集系統(tǒng)時鐘模塊采用的是PCF8563時鐘芯片。通過單片機可以,實時地讀取當(dāng)前的時間數(shù)據(jù),包括年月日,時分秒等。經(jīng)過數(shù)字濾波的AD轉(zhuǎn)換數(shù)據(jù),要加上時間標(biāo)簽,海流傳感器信號采集系統(tǒng)需要讀取時、分、秒和日數(shù)據(jù),和模數(shù)轉(zhuǎn)換數(shù)據(jù)一起存入存儲器中。
FLASH存儲芯片采用Atmel公司的AT45D-B081D,容量為8Mbits,采用SPI接口數(shù)據(jù)傳輸方式。SPI數(shù)據(jù)的傳輸有三根數(shù)據(jù)線,SCK、SO和SI。SCK為芯片的讀寫提供串行時鐘,SO為數(shù)據(jù)輸出引腳,單片機從該引腳讀取數(shù)據(jù),SI為數(shù)據(jù)輸入引腳,采集的數(shù)據(jù)即從SI引腳輸入。
3.結(jié)束語
可測上升流的海流傳感器信號屬于微弱信號,對于微弱信號的測量關(guān)鍵在于噪聲的抑制。傳統(tǒng)的信號采集方案,采用獨立的兩級放大和模擬濾波的預(yù)處理方式,采集系統(tǒng)自身引入的器件噪聲不可忽略。本文,針對海流信號的特點,從降低系統(tǒng)噪聲的角度出發(fā),采取了一系列抑制噪聲的措施,設(shè)計了低噪聲、高精度、低功耗、可視化的海流傳感器信號采集系統(tǒng),實現(xiàn)了對傳感器信號的高精度采集。
參考文獻
[1]于麗霞,王福明.微弱信號檢測技術(shù)綜述[J].信息技術(shù),2007,02:115-116.
[2]侯永海,王安敏.自容式海流計[J].微計算機信息,2001, 17(1):84-85.
[3]楊明,狄衛(wèi)國,段淑鳳.數(shù)字濾波技術(shù)及其在電池檢測系統(tǒng)中的應(yīng)用[J].現(xiàn)代電子技術(shù),2003,05:98-99.
[4]Ai,X,Yang.Virtual instrument technology and its application to power system[J].IEEE Transactions on Instrumentation and Measurement,2001,25(15):54-57.