基于μC/OS-II的牙椅控制系统
扫描二维码
随时随地手机看文章
1 引言
牙椅控制器是一体化口腔诊疗系统的核心,其设计水平反映了整个系统的自动化程度,也是判定牙椅档次的一个重要依据。
本文研究开发了基于ARM嵌入式技术的牙椅控制系统。在控制系统中应用嵌入式操作系统,利用多任务管理、任务间同步与通信等功能,可更进一步提高系统可靠性和实时性,增强智能控制和管理水平。
2 整体功能概述
系统整体框图如图1 所示。牙椅控制系统设计必须满足医疗需求并方便使用操作。高档牙椅在实际工作中除了要满足上下仰卧四个基本方向的运动,同时还必须能够完成茶杯给水、冲洗痰盂、无影灯调控、位置数据采集、X 光透射、及与上位机通信功能,还要保证运动的平稳可靠和数据传输的实时性。牙椅控制系统CPU 响应外接键盘输入,执行相应的命令,驱动外部的液压传动机构实现牙椅的运动和其他外部设备的工作。
由于牙椅控制系统的控制点较多,且集中于器械盘面板和牙椅底座两个地方,因此本文将牙椅控制系统主要分为三大模块:面板控制模块、底座控制模块、供电模块。
2.1 系统的硬件设计
基于芯片性能、功耗、系统需求等多方面的要求,本系统采用S3C44B0X芯片与ATmega16 芯片构成双CPU 模块进行协同控制。S3C44B0X 是Samsung 公司生产的16/32 位RISC 处理器,其总线结构采用三星ARM CPU 嵌入式微处理器总线结构。S3C44B0X提供了全面的、通用的片上外设,包括1 个LCD 控制器、5 个PWM 通道的定时器和1 通道内部定时器、71 个通用I/O 口和8 通道外部中断源、8 通道10 位的ADC、SPI 同步数据通信串行ARM 嵌入式牙椅控制系统接口等,具有良好的可扩展性,作为牙椅系统的主处理器。
ATmega16 是增强的AVR RISC 结构的低功耗8位CMOS 微控制器,内部资源丰富,具有32 路可编程I/O 口、512 字节的EEPROM、四通道的PWM 输出、8 路10 位ADC 转换通道和3 个内部定时器/计数器和SPI 同步数据通信串行口,作为牙椅系统的底座模块的核心和控制芯片,控制牙椅的移动和进行牙椅的位置数据采集。
牙椅控制系统的原理结构图如图2 所示。底座控制板CPU 外接一个3×2 脚踏键盘,CPU 接收键盘输入执行相应的命令,并控制底座模块上的各液压传动控制继电器的通断,控制牙椅向上下仰卧四个方向、漱口位置和就诊位置运动。考虑到使用者的安全和牙椅设备的稳定可靠问题,在运动过程中CPU 必须对四个方向的限位开关和底座障碍物保护开关的反馈信息进行实时监控并做出相应的保护动作。
为达到方便使用的目的,面板控制模块同样也要能够控制牙椅的上述运动并实时记忆牙椅的位置,因此系统要实现底座板和面板的实时通信。结合CPU芯片的特点和实际需求两者采用串行外设接口(SPI)进行高速数据同步传输。面板CPU 可接收外部扩展键盘的输入来执行响应的命令,并预留了扩展接口。
由于外部设备对于CPU 来说都属于强电控制部分,为了使两者之间既保持控制信号联系,又要避免电气干扰,即实行弱电和强电隔离,面板控制模块增加了光电隔离电路。无影灯的亮度数字调节设计采用了PWM 方式。S3C44B0X 有5 个定时器可以提供PWM输出。由于系统使用的无影灯额定功率为50W,额定电压为12V,属于大电流工作,为了保证无影灯的调节精度,在控制电路上采用场效应管IRF540 与光电隔离电路配合控制。
2.2 系统的软件设计
考虑到系统将来可扩展图像采集功能和复杂的人机界面等因素,在S3C44B0X 上移植了μC/OS-II操作系统。μC/OS-II 是目前流行的免费公开源代码的实时操作系统。它不仅具有结构小巧、可固化、可裁剪、多任务和可剥夺型的实时内核等特点,其实时性、稳定性和可靠性也得到了广泛认可。μC/OS-II 的最小内核可编译至1.5KB,可广泛应用于从8 位到64 位单片机的各种不同类型、不同规模的嵌入式系统。在内存使用方面,μC/OS-II 是可裁剪的实时内核,在应用中需要调度的任务越多,需要的RAM 空间越大。
以运行20 个任务进行估算,μC/OS-II 内核占用不到2KB 的RAM 空间,可以使用20 个信号量、邮箱等来完成任务间的同步与通信。
系统以S3C44B0X 的T0 定时器作为操作系统的时钟源,中断频率为10ms。系统每隔10ms 就调用一下键盘查询程序以实时响应键盘事件,串口和CPU之间的SPI 通信采用中断方式接收和发送。任何时候只要没有关中断,中断的执行就高于任何任务以保证通信的实时性。根据控制系统的工作要求,任务可划分为键盘任务,茶杯给水任务,茶杯给水定时设置任务,无影灯任务,LED 指示灯任务,报警信息任务和冲洗痰盂任务。
因为任务间、任务和中断间的通信都是基于信号量机制集中管理,所以要建立起信号量的保护机制。
在起始任务StartTask 中,首先建立一系列的信号量和邮箱:
然后,用OSTaskCreate( )函数建立7 个任务。最后,在起始任务中将它本身删除掉。
(1) 键盘任务:调用OSSemPend(Sem_Keyboard,0,&err)来获得信号量。获得信号量后,任务将调用邮箱发送消息任务OSMboxPost (OS_EVENT*pevent,void*msg)唤醒相应的其它任务。
(2) 茶杯给水任务:向茶杯中加水。该任务通过OSMboxPost(Mbox_Cup,Msg_Cup)被唤醒。
(3) 茶杯给水定时设置任务:设置茶杯给水定时时间。该任务通过OSMboxPost(Mbox_CupSetting,Msg_CupSetting)被唤醒。
(4) 报警信息任务:牙椅运动到达障碍位置报警等的报警信息,并进行相应的处理。该任务调用OSSemPend(Sem_AlarmTask,0,&err)获得信号量。
(5) 冲洗痰盂任务:冲洗痰盂。该任务通过OSMboxPost (Mbox_Ty,Msg_Ty 被唤醒。
(6) LED 灯指示任务:通过动态扫描方式点亮相应的键盘指示灯来指示当前的系统工作状态。该任务通过OSMboxPost (Mbox_LED,Msg_LED)被唤醒。
(7) 无影灯任务:开关及连续调节无影灯亮度。
该任务通过OSMboxPost(Mbox_Move,Msg_Move)被唤醒。
在系统中,设置任务1 的优先级最高,依次为任务2、任务3 至任务6,程序流程如图3所示。
在上述任务中,CPU 主要是接受键盘的输入以唤醒其它相应任务,另外还有相应的记录位置的任务和与上位机通信的任务,这里不再做详细介绍。
3 控制系统调试结果
长时间口腔诊疗应用调试运行,本牙椅控制系统能够及时响应输入并按要求运动,返回的记忆位置误差控制在1mm 内,茶杯水位误差不超过2mm,运行结果表明,控制系统与上位机的通信及两CPU 之间通信实时性、可靠性均满足设计要求,且整个系统运行平稳可靠,便于调试和维护,提高了牙椅自动化水平和档次。
4 结语
本文采用嵌入式处理器和实时多任务操作系统增强了系统的功能,提高了系统的可靠性、实时性并使系统具有良好的可扩展性,便于后续扩展图像采集和人机界面功能,为进一步开发高端产品奠定基础。