0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于实时操作系统μc/OS-II与SPCE061的嵌入式多传感器测控系统

电子设计 来源:郭婷 作者:电子设计 2018-12-07 09:01 次阅读

1 引言

随着嵌入式系统的广泛应用,原来单一传感器嵌入式系统逐渐向嵌入式多传感器系统发展。由此提出了多传感器任务调度分配的问题。本文移植典型的实时嵌入式操作系统μc/OS-II到SPCE061高性能处理器平台,结合工程项目对于温度湿度氧浓度的要求,构建了实时嵌入式多传感器测控系统。

2 系统硬件设计

2.1 单片机系统设计

系统硬件电路原理框图如图1所示,主要由SPCE061A单片机、温湿度传感器、氧浓度度传感器、LCD显示电路、键盘电路、RS232通信电路、时钟电路等组成。SPCE061A是一款基于μ'nSP内核的16位单片机。

基于实时操作系统μc/OS-II与SPCE061的嵌入式多传感器测控系统

图1系统硬件电路原理框图

2.2 传感器电路设计

温度检测电路选用Dalls公司生产的三线式数字温度传感器DS18B20。该器件只有3个引脚,不需要外部元件,一条数据线进行通信。该电路的检测温度范围设计为0~+50℃;精度为0.5℃;用9bit数字量来表示温度;每次将温度转换成数字量需200ms。在单总线工作方式下,允许一条信号线上挂接多个DS18B20,DS18B20都有唯一的ROM代码。在多点温度测控系统中,ROM代码是识别和操作DS18B20的基础;无论读取还是选择对某一个传感器进行操作,SPCE061A必须发送64位ROM代码。

本系统用3块DS18B20来实现对环境温度的检测,保证在被测环境范围内,温度分布均匀,测量更加准确,使用时将DS18B20放置在被测环境的不同位置。获得温度信息时,先由SPCE061A的IOB15脚发送一个1ms的复位脉冲,以使DS18B20复位后将向SPCE061A 发送一个回应脉冲,SPCE061A接到回应脉冲后将发送读DS18B20序列号的读ROM命令,以分别读取三个DS18B20的序列号;然后,SPCE061A再发出定位命令以选择在线的DS1820并进行温度转换。当温度转换完成后,SPCE061A的IOB15脚会发送DS1820的存储命令,从而完成温度信息数据的转换和读取。

2路氧浓度检测选用 DW-02型氧浓度传感器,主要特点是体积小、响应快、线性好、温漂小等特点,稳定。主要技术指标: 响应时间≤30秒(满量程的90%) ;测量范围0~50% O2 ;温度系数>0.003% O2/℃ ;线性误差+0.2%~-0.1% O2 ;使用温度范围-20℃~+50℃ ;输出电流1.1mA+15% 。 本系统测定的含氧量不得低于4.5%。

由于是冬季,当储藏室环境温度高于14℃或湿度大于95%RH、或氧浓度低于4.5%设定值时,不能直接将冷空气送入储藏室,必须将室外空气加热到12℃送入,否则,会造成红薯受冷变质。三个参数中,最主要的是温度值,然后是湿度。继电器电路的工作情况如表1所示。

基于实时操作系统μc/OS-II与SPCE061的嵌入式多传感器测控系统

表1 继电器控制电路工作情况

2.3 键盘、显示电路及通信接口设计

系统键盘电路由3根线连接至SPCE061A的IOA0~IOA2组成,它们分别是功能键,增加键,减少键,用来实现温、湿度氧浓度的上、下限及控制时间的设置功能。测控仪采用HT1621驱动128段LCD显示器,用于显示现场的温、湿度值、O2浓度以及故障和报警状态。HT1621是一个128(32×4)段、内存映射、多功能、I2C接口的LCD驱动器

3 软件设计

3.1 系统任务分配

为了充分发挥操作系统在任务调度、任务管理、任务通信、时间管理和内存管理等方面的优势,首先必须根据需要实现的功能,合理的划分任务和分配任务的优先级。按温湿度测控系统所要求实现的功能,将整个系统划分为并行存在的任务层和中断程序。μC/OS-II嵌入式实时操作系统中的任务状态转换如图2所示。

基于实时操作系统μc/OS-II与SPCE061的嵌入式多传感器测控系统

