基于μC/OS—II的睡枕控制系统设计

来源 :科技创新导报 | 被引量 : 0次 | 上传用户:ghostwazy
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:介绍了一种采用STM32F103芯片,并基于嵌入式实时操作系统μC/OS-II的睡枕控制系统的研究设计。针对睡眠时因翻身产生的睡枕高度不适,在用户睡眠时通过三轴加速度传感器MMA7361LC采集数据分析用户睡眠姿态,进而通过芯片控制充放气装置对睡枕内置气囊高度进行实时地调节。该系统相比传统基于单任务机制的控制系统具有更好的实时控制性能和可靠性能。经过调试验证,系统能满足用户睡姿数据的实时采集和枕头高度调节要求。所设计的控制系统可用于数据实时采集和反馈控制等复杂系统中。
  关键词:STM32 μC/OS-II 加速度计 任务调度 消息邮箱
  中图分类号:TP271+.5 文献标识码:A 文章编号:1674-098X(2016)07(a)-0095-04
  Design of the Pillow Control System Based on μC/OS-II①
  Wang Weiyang Ding Jiayue Wang Penghong Zha Ningwen Li Xiaoning
  (School of Information & Electronic Engineering, Zhejiang Gongshang University, Hangzhou Zhejiang, 310018, China)
  Abstract: A pillow control system based on STM32F103 and embedded real-time operating system μC/OS-II is designed in this pager. Analyzing the users’ posture of sleeping by the acceleration sensor MMA7361LC, the system uses the air pumps and release valves to adjust the height of the balloons in the pillow. The system has better real-time control performance and reliability than the traditional system based on a single task. After experiments, the design of the control system can meet the requirement of real-time data acquisition and pillow height adjustment. And it can be applied to complex systems which have real-time data acquisition part and feedback control part.
  Key Words: STM32; μC/OS-II; Accelerometer; Task scheduling; Mail box
  枕头高度不合适会对我们的颈椎健康造成影响。现在市面上的枕头大多都为普通枕头,高度不可调节。用户睡眠时无意识翻身,会使枕头高度处于一个不合理的状态,影响我们的颈椎健康。相比之下,记忆枕虽然能实现枕头高度符合个人需要,但它在用户改变睡姿后枕头的形态改变较为缓慢,实际使用效果并不理想。因此,该文设计了一个能在用户睡眠时根据睡姿来调节高度的智能睡枕[1]。系统基于嵌入式实时操作系统μC/OS-II,采用STM32单片机实时采集传感器数据,对用户睡姿进行判断,并进行反馈,从而控制睡枕高度。系统有足够的实时性和稳定性,能够满足用户所需睡眠时对睡枕高度的实时控制要求。
  1 系统整体方案设计
  该系统设计由硬件与软件两部分构成。硬件以STM32处理器作为主控芯片,三轴加速度传感器采集数据分析用户睡姿,睡枕内置气囊外接微型充气泵以及泄气阀。整个睡枕控制系统设计有按键操作、TFT-LCD液晶屏显示和气泵控制功能。系统可增设实时时钟显示和闹铃功能,实用性强。
  所设计的睡枕控制系统的硬件平台结构如图1所示。
  传统程序设计是基于单任务机制的,在实际应用中如果其中一个任务运行出现了错误,可能直接导致系统程序跑飞或者陷入死循环而无法工作。因此,系统软件以嵌入式实时操作系统μC/OS-II为基础,该操作系统最初便是为微控制器应用设计的,有着内核小、多任务、可裁剪、实时性好、系统服务丰富和使用方便等特点,广泛用于飞行器、医疗设备、手机通信和工业控制等各类产品中[2,3]。μC/OS-II可以支持包括8个系统保留任务在内的多达64个任务,满足一般控制系统的任务数量要求,且系统本身具有任务调度和任务监控功能,使系统具有较高的实时性和可靠性,完全适用于睡枕系统设计的需要。
  2 系统的硬件部分
  2.1 供电电路设计
  系统采用6 V直流稳压电源作为电源输入。由于STM32控制器芯片、MMA7361LC和LCD显示屏均采用3.3 V直流供电,所以采用AMS1117-3.3芯片将输入电源降压给其供电。该降压模块设置有LED灯,当模块正常工作输出电压时LED灯亮。电源另一路则直接以6 V直流接入电路给充气泵及泄气阀供电。降压模块电路如图2所示。
  2.2 主控芯片外围电路设计
  主控芯片采用意法半导体(ST)集团的基于ARM Cortex-M3内核的STM32F103ZET6芯片,该控制器由3.3 V直流电压供电,最高工作频率可以达到72 MHz,并且芯片内已经集成12位逐次逼近型模拟数字转换器(ADC)[3]。该ADC测量通道较多,可以支持测量16个外部信号源,各通道A/D转换均可以单次或者扫描模式执,转换后的数据结果存储在16位数据寄存器ADC_ConvertedValue中[4]。芯片外围电路设置包括SPI FLASH、晶振模块、复位电路和EEPROM等,用以拓展控制器的使用功能。   2.3 睡姿传感器电路设计
  加速度传感器采用美国飞思卡尔半导体(Freescale Semiconductor)公司出产的MMA7361LC型单芯片三轴加速度传感器,该款传感器具有电流消耗低、微机械型等特点,其内部设置了诸如低通滤波器电路及温度补偿电路等用于提高传感器精度的电路模块[5]。传感器有多种选择模式,可以设为检测线性自由落体或者休眠模式,可以选择1.5 g或者6 g两种灵敏度。该系统选择了1.5 g模式,使得检测灵敏度可以达到800 mV/g,且设置方式简单,只需在使用时将g-Select端置空即选定为该模式。该加速度传感器输出的电压模拟信号,经过预处理电路后,通过程序预设的I/O口与STM32控制器的ADC通道相连接,采用ADC1的1、2、3通道分别采集加速度传感器X、Y、Z输出口输出的模拟信号;控制器的PG8口用于控制休眠状态,节省电能。电路设计如图3所示。
  2.4 充放气装置电路设计
  由于系统中微型充气泵与泄气阀均采用6 V直流供电,为了使单片机能控制充放气设备的启停,采用NPN型三极管8050设计控制电路,由单片机I/O口输出信号控制三极管导通,进而控制充放气设备工作。系统设置三个充气泵,分别配有三个泄气阀。
  2.5 显示、按键模块电路设计
  所采用的显示屏为可支持16位数据宽度的四线电阻式触摸屏,可以实现触摸操作。系统设有4个操作按键,其中按键S1上接VCC3.3 V,可用于实现系统的待机唤醒功能;其余3个按键设置有滤波电容,用于通过硬件方式来消除按键抖动产生的信号干扰,使按键输入信号稳定便于单片机读取。
  3 基于μC/OS-II的软件实现
  3.1 软件设计思想
  系统软件设计主要由μC/OS-II操作系统在STM32平台上的移植和各种应用任务的代码编写构成。移植时需要修改内核程序,主要是修改系统内核中与编译器相关的代码os_cpu.h、与处理器相关的代码os_cpu_a.asm和与操作系统相关的代码os_cpu_c.c[3,6]。置于用户腹部的三轴加速度传感器输出模拟信号至STM32控制器[5],经过芯片内ADC处理转化成数字信号后,数据结果经由芯片内部数据传输模块(DMA)传给CPU。后经程序算法分析出当前用户睡眠所处的体位状态,进而通过I/O口发出高低电平控制电路,使气泵和泄气阀对气囊进行充放气来调节枕体高度。
  3.2 系统任务设置
  系统的软件结构模型如图4所示。由μC/OS-II操作系统负责调度管理各个任务。
  监控任务用于监控程序运行状态,当出现BUG时对系统初始状态进行重新设定;数据采集任务采集传感器数据;数据处理任务对采集到的传感器数据进行分析,判断用户睡眠姿势;LCD触摸任务显示当前睡枕所处状态,可触摸操作方便用户控制;按键检测任务检测用户的按键操作,在任务程序中通过命令改变程序工作状态;由反馈控制任务控制充放气装置来调节气囊高度。
  每个模块对应的功能任务互相之间为并行关系,由于μC/OS-II中采用基于优先级的任务调度算法,所以系统中每个任务的优先级均不可能相同。该系统采用静态方式设置任务的优先级,在满足任务调度功能的同时,大大简化了系统的控制工作。程序设计中设置按键检测任务的优先级较高,设为9,数字越小表示任务优先级越高,其余分别设置数据处理任务为11,反馈控制任务为13,数据采集任务为15,LCD触摸任务为17。间隔设置系统任务优先级,可方便后续对系统任务的拓展。
  3.3 任务间通信和调度
  该系统通过消息邮箱来完成各个任务间的通信。?C/OS-II中有多种任务通信方式,消息邮箱这种通信方式主要是由一个任务向另一个指定任务发送一个指针型变量,这个指针可以指向一个包含信息的数据结构,可以直接在任务间进行信息内容的传递,这使得任务间通信更加高效[7]。在使用消息邮箱时通过调用系统函数OSMboxCreate()来创建邮箱,同时设置指针的初始值为所需发送的信息数据地址。该系统共设计了3个消息邮箱,分别为: (1)MboxDataprocessing邮箱。接收数据采集任务发送的消息,数据处理任务等待消息;(2)MboxControl邮箱。接收由数据处理任务发送的消息,反馈控制任务等待消息; (3)Mboxmonitoring邮箱。接收反馈控制任务发送的消息,监控任务等待消息。
  μC/OS-II作为一个完全可剥夺型的实时内核系统,其核心是任务调度算法,因此系统内核总是选择处于就绪状态下具有最高优先级的任务赋予其CPU控制权[8]。其调度过程具体表现为系统内核通过查找就绪态任务列表OSUnMapTbl[]找出此时优先级最高的就绪态任务,然后将该任务PCB地址赋予OSPrioHighRdy,接着赋予该任务CPU控制权来完成某个阶段的任务切换[3]。
  3.4 系统运行
  全部系统任务均在μC/OS-II系统内核的调度下循环运行。设置的监控任务用于对系统运行状态进行监控。监控任务在超出定义的等待时间后如果依旧未取得消息,则判断系统运行出现错误。此时监控任务获得CPU控制权对系统重新初始化,通过该任务的运行使得系统具有一定的错误自检能力,提高程序运行的可靠性和稳定性。
  4 实验结果
  完成系统的软硬件设计后,对睡枕进行调试测试。该系统所设置五种常见睡姿状态对应传感器电压参数范围及其重复测试准确率如表1、表2所示。
  对五种常见睡姿的检测正确率均达到90%,且在完成睡姿检测后能启动相应程序对睡枕高度进行调节。此外,系统可通过按键或者LCD触摸操作对睡枕进行控制。
  5 结语
  基于STM32F103控制器和嵌入式实时操作系统μC/OS-II设计了一种智能睡枕的控制系统。经过系统调试验证,睡枕在控制下,能通过MMA7361LC三轴加速度传感器实现五种常见睡姿的检测,并通过充放气设备调节睡枕高度,系统的可靠性相比传统单任务机制的系统有明显提升。但目前尚未做到对枕头高度的实时判断且睡姿检测不够多样,对此可进一步增设传感器。此控制系统通用性较强,能为后续研究提供一定的基础和借鉴。随着智能家居的不断发展和人们对生活品质的追求,智能健康睡枕将会有广阔的发展空间。
  参考文献
  [1] 支一飞.基于图像技术的可自动调节高度睡枕系统研究[D].西安:西安电子科技大学,2014.
  [2] X Wang,H Li,Y Zhu.Design on automatic control system for smart car based on μC/OS-II[C]//Proc of the 2nd International Conference on Cloud Computing and Intelligence Systems, IEEE,Hangzhou,China,2012(3):1188-1191.
  [3] 路保虎.基于STM32F103ZET6的动力电池管理系统设计[D].南京:南京理工大学,2013.
  [4] 马建伟.基于STM32的空气动力学数据采集系统的设计[D].成都:西南交通大学,2010.
  [5] 胡弢,王蕾,侯琳琳,等.基于加速度传感器的睡眠体位监测方法的研究[J].中国医学物理学杂志,2012,29(4):3542-3545.
  [6] 任哲,房红征,曹靖.嵌入式实时操作系统μC/OS-II原理及应用[M].3版.北京:北京航空航天大学出版社,2014:228-240.
  [7] 郭泽.便携式光伏方阵测试仪的研发[D].上海:上海交通大学,2008.
  [8] 吴嵩,曹乐千.基于μC/OS-II的时间片调度法设计[J].单片机与嵌入式系统应用,2008(12):23-25.
