5 软件设计
8位单片机为核心的测控系统程序一般采用前后台方式编写,后台运行一个大的无限循环,前台为多个中断,在这种方式中,中断服务程序提供的信息一直要等到后台程序运行到处理该信息时才能得到处理,所以在处理信息的及时性上这种系统要比实际做到的差,而且代码编写复杂,增加功能时任务量大,不便于维护。因此采用μC/OS-II操作系统。
5.1 嵌入式实时操作系统μC/OS-Ⅱ
μC/OS-II是一个完整的,开源的,可移植、固化、裁剪的占先式实时多任务内核。程序量,仅7~8K,绝大部分代码采用ANSI C编写.便于移植。其稳定性与安全性方面已经过美国联邦航空管理局认证。
使用μC/OS设计软件系统首先要实现μC/OS在硬件应用平台上的移植,主要就是完成对OS_CPU_C.C,OS_CPU_A.ASM等多个与处理器相关文件的改写,在μC/OS的官方网站有在数十种处理器上移植成功的范例,可以免费下载,这里不再详细介绍。
基于μC/OS-II编写应用程序比较简单,首先根据系统功能合理划分任务,确定任务间的通信机制。每个任务都是相对独立的子模块,有唯一的优先级和自己的堆栈空间。每个任务处于以下5种状态的一种:休眠态、就绪态、运行态、挂起态及被中断态。内核在一个定时中断函数中查询进入就绪态中的优先级最高的任务,然后把当前任务挂起,保存现场,执行该任务。各个任务间根据信号量、消息邮箱、队列等通信方式传递信息。
5.2 任务划分
基于μC/OS-II编写应用程序主要的工作是划分任务和分配优先级及任务之间信息的传递。设计中,将整个系统划分为:①数据处理与显示;②菜单显示任务;③串口通信任务。A/D中断:AD7714的定时中断;触摸屏中断:点击触摸屏触发外部中断。软件设计如图4所示。
在AD7714的A/D定时中断服务中发送消息,数据处理及显示任务接收到消息后,把消息中的A/D数据经过公式推导,转换成相应的钠含量并显示。
在触摸屏中断处理函数中发送消息给菜单任务,菜单任务接收到消息中的坐标值后,进行判断并显示相应的菜单界面。串口通信任务把测量值经过串口远传到控制室。
6 结语
系统创新性在于将高性能微处理器MEGA128和新器件AD7714首次应用于水质监测信号采集。同时移植μC/OS-II操作系统。系统硬件电路简洁可靠,功耗低、可靠性高。软件实时性好,便于扩展功能。将此分析仪与进口仪表进行对照实验,数据如表1所示。
由表1数据可知,该分析仪的测量精度接近进口仪表。通过与国家标准比对,分析仪的各项指标已符合国标,可作为在线式仪表用于水质钠离子含量的连续检测。