采用USB接口的心电图热敏打印机系统设计
时间:01-13
来源:互联网
点击:
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导联的多导同时打印,在实际应用中效果良好。
打印机走纸控制采用双极斩波驱动的步进电机来实现。本设计采用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导联的多导同时打印,在实际应用中效果良好。