《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于PIC單片機(jī)和嵌入式TCP/IP技術(shù)的海水有機(jī)磷農(nóng)藥數(shù)據(jù)采集系統(tǒng)
基于PIC單片機(jī)和嵌入式TCP/IP技術(shù)的海水有機(jī)磷農(nóng)藥數(shù)據(jù)采集系統(tǒng)
葛玉榮,田玉周,王旭柱,李 怡
(中國海洋大學(xué) 電子工程系,山東 青島266071)
摘要: 介紹海水有機(jī)磷農(nóng)藥現(xiàn)場實時數(shù)據(jù)采集系統(tǒng)的設(shè)計。具體討論了由PIC單片機(jī)構(gòu)成的子系統(tǒng)和基于網(wǎng)絡(luò)單片機(jī)Sx52BD實現(xiàn)的數(shù)據(jù)傳輸模塊,并對LabWindows/CVI編寫的數(shù)據(jù)處理軟件進(jìn)行了說明。
Abstract:
Key words :

摘   要: 介紹海水有機(jī)磷農(nóng)藥現(xiàn)場實時數(shù)據(jù)采集系統(tǒng)的設(shè)計。具體討論了由PIC單片機(jī)構(gòu)成的子系統(tǒng)和基于網(wǎng)絡(luò)單片機(jī)Sx52BD實現(xiàn)的數(shù)據(jù)傳輸模塊,并對LabWindows/CVI編寫的數(shù)據(jù)處理軟件進(jìn)行了說明。
關(guān)鍵詞: FIFO  實時數(shù)據(jù)采集  TCP/IP協(xié)議

  海洋生態(tài)環(huán)境越來越受到人們的重視。如何快速有效、實時、定量地對海水中有機(jī)磷農(nóng)藥的濃度進(jìn)行現(xiàn)場監(jiān)測,是海洋生態(tài)環(huán)境現(xiàn)場快速監(jiān)測系統(tǒng)要解決的問題之一。為此,研制了用于海水有機(jī)磷農(nóng)藥現(xiàn)場監(jiān)測的生物傳感器。該傳感器通過含有農(nóng)藥的海水和不含農(nóng)藥海水對生物酶的抑制作用的不同,用標(biāo)準(zhǔn)加入法[1][2]檢測海水中有機(jī)磷農(nóng)藥的濃度。為實現(xiàn)對整個測試裝置的自動控制和實時、快速地讀取測量數(shù)據(jù),設(shè)計、開發(fā)了基于PIC單片機(jī)和嵌入式TCP/IP技術(shù)的快速、實時數(shù)據(jù)采集系統(tǒng)。
1  有機(jī)磷濃度的測量原理[2]
  對有機(jī)磷濃度的測量采用生物傳感器。利用含不同濃度農(nóng)藥的海水對生物酶抑制作用不同,通過電極把抑制轉(zhuǎn)換成電信號,不同的濃度得到不同的峰值,通過峰值得到抑制率。抑制率的計算公式為:
  

  其中,f1為在標(biāo)準(zhǔn)海水中測得的峰值,f2為加入農(nóng)藥之后測得的峰值。
  系統(tǒng)中設(shè)置四個測試通道,第一通道是純凈的海水,是參照通道;第二通道是要測試的海水;第三通道為加入已知濃度農(nóng)藥的海水;第四通道為加入另外一個已知濃度的海水(和第三通道不同)。根據(jù)有機(jī)磷農(nóng)藥濃度的對數(shù)與相應(yīng)的酶活抑制率(即峰值下降百分率)在一定范圍內(nèi)呈線性的關(guān)系,可以采用加標(biāo)法原理推算得到海水樣品有機(jī)磷農(nóng)藥的濃度。原理如圖1所示。由圖1得到計算有機(jī)磷濃度的公式:
  

