鄭曉龍,王士軍,張軍偉,文永雙,趙 達
(山東理工大學 機械工程學院,山東 淄博 255004)
?
農(nóng)業(yè)機械自動調(diào)高裝置微電容檢測系統(tǒng)的設計
鄭曉龍,王士軍,張軍偉,文永雙,趙達
(山東理工大學 機械工程學院,山東 淄博255004)
摘要:農(nóng)業(yè)機械的自動化程度越來越高,自動檢測與控制技術在農(nóng)業(yè)機械中的作用越來越大,從而等距控制的自動調(diào)高裝置需求量與日俱增。本文根據(jù)自動調(diào)高裝置的要求,設計了基于單片機STC89C52R和電容數(shù)字轉(zhuǎn)換芯片AD7746的微電容檢測系統(tǒng),詳細闡述了系統(tǒng)的硬件組成及其接口電路,分析了系統(tǒng)的軟件組成及編程原理。通過AD7746電容數(shù)字轉(zhuǎn)換芯片實現(xiàn)了對電容傳感器的信號采集與數(shù)字轉(zhuǎn)換,利用單片機分別實現(xiàn)對AD7746控制及上位機的通信。最后,通過實驗獲取了檢測系統(tǒng)的本底電容和測量精度。
關鍵詞:自動調(diào)高裝置;微電容檢測;AD7746;STC89C52R;農(nóng)業(yè)機械
0引言
從農(nóng)作物種植、田間管理到收獲的各個階段,農(nóng)業(yè)機械的自動化程度越來越高,自動檢測與控制技術在農(nóng)業(yè)機械中的作用也越來越大。例如,馬鈴薯種植機排種的深度控制、翻耕作業(yè)中犁的深度控制、自動拋肥機及農(nóng)藥噴灑中的噴嘴與作物間的高度控制等,均需要一種可實現(xiàn)等距控制的自動調(diào)高裝置[1]。
為此,設計了一種應用于農(nóng)業(yè)機械自動調(diào)高裝置的微電容檢測系統(tǒng)。該系統(tǒng)是基于AD7746和STC89C52單片機進行設計的,具有測量精度高、穩(wěn)定性好等特點,已在農(nóng)業(yè)機械中得到應用并取得良好的效果,為進一步提高自動調(diào)高裝置的精度提供了理論和實踐參考依據(jù)。
1系統(tǒng)的工作原理
該系統(tǒng)工作需經(jīng)過以下4個步驟:
1)通過方波激勵在感應板上產(chǎn)生激勵電容;
2)對感應上的電容進行采樣,獲取電容值;
3)對模擬信號(電容值)進行模數(shù)轉(zhuǎn)換;
4)進行數(shù)據(jù)校正后進行輸出和處理。
系統(tǒng)的原理框圖如圖1所示。
該系統(tǒng)的電容產(chǎn)生、電荷采樣、模數(shù)轉(zhuǎn)換及數(shù)據(jù)校正等功能都由AD7746電容數(shù)字轉(zhuǎn)換芯片完成。該系統(tǒng)電容產(chǎn)生模塊通過AD7746內(nèi)部的激勵源提供的方波激勵信號在自制的感應環(huán)上產(chǎn)生電容。AD7746內(nèi)部集成的24位調(diào)制器對感應板上的電荷進行采樣,經(jīng)過模數(shù)轉(zhuǎn)換后生成數(shù)字信號[2];然后,經(jīng)過芯片上的數(shù)字濾波器進行校正處理;最后,經(jīng)過單片機的串行口輸入到PC機進行數(shù)據(jù)處理。
圖1 系統(tǒng)的工作原理框圖
2系統(tǒng)的硬件設計
系統(tǒng)的硬件包括自制的感應板、AD7746電容數(shù)字轉(zhuǎn)換器、51系列單片機、GL9開發(fā)板、存儲單元、液晶顯示單元及PC機等部分。這些硬件構(gòu)成了系統(tǒng)的各個功能模塊。
2.1電源及抗干擾部分
該微電容檢測系統(tǒng)是模擬信號和數(shù)字信號相混合的系統(tǒng)。AD7746芯片具有極高的采樣頻率和較高的時鐘頻率,所以系統(tǒng)對干擾非常敏感,必須對系統(tǒng)進行處理來降低噪聲對信號的干擾。具體措施為[3]:
1)對數(shù)字器件和模擬器件分開布置并單獨供電;
2)模擬信號要遠離數(shù)字信號,并且模擬信號之間也要隔開。
2.2STC89C52單片機
STC89C52單片機是一款低功耗、高性能的COMS8位控制器,具有8K字節(jié)的系統(tǒng)可編程Flash存儲器、512字節(jié)RAM、32位I/O口線、MAX810復位電路、3個16位定時器/計數(shù)器、4個外部中斷,以及全雙工串行口,非常適合用于單路數(shù)據(jù)采集系統(tǒng)。
2.3AD7746電容數(shù)字轉(zhuǎn)換芯片
AD7746內(nèi)部集成了數(shù)字濾波和激勵源、24位Sigma-Delta調(diào)制器、IIC總線接口、多路復用器,以及控制邏輯修正等。其采用單電源供電,有兩個外接電容通道,每個通道可以按差分模式或單相模式工作。AD7746轉(zhuǎn)換芯片實際上是把被認為是純?nèi)菘?無泄漏容抗)的示例電容的與一個參考電容相比較從而提供一個準確的估計值(理論上是24位,實際上小于100aF)[4]。
2.4數(shù)據(jù)采集單元
數(shù)據(jù)采集單元主要是由STC89C52單片機和AD7746電容數(shù)字轉(zhuǎn)換芯片及自制的感應板構(gòu)成。STC89C52單片機通過IIC總線對AD7746電容數(shù)字轉(zhuǎn)換芯片進行控制。IIC總線是一種高性能串行總線,采用串行總線技術可以使系統(tǒng)的體積減小、可靠性提高,同時對系統(tǒng)的更改和擴充更為簡單。IIC總線為雙線制,即時鐘總線SCL和數(shù)據(jù)總線SDA。STC89C52單片機和AD7746電容數(shù)字轉(zhuǎn)換芯片的接口電路如圖2所示。轉(zhuǎn)換芯片的SDA、SCL分別接到單片機的P1.2和P1.4端口。
圖2 AD7746和單片機的接口圖
2.5數(shù)據(jù)處理單元
數(shù)據(jù)處理單元是指在MatLab環(huán)境下單片機與PC機進行通信獲取采集到的數(shù)據(jù)并對數(shù)據(jù)進行處理。
單片機輸出的是TTL電平(輸出數(shù)據(jù)為0大約等于0V,輸出數(shù)據(jù)為1大約等于1V);而電腦上串口的電平為RS232電平(有+15V左右的電壓和-15V左右的電壓),單片機要連接到電腦上必須接一個232轉(zhuǎn)換芯片,最常用的是MAX232轉(zhuǎn)換芯片。相對于傳統(tǒng)的PC機,現(xiàn)在的電腦一般沒有設置串口,因而現(xiàn)在使用的單片機開發(fā)板上都沒有設置串口而是配有USB轉(zhuǎn)串口單元;但可以在電腦上虛擬出一個串口,這樣就可以非常簡便地實現(xiàn)與任何計算機的通訊。USB轉(zhuǎn)串口單元是硬件上的轉(zhuǎn)換,對編程沒有影響。在MatLab環(huán)境下串行通信的數(shù)據(jù)采集處理單元的示意圖如圖3所示。
2.6其他外圍電路
對于STC89C52單片機,外圍電路需要接與PC機進行通信的電平轉(zhuǎn)換電路、晶振電路(如MAX5054芯片)和看門狗電路等。
圖3 Matlab環(huán)境下串行通信的數(shù)據(jù)采集處理單元示意圖
3系統(tǒng)軟件設計
3.1系統(tǒng)軟件結(jié)構(gòu)
系統(tǒng)軟件主要包括系統(tǒng)初始化、單片機與AD7746通信程序、單片機與PC機串口通信程序、數(shù)據(jù)處理程序及液晶顯示驅(qū)動等。系統(tǒng)的軟件設計流程如圖4所示。
圖4 系統(tǒng)軟件設計流程圖
系統(tǒng)的初始化是指對單片機和AD7746的內(nèi)部寄存器及端口進行初始化[5]。
系統(tǒng)的核心部分是對STC89C52單片機編程,控制AD7746電容數(shù)字轉(zhuǎn)換芯片、串口RS232、顯示驅(qū)動及上位機的通信等。 軟件程序設計是在Keil4環(huán)境下,利用C51進行編程實現(xiàn)的。
3.2AD7746電容數(shù)字轉(zhuǎn)換芯片的編程設計
對AD7746芯片進行控制,設置其內(nèi)部可寫入寄存器即可。寄存器的讀寫是通過IIC總線進行設置。寄存器的讀寫嚴格按照相應的時序圖進行[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采取先寫后讀的方式 即先寫入地址,再讀相應的寄存器內(nèi)容
{ unsigned char i;
unsigned char flagw;
IICstart ();
IICsendbyte(0x90);//I2C寫命令字指令
flagw=IICWatask();//接受應答信號
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ā)送應答信號 else IICSendask(); p++; } IICstop(); } 3.31602液晶顯示驅(qū)動的設計 系統(tǒng)采用1602液晶作為顯示模塊,用來顯示出檢測的電容的數(shù)值。1602液晶是指顯示內(nèi)容為2行,每行16個字符的液晶模塊。1602液晶的驅(qū)動應嚴格按照接口操作時序編寫,接口操作時序包括讀操作時序和寫操作時序。讀操作時序包括讀數(shù)據(jù)和讀狀態(tài)兩個內(nèi)容,寫操作時序包括寫指令和寫數(shù)據(jù)兩個內(nèi)容。1602液晶顯示驅(qū)動的設計流程圖如圖6所示。 圖6 1602液晶顯示驅(qū)動的設計流程圖 其中,液晶顯示驅(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單片機與計算機通信軟件的設計 系統(tǒng)的單片機與計算機的通信在MatLab環(huán)境下實現(xiàn),在MatLab中有設備控制工具箱(instrument control toolbox)用來負責上、下位機的通信。Matlab對串口的控制分為4步; 1)創(chuàng)建設備對象并對其進行屬性設置; 2)打開串行設備對象; 3)讀寫串口操作; 4)關閉并清除設備對象。 在MatLab環(huán)境下,讀取串口數(shù)據(jù)有查詢和中斷兩種方法。微電容檢測系統(tǒng)需要實時處理數(shù)據(jù)采集單元采集到的數(shù)據(jù),而采用中斷方式能夠?qū)崟r處理下位機傳送的數(shù)據(jù)[7]?;贛atLab單片機與PC機串行通信的程序流程圖如圖7所示。 圖7 基于Matlab單片機與PC機串行通信的程序流程圖 下面展示基于MatLab中斷通信的部分源代碼: G=serial(‘COM1’);%創(chuàng)建COM1為串口對象并用G來標記 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。附加電容值的檢測可以通過在電容傳感器的極板連接處斷開待測電容測量得到。 主要進行了兩個實驗:實驗1測量了系統(tǒng)的附加電容值,測量值如表1所示;實驗2測量了電容值為2pF的無極性定值陶瓷電容器的電容值。將電容接到AD7746的EXEA腳和CIN(+)腳之間,然后進行反復測量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)這種誤差的原因是傳感器、包裝、電纜、鏈接終端及在實驗中使用的探針和其他接觸設備引起的寄生電容[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)定輸出誤差達到±0.8fF的電容值,滿足系統(tǒng)的精度要求。 5結(jié)論 基于AD7746和STC89C52單片機的自動調(diào)高裝置微電容檢測系統(tǒng)充分發(fā)揮了AD7746高精度、高分辨率、高線性度及高更新率的優(yōu)勢,同時利用了高性能的STC89C52單片機,使得該測距系統(tǒng)具有較高的實時性、穩(wěn)定性、精度及較小的體積等優(yōu)點。該自動調(diào)高裝置目前已經(jīng)在馬鈴薯種植機、玉米種植機、自動拋肥機及農(nóng)藥噴灑機等農(nóng)業(yè)機械中得到應用,發(fā)揮了良好的使用性能,使農(nóng)業(yè)機械的自動化程度大幅度提高[9]。 參考文獻: [1]李榮金.農(nóng)業(yè)機械自動化的現(xiàn)狀與推進模式探討[J].農(nóng)業(yè)與技術,2013(12):54-55. [2]劉少剛,李芳,趙丹,等.基于AD7746的微電容檢測系統(tǒng)的設計[J].應用科技,2011,38(10):1-5. [3]潘湖迪,陳大果,李夢,等.高精度微弱電容檢測系統(tǒng)的設計與實現(xiàn)[J].儀表技術,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]趙圣飛,李永紅,王恩懷,等.基于單片機的磁強信號檢測系統(tǒng)設計[J].儀表技術與傳感器,2014(3):58-64. [6]孫海霞,李海亮,馬愛虹.高精度、完全集成式電容數(shù)字轉(zhuǎn)換器AD7746[J].國外電子元器件,2007(7):45-48. [7]向先波,徐國華,張琴.Mat Lab 環(huán)境下PC機與單片機的串行通信及數(shù)據(jù)處理[J].單片機與嵌入式系統(tǒ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]奉山森,張燕,樊軍慶,等.基于單片機的農(nóng)藥噴灑機械自動調(diào)平系統(tǒng)設計[J].農(nóng)機化研究,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 文獻標識碼:A 作者簡介:鄭曉龍(1987-),男,山東昌樂人,碩士研究生,(E-mail) 772510496@qq.com。通訊作者:王士軍(1969-),男,山東鄆城人,副教授,碩士生導師,(E-mail)wsjwang2008@126.com。 基金項目:教育部、財政部職教師資培養(yǎng)資源開發(fā)項目(VTNE006) 收稿日期:2015-03-07