基于μC/OS—II的绞车控制信号装置人机交互系统设计

来源 :安徽理工大学学报·自然科学版 | 被引量 : 0次 | 上传用户:ufojay
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:为提高煤矿井下斜巷提升绞车的安全运行及信号自动控制,设计了一种基于嵌入式实时操作系统μC/OS-II的绞车控制信号装置串口屏人机交互系统。系统基于Cortex-M3内核微控制器STM32F101C8T6硬件平台,采用μC/OS-II实现绞车控制器与串口屏的数据通信,实现了绞车斜巷中各声光信号器历史数据记录、当前状态显示、打点、语音播报及绞车电机实时控制等。实验表明,采用μC/OS-II进行人机交互及绞车控制等多任务管理,增强了系统的稳定性,提高了系统控制的实时性。
  关键词:μC/OS-II;绞车控制;串口屏;人机交互
  中图分类号:TD534.6文献标志码:A文章编号:1672-1098(2014)04-0068-05
  目前国内煤矿井下斜巷提升普遍采用声光信号器和绞车控制信号装置手动发送打点和语音信号的方式来对绞车进行控制[1]。在该方式下,信号把钩工与绞车司机通过打点音和语音通话及时反馈斜巷状况,相对早期的打点器和电铃有很大的进步[2],但对于布置多台声光信号器的长距离运输斜巷,存在多台声光信号器同时发送控制信号的情况发生,绞车司机将无法准确区分具体打点和语音位置,并且绞车控制信号装置无打点、语音和绞车运行记录功能,不利于提高生产调度与管理。因此设计一种绞车控制信号装置,通过人机交互系统实时显示和记录井下斜巷工作面状况将成为提高煤矿产业信息化和安全性的一种发展趋势[3]。
  串口屏由于其简单的通讯接口和友好的多功能触摸界面的集成化设计,已广泛运用于人机界面中。在与串口屏通讯的过程中,以往的方式均采用前、后台系统,在处理多任务时,系统的实时性无法得到保证[4]。因此,在所研制的一种绞车控制信号装置上,对人机交互系统进行了详细设计。采用了基于Cortex-M3内核微控制器(STM32F101C8T6)硬件平台,结合嵌入式实时操作系统μC/OS-II对系统多机多任务进行管理,以提高系统控制的实时性,最终实现了对绞车控制装置网络中不同任务的实时显示和历史记录保存。
  1系统硬件设计
  11串口屏介绍
  串口屏由于内部嵌入32位处理器,集成化程度高,本身就是一个独立的系统,用户只需利用单片机串口发送相应的指令,就可以实现图片、文本和曲线的显示,给用户设计带来极大的方便。
  选用广州大彩公司的工业串口屏DC48270S043-01,串口屏内部结构如图1所示,其内部采用Cortex-M3+FPGA双核设计,功能强大,可以提供USB口工程下载、发送和接收串口指令缓存区数据、控制矩阵键盘和RTC实时时钟等外设。FPGA主要实现NandFlash读取和TFT-LCD控制显示。
  图1串口屏内部结构12系统电路设计
  为实现主机与串口屏间始终处于实时高效和准确无误的通讯状态,采用了如图2所示的系统构架。其中,主机与串口屏分别采用33 VDC和12 VDC供电。主机微控制器选用ARM公司生产的基于Cortex-M3内核的STM32F101C8T6,该微控制器性价比较高,工作频率最高达36 MHz,具有64kFlash,10kSRAM, 2个通用定时器,3个串口,57个IO口等,丰富的外设满足了系统设计要求。
  系统主时钟源选用8 MHz频率高速外部振荡器。实时时钟源选用32768 kHz频率低速外部振荡器,它们为系统提供了准确的时钟频率;利用JTAG接口在线调试及代码下载与调试节省了大量的调试时间;串口屏的DIN和DOUT口选用TTL串口通信方式直接与主控制器的USART1的PA9、PA10接口连接进行数据通讯,节省了RS232电平转TTL电平电路的设计。
  图2人机交互系统电路示意图2系统软件设计
  21系统功能介绍
  结合斜巷中绞车控制信号装置(主机)和多声光信号器(分机)相互传送打点、语音信号的方式,对人机交互系统的功能做了规划(见图3)。主机接收各台分机发送的打点、讲话等触发事件信号的同时,串口屏使用图标控件实时显示各分机的通讯状态,并利用串口屏内部128KFlash对分机事件进行记录。串口屏矩阵键盘和按钮等控件主要是上传更新通知至主机,控制绞车运行及主机打点、讲话等事件地触发、显示与记录。
  图3系统功能图22串口屏指令集
  DC48270S043-01串口屏的指令集包括组态控件指令集和基本指令集,指令帧如表1所示,由帧头(EE)、指令、指令参数、帧尾(FF FC FF FF)组成,其中指令数值为十六进制。若指令参数大于一个字节,采用高字节在前,低字节在后的方式发送。组态控件指令包括:按钮控件ID值上传、更新文本控件、动画控件显示和图标控件等;基本指令包括:矩阵键盘控制、Flash读写和读取RTC时钟等。
  表1串口屏指令帧
  指令集指令指令参数 矩阵键盘12/13K1 Flash读写88/87Adr4 L2/Adr4 Dn 读RTC82\ 文本B1 11Sid2 Cid2 11 Sn 图标B1 26Sid2 Cid2 00/01 Id1 动画B1 20Sid2 Cid2 23指令帧的发送与接收
  串口屏指令帧的接收与发送采用主微控制器串口1外设中断方式,指令帧的接收是先将指令缓入缓存区rdata[QUEUE-MAX-SIZE],然后通过判断帧头、帧尾定时循环地从指令缓入缓存区中提取串口屏发送至主机的每条指令帧,相关代码如下:
  u8 data=USART1->DR;
  /*串口1接受一个字节数据*/
  queue-push(data);/*缓入rdata缓存区*/
  if(queue-find-cmd(buf,len)> 0);/*指令帧帧头和帧尾判断,为真时进行指令类型判断,buf:缓冲区指针,len:指令帧长度*/   由于串口屏每条指令帧包含字节数量较大,当各分机与主机间通讯频繁时,若采用主微控制器串口直接发送每个字节,则占用了系统大量时间,因此系统的实时性无法得到保证。本设计中主机根据各分机发送的通讯信号,先将待发送的指令帧先依次写入发送环形缓冲区cmd-buffer[CMD-MAX-BUFFER],系统定时循环检测缓冲区不空,并在串口发送中断服务函数中采用先入先出的方式,逐个发送缓冲区内的每个指令字节至串口屏,相关代码如下:
  sendToBuf(p,num);
  /*写入环形缓冲区,p为指令帧指针,num为指令帧字节数*/
  readFromBuf(void);
  /*依次从环形缓冲区读取一个字节数据,发送至串口屏*/
  24系统程序设计
  采用实时操作系统μC/OS-II作为STM32F101C8T6的片上操作系统(见图4),相对前、后台系统,系统实时性和多任务管理能力得到了很大的提高。
  图4程序流程图
  系统首先对硬件和操作系统进行初始化,包括初始化主微控制器时钟和systick定时器,初始化串口,初始化操作系统初始变量等。初始化函数如下:
  Stm32-Clock-Init(9);//时钟初始化
  SysTick-Init(72);//systick定时器初始化
  uart-init(72,9600);//串口初始化
  OSInit (void);//操作系统初始化变量初始化
  其次创建系统任务和事件,并挂起部分任务,系统按优先级先后顺序依次对串口屏通讯、矩阵键盘、按钮控件处理、读RTC时钟、Flash读写和分机信号处理等任务进行调度。任务之间的通信事件采用信号量、邮箱和消息队列机制,部分函数如下:
  OSTaskCreate(lcd-task,(void*)0,(OS-STK*)&LCD-TASK-STK[LCD-STK-SIZE-1],LCD-TASK-PRIO);
  /*创建串口屏指令帧接收与发送任务*/
  OSTaskSuspend(KEY-TASK-PRIO);
  /*挂起矩阵键盘任务*/
  F-Semp=OSSemCreate(1);
  /*创建信号量*/
  WF-Box=OSMboxCreate((void *)0);
  /*创建写flash邮箱*/
  S-Q=OSQCreate(&MsgGrp[0],N-MESSAGES);
  /*创建分机事件信号消息队列*/
  …
  最后系统对不同优先级任务进行调度,各任务按优先级顺序内容如下:
  Lcd-task:20ms循环执行,接收到串口屏指令帧后,使用findcmd函数解读后恢复key-task、button-task、RF-task任务;
  Rtc-task:100ms循环执行,对串口屏内部时钟数据的进行读取后,发送至T-Box邮箱,用于记录主分机的通讯时间;
  key-task:Lcd-task恢复后执行,判断主机打点、讲话信号,绞车开停,触发相应事件动作后向各分机发送事件信号,并发送对应的图标控件指令帧至发送环形缓冲区,执行完成后挂起该任务;
  button-task:Lcd-task恢复后执行,判断串口屏记录查询按钮控件ID值为真后请求RF-Box邮箱和信号量F-Semp,获得权限后发送更新文本控件指令帧发送环形缓冲区,执行完成后挂起该任务;
  RF-task:Lcd-task恢复后执行,读取串口屏内部Flash数据并发送至RF-Box邮箱成功后,释放信号量F-Semp,执行完成后挂起该任务;
  Ext-task: 100ms循环执行,从消息队列S-Q中提取分机信号后,发送至WF-Box邮箱并恢复WF-task任务;
  WF-task:Ext-task恢复后执行,同时请求WF-Box邮箱和T-Box邮箱后,发送写记录到Flash的指令帧至发送环形缓冲区,执行完成后挂起该任务;
  其中,串口1发送接收完成中断服务函数USART1-IRQHandler可随时打断上述任务的执行,按字节接收串口屏指令帧并发送至接收指令缓存区,使用readFromBuf函数将发送环形缓冲区内数据发送至串口显示或记录。
  3人机交互界面
  绞车控制信号装置人机交互界面主要分为主分机与绞车运行界面(见图5)和历史记录查询界面(见图6)。
  图5主分机与绞车运行界面
  图6历史记录查询界面
  交互界面中用到的按钮、图标和文本等控件的数量近30个,不同的控件类型,需发送的指令帧格式不同;不同分机号,需发送的指令帧内容不同,因此系统通过串口与显示屏交互时,易发生通信堵塞,处理事件繁索等问题。由于μC/OS-II操作系统在任务调度和时间管理方面的优异性能,外加串口屏内部设有4 kB的指令缓冲区,有效的避免了此类状况的发生,用户在使用该人机交互界面时,实时状态显示及时,触摸响应灵敏,不会产生死机现象,基本上满足了煤矿井下设备的安全使用要求。
  4结论
  本系统在采用精简内核的嵌入式实时操作系统μC/OS-II对系统多任务进行调度,在减少系统代码量和提高系统实时性的同时,增强了系统的模块化设计,系统调试通过,现已稳定运行于现场。
  所设计的μC/OS-II的串口屏人机交互系统通用性高,还可广泛应用于其他中小型矿用电器设备控制系统中,比如矿用蓄电池监控设备、矿用充电机及矿用通风监控系统等。
  参考文献:
  [1]常宏奎,刘战军.斜巷提升语音声光组合信号系统的开发与应用[J].中州煤炭,2010(2):16-17.
  [2]周广兴,姜永春,张广兰,等.单片机在矿井提升机打点器中的应用[J].煤矿机械,2004(7):87-88.
  [3]倪树标,张冠文,刘日威,等.浅谈串口屏在仪器人机界面设计中的应用[J]. 广东科技,2012(21):176-177.
  [4]任哲.嵌入式实时操作系统μC/OS-II原理及应用[M].北京:北京航空航天大学出版社,2009:116-118.
  [5]公茂法,刘建平,徐新源,等.基于串口屏的井下多回路电网监测仪的设计[J].煤矿机械,2013,34(1):263-264.
  (责任编辑:何学华,吴晓红)
