农业机械自动调高装置微电容检测系统的设计

2016-03-23 03:20郑晓龙王士军张军伟文永双
农机化研究 2016年3期
关键词:农业机械

郑晓龙,王士军,张军伟,文永双,赵 达

(山东理工大学 机械工程学院,山东 淄博 255004)



农业机械自动调高装置微电容检测系统的设计

郑晓龙,王士军,张军伟,文永双,赵达

(山东理工大学 机械工程学院,山东 淄博255004)

摘要:农业机械的自动化程度越来越高,自动检测与控制技术在农业机械中的作用越来越大,从而等距控制的自动调高装置需求量与日俱增。本文根据自动调高装置的要求,设计了基于单片机STC89C52R和电容数字转换芯片AD7746的微电容检测系统,详细阐述了系统的硬件组成及其接口电路,分析了系统的软件组成及编程原理。通过AD7746电容数字转换芯片实现了对电容传感器的信号采集与数字转换,利用单片机分别实现对AD7746控制及上位机的通信。最后,通过实验获取了检测系统的本底电容和测量精度。

关键词:自动调高装置;微电容检测;AD7746;STC89C52R;农业机械

0引言

从农作物种植、田间管理到收获的各个阶段,农业机械的自动化程度越来越高,自动检测与控制技术在农业机械中的作用也越来越大。例如,马铃薯种植机排种的深度控制、翻耕作业中犁的深度控制、自动抛肥机及农药喷洒中的喷嘴与作物间的高度控制等,均需要一种可实现等距控制的自动调高装置[1]。

为此,设计了一种应用于农业机械自动调高装置的微电容检测系统。该系统是基于AD7746和STC89C52单片机进行设计的,具有测量精度高、稳定性好等特点,已在农业机械中得到应用并取得良好的效果,为进一步提高自动调高装置的精度提供了理论和实践参考依据。

1系统的工作原理

该系统工作需经过以下4个步骤:

1)通过方波激励在感应板上产生激励电容;

2)对感应上的电容进行采样,获取电容值;

3)对模拟信号(电容值)进行模数转换;

4)进行数据校正后进行输出和处理。

系统的原理框图如图1所示。

该系统的电容产生、电荷采样、模数转换及数据校正等功能都由AD7746电容数字转换芯片完成。该系统电容产生模块通过AD7746内部的激励源提供的方波激励信号在自制的感应环上产生电容。AD7746内部集成的24位调制器对感应板上的电荷进行采样,经过模数转换后生成数字信号[2];然后,经过芯片上的数字滤波器进行校正处理;最后,经过单片机的串行口输入到PC机进行数据处理。

图1 系统的工作原理框图

2系统的硬件设计

系统的硬件包括自制的感应板、AD7746电容数字转换器、51系列单片机、GL9开发板、存储单元、液晶显示单元及PC机等部分。这些硬件构成了系统的各个功能模块。

2.1电源及抗干扰部分

该微电容检测系统是模拟信号和数字信号相混合的系统。AD7746芯片具有极高的采样频率和较高的时钟频率,所以系统对干扰非常敏感,必须对系统进行处理来降低噪声对信号的干扰。具体措施为[3]:

1)对数字器件和模拟器件分开布置并单独供电;

2)模拟信号要远离数字信号,并且模拟信号之间也要隔开。

2.2STC89C52单片机

STC89C52单片机是一款低功耗、高性能的COMS8位控制器,具有8K字节的系统可编程Flash存储器、512字节RAM、32位I/O口线、MAX810复位电路、3个16位定时器/计数器、4个外部中断,以及全双工串行口,非常适合用于单路数据采集系统。

2.3AD7746电容数字转换芯片

AD7746内部集成了数字滤波和激励源、24位Sigma-Delta调制器、IIC总线接口、多路复用器,以及控制逻辑修正等。其采用单电源供电,有两个外接电容通道,每个通道可以按差分模式或单相模式工作。AD7746转换芯片实际上是把被认为是纯容抗(无泄漏容抗)的示例电容的与一个参考电容相比较从而提供一个准确的估计值(理论上是24位,实际上小于100aF)[4]。

2.4数据采集单元

