一种基于MCU的激光器控制系统开发
1 引言 随着光学、机械、电子、计算机各种技术的长足发展伴随着各种器件成本的降低,医用激光器在近年来的发展功能日趋复杂,操作更为迅速和便捷。新型的医用激光器利用激光与生物组织间的选择性吸收原理和激光的光热作用原理来达到破坏病灶靶组织而不破坏其周围正常组织的功能。为满足医生对临床应用的需求以及对设备维护工作更高的要求,许多激光公司都十分重视对激光操作控制平台的研究。本文针对医用激光器设计了一种新型嵌入式控制系统。
2 控制系统硬件结构框图
激光器控制系统的硬件设计包含两个方面,一个方面是嵌入式控制单元及其接口的设计,包括CPU处理器的选型,数字/模拟信号的相互转换,按键键盘、LCD显示和串行通讯接口等。另一方面包含激光器预燃/触发和IGBT驱动等电路的设计。医用激光器的控制系统是基于Rabbit2000系列单板机的一个高性能的、C 语言可编程的控制系统,它将数字输入/输出、模拟输入/输出点以及以太网连接紧凑地固化在一个核心模块上,温室智能控制器的微处理器是Rabbit2000TM,控制器的硬件结构框图如图1所示。
3 硬件电路详细设计
1)、嵌入式处理器。系统的核心模块是Rabbit2000微控制器,通过与上位机通信完成对各个执行机构的控制以及数据采集。为了使Rabbit2000能够正常工作,在其外围扩展了程序存储器、数据存储器以及电源、复位、晶振电路。该控制系统通过以太网接口或者RS-485总线与上位机通信,接收命令并传送数据。通过模拟量输入输出通道实现模拟量的数据采集和模拟控制量的输出,通过数字量输入输出通道实现数字量的采集和开关控制量的输出。Rabbit半导体器件是专门为应用于中小型控制器而设计的一种高性能微处理器。Rabbit通过指令运行。而且与别的微处理器比起来,Rabbit2000的计算能力也是优于其它的8位微处理器。
2)、D/A与A/D转换电路。本医用激光器有一路模拟量输出通道,选用内带基准源和运算放大器的10位DAC转换器MAX504, MAX504内部提供2.048V基准电压,内部运算放大器为rail-to-rail缓冲输出,输入接口为SPI接口,简化了电路设计,节省口线。模拟量输出电路如图2所示。Rabbit2000输出口线PD2,PB0,PC4分别连接到DAC的片选端、时钟输入端和数据输入端。MAX504使用内部基准源,电压输出通过同相输入运放的串联电压负反馈电路达到放大,由于RFB连接VOUT、BIPOFF连接AGND,使得输出电压范围为0-2VREFIN, 即0-4.069V。同相输入运放的闭环放大倍数公式为AVf=1+R52/R53,因此放大倍数为2.5倍。
A/D转换电路。激光器有八路模拟信号输入量需要通过A/D转换送到MCU处理,这八路输入量依次为:能量校准信号、传输能量大小监控、染料监控(可选)、HVPS反馈、染料温度(可选)、冷却水温、控制板温度、外部能量计信号。能量校准和传输能量大小监控信号都是通过光纤将光信号送至光电转换器SFH250V转换成电流信号,再通过反相输入运放OP400GS深度放大送至A/D转换器。此两路信号的增益由MCU控制,MCU输出一个字节到74hc574锁存器,分高4位和低4位分别送至多路模拟开关PS392,切换运放的深度负反馈电阻值,达到不同比例的放大倍数。A/D转换芯片采用MAX147。
3)、串口电路。激光器RS232通信总线发送接受器选用MAX232,该芯片内部集成了 2个驱动器、2个接收器和1个电压发生器电路提供TIA/EIA-232电平。RS232通信的接收发送操作由串行口C完成,RS232为全双工通信,无需收发控制,通信输出直接连接到DB9的2脚、3脚和5脚。其中2脚为发送、3脚为接收、5脚为地,符合一般工业现场从设备RS232通信引脚定义习惯。由于RS232通信电平与TTL电平不兼容,因此需要进行电平转换。
4)、按钮键盘。激光器的按键数量不多,故采用独立式按键结构电路。每个独立式按键单独占有一根RCM2100的I/O口线,每根I/O口线上的按键的工作状态不会影响到其它I/O口的工作状态。按键输入低电平有效,经过14490防抖动处理,再送至74HC245双向三态门电路,当片选选通后送至RCM2100的普通I/O口BD0-7。键盘设计为双行2列外加6个独立按钮,共计10个按键开关。
5)、LCD与MCU接口电路。在本系统中,MCU与LCD之间采用的是直接访问的方式。MCU可以利用总线的方式与内藏T6963C液晶显示模块直接通信。RCM2100的数据口BD(7:0)直接与液晶显示模块的数据口连接。由于T6963C接口适用于RABBIT系列的MCU,所以可以直接用MCU的/nlORD/nlOWR作为液晶显示模块的读写控制信号。液晶显示模块的VDD挂在+5V上,/RE接RESET复位,/CE接MCU经译码后的LCDCS片选。C/D信号由RCM2100的地址线BA0提供。BA0=1为指令口地址;BA0=0为数据口地址。
4 控制系统软件设计
Dynamic C是用于编写嵌入式应用软件的一套完整的开发系统,它可运行在IBM兼容机上,是专为Z-World控制器和基于Rabbit微处理器的控制器而设计的。医用激光器控制器控制单元应用程序的开发采用Dynamic C。Dynamic C是一个专门用于Rabbit处理器开发内带μC/OS-II实时操作系统的嵌入式、多任务开发系统。它含有一个集成开发环境,其中包括:C编译器、编辑器、链接器、装载器和调试器。
医用激光器上电开机后,主程序先完成对Rabbit2000、系统参数、全局变量、ADC、套接字、串行通信口等的初始化工作。通信处理程序处于接受状态,同时读取激光器设备门开关、传导光纤、三个光路挡板、通信程序开关、高压电源、冷却水高中位状态、保险丝状态、预燃、IGBT故障、流量、冷却水低位、校正口开关等开关量输入的状态是否正常。在每个主循环里都要判断激光器的运行情况,判断是否有能量反馈超范围、冷却水温度超限、短路、开路、过流现象。
4.1 程序初始化
1)、系统上电初始化由 InitWorkl()函数完成,该函数会对寄存器、系统参数、全局变量、ADC、串行通信口、外部中断向量、定时器等进行初始化。初始化程序流程图如图3所示。
2)、初始化串行口。串行口初始化只需根据系统参数中串行口模式字节SerModeByte调用serCopen()或serDopen()函数即可完成对波特率、数据格式的设置。串行口处理时将会自动按照SerModeByte中的通信协议设置进行数据包接收接查、命令译码、命令响应等操作。串行口设置结束后,还需初始化串行通信标志,逻辑上将三个串行口均置为接收操作状态,即将三个串行口的接受允许置为低电平,以用于主程序中串行通信状态的表示。
3)、中断向量安装。医用激光器的中断服务程序由第0号外部中断和定时器中断组成,其中利用系统硬件产生10ms同步信号来触发第0号外部中断,第0号外部中断的类型号为0x09,使用系统函数SetVectExtern3000()即可将0x09号中断向量设置为第0号外部中断服务程序Int0_l0ms Isr()的入口地址。ADC采样时间的控制和采样数据的保存是在定时器中断服务程序中完成。定时器A的中断类型号为0x0A,定时器B的中断类型号为0x0B,中断服务程序分别为TimerA_ISR()和TimerB_ISR( ),利用系统函数SetVectIntern()将0x0B号中断向量设置为TimerB_ISR()的入口地址。定时器由第0号外部中断服务程序启动。
4.2 主程序设计
初始化结束后将进入主循环体,在主循环中会将对A/D转换进行处理,即查询A/D转换是否结束,如果结束,则从MAX 147读取转换数据,执行相应的数据处理,并切换通道,启动下一次转换;若未结束,则判断转换是否超时,若超时则置A/D转换错误标志,否则直接返回主程序。
主循环体中D/A转换处理是对模拟量输出进行操作,当模拟量输出被允许,程序将会把控制输出码值串行输出到MAX504;若模拟量输出不使用,则将MAX504的CS引脚置为高电平,禁止D/A转换。通信处理部分会对RS232串行口的状态进行查询,若串行发送操作结束,则立即切换为接收状态:若接收到新的数据,则对接收数据进行语法检查,检查通过后会进行命令翻译和响应;若正在发送数据或接收数据,则继续发送或接收,直到发送或接收操作完毕。
5 嵌入式控制系统抗干扰设计
由于医用激光器的激光发射装置含有大电流的开关电源和高压电容充放电的动作,以及应用环境中其他设备可能存在的干扰,所以控制系统的抗干扰设计是不可避免的。
1)、电气隔离。电气隔离通常采用的是光电隔离。光电隔离由光源(如发光二极管)和光传感器(如光敏三极管)组成。当I/0口输出脉冲信号时,光敏二极管因导通发光,光敏三极管因光耦合而导通,则输出低电平;光敏三极管截至时输出高电平。光电隔离输出电路设计如图4所示。
2)、去耦电容。去耦电容在控制电路PCB板设计在电子设备的电磁兼容性及抗能力方面有着重要的作用。合理使用去耦电容也就成为保障控制电路稳定运行的一个重要因素。
本文创新点
本文的研究内容是医用激光器的嵌入式控制设计。本文的意义在于,本文不仅设计了医用激光器的嵌入式控制系统,并且相关的一些设计应用方法对于其它一些医疗仪器的设计和问题的解决也有一定的参考和指导意义。
|