其中,c1、c2為三、四通道加入標(biāo)準(zhǔn)農(nóng)藥的濃度,cx為要測試海水中農(nóng)藥的濃度,η0、η1、η2為二、三、四通道的抑制率。通過公式(2)可以求出在第二通道待測海水中農(nóng)藥的濃度。
2  系統(tǒng)硬件原理
  由測試原理可知,需要同時采集四通道的信號,每通道求取二次基線和峰值,整個測試過程需要50分鐘。為確保精度,每隔1ms采集一次四個通道的數(shù)據(jù),要求系統(tǒng)能快速采集并完成數(shù)據(jù)傳輸。為實現(xiàn)快速采集,設(shè)計了由精簡指令集單片機(jī)PIC1673[3]和快速A/D轉(zhuǎn)換器組成的單片機(jī)數(shù)據(jù)采集控制模塊為實現(xiàn)大容量、快速的數(shù)據(jù)傳輸,系統(tǒng)設(shè)計了基于嵌入式TCP/IP技術(shù)的網(wǎng)絡(luò)傳輸模塊。鑒于PC機(jī)在數(shù)據(jù)處理上的優(yōu)勢,由上位機(jī)數(shù)據(jù)處理模塊對數(shù)據(jù)進(jìn)行處理。單片機(jī)數(shù)據(jù)采集控制模塊和網(wǎng)絡(luò)傳輸模塊之間通過FIFO高速緩沖存儲器進(jìn)行通信。系統(tǒng)框圖如圖2所示。

2.1 系統(tǒng)工作流程
  由上位機(jī)發(fā)出啟動命令和用于控制反應(yīng)裝置工作的各電磁閥動作的時間參數(shù)給網(wǎng)絡(luò)傳輸模塊;網(wǎng)絡(luò)傳輸模塊把命令存入FIFO高速緩沖存儲器;采集模塊從FIFO高速緩沖存儲器中讀到命令,按照上位機(jī)傳來的時間參數(shù),控制整個反應(yīng)裝置自動工作,同時把采集到的數(shù)據(jù)放入FIFO高速緩沖存儲器。網(wǎng)絡(luò)接口模塊采用TCP/IP協(xié)議對FIFO中的數(shù)據(jù)打包,傳給上位機(jī)。上位機(jī)對接到的數(shù)據(jù)進(jìn)行處理,得到最后的濃度。
2.2 單片機(jī)數(shù)據(jù)采集模塊
  采集模塊的原理框圖如圖3所示。

  選擇多通道串行十二位A/D轉(zhuǎn)換器TCL2543進(jìn)行A/D轉(zhuǎn)換。TCL2543的轉(zhuǎn)換速度為10?滋s一次,以滿足系統(tǒng)對采樣頻率的要求。同時由于是串行的A/D,所以占用系統(tǒng)的I/O線較少。TCL2543的基準(zhǔn)電壓接入2.5V,因此要求輸入模擬信號的電壓范圍為0~2.5V。系統(tǒng)生物傳感器來的阻抗大約為1012Ω,范圍是-0.2V~+0.2V的電信號,所以信號在進(jìn)入A/D轉(zhuǎn)換器之前,通過預(yù)處理電路進(jìn)行了阻抗和電壓變換。
  CPU選擇PIC16C73B單片機(jī),它是Microchip公司生產(chǎn)的一款基于EPROM 的8 位高性能微控制器。芯片上集成了一個8位算術(shù)邏輯單元和工作寄存器,4KB程序存儲器,192個數(shù)據(jù)寄存器,三個端口共22根I/O線,三個定時/計數(shù)器及二個串行口等。它具有精簡指令集(RISC)和哈佛結(jié)構(gòu),同時可運用二級流水線指令進(jìn)行取數(shù)和執(zhí)行,指令大部分可在單周期執(zhí)行。該機(jī)可靠性好,速度比同類單片機(jī)快幾倍[3]。系統(tǒng)連接時,RA0~RA3與TLC2543進(jìn)行通信;RB0~RB7接FIFO的數(shù)據(jù)端口;RC4~RC7作為雙向FIFO的控制線。