其他文献
初中数学教学质量取决于能否高效地利用课堂,课堂上愉悦、自在的氛围对学生的学习兴趣起着重要的作用.随着新课改在我国各个院校的实行,初中数学教学也响应国家教育部门的号
中学化学内容丰富,包括基本概念和基本理论,元素及其化合物知识,有机化学,化学实验和化学计算等基本知识单元.化学学科内综合的途径很多,总的来说,是由这些基本知识单元的相
随着基础教育新课程改革的不断深入,新课程理念得到广泛的渗透,义务教育阶段初中生物教学模式也进行了创新,一定程度上改变了传统教学模式的不合理之处.因此,为了适应新课改
“复习”这个名词在教学上由来已久,它是一个巩固知识的代名词,对于学生而言,复习是获取更多知识以及消化知识最好的学习途径,高效的复习可以帮助学生提高对知识的运用能力,
随着社会经济的飞速发展,各行业职工价值观念日益多元化,利益分配也呈现出多样化的趋势,各类矛盾越来越复杂,这就导致思想政治工作面临着新的挑战,因此党建政工工作必须要进一步发
世人说生活是由酸甜苦辣构成的,我只能说农村英语教学也是由酸甜苦辣构成的.为什么这样说呢?其实是因为当前的社会经济形势构成的,说学生不乖也不是,只要是社会现在一直谣传
在初中阶段的学生普遍具有好奇心强、活泼好动的心理特点,因此要激发学生学习物理的浓厚兴趣,提高物理课堂教学效率,教师可以把游戏引入课堂,把课堂教学生活化,为学生营造更
在企业生产中很容易发生安全隐患,一旦隐患发生,不仅会给国家与企业带来直接经济损失,还会威胁到工作人员生命安全,阻碍国家经济发展,所以,有必要研究企业安全隐患排查方法及风险分
机器已经深入我们的生活,代替了很多工作,未来社会你的“机商”将影响你的人生。为适应机器解放人类双手后的人才需求,本文提出了高“机商”人才培养的必要性和培养方向。
教育是一种培养人的有目的的社会活动,教育能促进知识发展,推动社会进步。美术教育对幼儿来说是不可忽视的,是促进幼儿身心全面发展为根本目的的幼儿素质教育的重要组成部分,它在