郭双茂 冯 浩 周 参
(公安部第一研究所,北京 102200)
采用微控制器操作系统的便携式仪器设计
郭双茂 冯 浩 周 参
(公安部第一研究所,北京 102200)
在分析研究了便携式仪器装置控制系统的特点及要求后,采用基于ARM最新Codex-M3内核的STM32F103作为主控芯片,移植μC/OS-II嵌入式操作系统作为整体设计方案,重点分析了如何通过采用实时操作系统编程的方法实现仪器所有系统功能。该方案应用于某种便携式射线源,采用分任务、分模块设计思路,实现关键数据采集、存储,工作参数可调,驱动相位自动调整,按键,LCD显示,RS- 485通信等系统功能。应用实验结果证明,在便携式仪器设计中采用微控制器操作系统是一种很好的选择。
便携式仪器 微控制器(MCU) μC/OS-II STM32 嵌入式操作系统 LCD
随着我国经济的发展、人口的增多,突发事件日益增多。由于突发事件具有突变性、不可预测性等特点,常规仪器又受到应用场所、应用环境的限制,已经不能满足当时的形势需要。便携式仪器仪表由于其集成度高、功耗低、功能全面、操作简单、机动性强、应用迅速等特点得到了广泛推荐和认可[1]。
便携式仪器的诸多优点也给研制工作带来了困难。在按要求完成主要功能的同时必须具有体积小、功耗低等特点[2];在不损失性能的前提下,对系统的集成性提出要求;同时考虑到便携式仪器的使用环境多为工业现场和野外等情况,对它的电磁兼容性、稳定性、可靠性也有更高要求。
对于体积和功耗都有极高要求的便携式仪器,嵌入式操作系统提供了很多附加功能,减小了系统的有效空间,缩短了开发周期,节约了开发成本,使便携式仪器朝着高速度、高精度、高集成度、低功耗、高抗损坏性、便携性、多外围接口的方向迅速发展。
本文所设计的便携式射线源具有控制系统任务多、实时性强、安全可靠性高、功能多等特点,采用基于ARM最新Codex-M3内核的STM32F103作为主控芯片,移植μC/OS-II嵌入式操作系统作为整体设计方案。重点分析如何通过基于实时操作系统编程的方法实现整个控制系统所有的功能。
整个系统由两大部分组成:硬件层、软件层,其中软件层包括实时操作系统和应用软件程序编写。硬件层电路主要包括上电复位电路、存储电路、LCD驱动电路、RS-485通信电路、按键输入电路、声光预警电路、D/A输出电路、PWM驱动输出电路等。操作系统层是整个系统上层控制和下层硬件的连接纽带,系统中各功能主要有:存取外部存储器中已保存的各项数据、驱动LCD显示、数据采集、数据处理、驱动信号输出、声光预警、设定值保护、人机交互操作、与上位机通信等。这些功能按要求被分成几组任务,操作系统负责这些任务调度。
硬件原理框图如图1所示,其中核心控制芯片采用STM32F103VC。
图1 硬件原理框图
2.1 主控芯片STM32
STM32系列微处理器是意法半导体推出的高性能32位以Cortex-M3 为内核的面向工业控制的处理器[3]。Cortex-M3 内核是 ARM 公司推出的最新的基于 ARMv7 构架的面向微控制领域的处理器内核。本设计中共用了14个中断。
STM32F103VC工作频率为72 MHz,内置高速存储器。丰富的I/O端口和外设,包括3个12位的ADC,提供15个采样通道和多种采样模式;拥有12通道DMA控制器, 4个通用16位定时器和2个PWM定时器;具有多种标准和先进的通信接口;采用LQFPl00封装,提供80个GPIO,除了模拟输入I/O,其他管脚可以承受5 V信号输入。功耗低,在72 MHz时消耗36 mA(所有外设处于工作状态),待机时下降到2 μA[5]。另外,STM32F103 微处理器内部有一个 SysTick 定时器,应用此定时器可在需要移植的操作系统中实现时钟中断,方便μC/OS-II的移植。本便携式仪器控制系统共用了6路A/D采样通道、1个SPI通信接口、2个定时器、2个PWM定时器、1个USART通信接口,加上其他控制信号量共用到了60个I/O口。选择此款处理器不仅能完全满足本系统要求,也为仪器的扩展升级打下了基础
2.2 各功能模块设计
键盘模块采用薄膜按键构成独立键盘,电路上每个按键直接连接到STM32的I/O引脚上,程序上采用中断的方式读入键值;LCD选用8位并行数据传输接口的蓝白单色屏[6];为便于便携式X射线源与其他安全检查系统部件组合扩展,通信模块选用芯片MAX3488构成全双工的RS- 485通信接口。由于高压干扰因素,仪器工作时直接从高压电路取样所得到的高压、束流信号并不是稳定直流信号,而是随着大功率驱动输出波形变化的信号。为了能得到更强的有效直流信号,加入了一阶低通滤波电路并改变取样电阻比例,使得取样信号值在规定范围内尽量大;并在软件上根据信号波形特点选取合适的采样周期,采用中位值平均滤波算法最终得到稳定真实的高压、束流采样数字值。
存储芯片选用单片机监控芯片X25043。声光预警、射线开关信号通过达林顿晶体管阵列驱动芯片ULN2003输出;D/A输出模块选用带反馈电压输出的4路12位D/A转换器DAC8412。系统的温度传感器要直接放在源内,距高压发生电路近,要求温度传感器的抗干扰能力很强,通过分析、实验后最终采用型号为MF52B103G3950的NTC热敏电阻[7]。
高压功率驱动电路采用脉宽调制和推挽驱动相结合的方式。射线源高压驱动频率必须调整到最佳值以确保驱动电路效率最高。高压驱动电路的频率调整不佳或相位漂移是造成射线源信号不稳或故障的原因之一。本文设计的X射线源由于工作参数需要在较宽范围内变化,以适应不同的应用场合,因此其工作参数不固定、功率输出变化范围宽,存在频率调整问题。本设计通过大量实验得到射线源在不同高压、束流下驱动谐振频率值,然后创建一个二维数据表并利用STM32内部定时器的PWM波功能最终实现了在不同工作参数状态下谐振频率的自动调整输出。
3.1 μC/OS-II实时操作系统
μC/OS-II实时操作系统的内核结构如图2所示。
图2 μCOS-II内核结构
μC/OS-II是由Labrosse编写的一个源码公开、可移植、可固化、可裁剪、占先式实时多任务操作系统[8]。μC/OS-II操作系统将各种功能划分为一个个任务,每个任务相对独立,可以定义多达64个任务,足够一般系统使用。任务之间以及任务与中断服务程序之间可以调用信号量、消息邮箱、消息队列、延时等系统服务来实现彼此通信和同步。这一切由操作系统统一调度,分配资源,协调各个任务的运行。某一个任务出现问题也不会导致整个系统瘫痪,从而提高了系统的可靠性。同时,实时操作系统的移植使整个系统更加容易更新以及扩展新的功能,提高了系统的开放性和开发效率。
3.2 应用软件程序
为了使用户方便地访问STM32的各标准外设,并使用它们的所有特性,ST公司提供了免费的软件包-固件库。通过使用固件库,无需深入掌握细节,就可以应用每一个外设,大大减少用户的程序编写时间,进一步降低开发成本。本系统在底层硬件驱动程序编写中使用了STM32F10xxx标准外设库(StdPeriph—Lib)V3.0.0[10]。程序首先对系统时钟、中断和所用到的标准外设等进行配置,然后对X25043、LCD、DAC-8412等功能模块进行初始化,板级驱动配置完成之后进行μC/OS-II 的初始化。
程序主要部分流程图如图3所示。
图3 程序主要部分流程图
本控制系统共划分了4个任务:通信任务,优先级为4;射线工作控制任务,优先级为5;液晶屏显示任务,优先级为6;循环检查任务,优先级为7。软件结构框图如图4所示。
图4 软件结构框图
本文采用外部中断的方式来触发等待状态的各项任务,通过邮箱的机制完成任务间通信。各任务具体描述如下。
3.2.1 通信任务
该任务实现了安全检查系统中上位机对X射线源的完全控制。当控制系统接收到上位机发送的指令后,系统进入串口中断,在串口中断服务子程序中向通信任务的邮箱发送消息,使其进入就绪状态然后运行。上位机可以向便携式X射线源控制系统发送各种指令,从而实现远程操作控制。系统所采用的RS-485通信方式与现有的安检系统各部件间的通信方式一致,易于产品集成。
3.2.2 射线工作控制任务
该任务由按键或定时器TIM4中断触发,任务首先根据高压、束流值查找二维数据表送出合适的驱动频率,并将用户输入的高压、束流值进行一定转换。当“开始键”按下,TIM4启动计时,束流值通过DAC8412送出,同时蜂鸣器、指示灯以频率1鸣叫闪烁进行X射线发射前预警。预警时间到后,X射线使能控制信号、高压信号送出开始发射X射线,此时蜂鸣器、指示灯以频率2鸣叫闪烁,警示正在发射X射线。当X射线发射一段时间到达所设定的“曝光时间”时,TIM4再次触发射线工作控制任务,该任务通过对标志位的判定来关闭X射线的发射。
3.2.3 LCD显示任务
该任务主要由按键中断触发。系统会根据键值和菜单号的不同在LCD上显示不同的内容,从而使操作者能更加直观地对射线源的一些工作参数进行设置,并查看工作状态的。该任务同时实现了LCD背景灯开关控制及唤醒功能。
3.2.4 循环检查任务
该任务由定时器TIM3每500 ms调用一次。所执行任务包括:射线发射时、射线停止时采样系统温度、高压、束流、电池电压等数据。当采样值与设定值相比出现异常时,立即采取相应动作如不同频率的声光报警、LCD文字提示等。当便携式X射线源出现严重错误时,控制系统会禁止用户再次发射X射线;对“看门狗”进行“喂狗”,以防止程序“跑非”或者死机;通过判定标志位对工作参数、射线源总工作时间等关键数据进行存储。
嵌入式系统的应用,改变了以往仪器系统的设计思路,它使仪器系统的结构更加紧凑,模块化更加明显,有利于硬件的移植和软件的再升级。本文以具有ARM Cortex-M3内核的32位微处理器STM32F103VC为控制核心设计系统外围硬件电路,移植实时操作系统μC/OS-II进行系统编程。系统充分利用μC/OS-II和STM32系列微处理器结合的优势,不仅实现了所需的各项功能,并且运行稳定、安全、可靠。
目前,便携式X射线源作为安检系统中的一个重要模块已经开始使用。使用中发现,在野外等特殊工作环境中,整个安检系统各模块之间如单靠有线通信方式连接不便于各模块的移动、连接等,如果在各模块上增加无线通信方式如WiFi,不仅可省去连接通信信的麻烦,也会增加用户现场操作的安全性。在后期产品改进中,将充分发挥本系统易升级、易扩展等优点,加入无线通信模块丰富其功能。
[1] 庄松林,肖中汉.我国仪器仪表与测量控制科技的发展[J].自
动化仪表,2009,30(5):2-6.
[2] 王永胜.智能仪表技术及工业自动化应用发展探讨[J].自动化博览,2009(6):44-47.
[3] 彭刚,秦志强.基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践[M].北京:电子工业出版社,2011:54-69.
[4] 宋岩.ARM Cortex-M3权威指南[M].北京:北京航空航天大学出版社,2009:88-120.
[5] 刘军.例说STM32[M].北京:北京航空航天大学出版社,2011:23-76.
[6] 郭强.液晶显示模块应用与调试[M].北京:电子工业出版社,2010.
[7] 范寒柏,谢汉华.基于NTC热敏电阻的三种高精度测温系统研究[J].传感器技术学报,2010,23(11):1576-1579.
[8] 任哲.嵌入式实时操作系统μC/OS-II原理及应用[M].北京:北京航空航天大学出版社,2009.
[9] Jean J.嵌入式实时操作系统μC/OS-II[M].2版.邵贝贝,译.北京:航空航天大学出版社,2003:34-316.
[10]南亦民.基于STM32标准外设库STM32F103xxx外围器件编程[J].长沙航空职业技术学院学报,2010(4):41-45.
Designing the Portable Instrument by using MCU and Operating System
Having been analyzing and researching the features and requirements of portable instruments,the design scheme based on latest Codex-M3 of ARM as the core and transplanted μC/OS-II embedded operating system is proposed.The implementation of all the functions by adopting the method of system programming based on RTOS is analyzed emphatically.The scheme is applied in certain portable X-ray source; the system functions including data collection and storage,adjustable working parameters,driving phase automatic adjustment,keypad,LCD display,RS- 485 communication,etc.,are implemented through the design concept of multitasking and modularization.The experimental results show that using MCU and μC/OS-II operating system is a better choice in designing portable instruments.
Portable instrument Micro chip unit(MCU) μC/OS-II STM32 Embedded operating system LCD
郭双茂(1982-),男,2010年毕业于北京信息科技大学测试计量技术及仪器专业,获硕士学位,工程师;主要从事硬件设计方面的工作。
TP216;TH7
A
10.16086/j.cnki.issn1000-0380.201601023
修改稿收到日期:2014-12-17。