图2 μC/OS-II任务状态转换示意图

多任务系统在运行时每个任务好像独立占用CPU一样,因此系统必须为每个任务开辟一块内存空间作为该任务的任务堆栈。该堆栈的作用是保存任务被切换前时CPU各寄存器的值以及系统堆栈的数据。进行任务切换的步骤如下:①将当前任务CPU所有的寄存器压栈;②将CPU系统堆栈的数据全部拷贝到当前任务的任务堆栈中;③ 得到下一个处于运行态优先级最高的任务的任务堆栈的指针;④ 恢复下一个任务的CPU寄存器的值;⑤ 恢复下一个任务的系统堆栈中的数据;⑥ 通过中断返回指令或函数返回指令,间接修改PC寄存器的值来进行任务切换。

任务切换方法:凌阳SPACE061A单片机有R1-R5 五个通用寄存器,还有1个SR(CPU状态寄存器),再加上PC,总共有7个CPU内部寄存器在任务切换时需要保存。μC/OS-II系统调用OSCtxSw( )来实现任务的切换。在实际系统中,每个任务都是无限循环的,分别实现某一特定的功能,由μC/OS-II内核来进行调度。系统监视任务主要完成系统可靠性的监管;数据采集任务主要完成温度湿度氧浓度的检测和A/D转换;数据处理任务主要完成采集数据和设定数据的比较判定;数据输出任务主要完成数据输出给LCD、通过RS232传输给主机、以及输出控制信号给继电器电路,完成通风、加热、加湿等功能;显示任务主要完成温度湿度氧浓度参数的显示。系统主程序任务流程图如图3所示。

基于实时操作系统μc/OS-II与SPCE061的嵌入式多传感器测控系统

图3 系统主程序任务流程图

3.2 μc/OS-II的移植

μC/OS-II是一种专门为微控制器设计的抢占式实时多任务操作系统,它以源代码的形式给出。其内核主要提供进程管理、时间管理、内存管理等服务。系统最多支持56个任务,每个任务均有一个独有的优先级。

μC/OS-II的软件体系结构如图4所示。从图4中可以看到,如果要使用μC/OS-II, 必须为其编写OS_CPU.H、OS_CPU_C.C、OS_CPU_A.ASM三个文件。这三个文件是与芯片的硬件特性有关的,它们主要提供任务切换与系统时钟的功能。其它文件用C写成,它们为系统提供任务管理、任务之间通信、时间管理以及内存管理等功能。

基于实时操作系统μc/OS-II与SPCE061的嵌入式多传感器测控系统

图4 μC/OS-II 软件体系结构示意图

μC/OS-II系统时钟:以凌阳SPCE061A单片机的TMB2时基信号作为系统时钟,每经历一个时钟节拍的时间将产生一次中断,在中断服务子程序中会调用OSTickISR()函数。

移植工作的主要内容:用#define 设置一个常量值(OS_CPU.H);声明10个数据类型(OS_CPU.H); 用#define 声明3个宏(OS_CPU.H);用C语言编写6个简单的函数(OS_CPU_C.C);编写4个汇编语言函数(OS_CPU_A.ASM)。

4 结论

μC/OS-II RTOS是当今嵌入式应用的热点之一,应用RTOS提高了测控系统系统的可靠性、实时性,降低了研发周期。本文基于μC/OS-II构建的测控系统应用在漯河农业局2000万公斤红薯储藏保鲜工程项目中,完全达到了设计的控制指标:温度10-14℃±0.5℃ ,湿度80—95%RH±2%,氧浓度≮4.5%。降低了红薯因为温度湿度氧浓度不正常造成的变质,完好率100%,与不使用本系统的仓储对比减少损耗25%,约500万公斤,直接经济效益500多万元,同时也取得了较好的社会效益。经试验,温度测定范围可以达到-20-85℃±0.5℃;湿度20—98%RH±2%;氧浓度≮1.5%。所以,该测控系统具有较广的应用前景。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2548

    文章

    50642

    浏览量

    751734
  • 嵌入式
    +关注

    关注

    5068

    文章

    19008

    浏览量

    302989
  • 寄存器
    +关注

    关注

    31

    文章

    5308

    浏览量

    119979
  • 操作系统
    +关注

    关注

    37

    文章

    6727

    浏览量

    123182
