鄭曉龍,王士軍,張軍偉,文永雙,趙 達(dá)
(山東理工大學(xué) 機(jī)械工程學(xué)院,山東 淄博 255004)
?
農(nóng)業(yè)機(jī)械自動調(diào)高裝置微電容檢測系統(tǒng)的設(shè)計
鄭曉龍,王士軍,張軍偉,文永雙,趙達(dá)
(山東理工大學(xué) 機(jī)械工程學(xué)院,山東 淄博255004)
摘要:農(nóng)業(yè)機(jī)械的自動化程度越來越高,自動檢測與控制技術(shù)在農(nóng)業(yè)機(jī)械中的作用越來越大,從而等距控制的自動調(diào)高裝置需求量與日俱增。本文根據(jù)自動調(diào)高裝置的要求,設(shè)計了基于單片機(jī)STC89C52R和電容數(shù)字轉(zhuǎn)換芯片AD7746的微電容檢測系統(tǒng),詳細(xì)闡述了系統(tǒng)的硬件組成及其接口電路,分析了系統(tǒng)的軟件組成及編程原理。通過AD7746電容數(shù)字轉(zhuǎn)換芯片實現(xiàn)了對電容傳感器的信號采集與數(shù)字轉(zhuǎn)換,利用單片機(jī)分別實現(xiàn)對AD7746控制及上位機(jī)的通信。最后,通過實驗獲取了檢測系統(tǒng)的本底電容和測量精度。
關(guān)鍵詞:自動調(diào)高裝置;微電容檢測;AD7746;STC89C52R;農(nóng)業(yè)機(jī)械
0引言
從農(nóng)作物種植、田間管理到收獲的各個階段,農(nóng)業(yè)機(jī)械的自動化程度越來越高,自動檢測與控制技術(shù)在農(nóng)業(yè)機(jī)械中的作用也越來越大。例如,馬鈴薯種植機(jī)排種的深度控制、翻耕作業(yè)中犁的深度控制、自動拋肥機(jī)及農(nóng)藥噴灑中的噴嘴與作物間的高度控制等,均需要一種可實現(xiàn)等距控制的自動調(diào)高裝置[1]。
為此,設(shè)計了一種應(yīng)用于農(nóng)業(yè)機(jī)械自動調(diào)高裝置的微電容檢測系統(tǒng)。該系統(tǒng)是基于AD7746和STC89C52單片機(jī)進(jìn)行設(shè)計的,具有測量精度高、穩(wěn)定性好等特點,已在農(nóng)業(yè)機(jī)械中得到應(yīng)用并取得良好的效果,為進(jìn)一步提高自動調(diào)高裝置的精度提供了理論和實踐參考依據(jù)。
1系統(tǒng)的工作原理
該系統(tǒng)工作需經(jīng)過以下4個步驟:
1)通過方波激勵在感應(yīng)板上產(chǎn)生激勵電容;
2)對感應(yīng)上的電容進(jìn)行采樣,獲取電容值;
3)對模擬信號(電容值)進(jìn)行模數(shù)轉(zhuǎn)換;
4)進(jìn)行數(shù)據(jù)校正后進(jìn)行輸出和處理。
系統(tǒng)的原理框圖如圖1所示。
該系統(tǒng)的電容產(chǎn)生、電荷采樣、模數(shù)轉(zhuǎn)換及數(shù)據(jù)校正等功能都由AD7746電容數(shù)字轉(zhuǎn)換芯片完成。該系統(tǒng)電容產(chǎn)生模塊通過AD7746內(nèi)部的激勵源提供的方波激勵信號在自制的感應(yīng)環(huán)上產(chǎn)生電容。AD7746內(nèi)部集成的24位調(diào)制器對感應(yīng)板上的電荷進(jìn)行采樣,經(jīng)過模數(shù)轉(zhuǎn)換后生成數(shù)字信號[2];然后,經(jīng)過芯片上的數(shù)字濾波器進(jìn)行校正處理;最后,經(jīng)過單片機(jī)的串行口輸入到PC機(jī)進(jìn)行數(shù)據(jù)處理。
圖1 系統(tǒng)的工作原理框圖
2系統(tǒng)的硬件設(shè)計
系統(tǒng)的硬件包括自制的感應(yīng)板、AD7746電容數(shù)字轉(zhuǎn)換器、51系列單片機(jī)、GL9開發(fā)板、存儲單元、液晶顯示單元及PC機(jī)等部分。這些硬件構(gòu)成了系統(tǒng)的各個功能模塊。
2.1電源及抗干擾部分
該微電容檢測系統(tǒng)是模擬信號和數(shù)字信號相混合的系統(tǒng)。AD7746芯片具有極高的采樣頻率和較高的時鐘頻率,所以系統(tǒng)對干擾非常敏感,必須對系統(tǒng)進(jìn)行處理來降低噪聲對信號的干擾。具體措施為[3]:
1)對數(shù)字器件和模擬器件分開布置并單獨(dú)供電;
2)模擬信號要遠(yuǎn)離數(shù)字信號,并且模擬信號之間也要隔開。
2.2STC89C52單片機(jī)
STC89C52單片機(jī)是一款低功耗、高性能的COMS8位控制器,具有8K字節(jié)的系統(tǒng)可編程Flash存儲器、512字節(jié)RAM、32位I/O口線、MAX810復(fù)位電路、3個16位定時器/計數(shù)器、4個外部中斷,以及全雙工串行口,非常適合用于單路數(shù)據(jù)采集系統(tǒng)。
2.3AD7746電容數(shù)字轉(zhuǎn)換芯片
AD7746內(nèi)部集成了數(shù)字濾波和激勵源、24位Sigma-Delta調(diào)制器、IIC總線接口、多路復(fù)用器,以及控制邏輯修正等。其采用單電源供電,有兩個外接電容通道,每個通道可以按差分模式或單相模式工作。AD7746轉(zhuǎn)換芯片實際上是把被認(rèn)為是純?nèi)菘?無泄漏容抗)的示例電容的與一個參考電容相比較從而提供一個準(zhǔn)確的估計值(理論上是24位,實際上小于100aF)[4]。
2.4數(shù)據(jù)采集單元
數(shù)據(jù)采集單元主要是由STC89C52單片機(jī)和AD7746電容數(shù)字轉(zhuǎn)換芯片及自制的感應(yīng)板構(gòu)成。STC89C52單片機(jī)通過IIC總線對AD7746電容數(shù)字轉(zhuǎn)換芯片進(jìn)行控制。IIC總線是一種高性能串行總線,采用串行總線技術(shù)可以使系統(tǒng)的體積減小、可靠性提高,同時對系統(tǒng)的更改和擴(kuò)充更為簡單。IIC總線為雙線制,即時鐘總線SCL和數(shù)據(jù)總線SDA。STC89C52單片機(jī)和AD7746電容數(shù)字轉(zhuǎn)換芯片的接口電路如圖2所示。轉(zhuǎn)換芯片的SDA、SCL分別接到單片機(jī)的P1.2和P1.4端口。
圖2 AD7746和單片機(jī)的接口圖
2.5數(shù)據(jù)處理單元
數(shù)據(jù)處理單元是指在MatLab環(huán)境下單片機(jī)與PC機(jī)進(jìn)行通信獲取采集到的數(shù)據(jù)并對數(shù)據(jù)進(jìn)行處理。
單片機(jī)輸出的是TTL電平(輸出數(shù)據(jù)為0大約等于0V,輸出數(shù)據(jù)為1大約等于1V);而電腦上串口的電平為RS232電平(有+15V左右的電壓和-15V左右的電壓),單片機(jī)要連接到電腦上必須接一個232轉(zhuǎn)換芯片,最常用的是MAX232轉(zhuǎn)換芯片。相對于傳統(tǒng)的PC機(jī),現(xiàn)在的電腦一般沒有設(shè)置串口,因而現(xiàn)在使用的單片機(jī)開發(fā)板上都沒有設(shè)置串口而是配有USB轉(zhuǎn)串口單元;但可以在電腦上虛擬出一個串口,這樣就可以非常簡便地實現(xiàn)與任何計算機(jī)的通訊。USB轉(zhuǎn)串口單元是硬件上的轉(zhuǎn)換,對編程沒有影響。在MatLab環(huán)境下串行通信的數(shù)據(jù)采集處理單元的示意圖如圖3所示。
2.6其他外圍電路
對于STC89C52單片機(jī),外圍電路需要接與PC機(jī)進(jìn)行通信的電平轉(zhuǎn)換電路、晶振電路(如MAX5054芯片)和看門狗電路等。
圖3 Matlab環(huán)境下串行通信的數(shù)據(jù)采集處理單元示意圖
3系統(tǒng)軟件設(shè)計
3.1系統(tǒng)軟件結(jié)構(gòu)
系統(tǒng)軟件主要包括系統(tǒng)初始化、單片機(jī)與AD7746通信程序、單片機(jī)與PC機(jī)串口通信程序、數(shù)據(jù)處理程序及液晶顯示驅(qū)動等。系統(tǒng)的軟件設(shè)計流程如圖4所示。
圖4 系統(tǒng)軟件設(shè)計流程圖
系統(tǒng)的初始化是指對單片機(jī)和AD7746的內(nèi)部寄存器及端口進(jìn)行初始化[5]。
系統(tǒng)的核心部分是對STC89C52單片機(jī)編程,控制AD7746電容數(shù)字轉(zhuǎn)換芯片、串口RS232、顯示驅(qū)動及上位機(jī)的通信等。 軟件程序設(shè)計是在Keil4環(huán)境下,利用C51進(jìn)行編程實現(xiàn)的。
3.2AD7746電容數(shù)字轉(zhuǎn)換芯片的編程設(shè)計
對AD7746芯片進(jìn)行控制,設(shè)置其內(nèi)部可寫入寄存器即可。寄存器的讀寫是通過IIC總線進(jìn)行設(shè)置。寄存器的讀寫嚴(yán)格按照相應(yīng)的時序圖進(jìn)行[6]。IIC總線的函數(shù)主要有啟動、停止函數(shù)及接受、發(fā)送字節(jié)函數(shù)。對AD7746電容數(shù)字轉(zhuǎn)換芯片的編程流程如圖5所示。
圖5 AD7746配置流程圖
下面展示了IIC總線的啟動、停止函數(shù)以及讀AD7746的源代碼。
1)IIC總線的start函數(shù)代碼如下:
void IICstart(void)
{
SDA=1;
SCL=1;
_nop_();
_nop_();
SDA=0;
_nop_();
_nop_();
SCL=0;
}
2)IIC總線的stop函數(shù)代碼如下:
void IICstop(void)
{
SAD=0;
SCL=1;
_nop_();
_nop_();
SDA=1;
_nop_();
_nop_();
SCL=0;
}
3)讀取AD776數(shù)據(jù)的程序源代碼如下:
void GETvalue(unsigned char *p,unsigned char n)
//讀取AD7746采取先寫后讀的方式 即先寫入地址,再讀相應(yīng)的寄存器內(nèi)容
{ unsigned char i;
unsigned char flagw;
IICstart ();
IICsendbyte(0x90);//I2C寫命令字指令
flagw=IICWatask();//接受應(yīng)答信號
IICsendbyte(0x01); //I2C寫地址
flagw=IICWatask();
IICstart();
IICgetbyte(0x91); //I2C讀命令字指令
flagw=IICWatask();
for(i=0;i { *p=IICRECVbyte();//接受數(shù)據(jù) if(i!=n-1) IICSendask();//發(fā)送應(yīng)答信號 else IICSendask(); p++; } IICstop(); } 3.31602液晶顯示驅(qū)動的設(shè)計 系統(tǒng)采用1602液晶作為顯示模塊,用來顯示出檢測的電容的數(shù)值。1602液晶是指顯示內(nèi)容為2行,每行16個字符的液晶模塊。1602液晶的驅(qū)動應(yīng)嚴(yán)格按照接口操作時序編寫,接口操作時序包括讀操作時序和寫操作時序。讀操作時序包括讀數(shù)據(jù)和讀狀態(tài)兩個內(nèi)容,寫操作時序包括寫指令和寫數(shù)據(jù)兩個內(nèi)容。1602液晶顯示驅(qū)動的設(shè)計流程圖如圖6所示。 圖6 1602液晶顯示驅(qū)動的設(shè)計流程圖 其中,液晶顯示驅(qū)動程序的初始化程序如下: void LCD1602_init(void) { Delay1602(1500); LCD1602_Write_com(0x38); Delay1602(500); LCD1602_Write_com(0x38); Delay1602(500); LCD1602_Write_com(0x38); LCD1602_Write_com_busy(0x38); LCD1602_Write_com_busy(0x08); LCD1602_Write_com_busy(0x01); LCD1602_Write_com_busy(0x06); LCD1602_Write_com_busy(0x0C); } 3.4單片機(jī)與計算機(jī)通信軟件的設(shè)計 系統(tǒng)的單片機(jī)與計算機(jī)的通信在MatLab環(huán)境下實現(xiàn),在MatLab中有設(shè)備控制工具箱(instrument control toolbox)用來負(fù)責(zé)上、下位機(jī)的通信。Matlab對串口的控制分為4步; 1)創(chuàng)建設(shè)備對象并對其進(jìn)行屬性設(shè)置; 2)打開串行設(shè)備對象; 3)讀寫串口操作; 4)關(guān)閉并清除設(shè)備對象。 在MatLab環(huán)境下,讀取串口數(shù)據(jù)有查詢和中斷兩種方法。微電容檢測系統(tǒng)需要實時處理數(shù)據(jù)采集單元采集到的數(shù)據(jù),而采用中斷方式能夠?qū)崟r處理下位機(jī)傳送的數(shù)據(jù)[7]?;贛atLab單片機(jī)與PC機(jī)串行通信的程序流程圖如圖7所示。 圖7 基于Matlab單片機(jī)與PC機(jī)串行通信的程序流程圖 下面展示基于MatLab中斷通信的部分源代碼: G=serial(‘COM1’);%創(chuàng)建COM1為串口對象并用G來標(biāo)記 G.Timeout=0.5;%讀寫完成的時間為0.5s Set(G,‘BaudRate’,4800);%定義COM1的傳輸速率為4800bit/s. G.StopBits=1;%停止位為1位 G.InputBufferSize=4096;%定義輸入緩存區(qū)大小 G.OutBufferSize=4096;%定義輸出緩沖區(qū)大小 G.FlowComtrol=’hardware’;%硬件流控制 4實驗結(jié)果分析 AD7746測得的電容值包括兩部分,即待測極板電容C1和附加電容C2。附加電容值的檢測可以通過在電容傳感器的極板連接處斷開待測電容測量得到。 主要進(jìn)行了兩個實驗:實驗1測量了系統(tǒng)的附加電容值,測量值如表1所示;實驗2測量了電容值為2pF的無極性定值陶瓷電容器的電容值。將電容接到AD7746的EXEA腳和CIN(+)腳之間,然后進(jìn)行反復(fù)測量10 000次。圖8給出了連續(xù)100次測量結(jié)果的折線散點圖。 表1 檢測系統(tǒng)附加電容的測量值 從測量數(shù)據(jù)得到,實驗測得的附加電容最小值為0.109 072 5pF,最大值為0.109 197 5pF,平均值為0.109 136 4pF。數(shù)據(jù)表明:無待測電容的檢測系統(tǒng)可以穩(wěn)定地檢測出附加電容數(shù)值,誤差為±0.06fF。出現(xiàn)這種誤差的原因是傳感器、包裝、電纜、鏈接終端及在實驗中使用的探針和其他接觸設(shè)備引起的寄生電容[8]。該誤差的測量為待測電容的測量提供了必要的初始化條件。 圖8 2pF定值電容的測量值 實驗2對2pF的定值電容經(jīng)過10 000次采樣,實驗測得的最小值為2.044 947 4pF,最大值為2.046 495 2pF,平均值為2.045 682 9pF。數(shù)據(jù)表明:該電容檢測系統(tǒng)可以穩(wěn)定輸出誤差達(dá)到±0.8fF的電容值,滿足系統(tǒng)的精度要求。 5結(jié)論 基于AD7746和STC89C52單片機(jī)的自動調(diào)高裝置微電容檢測系統(tǒng)充分發(fā)揮了AD7746高精度、高分辨率、高線性度及高更新率的優(yōu)勢,同時利用了高性能的STC89C52單片機(jī),使得該測距系統(tǒng)具有較高的實時性、穩(wěn)定性、精度及較小的體積等優(yōu)點。該自動調(diào)高裝置目前已經(jīng)在馬鈴薯種植機(jī)、玉米種植機(jī)、自動拋肥機(jī)及農(nóng)藥噴灑機(jī)等農(nóng)業(yè)機(jī)械中得到應(yīng)用,發(fā)揮了良好的使用性能,使農(nóng)業(yè)機(jī)械的自動化程度大幅度提高[9]。 參考文獻(xiàn): [1]李榮金.農(nóng)業(yè)機(jī)械自動化的現(xiàn)狀與推進(jìn)模式探討[J].農(nóng)業(yè)與技術(shù),2013(12):54-55. [2]劉少剛,李芳,趙丹,等.基于AD7746的微電容檢測系統(tǒng)的設(shè)計[J].應(yīng)用科技,2011,38(10):1-5. [3]潘湖迪,陳大果,李夢,等.高精度微弱電容檢測系統(tǒng)的設(shè)計與實現(xiàn)[J].儀表技術(shù),2013(8):44-47. [4]Altenberend U, Oprea A, Barsan N, et al. Contribution of polymeric swelling to the overall response of capacitive gas sensors[J].Analytical and Bioanalytical Chemistry, 2013,405(20):6445-6452. [5]趙圣飛,李永紅,王恩懷,等.基于單片機(jī)的磁強(qiáng)信號檢測系統(tǒng)設(shè)計[J].儀表技術(shù)與傳感器,2014(3):58-64. [6]孫海霞,李海亮,馬愛虹.高精度、完全集成式電容數(shù)字轉(zhuǎn)換器AD7746[J].國外電子元器件,2007(7):45-48. [7]向先波,徐國華,張琴.Mat Lab 環(huán)境下PC機(jī)與單片機(jī)的串行通信及數(shù)據(jù)處理[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2004(12):27-31. [8]Farahani H, Mills J K, Cleghorn W L.Design,fabrication and analysis of micromachined high sensitivity and 0% cross-axis sensitivity capacitive accelerometers[J].Microsystem Technologies, 2009,15(12):1815-1826. [9]奉山森,張燕,樊軍慶,等.基于單片機(jī)的農(nóng)藥噴灑機(jī)械自動調(diào)平系統(tǒng)設(shè)計[J].農(nóng)機(jī)化研究,2014,36(11):104-107. Abstract ID:1003-188X(2016)03-0101-EA Design of Automatic Height-adjustment Device Micro-capacitance Detection System in Agricultural Machinery Zheng Xiaolong, Wang Shijun, Zhang Junwei, Wen Yongshuang, Zhao Da (School of Mechanical Engineering ,Shandong University of Technology, Zibo 255004,China) Abstract:Degree of agricultural machinery automation is increasing, the role automatic detection and control technology is increasing, automatic height-adjustment device automatically increase the demand is growing. According to the requirement of automatic height-adjustment device, micro-capacitance detection system based on AD7746 and microcontroller STC89C52 was designed. The hardware, software, interface circuit and program data flow were explained in detail. AD7746 was used to finish signal’s collection and digital conversation. STC89C52 microcontroller was used to finfish controlling AD7746 and communicating with computer. Experiment was conducted to obtain the detecting system’s background capacitance and measurement accuracy. Key words:automatic height-adjustment device; micro-capacitance detection; AD7746; STC89C52; agricultural machinery 文章編號:1003-188X(2016)03-0101-05 中圖分類號:S11+6;TP212.12 文獻(xiàn)標(biāo)識碼:A 作者簡介:鄭曉龍(1987-),男,山東昌樂人,碩士研究生,(E-mail) 772510496@qq.com。通訊作者:王士軍(1969-),男,山東鄆城人,副教授,碩士生導(dǎo)師,(E-mail)wsjwang2008@126.com。 基金項目:教育部、財政部職教師資培養(yǎng)資源開發(fā)項目(VTNE006) 收稿日期:2015-03-07