|
摘 要:本文概述了泌尿诊疗床的模块化组成,介绍了各单片机系统相互间的通讯,给出了系统的硬件及软件设计,总结了该系统的特点。 引言 随着计算机与单片机控制技术的发展,对国产大型医疗设备的自动化、智能化、可视化提出更高的要求。为此开发的泌尿学医疗诊断手术设备—泌尿床,引入了智能控制技术、触摸屏技术和计算机图像等控制技术。本文着重于微机控制系统,详细阐述了单片机控制系统的硬件与软件设计。 图1 泌尿床基本结构框图 图2 所有UART中断程序流程 硬件设计 本设备采用了模块化子系统控制模式,上层带触摸屏的工业控制计算机为可增减部分,底层的微型单片机已独立自成系统,包括控制台、泌尿床床体、X光机三个子系统,基本结构框图如图1所示。 各子系统一般不扩展外部RAM,周边芯片大多采用SPI和I2C接口,如需扩展并行IC器件,均采用74373进行CPU的P0口复用,并同时进行必要的GPIO扩展,P1口一般用作阵列键盘输入,P2口被用作GPIO,P3用作GPIO或特殊功能口。另外,采用DS1232作为系统的看门狗与电源监控,采用MAX232进行电平转换,具体设计方式如下。 控制台系统 该子系统硬件设计比较简单,采用74LS377扩展I/O与CPU的P1口作为8×8阵列键盘,扩展SED1335控制320×240点阵LCM进行参数显示,采用P2口扩展AT24C64(EEPROM)、MAX3100(UART),P3口用作特殊功能口。由通讯接口接收其他子系统传递来的参数,进行细微处理,再由LCM显示出来,同时把自身的按键命令输给其他子系统。为了使界面图形更加丰富,硬件除采用了自带20KROM的AT89C55型CPU外,还可扩展Flash芯片。 X光柜系统 该子系统采用DAC0832进行D/A扩展,完成对X光组件的控制模拟量的输出。采用74LS377扩展I/O,与CPU的P1、P2口组成GPIO。经光耦对X光组件进行控制命令输出和状态输入,同时完成4×4阵列键盘扫描输入。此外,还通过扩展BC7281进行LED参数显示。扩展AT24C64存储非线性模拟量量化系数和其他重要数据;扩展ADS7841完成X光组件反馈的模拟量的A/D转换,并与DAC0832组成对X光组件的闭环控制。 该部分主要是通过接受外部传输的命令或自身键盘控制命令,调整X射线源的高压(kV)和电流(mA)并在自身LED上显示,经非线性模拟量量化系数处理后,再由DAC0832模拟输出给高频X光组件,进行X射线的强度与照度调节并控制曝光。同时向其他系统传输X光组件的参数与状态。 另外该部分还增加了非线性模拟量量化系数自动生成功能,以替代繁琐且不太准确的手动量化系数生成。主要由D/A转换、A/D转换等闭环控制电路与相关软件完成。 床体系统 床体系统采用CPU自身的I/O接口完成8×4阵列键盘的输入,扩展的两片AD7841结合床体采样电路进行机械位置的A/D转换。采用2片8255扩展成48个GPIO,经光耦隔离与功率I/O模块控制床体机械运动及行程限位采样,同时控制增强器与CCD电源。另外,该系统还预留了参数状态显示接口。 软件设计 根据硬件设计方法,系统的软件设计主要考虑各个子系统的相互通讯接口与协议,在该系统中,所有通讯均采用全双工实时循环方式,各子系统中UART则采用中断方式。通用通讯中断程序如图2所示。 因为在硬件设计中比较多地采用了SPI与I2C串行接口外围芯片,所以在软件设计中要特别注意各芯片的控制时序和CPU时间资源利用,SPI接口芯片的控制线最好不要复用,原因是中断程序中也有可能会调用SPI控制子程序。 同时控制串行接口用到的RAM也尽量不要相同,以防止中断程序无意的修改,采用C语言设计软件时更应注意。 因各子系统的通讯数据比较多且频繁,所以要求通讯中断程序反应快并处理快。本系统设计的通讯方案很适合要求,并设定通讯中断为最高级中断,这样就不会因别的中断而造成接收数据的丢失。 结语 该系统以通讯的方式把各个子系统有机结合成一个整系统,同时各个子系统都有智能检测功能,能独立工作运行。而且由于采用了模块化的设计,所以方便了设备的升级、移植以及系统维护维修。 |