基于PIC18F4580的粮食称重系统设计
2011-05-21王启增毛文华
周 鹏,王启增 ,毛文华,赵 博
(1.中国农业机械化科学研究院 土壤植物机器系统技术国家重点实验室,北京 100083;2.黑龙江省前锋农场,黑龙江 佳木斯 156325)
粮食含杂率及容积密度是检测粮食品质的主要技术指标,不仅决定了粮食的等级和价格,还会直接影响其加工品质和食用品质。《GB/T 5494-2008粮油检验 粮食、油料的杂质、不完善粒检验》和《GB/T 5498粮食、油料检验 容重测定法》中规定称重的精度要达到0.1 g,为了使粮食含杂率及容积密度测量仪器整体的性能达到国标要求,本文设计了基于PIC单片机的高精度称重系统,该系统测量由杂质分离器分离出的大小杂的重量和容积密度测定器中粮食的重量,进而快速得到样品的含杂率及容重等用于粮食分级的关键指标参数[1-2]。
1 系统工作原理
高精度称重系统的原理如图1所示,在粮食含杂率及容积密度测量仪中,安装在料筒下方的负荷传感器将样品重量转换为电信号,电信号先经过一个无源低通滤波器以滤除线材引入的噪声,再由AD7799自带的仪表放大器对其进行放大并实现AD转换。以PIC18F4580作为主控单元,通过SPI接口读写AD上的各个寄存器来控制AD进行采样。人机界面用LCD液晶显示采样得到的数据,按键实现功能的输入。USART模块用来与上位机进行数据交互、调试和数据存储。低噪声电源用来驱动系统模拟部分及负荷传感器,提供稳定的工作环境以降低系统采样时电源带来的噪声。
图1 系统原理框图Fig.1 Block diagram of system schematic
2 系统硬件设计
2.1 PIC18F4580核心控制器
PIC18F4580是Microchip公司生产的8位FLASH微控器。片上自带32 K编程空间、1 536 bytes的SRAM和256 bytesEEPROM,同时具有mW级低功耗技术,睡眠模式下只消耗0.2 μA的工作电流。片上自带系统时钟可达到32 MHz的处理速度,可完全替代外部晶振,简化电路板设计。此外还带有SPI,USART,TIMER等多种外设资源,将复杂的软件命令操作改为对相关寄存器的赋值,简化了设计进程。在软件调试和编程方面,只需占用4个I/O引脚就可以完成程序的下载及在线调试,大大减少在底层硬件调试上花费的时间[3]。
本设计中,PIC18F4580作为核心控制器连接了多个子模块:1)三线SPI接口的AD采集模块;2)USART串口模块;3)用并口操作的12864液晶模块;4)流程控制中用到的的8路扩展I/O口;5)程序下载及调试接口。实际电路原理图中,芯片的引脚连接网络的定义如图2所示。
图2 电路图中PIC18F4580的网络定义Fig.2 PIC18F4580 net definition of circuit diagram
2.2 传感器及AD转换电路
负荷传感器作为系统信号采集的最前端,其性能直接决定了称重系统的准确性和稳定性。为了满足实际称重时的精度要求,本系统中选用四线电桥式压力传感器,敏感度为1 mV/V,精度等级为0.05、量程为1 kg。
AD7799是一款高精度、宽动态范围、△一Σ型3通道24位ADC,该芯片自带低噪声、可编程增益的仪表放大器,可以与mV级输出信号的传感器无缝相连,简化电路板设计,提高系统可靠性。此外片上可直接实现内部自校准、系统校准等,可以消除零点误差、满量程误差及温度漂移的影响,为系统软件设计提供方便。
AD7799在2.5 V参考电压,4.17 Hz刷新率,128倍增益时RMS噪声小于27 nV,如果采用敏感度为1 mV/V的传感器,在激励电压为5 V时的满量程输出为5 mV,若要达到0.1 g的精度,最小可分辨的电压为:
因此初步估算可以决定该AD芯片可以满足本系统中转换精度的要求[4-5]。
实际模数转换部分的电路设计如图3所示,PIC18F4580通过三线SIP接口来读写片上寄存器,实现数据采样和标定等操作,其中AD7799上的SCK、MOSI、MISO信号分别与单片机上的RC3、RC4、RC5相连。数字和模拟部分的电源引脚都接上合适的去耦电容降低系统噪声。参考电压VREF+和VREF-由电源通过电阻分压后得到。差分信号输入端AIN1+及AIN1-通过无源低通滤波器后连接在负荷传感器的差分输出端。
图3 模数转换电路图Fig.3 Circuit digram of AD conversion schematic
2.3 人机界面及USART电路
LCD显示采用QC12864B汉字图形点阵液晶显示模块,采用并行连接的方式。液晶工作电压及背光电源为5 V供电,数据线DB0-DB7与PIC18F4580的RA口相连,控制线RS、RW、E与RE口相连。用来显示相关调试结果,加上单片机的部分RB口作为按键的输入组成人机界面。
USART电路采用MAX232进行电平转换以实现PIC18F4580与上位机之间电压及驱动电流的匹配。在实际调试中,需要通过USART接口向上位机发送数据以调试单片机的实际工作状态以及对AD采样数据进行分析和测试。
3 系统软件设计
系统软件设计采用HI-TECH公司针对PIC18系列设计的C语言编译器进行程序设计,该编译器支持多种数据变量类型和数据存储位置的设定,并能高效的压缩代码长度,提高系统的运行效率[6]。
3.1 系统主程序设计
单片机系统在上电后主程序首先初始化单片机内部资源,包括各个IO的输入输出状态,默认输出值;SPI接口的采样点、数据输出对应的时钟沿、总线空闲时的时钟状态和工作速度;USART接口的工作速度(波特率),片上定时器的定时长度。然后是初始化系统板上资源,包括AD工作状态的设定、AD的自标定,并对LCD屏内容清空并显示初始化界面。初始化完成后根据按键输入产生中断进入采集数据或系统标定,若没有中断则按照定时器设定的15 Hz来刷新LCD显示内容,并清除看门狗以防止程序跑飞。系统主程序流图如图4所示。
图4 系统主程序流图Fig.4 Flow chart of system main program
3.2 系统中断程序设计
系统的中断程序包括采样中断和标定中断2个部分。采样中断程序采集一次AD转换的值后,根据标定值进行数据转换,将转换结果显示在LCD上并通过串口发送到上位机。标定中断程序采集16次样后取平均值作为当前砝码的标准值,将计算得到的平均值存储在EEPROM中进行永久保存。中断程序流程图如图5所示。
图5 中断子程序流程图Fig.5 Flow chart of interruption subroutine
4 实验结果与分析
4.1 系统噪声实验
实际应用中,负荷传感器及线材本身会引入一部分噪声,此外传感器和AD转换芯片本身也会随温度发生一定量的漂移,同样由于采样分辨率较高,人为操作上的误差及环境变化也会造成采样值的偏移。因此,以标准砝码对称重系统噪声进行测试。
1)实验方法:加载400 g标准砝码,以4.17 Hz采样率进行数据采集。
2)实验结果:1 kg负荷传感器加载400 g标准砝码时的采样值如图6所示,以采集1 000个点过程中输出变化的峰峰值通过计算可得:
因此,该称重电路重复误差不大于0.005%FS。
图6 系统噪声图(采集1 000个点)Fig.6 Noise pattern of system(1 k sample)
4.2 线性度实验
1)实验方法:先使用500 g标准砝码进行标定,然后加载100~400 g标准砝码,以4.17 Hz采样率分别采集5次。
2)实验结果:测量整数值的砝码得到的实验结果如表1所示,以表中的最大误差值计算得到:
故称重的非线性误差不大于0.007%FS。
表1 线性度测量结果Tab.1 Reuslt of nonlinearity meausrement
5 结 论
本文以单片机为控制器、AD7799为AD转换模块设计了一种高精度称重电路,用于粮食品质测量分级。试验结果表明,采用量程为1 kg的负荷传感器时,系统测量重复误差不超过0.005%,系统非线性度误差小于0.007%,达到了较高的精度和稳定性要求,满足了粮食品质评定装置中总含杂率及容积密度测量的需要。
[1]中华人民共和国国家质量监督检验检疫总局中国国家标准化管理委员会.GB/T 5494-2008粮油检验 粮食、油料的杂质、不完善粒检验[S].2009.
[2]国家标准局.GB/T 5498粮食、油料检验 容重测定法[S].1985.
[3]Microchip Technology Inc.PIC18F2480/2580/4480/4580 Data Sheet[EB/OL]. (2009-11-16)[2011-3-30].http://www.microchip.com/downloads/en/DeviceDoc/39637d.pdf.
[4]Analog Devices Inc.AD7798/AD7799 Data Sheet[EB/OL].(2007-03) [2011-3-30].http://www.analog.com/static/importedfiles/data_sheets/AD7798_7799.pdf.
[5]Analog Devices Inc.EVAL-AD7799EBZ TechnicalNote[EB/OL].[2011-3-30].http://www.analog.com/static/imported-files/eval_boards/EVAL-AD7799.pdf.
[6]HI-TECH Software Pty.Ltd..HI-TECH C Tools for the PIC18 MCU Family[EB/OL].(2010-11-16)[2011-3-30].http://www.microchip.com/downloads/en/DeviceDoc/manual.pdf.