基于嵌入式系统的小麦自动着水机控制器设计
2011-04-13吴雪琴
吴雪琴
江苏省联合职业技术学院无锡交通分院,江苏 无锡 214151
0 引言
小麦作为世界三大粮食作物之一,工业化生产中加工面粉的小麦多来自粮库储粮,小麦在储藏中的水分含量必须控制在储藏安全水分(一般为11%~12%) ,此水分值低于要求的入磨小麦水分值(现代制粉工艺要求入磨小麦水分在14%~17%),故需对小麦进行实时在线着水。小麦着水控制的好坏将直接影响产品质量和企业效益[1]。
小麦着水即水分调节,是利用水、热作用和一定的润麦时间,使小麦的水分重新调整,达到适宜的入磨水分,提高出粉率,改善粉色,获得更好的工艺效果。
以微波测量法为例,系统需要分别测量微波、温度信号以及小麦的流速信号等,然后结合该批次小麦的硬度(品质)以及着水设备的具体情况(如容重等)进行相应的偏差补偿,最后根据相应的控制算法得出所需着水量,实时进行检测并精确加水。
目前布勒公司等一些国外公司研制的着水系统主要面向大型、精加工的面粉厂[2],其昂贵的价格让众多中小型面粉厂无力承受。国内一些科研人员也潜心研究[3-5],但控制器设计均以8位单片机为主控芯片。故,本文拟设计基于内置外设资源丰富、处理速度更快的ARM芯片来设计着水控制器。
1 系统总体结构设计
基于对着水工艺的简单说明,系统需要采集的数据量、控制量不少,另外还需显示系统运行状态、键盘输入以及开关控制等等,因此所需要I/O口数量较大。若是选择8位单片机[3],仅靠主控芯片本身的I/O口不可行,则必须扩展。除系统基本功能的实现外,决定湿度控制的效果还有赖于系统的处理速度,如数据采集速度及处理速度和控制执行器的速度等。本设计中选用了Atmel公司的AT91SAM7S系列ARM处理器作为主控芯片。主控芯片拟为内嵌开放源代码的μc/OS-II操作系统,以实现实时快速的双通道湿度测量并达到高效着水。
基于着水机工艺,控制器的总体结构如图1所示。其中前道用来测量从仓库中出来的原麦湿度,后道用来测量着水后湿麦的湿度,重力传感器测量在绞笼中行进小麦的速度,控制输出模块则主要是通过D/A转换器得到模拟电压信号调节水阀门开度。
图1 系统总体结构框图
2 系统硬件设计
由图1可知,硬件电路主要由前向通道、单片机系统、后向通道、数据通讯、输入输出及电源等组成。主控芯片具有32个可通过编程实现输出管脚复用的通用I/O,此外,它拥有256 KB的高速FLASH和64kB的SRAM,Flash存储器可以通过JTAG-ICE进行编程,或在贴装前利用编程器并行接口进行编程,而它提供的调试串口可在系统运行后重新下载程序,在现场进行系统升级。它的复位控制器可以管理芯片的上电顺序以及整个系统,BOD和看门狗则可以监控器件是否正确工作,多层次保证系统的稳定运行。除了拥有足够数量的通用I/O外,ARM芯片还拥有丰富的内置外设资源,刚好可以满足多个传感信号处理的需求,本设计中选择4个专用的AD转换输入pin3-pin6作为微波和流量信号的输入引脚。其它如两线接口TWI(芯片的TWD,TWCK引脚)则用来扩展EEPROM外接AT24C08以保存系统中的重要数据,传感器以及内存芯片都可以直接与7S256芯片的引脚相连,使用非常方便。另外,片内自带的3个16位定时器/计数器,拥有8个优先级、独立可屏蔽、最多可处理32个中断源的向量中断控制器等都极大地方便了多任务的应用和处理。
本控制器中与主控芯片密切相关的硬件部分除上述内置A/D以及TWI以外还包括电源以及逻辑电平转换、复位电路、串口电路以及D/A转换输出和显示输出等部分,以下内容针对其中部分电路设计进行介绍。
2.1 微处理器模块的电源设计
由于ARM芯片的工作电源为3.3V,而大部分外围芯片工作电源为5V,在整个系统中就需要考虑两个电源以供不同的芯片使用。在此设计中,3.3V电源选择的是SPX1117M3-3.3芯片,它是一个低功耗正向电压调节器,电路如图2所示。
图2 系统3.3V电源设计
5V电源则选择较常见的LM2576产生。另外,考虑到ARM内核的3.3V高电平和众多外围芯片的TTL逻辑电平信号不匹配,对主控芯片的某几个专门用作输出的GPIO引脚附加74LS系列的非门以得到TTL逻辑电平信号。
2.2 调试接口和串口部分设计
AT91SAM7S256具有调试及测试能力。JTAG/ICE(In-Circuit Emulator)用于标准的调试功能,如下载代码,在程序里实现单步执行等。调试单元还提供了一个两线串口(DTXD和 DRXD),它可以将应用程序上载到片内SRAM,实现程序的现场升级。本模块除了设计有一个JTAG调试口外,还将实现一个两线调试串口的功能。
主控芯片内置外设包含一个RS232串口和一个兼容RS485的串口,在本模块中标准232串口和兼容RS485的串口,分别用来和上位机的监控软件以及现场多台设 备进行互联。主控芯片上使用的引脚分别为:RS232使用串口0,分别为RXD0和TXD0接至串口芯片MAX3232;RS485则使用串口1,分别对应(RXD1、TXD1以及一根控制线PA23接至芯片MAX487。鉴于串口使用普遍,在此不再赘述。
2.3 AD模块的设计
对于微波信号和流量信号,本设计中直接将传感器连接到主控芯片内置AD的模拟输入端AD4-AD7四个引脚,只需在软件部分依据如下方式配置便可实现ADC功能:
此外,对于温度信号的处理,则采用具有冷端补偿的单片K型热电偶放大器温度处理芯片MAX6675,电路设计图如图3所示。
图3 温度处理芯片MAX6675的使用
由于它将热电偶测温应用时复杂的线性化、冷端补偿及数字化输出等问题集中在一个芯片上解决,简化了复杂的软硬件设计,减少了温控中不稳定性,提高了测量准确性。
2.4 存储模块的设计
图4 存储模块的硬件实现
为了扩充ROM存储空间,AT91SAM7S系列ARM芯片里类似于I2C总线的两线接口TWI刚好可以实现此功能,使用方便又节省I/O口资源。两线接口(TWI) 由一根时钟线及一根传输速度达400Kb/s的数据线组成,以字节为单位传输。该电路如图4所示。TWD,TWCK引脚,即PA3,PA4通过一个上拉电阻分别连接至AT24C08的SCL和SDA引脚即可。
3 系统软件实现
要保证着水机对小麦进行准确着水达到要求湿度,可靠的硬件设计是基础,具体任务则需根据实际工艺来设计合理的软件程序来完成。本控制器的软件设计主要包括4部分,分别是编写控制器硬件的初始化代码、移植操作系统、编写底层应用程序以及完成上位机的监控软件设计。
3.1 系统初始化
这部分代码完成硬件的初始化工作:1)存储器重映射;2)设置并选择PLLCK作为主机时钟和处理器时钟;3)将中断向量表复制到系统RAM;4)为系统各个处理模式分配堆栈;5)将系统控制权交给C入口程序。
3.2 操作系统移植
μC/OS-II具有可移植性,用户可以自己添加所需的各种服务。在设计时主要代码都是用ANSI C语言编写的,代码移植时只需修改OS_CPU.H、OS_CPU_A.ASM和OS_CPU_C.C三个文件即可。移植后,先断开数据采集板的外围芯片,仅在主函数中只添加OSInit()和OSStart()两个函数,让内核自己测试自己,以确保内核代码无误。当多任务调度运行成功后再逐步添加应用程序。
3.3 应用程序的实现
主控芯片通过实时采集前后两个通道的水分(微波)和温度数据并根据公式
在操作系统移植完毕,逐步往OSInit()中添加外围芯片的初始化函数并保证逐步测试通过后,根据工艺要求利用任务创建函数OSTaskCreate()创建具体任务,如串口通信程序、模拟量数据采集以及AD转换程序、温度采集程序以及控制输出函数等等。
4 结论
本着水控制器,采用了基于ARM7的AT91SAM7S256处理器,通过嵌入μc/OS-II操作系统,实现了前后双通道实时快速测量原麦以及湿麦的湿度并进行可靠的着水控制。本设计创新点是:充分利用了ARM芯片丰富的内置外设资源,设计出结构紧凑、稳定、高效运行的控制器,通过多任务管理和调度实现着水机快速、准确的着水使小麦达到最佳入磨湿度。
[1]顾尧臣.小麦粒度硬度水分调节和制粉性能[J].粮食与饲料工业,2002,11:1-5.
[2]李永祥,武文斌.国外面粉加工设备的发展[J].轻工机械,2005,3:104-106.
[3]李兰忖.全自动智能小麦着水机控制系统研究[J].食品与机械,2005,22,4:38-40.
[4]蒋丽,郭永刚.基于模糊PID算法的自动着水机研究[J].粮食与饲料工业,2009,9:3-6.
[5]蒋丽,郭永刚,杜太行.自动着水机可控执行机构的研究[J].粮油加工,2009,11:84-86.
[6]马忠梅,等编著.AT91系列ARM核微控制器结构与开发[M].北京:北京航空航天大学出版社,2003.
[7]吴永忠,程文娟,郑淑丽,徐海卫编著.嵌入式实时操作系统μc/OS-II教程[M].西安:西安电子科技大学出版社,2007.
[8]Atmel 官方网站.AT91SAM7S64 Datasheet,2007.