上位機(jī)發(fā)來的命令由網(wǎng)絡(luò)傳輸模塊存入命令FIFO。為使PIC1673B單片機(jī)能隨時判斷FIFO命令緩沖存儲器中是否有命令,把FIFO命令緩沖存儲器的不空狀態(tài)線接到單片機(jī)PIC1673的外部中斷引腳,一旦有中斷來,則馬上讀命令進(jìn)行處理。采集來的數(shù)據(jù)寫入數(shù)據(jù)FIFO緩沖存儲器中,等待網(wǎng)絡(luò)傳輸模塊的讀取。
2.3 網(wǎng)絡(luò)傳輸模塊
  網(wǎng)絡(luò)傳輸模塊原理框圖如圖4所示。CPU采用網(wǎng)絡(luò)單片機(jī)Sx52BD芯片。Sx52BD是UBICOM公司的8位MCU,速度可達(dá)100 MHz,工作在50 MHz時執(zhí)行指令速度可達(dá)到50MIPS。它主要完成數(shù)據(jù)協(xié)議在網(wǎng)絡(luò)層和傳輸層的解包打包。當(dāng)有數(shù)據(jù)從RJ45傳輸過來時,單片機(jī)對數(shù)據(jù)報進(jìn)行分析,并將得到的數(shù)據(jù)存入FIFO高速命令緩沖存儲器;反之,當(dāng)數(shù)據(jù)緩沖器不為空時,單片機(jī)對數(shù)據(jù)以TCP/IP協(xié)議打包,通過網(wǎng)絡(luò)傳輸?shù)缴衔粰C(jī)。

  以太網(wǎng)接口芯片CS8900主要完成數(shù)據(jù)鏈路層的協(xié)議。CS8900A是Cirrus Logic公司生產(chǎn)的低功耗、高性能的16位可編程以太網(wǎng)控制器[4]。它內(nèi)部集成了在片RAM、10BASE-T收發(fā)濾波器,提供8位和16位二種接口,支持I/O、Memory、DMA三種傳輸模式。本系統(tǒng)選擇比較簡單易用的I/O模式,通過8位數(shù)據(jù)總線對其進(jìn)行配置和數(shù)據(jù)的讀寫。
  在發(fā)送過程中,如果在一定的時間內(nèi)接不到上位機(jī)接收數(shù)據(jù)的確認(rèn),則需要重發(fā)。如果要將數(shù)據(jù)從FIFO高速數(shù)據(jù)緩沖存儲器中再次讀出,則需要再次打包。為節(jié)約時間,在系統(tǒng)中擴(kuò)展2KBSRAM,把當(dāng)前發(fā)送的數(shù)據(jù)報備份,如果需要重發(fā),直接從SRAM中取出。
2.4 網(wǎng)絡(luò)傳輸模塊和數(shù)據(jù)采集模塊之間的數(shù)據(jù)傳輸
  PIC1673B單片機(jī)和SX52BD單片機(jī)I/O線都為三態(tài)線,理論上可以直接相連,通過I/O線傳送數(shù)據(jù)。但正因為是三態(tài)線,每次傳輸數(shù)據(jù)時首先要對端口初始化設(shè)置數(shù)據(jù)的傳輸方向,同時一方在發(fā)送時,要保證另一方處于接收狀態(tài),即雙方要同步。而且一次只能傳輸一個數(shù)據(jù),速度慢。因此,網(wǎng)絡(luò)傳輸模塊和數(shù)據(jù)采集模塊之間的數(shù)據(jù)傳輸采用共享存儲器的方式。用二個FIFO高速緩沖存儲器作為共享存儲器實現(xiàn)數(shù)據(jù)采集模塊和傳輸模塊之間的數(shù)據(jù)傳送。不需要Sx52BD單片機(jī)即可直接和PIC1673單片機(jī)通信,從而節(jié)省了單片機(jī)的開銷,提高了速度。
3  系統(tǒng)軟件設(shè)計
  系統(tǒng)軟件主要包括:采集模塊的數(shù)據(jù)采集程序,網(wǎng)絡(luò)傳輸模塊的通信程序,上位機(jī)的數(shù)據(jù)處理程序。