收藏 人收藏

    评论

    相关推荐

    【图书分享】嵌入式实时操作系统μC/OS-II经典实例

    嵌入式实时操作系统μC/OS-II经典实例:基于STM32处理》作  者:刘波文 等编著 内
    发表于 03-13 10:26

    什么是嵌入式操作系统μC/OS-II

    任务较多的应用,就会暴露出实时性差、系统可靠性低、稳定性差等缺点。什么是嵌入式操作系统μC/OS-II
    发表于 08-07 06:25

    如何使用凌阳SPCE061A设计嵌入式应用系统

    。只需设计少量的片外扩展电路即可实现应用系统的硬件功能要求。μC/OS-II是一个源代码公开的精简的实时性很强的操作系统内核,移植性强,为什
    发表于 08-08 06:41

    嵌入式实时操作系统μC/OS-II在LPC2378上怎么移植?

    操作系统及CPU是什么 μCOS-Ⅱ内核结构及工作原理嵌入式实时操作系统μ
    发表于 04-26 06:32

    嵌入式实时操作系统μC/OS-II原理及应用

    嵌入式实时操作系统μC/OS-II原理及应用 学习笔记及课后习题(节选)
    发表于 12-16 06:54

    嵌入式实时操作系统μC/OS-II与eCos的比较

    叙述嵌入式系统嵌入式操作系统的概念,简述嵌入式实时系统
    发表于 04-15 09:36 12次下载

    嵌入式实时操作系统μC OS-II与eCos的比较

    叙述嵌入式系统嵌入式操作系统的概念,简述嵌入式实时系统
    发表于 05-16 14:38 20次下载

    基于μc/OS-II传感器测控系统研究

    移植典型的实时嵌入式操作系统μc/OS-IISPCE061 高性能处理
    发表于 07-09 09:52 12次下载

    基于ARM的嵌入式操作系统μC/OS-II的移植

        介绍了μC/OS-II RTOS 的内核结构和任务管理,阐述了ARM 嵌入式芯片的体系结构,给出了基于ARM 的嵌入式
    发表于 09-04 09:49 28次下载

    基于μc/OS-II传感器测控系统研究

    基于μc/OS-II传感器测控系统研究  摘要:移植典型的
    发表于 01-12 10:48 889次阅读
    基于μ<b class='flag-5'>c</b>/<b class='flag-5'>OS-II</b>的<b class='flag-5'>多</b><b class='flag-5'>传感器</b><b class='flag-5'>测控</b><b class='flag-5'>系统</b>研究

    嵌入式实时操作系统uC/OS-II内核_英版

    嵌入式实时操作系统uC/OS-II内核_英版资料。
    发表于 10-29 16:58 0次下载

    基于μc/OS-II传感器测控系统研究[图]

    单片机SPCE061A作为控制芯片,移植可裁剪的多任务实时操作系统c/OS-II管理多任务的处理,选用高精度温度
    发表于 01-18 01:30 432次阅读

    嵌入式实时操作系统的应用详细教程说明

    本文档的主要内容详细介绍的是嵌入式实时操作系统的应用详细教程说明包括了:1 嵌入式系统嵌入式
    发表于 12-05 08:00 2次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>的应用详细教程说明

    基于μC/OS-II操作系统SPCE061A上的移植优化研研究

    /OS-II移植到SPCE061A上,在μC/OS-II的平台上设计软件对于提高相关嵌入式应用系统
    发表于 03-07 09:57 822次阅读
    基于μ<b class='flag-5'>C</b>/<b class='flag-5'>OS-II</b><b class='flag-5'>操作系统</b>在<b class='flag-5'>SPCE061</b>A上的移植优化研研究

    基于实时嵌入式操作系统mC/OS-II实现GPRS终端系统的设计

    实时嵌入式操作系统mC/OS-II面向中小型嵌入式应用,包含全部功能模块的内核大约为10KB,RAM的应用量主要与
    的头像 发表于 05-28 09:59 2351次阅读
    基于<b class='flag-5'>实时</b><b class='flag-5'>嵌入式</b><b class='flag-5'>操作系统</b>mC/<b class='flag-5'>OS-II</b>实现GPRS终端<b class='flag-5'>系统</b>的设计