引 言
目前,台式电子秤在商业贸易中的使用已相当普遍,但存在较大的局限性:体积大、成本高、需要工频交流电源供应、携带不便、应用场所受到制约。现有的便携秤为杆秤或以弹簧、拉伸变形来实现计量的弹簧秤,居民用户使用的基本是杆秤。弹簧盘秤制造工艺要求较高,弹簧的疲劳问题无法彻底解决,一旦超过弹簧弹性限度,弹簧秤就会产生很大误差,以至损坏,影响到称重的准确性和可靠性,只是一种暂时的代用品,也被列入逐渐取消的行列。多年来,人们一直期待测量准确、携带方便、价格低廉的便携式电子秤(袖珍电子秤)投放市场。
基于电子秤的现状,本项目拟研究一种用单片机控制的高精度智能电子秤设计方案。这种高精度智能电子秤体积小、计量准确、携带方便,集质量称量功能与价格计算功能于一体,能够满足商业贸易和居民家庭的使用需求。
本项目研究的便携式电子秤主要技术指标为:称量范围0~15kg;分度值0.01kg;精度等级ⅲ级;电源dc1.5v(一节5号电池供电)。主要功能有自检、去皮、计价、累计、单价设定、计量单位选择、过载报警和弱电压指示等。仪器若不进行称量操作,5分钟后自动进入休眠模式,降低电源消耗。
仪器的测量原理
本文采用电容传感器进行称重,有别于目前市场上使用的应变式称重传感器。应变式称重传感器设计成本很高,难以普及,而电容传感器具有结构简单、灵敏度高、动态特性好、无接触测量、分辨力强、适应性强和抗干扰力强等优点,最大特点是价格便宜,但它的主要缺点是电容量一般很小,仅几十至几百皮法,甚至只有几个皮法,环境变化将影响电容量发生变化,因而应用受到一定程度的限制。在电子称重技术的应用中,可将电子线路紧靠传感器的极板以减小电缆分布电容的影响,利用微处理技术对电容式传感器的温度特性和非线性特性进行补偿。 本文采用变极距式电容传感器,它由一对距离可变的平行极板构成。两板以弹性元件相连,当向一活动板施加拉力时,两极板距离发生变化,从而改变了平板电容器的电容量。经电容-频率转换电路后,电路输出频率与电容成正比。被测物重量与电容量改变成正比,频率的改变即频差与在传感器上所加重物的重量成正比,因而变极距式电容传感器有良好的线性度。测质量时只须测出电容的变化量。然而,电容值的直接测量非常困难。因此,系统将不易测量的电容变化量转换成易于测量的频率信号的变化量,并采用高稳定参考电容生成参考频率信号,消除系统误差,实现高精度测量。电容-频率转换框图如图1所示。两路频率分别送入后级处理电路,经过数据选择、带通滤波传入单片机系统。
图1 电容频率转换框图
硬件电路设计
仪器的构成
本文研究的便携式电子秤硬件系统由电源、电容传感器、高稳定参考电容、icm7556定时器、max325多路开关、pic16f628单片机系统、控制键盘、lcd显示等组成。测量系统硬件电路框图如图2所示。
图2 仪器结构框图
pic16f628的主要功能特点
pic16f628单片机是microchip公司的pic系列单片机之一。pic 8位单片机系列是该公司推出采用risc(reduced instruction set computer)结构的嵌入式控制器,具有执行速度高、功耗低、体积小巧、工作电压低、驱动能力强、品种丰富等优越性能。其总线结构采取数据总线和指令线分离独立的哈佛(harvard)结构,具有很高的流水处理速度。与同类8位单片机相比,程序存储器可节省一半,指令运行速度可以提高4倍左右。此外,pic系列单片机集成了一系列外部功能模块,例如:上电复位电路、i/o引脚上拉电路、看门狗定时器等。这样,在组成系统时,就可以最大限度的简化电路、降低成本,提高系统的可靠性。
pic16f628单片机具有直接驱动液晶显示器的能力。输入端口具有跳变中断能力,能方便地接收按键输入,另有多级外部及内部中断,可通过程序禁止主晶振振荡而使单片机进入低功耗状态,适合用于以电池作能源、需液晶驱动的应用场合。
pic16f628单片机的工作电压范围为3.0v~5.5v,时钟频率为dc~20mhz,内部具有1k 14(位)片内程序存储器,224字节通用ram,128字节eeprom,15根双向i/o线和10个中断源,并带有一个16位定时器/计数器(tmr1)和一个8位定时器/计数器(tmr0)。
pic16f628的精简指令集仅有35条指令,除了地址分支跳转指令(goto、call)为双周期指令外,其余皆为单周期指令,执行速度可调范围宽(dc~200ns),具有8级硬件堆栈,3种寻址方式(直接、间接、相对)。
pic16f628的15个i/o口均是独立双向可编程的,并可直接驱动led数码管,最大拉电流和灌电流分别为25ma和20ma。tmr0带有8位可编程预分频器,可进行1~256分频。
pic16f628信息处理单元电路的设计
pic16f628是整个系统的信息处理核心。它需要完成键盘输入检测、采样通道选择、信号分析处理、信息显示、欠电报警和过载报警等多种智能功能。单片机信息处理单元电路如图3所示。图中采用的max325是maxim公司生产的精密单电源spst(single-pole single-throw)模拟开关,它由一个常开型开关和一个常闭型开关组成,具有低功耗、低导通电阻等特点。该芯片两控制端(in1、in2)均连接cpu的rb3引脚,系统两路频率信号输入通道的选择由cpu控制。低电压检测信号通过芯片6脚(int)输入,低压时产生外部中断。键盘检测信号与芯片10~12脚(rb4~rb6)相连,有键按下,就产生rb口电平变换中断,在中断服务程序中,扫描键盘,取得键值。显示缓冲区的写入依靠芯片中通用同步/异步收发器(usart),显示器lcd的数据端和时钟端分别与芯片的7脚(dt)、8脚(ck)相接。
图3 信息处理单元电路
软件设计
作为便携式仪器,系统在整个设计过程中遵循简化硬件电路,以软件设计代替硬件的设计原则,最大限度的减小仪器的体积和重量,因而系统的软件实现功能丰富。软件设计采用模块化结构,主要有人工校正模块、欠电报警模块、键盘检测模块、采样通道切换模块和数据处理模块。
系统主程序
系统主程序控制单片机系统按预定的操作方式运行,它是单片机系统程序的框架。系统上电后,对系统进行初始化。初始化程序主要完成对单片机内专用寄存器的设定,单片机工作方式及各端口的工作状态的规定。系统初始化之后,进行计数器读取、零点校正、过载检测等工作。主程序流程图如图4所示。
图4 系统主程序流程图
中断服务程序设计
系统程序设计中,键盘检测产生外部中断,采样通道产生内部定时中断。在中断优先级的问题上,因为pic16f628单片机只有一个中断入口地址0004h,每种中断都要由此进入中断程序,所以中断程序开始现场保护后,要进行各种中断标志位的顺序检测和判断。当判断到中断标志位时,转到相应的中断服务子程序中,根据检测标志位的顺序,定义中断优先级,先判断定时中断优先级最高,其次是键盘检测中断。中断服务程序流程图如图5所示。
图5中断服务程序流程
采样通道切换模块,系统传感器单元含有两个电容-频率转换电路,两个电路输出信号的获取均通过单片机pic16f628的计数器1实现。利用定时器0的定时中断功能,每隔0.1s切换一次振荡工作电路及模拟开关max325通道。定时器0中断服务程序流程图如图6所示。
图6 定时器0中断服务程序流程图
图7 键盘中断服务程序流程图
键盘检测模块,系统中按键组合成键盘后排列成3 5矩阵形式,采用rb口中断的方式检测键盘中有无按键。对各列线都送以低电平(称为"全扫描"),若有键按下,则产生中断。进入中断程序后,通过"逐列扫描"(逐列送低电平),查看各行线电平值来鉴别被按下的键,返回键值。对按键的具体处理由主程序中键盘处理子程序完成。键盘检测中断服务程序流程图如图7所示。
软件抗干扰设计
测量算法采用数字滤波、曲线拟合两种数据处理方法。数字滤波(软件滤波)复用性好、可实现超低频滤波且修改方便。因此,在硬件滤波设计基础上,系统通过软件滤波进一步滤除有害干扰信号。同时,曲线拟合使系统对测量曲线进行不失真跟踪处理,也保证了测量计算的准确性。
pic16f628片内带有看门狗定时器(wdt),它是一个拥有独立的rc 时钟信号源、计时周期约为18ms的cpu片内自激式rc振荡计时器。在烧写程序时借助程序烧写器启用wdt,一旦程序跑飞,wdt将立即强迫程序返回到复位向量处(在复位向量处安排了一段出错程序),即可将系统纳入正轨。
软件低功耗设计
因为系统功耗正比于cpu的工作时间,所以尽量缩短cpu的运行时间应是低功耗软件设计的一条重要准则。
(1) 使用单片机睡眠方式
pic16f628设有低功耗模式,即睡眠方式(sleep)。便携式电子秤作为随身携带的手持式称量器具,一定不是常处在工作状态。在未关断电源的情况下,当器具闲置了预定的一段时间后,单片机将自动进入sleep模式,在"睡眠"方式,耗电小于1 a。
(2) 使用单片机的中断功能
系统软件设计应用了三个中断:rb口中断(用于检测键盘输入)、外部中断(用于低电压检测)、定时器0中断(用于切换频率量输入通道)。中断的使用有效地减少了cpu的运行时间,从而降低功耗。
本系统中,严格选用低功耗的cmos器件,硬件上的配合简单而有效,软件上的设计周密而层次分明,整个系统能真正的实现低功耗工作。
结束语
本文设计研究的准确度等级ⅲ级、最大称量15kg并集多种智能功能于一体的便携式电子秤,技术指标参考了目前国内市场上使用最多、国内外产量最大的电子衡器的技术指标,由此可预见产品投放市场后将有极大的竞争力。