3.1 采集模塊程序
  采集模塊主要在命令FIFO存儲器不為空時,讀取啟動命令,控制反應(yīng)裝置自動工作,同時采集數(shù)據(jù)。程序流程如圖5所示。

  03h命令是發(fā)送測試反應(yīng)裝置各電磁閥動作時間參數(shù)的命令。單片機(jī)從命令FIFO存儲器讀到此命令后,把緊跟其后的13個數(shù)據(jù)作為裝置中13個電磁閥何時動作的參數(shù)賦值給相應(yīng)的內(nèi)部寄存器,以此做為電磁閥開關(guān)的定時時間。02h命令是啟動采集系統(tǒng)工作的命令。單片機(jī)讀到此命令后,控制裝置開始工作,同時啟動A/D轉(zhuǎn)換,開始數(shù)據(jù)采集。
  A/D轉(zhuǎn)換器TCL2543轉(zhuǎn)換的通道號和讀出數(shù)據(jù)的長度以及導(dǎo)前位由I/O周期的前8位設(shè)置[5],選擇輸出的數(shù)據(jù)長度為12位。注意在每次I/O周期讀取的數(shù)據(jù)都是上次轉(zhuǎn)換的結(jié)果,當(dāng)前的轉(zhuǎn)換結(jié)果在下一個I/O周期中被串行移出。第一次讀數(shù)時由于內(nèi)部的調(diào)整,讀取的結(jié)果可能不正確,應(yīng)丟棄。為使讀取的數(shù)據(jù)更準(zhǔn)確,消除干擾的影響,程序中對讀取的數(shù)據(jù)進(jìn)行了均值濾波。讀入的A/D轉(zhuǎn)換的數(shù)據(jù)是單極性的,但輸入電壓范圍是-0.2V~+0.2V, 因此,在程序中需做數(shù)據(jù)的處理和定標(biāo),把單極性的電壓值變成雙極性的電壓值。
3.2 網(wǎng)絡(luò)傳輸模塊采用的TCP/IP協(xié)議
  網(wǎng)絡(luò)傳輸模塊采用簡化了的TCP/IP協(xié)議,主要有以下幾種:
  (1)ARP:地址解析協(xié)議,ARP為IP地址到對應(yīng)的硬件地址之間提供動態(tài)映射。歸根結(jié)底,網(wǎng)內(nèi)設(shè)備是靠其端口地址,即MAC地址來區(qū)分的,這個過程是自動完成的。因此系統(tǒng)要隨時響應(yīng)主機(jī)發(fā)出的ARP請求,才能實現(xiàn)主機(jī)對它的訪問[6]。
  (2)ICMP:Internet控制報文協(xié)議,ICMP經(jīng)常被認(rèn)為是IP層的一個組成部分。它傳遞差錯報文以及其他需要注意的信息。ICMP實現(xiàn)了主機(jī)對本系統(tǒng)的連接故障檢測。
  (3)UDP:傳輸層協(xié)議。其作用是為不同的應(yīng)用進(jìn)程提供端口號。對于服務(wù)器而言,不同的端口對應(yīng)不同的服務(wù)。它主要用于實時數(shù)據(jù)流的傳輸。
  (4)IP協(xié)議:負(fù)責(zé)整個通信子網(wǎng)數(shù)據(jù)包的傳輸。它只提供對數(shù)據(jù)包的盡力傳輸服務(wù),如有連接、可靠傳輸?shù)绕渌?wù),則要在更高層去實現(xiàn)。
  系統(tǒng)實現(xiàn)的協(xié)議間的承載關(guān)系為:IP/UDP,IP/ICMP,ARP直接在鏈路層之上。