数据采集单元主要是由STC89C52单片机和AD7746电容数字转换芯片及自制的感应板构成。STC89C52单片机通过IIC总线对AD7746电容数字转换芯片进行控制。IIC总线是一种高性能串行总线,采用串行总线技术可以使系统的体积减小、可靠性提高,同时对系统的更改和扩充更为简单。IIC总线为双线制,即时钟总线SCL和数据总线SDA。STC89C52单片机和AD7746电容数字转换芯片的接口电路如图2所示。转换芯片的SDA、SCL分别接到单片机的P1.2和P1.4端口。

图2 AD7746和单片机的接口图

2.5数据处理单元

数据处理单元是指在MatLab环境下单片机与PC机进行通信获取采集到的数据并对数据进行处理。

单片机输出的是TTL电平(输出数据为0大约等于0V,输出数据为1大约等于1V);而电脑上串口的电平为RS232电平(有+15V左右的电压和-15V左右的电压),单片机要连接到电脑上必须接一个232转换芯片,最常用的是MAX232转换芯片。相对于传统的PC机,现在的电脑一般没有设置串口,因而现在使用的单片机开发板上都没有设置串口而是配有USB转串口单元;但可以在电脑上虚拟出一个串口,这样就可以非常简便地实现与任何计算机的通讯。USB转串口单元是硬件上的转换,对编程没有影响。在MatLab环境下串行通信的数据采集处理单元的示意图如图3所示。

2.6其他外围电路

对于STC89C52单片机,外围电路需要接与PC机进行通信的电平转换电路、晶振电路(如MAX5054芯片)和看门狗电路等。

图3 Matlab环境下串行通信的数据采集处理单元示意图

3系统软件设计

3.1系统软件结构

系统软件主要包括系统初始化、单片机与AD7746通信程序、单片机与PC机串口通信程序、数据处理程序及液晶显示驱动等。系统的软件设计流程如图4所示。

图4 系统软件设计流程图

系统的初始化是指对单片机和AD7746的内部寄存器及端口进行初始化[5]。

系统的核心部分是对STC89C52单片机编程,控制AD7746电容数字转换芯片、串口RS232、显示驱动及上位机的通信等。 软件程序设计是在Keil4环境下,利用C51进行编程实现的。

3.2AD7746电容数字转换芯片的编程设计

对AD7746芯片进行控制,设置其内部可写入寄存器即可。寄存器的读写是通过IIC总线进行设置。寄存器的读写严格按照相应的时序图进行[6]。IIC总线的函数主要有启动、停止函数及接受、发送字节函数。对AD7746电容数字转换芯片的编程流程如图5所示。

图5 AD7746配置流程图

下面展示了IIC总线的启动、停止函数以及读AD7746的源代码。

1)IIC总线的start函数代码如下:

void IICstart(void)

{

SDA=1;

SCL=1;

_nop_();

_nop_();

SDA=0;

_nop_();

_nop_();

SCL=0;

}

2)IIC总线的stop函数代码如下:

void IICstop(void)

{

SAD=0;

SCL=1;

_nop_();

_nop_();

SDA=1;

_nop_();

_nop_();

SCL=0;

}

3)读取AD776数据的程序源代码如下:

void GETvalue(unsigned char *p,unsigned char n)

//读取AD7746采取先写后读的方式 即先写入地址,再读相应的寄存器内容

{ 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();//接受数据

if(i!=n-1)

IICSendask();//发送应答信号

else

IICSendask();

p++;

}

IICstop();

}

3.31602液晶显示驱动的设计

系统采用1602液晶作为显示模块,用来显示出检测的电容的数值。1602液晶是指显示内容为2行,每行16个字符的液晶模块。1602液晶的驱动应严格按照接口操作时序编写,接口操作时序包括读操作时序和写操作时序。读操作时序包括读数据和读状态两个内容,写操作时序包括写指令和写数据两个内容。1602液晶显示驱动的设计流程图如图6所示。

图6 1602液晶显示驱动的设计流程图

其中,液晶显示驱动程序的初始化程序如下:

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单片机与计算机通信软件的设计

系统的单片机与计算机的通信在MatLab环境下实现,在MatLab中有设备控制工具箱(instrument control toolbox)用来负责上、下位机的通信。Matlab对串口的控制分为4步;

1)创建设备对象并对其进行属性设置;

