摘 要: 介紹了利用LPC2468處理電導(dǎo)率、溫度傳感器等所采集的信號(hào),使傳感器的測(cè)量由手控轉(zhuǎn)變?yōu)樽詣?dòng)化,且其精度大大提高。提出使用傳感器、ADC7656芯片、AD7502芯片等建立基于LPC2468的水質(zhì)監(jiān)測(cè)系統(tǒng),利用DM9000芯片實(shí)現(xiàn)單片機(jī)與計(jì)算機(jī)之間的通信,同時(shí)用μC/OS-II開發(fā)采集系統(tǒng)的控制程序。
關(guān)鍵詞: LPC2468;AD7656; μC/OS-II;水質(zhì)監(jiān)測(cè)
中國(guó)是一個(gè)嚴(yán)重缺水的國(guó)家,目前全國(guó)多數(shù)城市地下水受到一定程度的點(diǎn)狀和面狀污染,嚴(yán)重威脅到城市居民的飲水安全和人民群眾的健康。水質(zhì)監(jiān)測(cè)是水資源管理與保護(hù)的重要基礎(chǔ),是保護(hù)水環(huán)境的重要手段,所以對(duì)水質(zhì)監(jiān)測(cè)系統(tǒng)的研究就顯得尤為的重要[1]。本文以LPC2468為CPU,利用AD7656進(jìn)行A/D轉(zhuǎn)換、通過DM9000進(jìn)行以太網(wǎng)通信,實(shí)現(xiàn)的水質(zhì)監(jiān)測(cè)系統(tǒng)具有體積小巧、測(cè)量精度高、反應(yīng)速度快等優(yōu)點(diǎn)。
1 系統(tǒng)總體設(shè)計(jì)方案
水質(zhì)監(jiān)測(cè)系統(tǒng)采用ARM單核處理系統(tǒng),其總體設(shè)計(jì)方案如圖1所示。水溫、電導(dǎo)率等8路模擬量經(jīng)過傳感器轉(zhuǎn)換為電壓信號(hào),經(jīng)數(shù)據(jù)采集模塊進(jìn)行信號(hào)濾波調(diào)理與A/D轉(zhuǎn)換后,通過SPI總線進(jìn)入ARM。對(duì)ARM擴(kuò)展了一片鐵電存儲(chǔ)器和一片RAM進(jìn)行數(shù)據(jù)緩存,還擴(kuò)展了一片DM9000用于實(shí)現(xiàn)以太網(wǎng)通信。另外,人機(jī)接口模塊中的液晶顯示模塊以及按鍵控制模塊使得系統(tǒng)能夠脫離PC機(jī)作為獨(dú)立的便攜裝置使用。
1.1 CPU模塊
本設(shè)計(jì)采用NXP公司的一款具有極高集成度的以ARM7TDMI-S為內(nèi)核的32位微控制器LPC2468,該微控制器支持實(shí)時(shí)仿真和嵌入式跟蹤,處理器時(shí)鐘高達(dá)72 MHz。該芯片片內(nèi)集成了10/100 M以太網(wǎng)媒體訪問控制器、USB2.0全速Device/Host/OTG控制器、UART、CAN-bus等眾多資源,同時(shí)它還具有98 KB RAM、512 KB FLASH,使其非常適合于通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器、嵌入式軟件調(diào)制解調(diào)器以及其他各種類型的應(yīng)用[2]。
1.2 A/D轉(zhuǎn)換模塊
在水質(zhì)監(jiān)測(cè)裝置中,為了達(dá)到測(cè)量精度,采用了ADI公司16 bit、6通道、高集成度逐次逼近型同步采樣ADC。AD7656采用iCMOS工藝,功耗比最接近的同類雙極型ADC降低了60%,采樣率每通道達(dá)250 kb/s,并且在片內(nèi)包含一個(gè)+2.5 V內(nèi)部基準(zhǔn)電壓源和緩沖器,因此能很好地滿足電能質(zhì)量裝置對(duì)高分辨率、多通道、高轉(zhuǎn)換速率和低功耗的要求。AD7656接口電路如圖2所示。圖中V1~V6為6路經(jīng)信號(hào)調(diào)節(jié)電路處理的模擬信號(hào),通過低通濾波器濾除高頻分量。VDD與VSS為采樣保持開關(guān)工作的電源,為保證AD7656正常工作,需保證VDD和VSS大于模擬輸入電壓范圍,這里取-12 V~+12 V。AVcc與DVcc是AD7656模擬電壓輸入端和數(shù)字電壓輸入端。系統(tǒng)提供+5 V給AVcc模擬電壓端,然后將DVcc和AVcc連接在一起,AVcc與DVcc通過磁珠隔離,以減少工作過程中DVcc引起的數(shù)字噪聲對(duì)AVcc的影響。由于對(duì)實(shí)時(shí)性要求不高,因此A/D轉(zhuǎn)換器與LPC2468之間采取SPI通信,大大簡(jiǎn)化了硬件接線。
模擬量總共有8路,而AD7656只有6路通道,因此采用一片雙4通道多路開關(guān)AD7502進(jìn)行擴(kuò)展。同時(shí),由于AD7656為雙極性輸入,且輸入電壓為-5 V~+5 V,而經(jīng)調(diào)理電路傳到AD7656的電壓信號(hào)為0~10 V,這將導(dǎo)致采樣丟失。為了解決這一問題,進(jìn)行了如圖3所示的電壓轉(zhuǎn)換設(shè)計(jì),把0~10 V電壓轉(zhuǎn)換為-5 V~+5 V電壓,從而提高了準(zhǔn)確度。
1.3 其他模塊
(1)看門狗電路以及存儲(chǔ)器模塊。本系統(tǒng)看門狗采用CAT1161,因其無(wú)上電復(fù)位功能,所以在復(fù)位端應(yīng)另加RC復(fù)位電路。此外,給ARM外擴(kuò)了一片512 KB的RAM和一片256 KB的鐵電存儲(chǔ)器FM31256。其中鐵電存儲(chǔ)器為I2C接口,因其非易失性用來(lái)存儲(chǔ)一些設(shè)定值,F(xiàn)M31256內(nèi)部具有時(shí)鐘伴侶功能,可同時(shí)為系統(tǒng)提供實(shí)時(shí)時(shí)鐘。
(2)開關(guān)量及電源模塊。接口電路一律采用光耦隔離,避免外界干擾進(jìn)入CPU模塊。電源模塊采用兩級(jí)供電方式,首先經(jīng)過一層DC/DC將15 V電壓轉(zhuǎn)換成直流5 V、12 V、24 V的電壓,然后再經(jīng)過一層DC/DC,將電壓轉(zhuǎn)換成+3.3 V和+2.5 V供器件使用。
(3)通信模塊。用DM9000擴(kuò)展以太網(wǎng)接口,實(shí)現(xiàn)與站控層連接。
(4)人機(jī)交互模塊。人機(jī)界面采用320×240大屏幕彩色LCD顯示器,配有3×2的按鍵,同時(shí)還有6個(gè)LED顯示燈來(lái)反映裝置的運(yùn)行情況。
2 軟件設(shè)計(jì)
軟件部分采用源碼公開的嵌入式操作系統(tǒng)μC/OS-II作為軟件平臺(tái),其具有易移植、可靠、穩(wěn)定等特點(diǎn),并可編寫文件管理系統(tǒng)和相關(guān)的通信協(xié)議棧[3]。主要流程包括系統(tǒng)初始化和系統(tǒng)任務(wù)編寫兩大部分,如圖4所示。系統(tǒng)初始化包括μC/OS-II操作系統(tǒng)初始化與系統(tǒng)外設(shè)初始化。操作系統(tǒng)初始化包括操作系統(tǒng)啟動(dòng)代碼、任務(wù)函數(shù)的定義和初始化、文件系統(tǒng)及相關(guān)協(xié)議棧的安裝;系統(tǒng)外設(shè)初始化包括定時(shí)器初始化、SPI和串口控制器初始化等。該系統(tǒng)共有4個(gè)任務(wù),根據(jù)其輕重緩急分配了任務(wù)優(yōu)先級(jí)和任務(wù)堆棧的大小。安裝的協(xié)議棧包括USB協(xié)議棧和TCP/IP協(xié)議棧[4]。
2.1 AD7656軟件的設(shè)計(jì)
進(jìn)入定時(shí)器中斷,初始化AD7656,軟件延時(shí)產(chǎn)生一定頻率的CONVST采樣信號(hào),用來(lái)啟動(dòng)AD7656的數(shù)據(jù)轉(zhuǎn)換[5],等待BUSY信號(hào)。在接收到BUSY信號(hào)后讀取數(shù)據(jù),采樣完成,關(guān)閉定時(shí)器中斷。圖5為采樣流程圖。
A/D轉(zhuǎn)換電路是一個(gè)模擬輸入模塊,μC/OS-II內(nèi)核把它作為一個(gè)獨(dú)立的任務(wù)ADTask()來(lái)調(diào)用[6]。A/D的初始化、讀取等要用到以下幾個(gè)函數(shù):
(1)ADInit(),初始化所有的模擬輸入通道、硬件ADC以及應(yīng)用程序調(diào)用A/D模塊參數(shù),并且ADInit()創(chuàng)建任務(wù)ADTask()。
(2)ADTbl[],使一個(gè)模擬輸入通道信息、ADC硬件狀態(tài)等參數(shù)配置以及轉(zhuǎn)換結(jié)果存儲(chǔ)表。
(3)ADUpdate(),負(fù)責(zé)讀取所有模擬輸入通道,訪問ADRd(),并給它傳遞一個(gè)通道數(shù)。
(4)ADRd(),負(fù)責(zé)通過多路復(fù)用器選擇合適的模擬輸入,啟動(dòng)并等待ADC轉(zhuǎn)換,以及返回ADC轉(zhuǎn)換結(jié)果到ADUpdata()。
(5)AD_in(int x,int y),x為模擬量輸入起始通道,y為模擬量輸入個(gè)數(shù)。
2.2 數(shù)據(jù)打包
系統(tǒng)共轉(zhuǎn)換了8路不同類型模擬量,防止接收數(shù)據(jù)時(shí)混亂,在數(shù)據(jù)傳送時(shí)需對(duì)數(shù)據(jù)進(jìn)行打包。數(shù)據(jù)的類型、長(zhǎng)度等用一個(gè)結(jié)構(gòu)體來(lái)表示,即
typedef struct
{
unit8 STATE_Type;
//數(shù)據(jù)類型,0x01表示溫度,0x02表示電導(dǎo)率,等
unit8 len;//數(shù)據(jù)長(zhǎng)度
uint16 CRC; //CRC校驗(yàn)碼
};
2.3 尺度變換
由于經(jīng)過A/D轉(zhuǎn)換后的量為數(shù)字信號(hào),而不是所熟悉的工程量,因此要將這些數(shù)字量轉(zhuǎn)換為相應(yīng)的帶有量綱的數(shù)值,以方便使用。
尺度變換有軟件實(shí)現(xiàn)法、硬件實(shí)現(xiàn)法、實(shí)物定標(biāo)法和綜合實(shí)現(xiàn)法四種方法[7]。由于硬件實(shí)現(xiàn)法費(fèi)用高且占用線路板面積,因此不采用。綜合考慮價(jià)格、實(shí)現(xiàn)的難易以及信號(hào)轉(zhuǎn)變的精度等因素,選擇了軟件實(shí)現(xiàn)法中的多項(xiàng)式變換公式法。這是一種最簡(jiǎn)單實(shí)用的方法,適用于絕大多數(shù)場(chǎng)合。
本文設(shè)計(jì)了水質(zhì)監(jiān)測(cè)數(shù)字采集系統(tǒng),該采集系統(tǒng)以LPC2468為核心,采用高度集成的AD7656轉(zhuǎn)換器,大大簡(jiǎn)化了系統(tǒng)硬件和軟件設(shè)計(jì),減小了體積,提高了系統(tǒng)工作的可靠性。此系統(tǒng)具有很高的數(shù)據(jù)采集精度,由于采用了低功耗的微處理器作為控制芯片,因此整個(gè)系統(tǒng)功耗低,電路簡(jiǎn)單易且實(shí)現(xiàn)。
參考文獻(xiàn)
[1] 董甲彬,王金鑫,李玲,等.GPRS技術(shù)在水庫(kù)水質(zhì)監(jiān)測(cè)系統(tǒng)中的應(yīng)用研究[J].信息與技術(shù),2007(7):122-125.
[2] 周立功.ARM嵌入式系統(tǒng)軟件開發(fā)實(shí)例[M].北京:北京航空航天大學(xué)出版社,2004.
[3] LABROSSE J J. MicroC/OS-II the real-time Kernel Second Edition[M].北京:北京航空航天大學(xué)出版社,2007.
[4] 任哲.嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2009.
[5] 崔艷林,趙煥軍.基于AD7656和ADSP21369的多路信號(hào)采集系統(tǒng)[J].電子技術(shù)應(yīng)用,2008(12):54-56.
[6] 夏靖波,王航,陳雅蓉.嵌入式系統(tǒng)原理與開發(fā)[M].西安:西安電子科大出版社,2006.
[7] 仆玉明.智能儀表測(cè)量信號(hào)的尺度變換及實(shí)現(xiàn)[J].自動(dòng)化儀表,2000(2):47-48.