农事信息采集系统的研究与设计
扫描二维码
随时随地手机看文章
1 引言
在农业现代化生产和食品质量安全追踪体系的建设过程中,需要完整、及时、可靠的记录农事操作的信息(包括育苗、定植、灌溉、施肥、对花、防治病虫害等操作);然而传统的记录方法不仅操作麻烦,而且随意性太强,时常导致误记、漏记、记录档案丢失及虚假记录等现象时有发生。为了改善这种现状,我们利用现代电子技术和计算机技术,设计了一种电子农事信息记录系统,解决了传统方法存在的许多缺陷,并能有效实现大范围质量追踪。
2 系统实现
农事信息采集系统由手持操作终端和上位机数据库组成。操作者使用手持终端记录随时进行的农事操作信息,信息记录被保存在手持终端的存储器中;数据记录通过RS232传输到上位机数据库,由上位机生成农事操作的存档报表(见图1)。
500)this.style.width=500;" border="0" />
3 手持终端的硬件组成
硬件系统主要组成部分如图1所示,主控制器选用Cygnal的C8051F022芯片,该芯片具有双串行口,内部集成64K可自擦除的FLASH程序存储区并有4K字节的RAM,此外该单片机具有丰富的外部接口(共100个引脚,64个I/O接口),其运行速度可以高达25MIPS(25MHZ时钟时),它是一个功能强大的片上系统,具有高速、可靠等特点配置和开发都比较方便。终端通过点阵LCD和18个按键与用户交互,LCD显示中文信息,中文字库由容量为512K字节的存储器28VF040保存,农事信息也保存在28VF040中。
500)this.style.width=500;" border="0" />
3.1键盘电路
系统中共有18个按键,4×4组成了16个按键,另外的两个按键通过中断口连接到单片机上。4×4的键盘队列依靠程序的扫描实现。
3.2 28VF040和液晶的连接和地址分配
C8051F022有较多的端口,可以设置为地址和数据线用不同引脚的模式;液晶和FLASH共用数据线,他们需要设置为不同的地址空间,即通过他们的片选信号控制(见图3)。
由于28VF040有19条地址线,共512K字节的存储空间,而51单片机的可以访问的地址空间是64K,即16条地址线,所以把28VF040分成了16页,每页为32K,也就是单片机的A0-A14连接28VF040的A0-A14,A15-A18则由P40:P43这4个IO口控制,P40-P43选择页,低地址选择该页内的地址。P45做为28VF040的片选信号,在访问时,首先输出片选信号,然后设置页地址,最后通过MOVX指令访问该页内的地址即可。
LCD通过并行方式访问,与28VF040共用数据线。因此,两个芯片不允许同时使能。
500)this.style.width=500;" border="0" />
4 手持终端软件系统的构成及功能实现
手持终端软件部分较复杂,其主要部分为菜单子程序、按键子程序、上下位机通信子程序、汉字输入法子程序、存储器操作子程序等。
4.1菜单子程序
多层菜单的实现主要由菜单结构体、菜单栈和菜单项来实现;其中菜单结构体用来描绘每一个菜单画面,通过菜单结构体,实现了菜单操作界面[2]。
typedef struct
{
BYTE MenuState; // 菜单状态
BYTE MenuLines; // 菜单总行数
BYTE MenuSelLine; // 选中的行在当前窗口中的编号
BYTE WindowUp; //显示窗口上限
BYTE WindowDown; // 显示窗口下限
}MenuStruct;
整个操作是由一系列的菜单界面组成。一个菜单栈描述了菜单的操作层次关系,比如,在启动界面下,当按下菜单键后,进入到主菜单界面,此时首先要保存原来的菜单界面以方便用户按返回按键时重新显示启动界面。这一功能是通过对菜单栈的操作实现的[3]。其主要实现函数:
PushMenu():菜单入栈函数;
PopMenu():菜单弹栈函数;
MoveSel():移动当前选择的行函数;
程序中定义了若干个菜单状态,代表了不同的操作阶段,根据阶段进行显示和操作;每个操作阶段就是一个菜单项。比如,主菜单共有4个子菜单,其地址由MAINMENU表示,MAINMENU是一个数组的名称,定义入下:
code BYTE MAINMENU[][16]=
{{"1 农事操作"},{"2 农事信息"},{"3 参数设置"},{"4 设备信息"}};
4.2按键子程序
按键是在定时中断中进行扫描的。标准的4×4矩阵键盘扫描,当检测到有键按下时,产生按键消息,并降按键的代码保存到变量中。主循环检测到按键消息后,调用按键处理函数,该函数根据按键的代码和当前菜单的状态调用响应的处理函数进行处理。
4.3上下位机通信子程序
定义字库和产品信息下载通信协议如下:
格式: [起始符][命令][地址][帧序号][长度][内容][校验]
起始符:0xAA
命令: 不同命令代表不同操作,一个字节,取值范围0x00-0xFF
地址: 0x02
祯序号:下载的数据祯的编号
长度: 数据祯信息内容的的长度,2字节,低字节在前,高字节在后。
内容: 信息内容
校验: 从[起始符]开始到信息内容结束的所有数据字节求和,溢出的部分丢弃。
4.4软件系统主要流程
软件总体结构采用消息驱动的前/后台结构,程序主体在中断(定时、串口)的驱动下运行[4],系统软件主流程见图4,软件中定义了两类信号:UART0通信信号和主节拍信号。
500)this.style.width=500;" border="0" />
定义主节拍信号定义如下:
MSI_HSEC: 半秒信号
MSI_SECD: 秒信号
MSI_MINU: 分信号
MSI_10MS: 10ms信号
MSI_SKEY: 按住不放,每秒产生一个按键信号
MSI_KEYC: 确定和取消键按键信号
MSI_DISP: 显示信号
MSI_KEYD: 按键信号
系统定时器0中断处理流程如图5。
5 系统应用
上位机数据库用SQL Server开发,该系统研制成功后,在四格庄示范基地投入试验;有效实现了农事信息的电子存档和管理,操作简单、可靠[5],上传部分数据库资料见表1。
500)this.style.width=500;" border="0" />
6 结语
电子技术和计算机技术的有机结合,使得农事信息采集系统能很好的迎合农业现代化生产的需求,实现了全程电子无纸化可靠、便捷操作;如果现有网络充分利用互联网技术,则可以有效实现大范围区域农产品质量追踪体系的建立;而且区域越大,本系统体现的的技术优势和实现的经济效益更为显著.
本文作者创新点:1、手持操作终端及其多层菜单式操作方式便于农事信息记录。
2、运用数据库技术管理上传的农事资料。
导师评语:本文针对农产品安全追踪体系的建立,提出了一种基于现代电子技术和计算机技术全新的信息记录和管理思路,尤其是手持操作终端的引入,方便了信息的采集和存储;而数据库技术和网络技术的引入,无疑方便了信息的管理和传输。