2)打开串行设备对象;

3)读写串口操作;

4)关闭并清除设备对象。

在MatLab环境下,读取串口数据有查询和中断两种方法。微电容检测系统需要实时处理数据采集单元采集到的数据,而采用中断方式能够实时处理下位机传送的数据[7]。基于MatLab单片机与PC机串行通信的程序流程图如图7所示。

图7 基于Matlab单片机与PC机串行通信的程序流程图

下面展示基于MatLab中断通信的部分源代码:

G=serial(‘COM1’);%创建COM1为串口对象并用G来标记

G.Timeout=0.5;%读写完成的时间为0.5s

Set(G,‘BaudRate’,4800);%定义COM1的传输速率为4800bit/s.

G.StopBits=1;%停止位为1位

G.InputBufferSize=4096;%定义输入缓存区大小

G.OutBufferSize=4096;%定义输出缓冲区大小

G.FlowComtrol=’hardware’;%硬件流控制

4实验结果分析

AD7746测得的电容值包括两部分,即待测极板电容C1和附加电容C2。附加电容值的检测可以通过在电容传感器的极板连接处断开待测电容测量得到。

主要进行了两个实验:实验1测量了系统的附加电容值,测量值如表1所示;实验2测量了电容值为2pF的无极性定值陶瓷电容器的电容值。将电容接到AD7746的EXEA脚和CIN(+)脚之间,然后进行反复测量10 000次。图8给出了连续100次测量结果的折线散点图。

表1 检测系统附加电容的测量值

从测量数据得到,实验测得的附加电容最小值为0.109 072 5pF,最大值为0.109 197 5pF,平均值为0.109 136 4pF。数据表明:无待测电容的检测系统可以稳定地检测出附加电容数值,误差为±0.06fF。出现这种误差的原因是传感器、包装、电缆、链接终端及在实验中使用的探针和其他接触设备引起的寄生电容[8]。该误差的测量为待测电容的测量提供了必要的初始化条件。

图8 2pF定值电容的测量值

实验2对2pF的定值电容经过10 000次采样,实验测得的最小值为2.044 947 4pF,最大值为2.046 495 2pF,平均值为2.045 682 9pF。数据表明:该电容检测系统可以稳定输出误差达到±0.8fF的电容值,满足系统的精度要求。

5结论

基于AD7746和STC89C52单片机的自动调高装置微电容检测系统充分发挥了AD7746高精度、高分辨率、高线性度及高更新率的优势,同时利用了高性能的STC89C52单片机,使得该测距系统具有较高的实时性、稳定性、精度及较小的体积等优点。该自动调高装置目前已经在马铃薯种植机、玉米种植机、自动抛肥机及农药喷洒机等农业机械中得到应用,发挥了良好的使用性能,使农业机械的自动化程度大幅度提高[9]。

参考文献:

[1]李荣金.农业机械自动化的现状与推进模式探讨[J].农业与技术,2013(12):54-55.

[2]刘少刚,李芳,赵丹,等.基于AD7746的微电容检测系统的设计[J].应用科技,2011,38(10):1-5.

[3]潘湖迪,陈大果,李梦,等.高精度微弱电容检测系统的设计与实现[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]赵圣飞,李永红,王恩怀,等.基于单片机的磁强信号检测系统设计[J].仪表技术与传感器,2014(3):58-64.

[6]孙海霞,李海亮,马爱虹.高精度、完全集成式电容数字转换器AD7746[J].国外电子元器件,2007(7):45-48.

[7]向先波,徐国华,张琴.Mat Lab 环境下PC机与单片机的串行通信及数据处理[J].单片机与嵌入式系统应用,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].农机化研究,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。

基金项目:教育部、财政部职教师资培养资源开发项目(VTNE006)

收稿日期:2015-03-07

猜你喜欢
农业机械
农业机械设计的未来趋势探索
2021中国国际农业机械展览会
适用于农业机械的多功能传动系用油性能要求
2020中国国际农业机械展览会
2020 中国国际农业机械展览会
宜宾市农业机械研究所
农业机械的保养与维修分析
农业机械日常维修与保养相关性问题
秸秆回收利用 农业机械称雄
农业机械自动化在现代农业中的应用与发展趋势