微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 基于μC/OS-Ⅱ农田信息采集系统的研究与设计

基于μC/OS-Ⅱ农田信息采集系统的研究与设计

时间:04-13 来源:互联网 点击:

在数据类型定义中,S3C44B0X芯片是32位处理器,但是,μC/OS-Ⅱ嵌入式操作系统所处理的仍然是INT16U。用户必须将任务堆栈的数据类型告诉给μC/OS-Ⅱ嵌入式操作系统。这个过程是通过为OS_STK声明正确的C数据类型来完成的。S3C44B0X芯片的堆栈成员是16位的,所以将OS_TsK声明为无符号整形数据类型,定义如下:
tyPedefunsignedlong OS_STK;
堆栈增长方向OS_STK_GROWTH定义如下:
#defin OS_STK_GROWTH左堆栈增长方向为从上往下增长
#define STACKSIZE256/μC/OS-Ⅱ嵌入式操作系统需要先禁止中断访问代码的临界区,并且在访问完毕后重新允许中断。
与所有的实时内核一样,μC/OS-Ⅱ嵌入式操作系统需要先禁止中断再访问代码的临界区,并且在访问完毕后重新允许中断。这就使得μC/OS-Ⅱ嵌入式操作系统能够保护临界区代码免受多任务或中断服务例程的破坏。在S3CA4B0X芯片上是通过两个函数(OS_ENTER_CRITICAL()和OS_EXIT_RITICAL())实现开关中断的。
3.2 任务优先级及任务关联设计
在本项目中,为实现农田信息采集系统的功能要求,在μC/OS-Ⅱ中设计以下任务:时钟节拍任务、键盘任务、显示任务、数据采集任务(土壤水分、土壤养分、土壤压实、多点温度数据采集)、数据处理及存储任务、串口通讯任务。数据采集任务、数据处理与存储任务设置为周期性任务。在这些任务中,μC/OS-Ⅱ时钟节拍服务是通过中断服务子程序调用时钟节拍函数来实现的。因而采用定时器1产生中断,定时周期10ms。除此以外,该函数还要启动A/D转换以及每隔一段时间发送消息给相应的任务,从而触发相应的任务执行等。因此,优先级最高;数据采集任务、串口接收任务和串口发送任务实时性要求比较高。其中,串口接收任务是关键任务和紧迫任务,遗漏接收内容是不允许的;数据采集任务是紧迫任务,但不是关键任务,遗漏一个数据还不至于发生重大问题;在串行口发送任务中,CPU是主动方,慢一些也可行,只要将数据发出去就可以。显示任务和键盘任务是人机接口任务,实时性要求较低。由于显示任务要等数据处理及存储任务所得的数据,故数据处理及存储任务的优先级可安排得比键盘任务和显示任务高一些。农机设备控制任务的实时性要得到保证,因此要设为较高优先级。
由于系统的实际运行效果是各个任务配合运行的结果,这种配合过程又是通过操作系统的管理来实现的,即通过调用操作系统服务函数来实现的。“何时调用系统服务”和“调用什么系统服务”是任务设计中的关键问题,这个问题与任务之间的相互关联程度有关,需要通过分析这种关联关系才能确定。为了进行任务设计,必须把这些任务之间的相互关系搞清楚。

根据农田信息采集系统功能需求,设计任务关联图如图3所示。系统应用软件包含10个任务:传感器数据采集任务为周期性任务,以一定的时间间隔采集数据,通过消息队列将所采集数据传输给LCD显示任务,并通过邮箱1#传递给数据处理与存储任务,同时,GPS接收的位置信息通过邮箱2#及时插入采集的数据当中;数据处理与存储任务以信号量1#将数据通过串口通讯任务传递给计算机,并在计算机上生成田间土壤水分分布图、养分分布图和温度变化图等数据,计算机生成的数据又经串口通讯任务由信号量2#发给扩展CAN总线任务,以此来控制农田机械设备执行相应的程序,完成自动变量施肥、变量喷洒农药等;键盘扫描任务、数据处理与存储任务等和显示任务同步,以消息队列1#通知显示任务更新显示。

4 结束语
本文以嵌入式微处理器S3CA4B0X芯片为主体,构建农田信息采集系统的软硬件平台,分析了μC/OS-Ⅱ操作系统的特点,并在嵌入式微处理器S3C44B0X芯片内嵌入μC/OS-Ⅱ实时操作系统,阐述了基于μC/OS-Ⅱ操作系统的农田信息采集系统的设计与实现方法。由此开发的农田信息采集系统的实时响应速度快,并实现软件设计模块化,可大大提高系统的稳定性和实时响应能力,增强系统的可靠性、可扩展性、可移植性,有着广泛的应用前景。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top