am188EM在便携式心电监护仪中的应用
在世界著名的医疗仪器制造商设计生产的心电监护仪中,很多选用的是Motorola公司的MC6800/68000;随着技术的进步,DSP也成为新选择。然而,MC6800/68000等微处理器需要较多的外围控制芯片协同工作才能发挥其优异的性能,组成系统时结构比较复杂,同时,它需要专用的开发软件和开发工具,这都给开发应用带来一定的难度。DSP在大规模数据和事务管理方面性能并不是最佳的,它对外围器件的要求也较高,同时,也需要专用开发软件和开发工具,这都在一定程度上制约了它在某些方面的应用。
嵌入式处理器从一定程度上克服了上述缺陷,使我们在使用处理器时又多了一种选择,在设计便携式心电监护仪时我们选用了AMD公司的am188EM处理器。
am188EM的主要特点:
(1) 与Intel公司的x86系列处理器在指令上完全兼容,可以借助于Microsoft公司的宏汇编工具MASM或其它编程语言在PC机上很方便地开发应用软件。
(2) 可选择16MHz、25MHz、33MHz、40MHz的工作频率,锁相环(PLL)倍频技术的应用和优化的指令处理过程使处理器运行速度成倍提高。
(3) 处理器片内集成一个全双工的同步串行通信口和一个全双工的异步通信口,同步串口可同时连接两个外设,异步串口与RS-232通信口标准兼容。
(4)处理器片内集成一个中断控制器,与标准的中断控制器8259完全兼容,单独工作时可管理5个外部中断源,也可以与外部标准的中断控制器8259级联,管理更多的中断源。
图1为系统组成框图。人体心电信号通过导线输入到模拟部分,在模拟部分放大、A/D转换后经光电耦合电路输出到数据采集部分。数字化的心电信号在数据采集部分经过预处理后被am188EM读取,am188EM对心电数据作出分析、计算,一方面输送到显示控制部分去显示,另一方面送往数据资料存储管理部分保存,如果发现异常信号,通过显示器和声光报警电路发出报警。通过通信口,am188EM可以与计算机通信,也可以用普通串行打印机打印监护报告。
模拟部分主要完成心电信号的撷取、放大、A/D转换、光电耦合等功能,如图2所示。由于人体皮肤的阻抗很大,心电信号又很微弱,再加上周围环境的电磁噪声很强,心电信号预放大电路使用了高输入阻抗、高共模抑制比、低噪声的仪表运算放大器INA128,以利于采集人体微弱的心电信号;预放大的心电信号通过压控增益放大器作必要的增益调整后,再经电平调整,输出到串行ADC进行A/D转换,之后心电数据通过光电耦合输出到数据采集部分作进一步处理。
am188EM对心电放大器增益的控制主要通过它的同步串行通信口进行。am188EM通过此口输出串行的控制数据,光电耦合后经串行DAC转换成压控增益放大器的控制电压,从而调整整个心电放大器的增益。出于对患者安全的考虑,在模拟部分采用浮地技术,系统电源通过隔离DC-DC变换器向模拟部分提供±5V电源,所有进出模拟部分的信号均通过光电耦合器与其它部分耦合。
数据采集部分主要完成心电信号的数字滤波、波形整形、压缩等功能。通过简单的数字滤波,滤除50Hz工频干扰和大于1KHz的高频干扰,消除心电波形上的“毛刺”,然后运用特定的心电数据压缩算法,对整形后心电数据进行压缩,压缩后的心电数据和压缩前的心电数据分别缓冲到先进先出存储器(FIFO)。当FIFO中缓冲一定数量的心电数据后,数据采集电路在am188EM的第一个中断输入脚INT0上发出一个负向脉冲,从而触发am188EM进入中断服务程序。在中断服务程序中,程序设置am188EM中集成的第一个DMA通道DMA0的源地址(指向FIFO)、目标地址(指向内部随机存储器的心电波形缓冲区)、数据数量等参数,然后启动DMA0,使FIFO中缓冲的心电数据在不占用处理器时间的情况下,高速输入处理器所控制的内部随机存储器。
数据资料存储管理部分主要实现异常心电数据以及病人一般资料的存储和管理,另外,整个系统应用软件的存储和管理也由这部分完成。数据资料存储管理部分的核心是一大容量的闪速存贮器(FLASH)29F040,容量为512KB,与程序存贮器28C64复合占用am188EM的高端地址。
如图3所示,程序存储器28C64与闪速存贮器29F040是通过am188EM的可编程I/O口的0位PIO0控制逻辑电路实现地址复用的。当PIO0被置为“1”时, 28C64的片选信号随am188EM的高端地址片选信号UCS变化而变化,29F040的片选信号则保持高电平,于是am188EM便能对程序存贮器28C64进行操作;当PIO0被置为“0”时,29F040的片选信号随am188EM的高端地址片选信号UCS变化而变化,28C64的片选信号保持高电平,am188EM对程序存储器28C64的操作便被禁止而只能对29F040进行操作。通常在系统上电时,由于PIO0被复位为“1”,处理器总是能够对28C64操作,从其中读取指令而完成启动引导过程。
显示控制部分主要实现心电信号波形和相关的图形、字符的显示,它由数字逻辑电路、视频存储器以及必要的模拟电路组成。
为了保证所显示的心电信号波形的稳定性,只有在视频扫描的帧回扫间期才可以刷新心电信号波形数据,这实现起来有一定的困难。考虑到视频扫描的帧回扫间期很短且较难以捕捉,我们将帧同步信号输入到am188EM的第二个中断输入脚INT1,当帧回扫间期到来时,帧同步信号触发am188EM,使之响应中断,在中断服务程序中,程序设置am188EM中集成的第二个DMA通道DMA1的源地址(指向内部随机存储器的心电波形缓冲区)、目标地址(指向视频存储器)、数据数量等参数,然后启动DMA1,使心电波形数据在不占用处理器时间的情况下、高速地传输到视频存储器。
am188EM片内集成一个全双工的异步通信口,它的数据格式(包括起始位、停止位、数据位、奇偶校验位等)与标准RS-232通信口完全兼容,仅需要作简单的电平转换,将数字逻辑的+5V转换为RS-232的-10V、将数字逻辑的0V转换为RS-232的+10V即可。电平转换的接口电路种类很多,功能与应用的复杂程度也各不相同。我们选用的是Maxim公司的MAX202CPA,它具有体积小、功耗低、外围电路简单(仅需要四个0.1mF的电容)、可*性高等优点。
由于am188EM提供独立的20条地址总线和多条由内部集成的可编程地址译码器译码产生的片选信号,所有的外围电路直接使用这些地址总线和片选信号,因此,它的外围电路部分的设计十分简单,如图4所示。
由于am188EM与Intel公司的x86系列处理器在指令上完全兼容,因此可以借助Microsoft公司的宏汇编工具或其它编程语言在PC机上很方便地编写系统的应用软件。系统软件的编制采用模块化结构,对于硬件的各个功能块编写了类似于Windows 95/98系统的设备驱动程序。
系统软件主要分为:
1、数据采集模块,它主要通过DMA完成从数据预处理电路读取预处理后的ECG各导联的波形数据。
2、ECG波形参数计算模块,它主要根据获得的各导联的ECG波形数据计算出ECG的各种参数如P、R波高,P-R间期,R波群宽度,ST段的高低等。
3、智能诊断模块,它主要根据临床心血管疾病专家数据库,对ECG的表现作出初步诊断。
4、显示驱动模块,它主要配合显示控制电路完成ECG波形及字符、图形的显示。
5、通信模块,它主要通过异步串行通信口实现与PC的各种通信,包括输出系统的各种检测数据和从PC机输入各种系统指令和资料。
6、增益控制模块,它主要根据ECG的波高参数自动调整系统模拟部分主放大器的增益,以得到最佳的ECG波形。
在组织整机系统软件时,考虑到仪器在用户使用过程中智能诊断程序的升级问题,特地安排了EEPROM-FLASH的程序存储结构。在EEPROM中,仅存储系统引导程序和基本I/O程序(BIOs),当仪器开机时,首先进入EPROM中的引导程序,引导程序查看FLASH中的标志位及串行通信口,若FLASH中无应用程序,则提示用户通过PC机下载应用程序,或当发现串行通信口接收到PC机的升级应用程序的指令,则从PC机中下载程序并存储于FLASH中;若FLASH中有应用程序并且串行通信口未接收到PC机的升级应用程序的指令,引导程序将引导CPU执行FLASH中的程序。
虽然am188EM应用非常方便、简单,但是有几个问题要加以注意,否则,易造成处理器不运行、死机甚至烧毁。
⑴ 当单片使用am188EM时,它的HOLD片脚一定接地,否则处理器将被挂起而不能运行程序。
⑵同步数据就绪片脚(SRDY)和异步数据就绪片脚(ARDY)如果有一个或全部未使用时,未使用的片脚一定要接地。
⑶ 不可屏蔽中断输入脚在不使用时一定要接地。
⑷ 如果使用集成晶振为处理器提供系统时钟,那么信号应通过X1脚输入,令X2脚浮空。
⑸ 所有的未使用的输出片脚要保持浮空,不能拉高或拉低。
⑹由于系统复位后执行的第一条指令从0FFFF0h地址处读取,因此必须在此处设置一条跳转指令,使处理器跳转到软件的入口处执行程序。
http://www.aibaoyl.cn/new/