3.3 網(wǎng)絡(luò)傳輸模塊通信程序
  網(wǎng)絡(luò)傳輸模塊收發(fā)數(shù)據(jù)流程如圖6所示。

  程序在初始化網(wǎng)卡時把CS8900的RXCFG寄存器設(shè)置為0103H。當(dāng)接收到一個正確的數(shù)據(jù)報后,CS8900產(chǎn)生一個接收中斷。初始化后,主機(jī)方先要與本模塊建立握手連接。然后,如果CS8900有中斷產(chǎn)生,則接收上位機(jī)的數(shù)據(jù)報,把數(shù)據(jù)報讀入內(nèi)部的RAM,根據(jù)數(shù)據(jù)報不同的類型做相應(yīng)的處理。CS8900無中斷,說明無接收數(shù)據(jù),則檢測數(shù)據(jù)緩存FIFO是否為空。若不為空則讀出數(shù)據(jù),按照UDP協(xié)議進(jìn)行打包后,送入CS8900發(fā)送。同時把打包后的數(shù)據(jù)暫存到外部SRAM中,啟動定時器。若在一定的時間內(nèi)沒有從主機(jī)方收到確認(rèn),則重發(fā)該幀。
  對接收到的數(shù)據(jù)幀,如果收到ARP請求,則立刻發(fā)送ARP響應(yīng),以便主機(jī)得到本系統(tǒng)的MAC地址;若收到ICMP,則置其TTL值為128,再將原數(shù)據(jù)發(fā)出。系統(tǒng)收到UDP數(shù)據(jù)幀時,要判斷是上位機(jī)發(fā)來的命令還是接收數(shù)據(jù)確認(rèn)的回應(yīng)。如果是命令,則解碼后存入FIFO命令緩沖存儲器;如果是接收數(shù)據(jù)的確認(rèn)回應(yīng),則清除SRAM中對應(yīng)的數(shù)據(jù)報。
3.4 上位機(jī)數(shù)據(jù)處理程序
  上位機(jī)數(shù)據(jù)處理軟件采用LabWindows/CVI編寫。LabWindows/CVI是美國NI公司開發(fā)的32位面向計算機(jī)測控領(lǐng)域的軟件開發(fā)平臺。它將C語言平臺與數(shù)據(jù)采集、分析和表達(dá)等測控專業(yè)工具有機(jī)地結(jié)合起來,提供強(qiáng)大的函數(shù)庫以便于對采集的數(shù)據(jù)進(jìn)行分析處理[7]。在本系統(tǒng)中,用LabWindows/CVI編寫了簡單易用的虛擬儀器面板,可以通過此面板對采集的參數(shù)進(jìn)行設(shè)置,將工作時間參數(shù)和系統(tǒng)啟動信號打包發(fā)送給網(wǎng)絡(luò)傳輸模塊,以實現(xiàn)對數(shù)據(jù)采集全過程的控制;對上傳數(shù)據(jù)進(jìn)行解碼;對解碼后的采集數(shù)據(jù)進(jìn)行處理,形成四通道的時間-電壓曲線,求出最終的濃度。
4  結(jié)束語
  本采集系統(tǒng)用在海水有機(jī)磷農(nóng)藥的現(xiàn)場實時監(jiān)測上,對馬拉硫磷的檢測限為0.5μg/L,測定值與理論值之間的誤差在10%以內(nèi)。用Labwindows編寫的數(shù)據(jù)處理程序具有易于操作的界面,直觀的圖形顯示形式,能自動計算基線和峰值以及最終的濃度。同時,本系統(tǒng)還可以用在其他要求多通道快速實時數(shù)據(jù)采集的場合,只要根據(jù)不同的要求相應(yīng)改變系統(tǒng)軟件即可。
參考文獻(xiàn)
1   孟范平,唐學(xué)璽,李永祺.有機(jī)磷農(nóng)藥海洋生物傳感器監(jiān)測技術(shù).海洋高新技術(shù)產(chǎn)業(yè)化高級論壇論文集,中國工程院,2000
2   何東海.利用乙酰膽堿酯酶生物傳感器監(jiān)測海水有機(jī)磷農(nóng)藥.中國海洋大學(xué)碩士學(xué)位論文,2004,6
3   竇振中.PIC系列單片機(jī)原理和程序設(shè)計.北京:北京航空航天大學(xué)出版社,1998
4   陳學(xué)全,關(guān)宇東.嵌入式TCP/IP協(xié)議單片機(jī)技術(shù)在網(wǎng)絡(luò)通信中的應(yīng)用.電子技術(shù)應(yīng)用,2002;(8)
5   潘志東,劉增華.串行A/D轉(zhuǎn)換器TLC2543原理及應(yīng)用.電測與儀表,2001;(3)
6   科默.TCP/IP網(wǎng)絡(luò)互連技術(shù).北京:清華大學(xué)出版社,1995
7   王承,何志偉,許東芹.虛擬儀器-現(xiàn)代儀器發(fā)展的新階段.  測控技術(shù),2001;20(10)
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。