摘要:粮食中的水分按物理性质可分为结合水(结晶水)和游离水(自由水)。结合水是在粮粒生长过程中自然形成的,存在于粮食细胞内与粮粒内亲水物质结合得很牢固,性质很稳定,难以解吸,结合水不参加导电;游离水是通过物理吸附作用凝聚在粮食内部的毛细管内和分子间隙中的水分,它具有普通水的导电性质,平时检测指示的水分指的是游离水。本文根据粮食的介电特性,设计了完整的测试方案,它具有低功耗、便于携带、具有语音提示功能、操作方便、人机界面友好等特点,可广泛地应用于粮食的调拨、征购、储藏、加工等环节中。
1、引言
粮食中的水分按物理性质可分为结合水(结晶水)和游离水(自由水)。结合水是在粮粒生长过程中自然形成的,存在于粮食细胞内与粮粒内亲水物质结合得很牢固,性质很稳定,难以解吸,结合水不参加导电;游离水是通过物理吸附作用凝聚在粮食内部的毛细管内和分子间隙中的水分,它具有普通水的导电性质,平时检测指示的水分指的是游离水。如果不加选择地购进和储藏粮食,必然会影响粮食的储藏周期,导致粮食的过早发霉、变质、腐烂,因此必须时刻在意粮食的水分含量,本文根据粮食的介电特性,利用凌阳科技公司的SPCE061A单片机的快速运算与处理数据的能力和语音功能的特点,设计了完整的测试方案,它具有低功耗、便于携带、具有语音提示功能、操作方便、人机界面友好等特点,可广泛地应用于粮食的调拨、征购、储藏、加工等环节中。
2、SPCE061A单片机简介
SPCE061A是中国台湾凌阳科技公司推出的一款以μnSPTM为核心的基于SOC(SystemOnChip)技术的16位单片机。SPCE061A中包括2K字节的SRAM和32K字节的闪存ROM;32位可编程的多功能I/O端口;两个16位可编程定时器/计数器;14个中断源,两级优先级,三种中断类型;32768Hz实时时钟;低电压复位/监测功能;可编程的看门狗功能;7通道10位A/D输入和单通道内置麦克风放大器和自动增益控制AGC功能的声音A/D转换器;双通道10位D/A音频转换器;具有ICE(InCircuitEmula2tion)接口,能够方便的实现在线仿真和程序的下载;SPCE061A在2.6~3.6V工作电压范围内的工作频率范围为0.32~49.152MHz,较高的数据处理速度使SPCE061A能够非常容易地、快速地处理复杂的数字信号,SPCE061A能够实现用于处理数字信号的16位316位的内积运算,因此非常适合于数字语音识别和应用领域。凌阳的指令系统采用精简指令集,它以字为单位,从而格式紧凑、灵活;执行时间短。由此可见,SPCE061A是一款以单片机的价格获得DSP处理速度的具有高性价比的单片机。
3、系统软硬件设计
3.1系统的硬件设计
系统的硬件结构图如图1所示:
图1硬件结构图
数字温度传感器采用DALLAS公司的单总线器件DS18B20,用于补偿环境温度对粮食内部水分的影响,环境温度直接以“一线总线”的数字方式传输,省去了温度传感器的放大处理等环节,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量。同时它只占用单片机的一个端口,节约了系统的硬件资源,因此具有较高的性价比。
粮食水分的测试通常采用电阻法和电容法,由于非金属干燥物质的电阻很大,通常能达到几十到几百兆欧,要使这样大的电阻流过电流必须在检测电极两端加上高电压,即使这样获得的电流也只是微安级的,必须要经过放大等处理措施,因此用电阻法检测获得的测量信号微弱,影响测量精度。本电路采用电容法进行测量,经过实验的反复验证,水分传感器采用圆柱形容器测量粮食的含水量比平板式容器要准确些,操作也较方便,测量值受边缘效应影响较小。信号调理电路采用555芯片构成的非重复触发的单稳触发电路,如图2所示:
图2信号调理电路
粮食中的水分含量越大,粮食的介电常数就越大,电容值就越大。电容与水分存在一定的函数关系,同时在单稳触发电路中,输出的脉冲宽度Tpo=RCln3,其中C就是要测的电容值,因此水分与脉冲宽度存在函数关系,只要测出脉冲宽度就可获得粮食水分的含量。信号的采样波形如图3所示。脉宽的测量由单片机的外中断和定时中断来完成,由于SPCE061A的EXT1和EXT2均为负跳沿触发中断,因此在555的输出端加一级反相器,EXT1中断采样输出信号的上跳沿,然后再经过一级反相器,EXT2采样输出信号的下跳沿。两者采样的时间差就是脉冲宽度。时间差的计算可由单片机的定时中断来实现,在EXT1的中断程序里开启定时中断,在EXT2的中断程序里关闭定时中断。电路中的同步触发信号来自单片机的输出控制端口使采样和计时保持同步,提高系统的测量精度。
图3信号采样波形
为了降低功耗,系统采用图形点阵式LCD显示。相应的数据线和控制线与SPCE061A的16位并行A口连接,用来显示测量的粮食的种类、每次测量的数值、次数、平均值,以及测量的修正值。整个人机界面清晰、明确。
按键输入部分由品种选择键、修正值输入键、保存键、测试键、平均键、清除键等组成,根据需要,可测量大米、小麦、高粱等不同种类的粮食。
SPCE061A的音频输出采用双通道的DAC方式,即数字信号通过10位DAC转换成3mA驱动电流的模拟输出,语音提示信号输出经过驱动放大以后,通过扬声器输出。
3.2系统软件设计
粮食水分测试仪是具有区域特色的产品,它对不同地区的粮食作物具有不同的测量基准值,因此在测试之前,需要根据不同的粮食种类,在不同的状态下建立起标准的数据库,这些数据可以预先存入系统中,也可以由用户根据标准现场设定。这样在测试时就与标准值进行比较,判断是否合乎标准。
软件采用模块化设计,包括初始化程序、键盘扫描、温度采样、水分采样中断处理、测量数据线性化和温度漂移的补偿的数据处理、语音提示等模块。主程序负责整个系统的协调与控制工作,通过调用不同的模块完成相应的工作。本测试仪以每个品种10次随机采样的算术平均值作为测量结果,有效地提高了测量的准确性和重复性。在测试完成后就输出语音提示,判断所测试的水分为多少并且是否合格。主程序的流程图如图4所示:
图4主程序流程图
4、语音提示系统工作原理
SPCE061A的音频输出有两种方式,一种是音调输出方式,另一种是语音输出方式,两者的区别在于输出的控制机理不同。前者是通过控制定时器溢出所产生的不同频率来决定声波振动次数的多少,从而决定发出的声音音调的高低;后者是用与声音数据采样率相同的速率将声音数据通过数模转换通道还原成音频电压或电流输出,其中声音数据采样率决定了声音音质的好坏,并决定了声音数据所需要占据的存储空间[3]。提示语音的输入可以采用两种方式:一是通过PC机的声卡,用麦克风采集语音的3.wav文件;二是用SPCE061A系统采集语音信号,通过通信模块将语音信号传送到PC机上保存。第二种方式,因为它能保证语音特征的一致性,从而减少硬件系统不一致带来的误差。不管采用哪种方式,3.wav文件占用的存储空间很大,对于微控制器来说想要存储大量的语音信息显然是不可能的,必须将音频文件压缩。为了方便用户使用,凌阳公司的SPCE061A提供了各种音频压缩编码的算法和API函数库,即SACM-LIB。用户只须了解每个模块所要实现的功能及参数的内容,然后调用该API函数即可实现该功能。凌阳科技公司提供三种不同压缩率的语音提示的算法,表1是各种压缩算法名称及编码率类型。
表1SPCE061A的语音压缩算法及编码率类型
这三种压缩算法的区别在于压缩率不同、音质也不同。SACMA2000压缩率相对较小,音质较好,相应的资源占用较多。SACMS240的压缩率zui大,音质相对较差。SACMS480介于这两者之间。本系统在没有扩展存储器的情况下,采用SACMS240方式,它可容纳210秒的语音数据。语音播放子程序包括语音播放程序和服务中断程序,语音播放程序主要完成D/A转换器、TIMERA定时器和音量的初始化,从ROM里取出预先压缩好的语音数据,解压缩后存放在播放队列中,中断服务程序定时地从播放队列中读取数据,从D/A转换器转换后送扬声器发出声音。播放程序如下:
Sound:_proc;
r1=1;
callF_SACM_S240_Initial;
r1=8;
callF_SACM_S240_Volume;
r1=[Speech_1];
r2=dac1;
r3=Ramp_UpDn_On;
callF_SACM_S240_Play;
LOOP;
callF_SACM_S240_ServiceLoop[syg1];
callF_SACM_S240_Status;
testr1,0x0001;
jzSound_End;
jmpLOOP;
Sound_End;
retf;
endp;
5实验测试结果
本测试仪采用浮动三点定标法对各种不同种类的粮食预先定标,用户在使用时可直接测量,以小麦为例,在不同的水分情况下,实测值与标准值的数据比对如表2所示:
表2实测值与标准值的比对
经过非线性补偿和误差修正,本测试仪的测量误差≤±0.5%,测量的水分范围为3~35%,重复误差≤0.1%,使用的温度范围为0~40℃。基本上达到国内外同类*产品的技术指标。可适用于多种种类的粮食水分测量,具有比较广阔的市场前景。
参考文献
[1]薛钧义,等.凌阳十六位单片机原理及应用[M].北京:北京航空航天大学出版社,2003,2
[2]张永林,等.粮食水分在线测量技术评述[J].武汉工业学院学报,2003,(12):36-40
[3]李晶姣.嵌入式语音技术及凌阳16位单片机应用[M].北京:北京航空航天大学出版社