其他文献
教学评价就是实现教学目的的一个重要手段,通过教学评价的结果,教师可以反思自己的一系列教学行为,扬长补短,优化教学,从而提高教学质量。通过阅读《中国数学教学研究30年》这本书
在新形势下,社会对人才需求不断转型,高校必须要顺应时代发展所需,高度重视实训教学才能够培养出社会需求型人才。但是从高校实训教学实况来看,许多高校还缺乏实训教学指标体系,影
减负政策执行不力导致超负荷学业负载对学生乃至社会产生连锁的负面影响,是我国基础教育的持久难题。教育利益相关方所持理性观的不同与推动政策执行的权力运行机制的阻滞是
师爱是一种积极的情感,具有促进学生成长的巨大心理功能;师爱是一种精神雨露,能滋润学生的心田,产生强大的教育力量;师爱是一种驱力,能驱使教师树立“以人为本”的创新教育理
康德和黑格尔分别以“自然意图”说和“理性狡计”说解释了人类历史发展的合规律性和合目的性及其与人的自由意志的关系,解释了历史的进步和人的恶劣情欲在历史发展中的地位
在日常教学中,教师如果能巧妙地运用表扬与批评的语言艺术、合理地使用奖励与惩罚的辩证手段,对能否管好学生,赢得学生的爱戴与信赖至关重要。但是,不论是何种教育,教师所采
期刊
本文通过玉米杂交育种的历史回顾 ,阐述了玉米杂交育种的演变过程 ,对农业所起到的重大作用 ,并讨论了关键技术 ,提出了近期的育种目标以及有关问题
对民用飞机监造的适航要求和开展情况进行说明,分析了监造工作的意义和工作内容。介绍了国内某新型民用客机监造工作的特点,结合工程实践经验对制造偏离客户影响的评估、客户
该文对火电站输煤系统可控启动装置(CST)进行了简要介绍,并且基于元宝山发电有限责任公司的厂外输煤系统的生产实践,着重对CST装置在长距离输煤系统中的典型缺陷及其原因进行解
江苏省太仓中等专业学校十多年来对"双元制"本土化进行了认真实践和系统总结反思,政府主导是关键、主体双元是核心、合同执行是前提、成本分担是基础是他们的成功实践经验,非