基于LPC2131的电子影像诊断仪嵌入式控制系统设计
2010-04-11彭雪峰宋耀华
徐 健,彭雪峰,宋耀华
XU Jian, PENG Xue-feng, SONG Yao-hua
(九江职业技术学院,九江 332007)
基于LPC2131的电子影像诊断仪嵌入式控制系统设计
The embedded control system design for electrical image diagnostic instrument
徐 健,彭雪峰,宋耀华
XU Jian, PENG Xue-feng, SONG Yao-hua
(九江职业技术学院,九江 332007)
电子影像诊断仪是一种常见的医疗电子设备。本文详细阐述了整个控制系统的硬件和软件设计,采用LPC2131 ARM处理器作为核心控制器,通过产生6路PWM控制斩波电路导通时间,经过微焦点X光发生器模块来产生所需影像。针对医疗设备实时性要求,采用嵌入式实时操作系统(RTOS)作为软件开发平台,测试结果表明该系统结构简单、性能可靠,具有很高的实用价值。
ARM;电子影像诊断仪;斩波电路;PWM;RTOS
0 引言
随着当今医疗现代化进程的快速发展,各种医疗电子仪器与设备朝着小型化,高精密化方向发展,人机界面更加友好,操作更加方便。传统的采用单片机为控制器的医疗电子产品在性能,处理速度,硬件设计上都不能适应产品更新换代的发展。ARM处理器是目前公认的业界领先的32位嵌入式RISC微处理器,以其卓越的性能、超低的功耗、丰富的外设接口、较高的性价比,代表了当今主流电子应用技术的发展方向。实时操作系统uC/OS-II以其小巧、源代码公开、注解详细、实时性强、可移植性好、多任务、基于优先级的可剥夺型调度的特点,已经广泛应用在很多对实时性要求比较高的产品中。本文以我们最近研制成功的电子影像诊断仪为案例,讲述了其中各模块电路的功能,以LPC2131为控制器,构建了整个控制电路,分析了硬件电路设计,并详细讲述了uC/OS-II在LPC2131上的移植,各任务模块的划分和应用程序的编写。
图1 电子影像仪硬件电路图
1 电路整体构成
电子影像诊断仪电路主要由四个模块组成,包括:主电源模块、辅助电源模块、微焦点X光发生器模块、微处理器控制及显示模块,电路整体结构框图如图1所示。主电源模块由EMI滤波电路、整流滤波电路、恒压斩波电路、恒流斩波电路、全桥斩波电路等电路组成。辅助电源模块主要是给各电路提供工作电源,分别输出5V、12V的直流稳压电源供各模块使用。微焦点X光发生器模块由主变压器、倍压整流电路、射线管和保护电路组成。
2 控制电路模块
主控制电路模块是通过控制斩波电路工作时间的长短来控制X光发生器曝光的时间。本系统中恒流斩波电路、恒压斩波电路和全桥斩波电路需要控制导通时间,而传统的单片机没有6路PWM波输出,如果使用软件模拟PWM的产生,很难保证实时性的要求。为了能同时使用6路PWM控制斩波电路的导通时间,我们选择ARM处理器作为主控制器。为了系统扩展和预留功能,我们选择NXP公司的LPC2131 ARM微处理器作为主芯片。LPC2131的内核是ARM7TDMI-S核,三级流水线,32位微处理器,采用冯·诺依曼结构(数据和指令混合编址)。较小的封装(LQFP64)和极低的功耗使LPC2131可理想的应用于小型系统中,如通信网关、协议转换器、声音辨别、低端成像、工业控制和医疗系统。8KB片内SRAM;32KB片内Flash,高达60MHz的操作频率;8路10位A/D转换器; 2个32位定时器(带4路捕获和4路比较通道),PWM单元(6路输出)和看门狗; 2个UART,2个高速IIC接口(400Kb/s),SPI,SSP; 向量中断控制器,可配置优先级和向量地址;47个(P0.0-P0.23,P0.24-P0.31,P1.16-P1.31)可承受5V电压的通用I/O口;9个边沿或者电平触发的外部中断引脚;片内晶体振荡电路支持频率1-30MHz; 2个低功耗模式:空闲和掉电;单电源供电,含有上电复位(POR)和掉电检测(BOD)电路,CPU操作电压3.0-3.6V。
整个电路由显示模块、矩阵键盘模块、斩波电路控制模块、遥控接收模块组成,控制系统框图如图2所示:
图2 主控制电路原理框图
2.1 LCD液晶显示模块
点阵式液晶模块一般采用并行接口进行数据传输,设计中采用中文图形点阵液晶显示模块SMG240128A。SMG240128A点阵图形液晶模块的点像素为240×128点,黑色字/白色底,STN液晶屏,内嵌控制器为东芝公司的T6963C,外部显示存储器为32KB。液晶模块采用8位总线接口与微控制器连接,内部集成了负压DC-DC电路(LCD驱动电压),使用时只需提供单5V电源即可。液晶模块上装有LED背光,使用5V电源供电,显示字符或图形时LED背光可点亮或熄灭。该模块没有地址总线,显示地址和显示数据均通过DB0~DB7接口实现。LPC2131与SMG240128A接口电路图如图3所示。
图3 液晶接口模块
2.2 斩波电路控制模块
图4 斩波驱动电路
由于本系统需要6路斩波驱动电路,因此可以利用LPC2131的PWM功能来控制斩波电路的导通时间。因为LPC2131 IO口电平为3.3V,因此需要电压提升电路,本设计采用三极管提升电压,使输出端OUT1能驱动斩波电路。斩波驱动电路共需要6路,本文用LPC2131 的PWM1驱动恒压斩波电路,PWM2驱动恒流斩波电路,PWM3~PWM6驱动全桥斩波电路。本文只画出一路PWM驱动电路,其余5路电路完全相同,如图4所示。
2.3 遥控接收模块
遥控接收端采用价格便宜、性能可靠的一体化红外接收头HS0038B,它接收红外型号的频率为38KHz,同时对信号进行放大、检波、整形,得到TTL电平的编码信号,再送给LPC2131,解码并执行,控制相关对象。接收端电路如图5所示。
图5 遥控接收端电路图
2.4 矩阵键盘模块
矩阵键盘主要用来设定X光曝光时间,传统的按键输入软件接口程序通常非常简单,在程序中一旦检测到按键输入口为低电平时,便调用软件延时程序延时10ms。然后再次检测按键输入口,如果还是低电平则表示按键按下,转入执行按键处理程序。如果第二次检测按键输入口为高电平,则放弃本次按键的检测,重新开始一次按键检测过程。传统的按键检测处理方法,不仅由于采用了软件延时而使得MCU的效率降低,而且也不容易同系统中其他功能模块协调工作,系统的实时性也差。本文采用有限状态机的程序设计思想,由于按键的检测过程需要进行消抖处理,因此取状态机的时间序列的周期约为10ms。按键状态机的状态转换图如图6所示:状态0为按键的初始状态,当按键输入为“1”时,表示按键处于放开,输出“0”(1/0),下一状态仍为状态0;当按键输入为“0”时,表示按键闭合,但输出还是“0”(0/0)(没有经过消抖,不能确认按键真正按下),下一状态进入状态1。状态1为按键闭合确认状态,它表示在10ms前按键为闭合的,因此当再次检测到按键输入为“0”时,可以确认按键被按下;输出“1”表示确认按键闭合(0/1),下一状态进入状态2。而当再次检测到按键的输入为“1”时,表示按键可能处在抖动干扰,输出为“0”(1/0),下一状态返回到状态0。这样,利用状态1,实现了按键的消抖处理。状态2为等待按键释放状态,因为只有等按键释放后,一次完整的按键操作过程才算完成。
图6 按键状态机的状态转换图
3 系统软件设计
系统功能的实现要靠软硬件来完成,硬件是躯体,软件是灵魂,二者相互依存,缺一不可。电子影像诊断仪要求响应速度快,可靠性好,因此在控制系统中使用实时操作系统作为软件运行平台是非常适合的。源代码公开的实时操作系统uC/OS II以其小巧,执行时间确定性而广泛使用在医疗电子、工业控制等领域,特别适合于没有MMU的ARM7处理器上。
3.1 uC/OS II移植到LPC2131
在确定所选的微处理器和编译器能够满足所选的实时操作系统后,就可以动手编写移植代码了。移植工作包括以下几个内容:
用#define 设置一个常量的值(OS_CPU.H);
声明10个数据类型(OS_CPU.H);
用#define 声明3个宏(OS_CPU_C.H);
用C语言编写6个简单的函数(OS_CPU_C.C);
编写4个汇编语言函数(OS_CPU_A.ASM);
图7 按键任务
图8 显示任务
我们所用的编译器为ADS1.2,所以将OS_CPU_A.ASM的后缀名改为OS_CPU_A.S,详细的移植代码可以参考文献[3]。
3.2 功能实现
嵌入式电子影像诊断仪应包含一个ISR(遥控接收ISR)和3个任务:“初始化任务”、“键盘扫描任务”、“液晶显示任务”。初始化任务创建其余2个任务,因此优先级最高,设为7,键盘扫描任务设为9,液晶显示任务设为11。
void initial_task(void *pdata); //初始化创建任务,优先级7
void key_task(void *pdata); //键盘扫描任务,优先级9
void display_task(void *pdata); //液晶显示任务,优先级11
在以上任务中,initial_task()为一次性任务,创建完其它任务后自行删除,其他任务都是周期性任务。按键和显示流程图如图7、图8所示。
4 结束语
本套系统的设计,充分考虑了电子影像仪的特点,尤其突出其对于实时性与可靠性的要求。控制板体积小、功能齐全、直观性强、人机界面友好、操作方便,经过实际使用,完全满足需要,可以批量生产。
[1] 周立功,等.ARM微控制器基础与实践[M].北京:北京航空航天大学出版社,2003.
[2] 杜春雷.ARM体系结构与编程[M].北京:清华大学出版社,2003.
[3] 周立功.张华.深入浅出ARM7-LPC213x/214x(上、下册)[M].北京:北京航空航天大学出版社,2005.
[4] 任哲,等.嵌入式操作系统基础uC/OS II和Linux[M].北京:北京抗空航天大学出版社,2006.
[5] 杜春蕾.ARM体系结构与编程[M].北京:清华大学出版社,2003.
[6] 鲁昀,陈明.基于LPC2210的液晶显示器的设计[J].计算机技术与应用,2006,(4):42-43.
TH166
A
1009-0134(2010)10(上)-0188-03
10.3969/j.issn.1009-0134.2010.10(上).59
2010-05-17
科研项目:江西省教育厅科研项目(GJJ10657)
徐建(1979 -),男,副教授,硕士,研究方向为嵌入式软硬件技术、高频电源技术。