心电图机是描记心脏组织活动所产生的生物电信号以及现代医学科学研究和l临床诊断中使用非常广泛的一种精密电子医疗仪器。由于它诊断可靠,操作简便,对病人无损伤,故在临床上得到广泛的应用,而作为心电图检测结果直观的输出方式和手段,心电图机微型打印机是必不可少的。
目前,医院中使用的多为传统机械式心电打印机,存在着打印效率低、噪声污染严重、心电波形失真等缺点。近年来uSB技术有了飞速的发展,很多台式打印机已经应用了该技术。但是采用USB接口技术的心电图机热敏打印机却很少。本系统就采用了USB接口与心电图机相连,同时也可以与PC心电图机进行连接打印。
1 心电图热敏打印机的硬件设计
1.1 系统的总体结构
硬件系统由控制器、走纸电机、uSB接口、热敏打印头及其检测和保护电路等组成,组成框图如图1所示。
1.2 ARM控制器的选择
由于本系统要求打印最高速度达50 mm/s,所以对于处理器给打印头传送数据的速度就要求很高。一般热敏打印头数据通过串行传送,所以通过SPI口传送是最佳方式,而普通8位单片机在处理速度上就有缺陷,难以满足整体要求,因此决定选用Atlnel公司的ARM7内核芯片AT91SAM7S64作为控制器。该芯片具有64 KB的片内高速Flash存储器,16 KB的片内高速SRAM(可以在最高时钟速度下进行单时钟周期访问操作);1个USB 2.O全速(12 Mbps)设备端口,片上收发器,328字节可编程的FIFO;主/从串行外设接口(SPI),8~16位可编程的数据长度,4个片选线。本设计将用USB口与台式或PC心电图机通信,SPI口控制打印头,同时具有大容量的数据存储及高速数据处理能力。所以无论从集成度,还是性价比来看,都是理想的选择。
1.3 热敏打印头的选择及控制
热敏打印技术最早使用在传真机上,其基本原理是将打印机接收的数据转换成点阵信号控制热敏单元的加热.把热敏纸上热敏涂层显影。这种技术只能使用专用的热敏纸。热敏纸上涂有一层遇热就会产生化学反应而变色的涂层,类似于感光胶片,不过该涂层是遇热后变色显影。利用热敏涂层的这种特性,研究出了热敏打印技术。热敏打印技术的关键在于加热元件。热敏打印机芯上有一排微小的半导体元件。这些元件排得很密,从2·90dpi~600dpi不等。这些元件在通过一定电流时会很快产生高温,当热敏纸的涂层遇到这些元件时,在极短的时间内温度会升高,涂层就会发生化学反应,显出颜色。
热敏打印机接收到打印数据后,将打印数据转换为位图数据,然后按照位图数据的点控制打印机芯上的发热元件通过电流,这样就把打印数据变成打印纸上的打印内容了。
由于本设计要求最多能同时打印12导联的心电波形,所以对打印头的宽度和分辨率要求很高。经过认真的性能比较,选用了C216型行式打印头,其打印宽度可达216 mm,即1728点/行。热敏打印头的电路连接如图2所示。
C216打印头各信号线加2.2 kΩ上拉电阻,数据通过ARM的SPI口串行输入;SPCK连接ARM芯片SPI口串行时钟引脚,ARM最多有4个SPI外设片选信号脚,P_LATCHCSl连接其中的NPCSl脚,由于打印机只需单向接收数据,所以只连接MOSI脚。THERMISTOR接打印头内置热敏电阻,外加电路来检测打印头的温度,从而可对打印头作相应的保护。打印头工作需要24 V直流电压。由于每行1728点,且电源电流有限,所以必须进行打印头的加热功率控制。C216有4个加热选通信号(STR()BEl~4),即1728个点可以分4次加热,每次最多448个点。根据打印头参数,如每个加热点电阻为R=700 Ω时,消耗功率为31.0 mA/点;若所有点都加热时需电流1728点×31.O mA/点=53 568 mA。所以设计中要根据实际加热点数通过软件进行一定的时序控制。
1.4 USB接口电路
AT9lSAM7S64芯片具有一个USB 2.O全速(12Mbps)设备端口,片上收发器,328字节可编程的F。IFO。这就给设计带来很大的便捷性,也是采用本款ARM芯片较其他控制芯片的独特优势之一。其外接电路如图3所示。
AT9ISAM7S64的USB物理收发器集成在芯片中,USB器件有一条与高级中断控制器(AIC)连接的中断线.处理USB器件中断须在配置UDP前对AIC编程,可自动检测挂起与恢复,通过出现中断来停止处理器。双向差分信号DP与DM对于产品边界有效,应用中会用到两条I/O线:一条检查来自主机的VBUS是否仍然有效的USB_DET引脚,使用该入口通知自供电器件主机断电(此时,禁用板上上拉DP,以防止电流流入主机);另一条用来控制板上上拉DP即USB_DP_PUP引脚,当器件准备与主机通信时,通过该控制线激活其DP上拉。
NRST引脚来自芯片的复位信号,AT9lSAM7S64的基于上电复位单元的复位控制器(RSTC)可以处理系统的所有复位,而无需其他器件,它可以给出上一次复位源的信息。复位控制器可独立地或同时驱动外部复位和外设及处理器复位,其掉电检测功能可防止处理器进入不可预测的状态。
USB器件外设需要48 MHz时钟。该时钟由精度为士O.25%的PLL产生。因此,USB器件收到来自电源管理控制器(PMC)的两个时钟:主机时钟MCK,用来驱动外设用户接口;UDPCK用来与总线USB信号连接。
1.5 走纸电路设计
打印机走纸控制采用双极斩波驱动的步进电机来实现。本设计采用Allego公司的专用双全桥PWM步进电机驱动器A2919SLB来驱动电机,如图4所示。驱动器输出双路可直接驱动步进电机,PHASEl和PHASE2分别由.ARM控制器输出相应脉冲来控制输出脉冲频率,从而得到理想的速度。走纸电机驱动电路如图4所示。
A2919SLB驱动电机工作电压为+24 V,芯片参考供电电压为VOC,驱动芯片的电机驱动电流取决于参考电压VREF和参考电阻Rs,以及Io和fI高低电平的组合,其计算方法如表1所列。
该芯片的控制简单方便,实际应用中可以根据需要调节输出高低电平搭配,以达到细分的效果。本设计采用了全角控制,VREF采用+5 V直流电压,Rs取0.5 n的高精度电阻,I0和Il采用第2种电平组合方式,输出电流为67%,ITRlP,完全可以满足设计需要。
1.6 打印头保护和头温度测量电路
对打印头的保护是打印机控制系统好坏的重要标志。由于行式热敏打印机对发热元件的加热时间都是ms级的,如果对发热元件连续加热超过l s,将会烧坏打印头,因此对打印头的保护必须及时、可靠。从行式打印头电路连接图可以看出,要使发热元件加热,除寄存器中数据点为高外,还必须将头电压VH一24V供电电源打开。只要任一条件不满足,就不可能给打印头加热,也就不会烧坏打印头.所以对打印头电压设计了一个电源保护电路。
如果打印过程中打印头过热,就必须停止打印,否则会烧坏打印头。打印头内置热敏电阻由THERMIST()R连接到外部检测电路,经过LM339M比较器,一旦温度超过极限温度,就通过OVER_HOT脚发出低电平给主控芯片.从而可以及时采取相应的保护措施,如图5所示。
打印过程中如果出现缺纸和开盖的情况,同样需要停止打印,否则会出现不可预测的结果。J4连接光敏对检测缺纸电路,J8连接一个开关电路。当缺纸和开盖状况出现时,电路将立即通过PAPER_SHORT脚和COVER_OPEN脚向ARM控制器发出低电平信号,控制器则立即停止打印头和电机,停止任何打印操作,以免损坏打印头。
2 心电图热敏打印机的软件设计
软件的主要功能是接收来自主机(心电图机)通过USB口发来的数据,然后判断数据的内容,根据指定的通信协议进行处理。数据包括三种情况:控制命令、心电图数据和字符。对于心电图数据,首先要判断是几导打印(本设计中分为同时打印1、3、6和12导四种情况),然后将接收到的数据映射成点,通过SPI口,以串行方式送至打印头的缓冲区进行打印;如果有字符,则从外扩的DATAFLASH中取出各字符的字形码,并进行转换.然后送往打印头的缓冲区进行打印;如果数据是控制命令,则转到相应控制命令的执行程序。
在对打印头传送数据时,使用了ARM控制器的SPI口,因ARM只需向打印头单向传送数据,仅是主从式工作方式,所以只要通过3根线——时钟线(SPKCLK)、数据输出线(SPIMOSI)、片选线(CS)进行通信,内部通过SPIDAT寄存器完成转换。打印机有3种打印速度可供用户选用:50 mm/s、25 mm/s和12.5 mm/s。当采用最高的50 mm/s速度打印时,必须保证电机走纸内打印头数据已经传送到打印头。普通8位单片机此时就不能满足要求,这就是本设计采用ARM的原因之一。图6是打印头的加热控制时序图。
软件设计中的另一个关键技术就是将打印数据映射成点,再打印到纸上。映射的点必须和打印纸上的点一一对应,所以合理分配每导在打印纸上的空间就十分重要,既要分配充分,又不能相互重叠。打印纸的宽度是216ms,与1728个点相对应,12导可以成行排列同时打印。
图7是标准心电波形图
由图7可以看出,心电波形图绝大部分都在基线的一边,故相邻的导联波形在一侧可以共用部分空间,而不至于导联波形重叠。程序框图和程序在此省略。
结语
本设计充分利用了ARM芯片AT91sAM7S64的资源,完成了采用USB借口技术的热敏打印机的开发,并对打印机头作了充分的保护。通过采用响应的算法实现了心电图的高达12导联的多导同时打印,在实际应用中效果良好。