基于热敏打印机的心电图形快速打印方法的研究及应用实例_第1页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于热敏打印机的心电图形快速打印方法的研究及应用实例普遍用法的心电图机绝大多数是机电式的,即通过电极检测心电信号,放大后挺直记录,存在着打印效率低、噪声污染严峻、心电波形失真等缺点。与之相比,数字式心电图机通过软件实现噪声抑制和心电参数的提取,并采纳数字式打印机输出心电图形,可为医护人员提供更完善心电图和更多诊断信息,必将成为市场的进展趋势,有着更广大的应用前景。因为数字心电图机通过采集的数据是离散的,要将其在图纸上还原为原始的心电图形,除了要将数据与图纸上的离散点对应起来,还要按照信号变幻的趋势,在这些点之间连线,使之成为延续的图形。将心电数据尤其是多导联心电数据同步、精确、迅速打印出来是囫

2、囵系统开发的难点和关键,而高效打印算法对数字心电图机的开发无疑是很故意义的。随着技术的进展,打印机已经广泛应用到各个领域,成为各种智能数字化仪器仪表的重要数据输出手段。而其中热敏打印机凭其体积小、分量轻、牢靠性高、打印字符清楚、无噪声、走纸匀称等独特能而越来越受到青睐,更是成为小型医疗仪器如心电图机的首先。下面以笔者课题组开发的12导同步心电图机为例,介绍以一般52为主控芯片应用串行热敏打印机实现多种方式的心电图形打印,并重点描述了12导联同步打印方式的程序实现计划。1 系统硬件设计系统配置了一个内置式数字打印机,它主要由热敏打印头(w216-qs)和组成。w126-qs点阵式热敏打印头打印数

3、据采纳串行输入,其内部不仅包含有由c-mos集成芯片构成的1728位移位寄存器,还包含借助高密度厚膜工艺制成的加热元件。这些加热元件通过锁存和切换晶体管驱动,可在热敏打印纸上产生1728个点,对应的打印宽度为216mm,辨别率为8dot/mm。热敏打印头所需的打印数据为串行数据,数据传输遵循spi口的通信协议。系统采纳了口线模拟spi的工作方式与打印头通信,1所示。/table考虑到52单片机内部令有256字节的内部ram,系统还外扩1片hm628128存储12导心电数据和中间转换结果。2 系统软件编写数字打印实现的两个关键问题:如何将心电数据转换成打印数据;假如将数据输出到数字打印机。通常采

4、纳的办法是转换数据同时将其输出到打印机打印。这样节约了存储器空间;缺点是程序实现复杂,通用性差(不同打印方式的数据输出程序不同),系统功能不易扩展,数据转换和输出都要考虑打印点位置,并且每输出一点的数据都要调用一次程序,加大了系统开销。系统软件中没有采有这种方式,而是在内存中开拓216字节打印缓冲区,将热敏打印头1728个点与216×8位数据相对应,每次将要打印的一线数据都转换完再输出。这样只需在数据转换时考虑打印位置和方式,输出程序只需将216字节的数据按位输出即可,并且每打印一线数据只需调用一次输出子程序,字节了系统开销。缺点是占用系统资源,这一点在12导同步打印表现得尤为显然。

5、系统程序实现三种打印方式:分两次打印12导联数据,每次打印6导、12导同步打印、纵向打印(打印效果2)。在每一种打印程序中实现模拟spi口将打印数据送至数字打印机的子程序共用,不同处在于如何将心电数据转换成打印数据。2.1 i/o口线模拟spi口spi(serial peripheral interface)串口是由motorola公司提出的一种同步串行外设接口,通过四根线举行通信:时钟线(spkclk)、数据输出线(spimiso)、数据输出线(spimosi)、片选线(cs),内部通过spidat寄存器完成串-并/并-串转换。它主要工作在主从式系统中,一个主器件可以带多个从器件,主器件通过

6、片选线控制总线矛盾,使同一时刻惟独一个从器件与从器件交换数据。系统应用的串行热阵式打印机数据传输采纳spi时序,但一般52单片机无spi口,所以采纳i/o口线模拟spi时序。考虑到系统中作为主器件总是发送数据,而数字打印机作为唯一从器件又总是接收数据,所以只需用口线模拟spi口的时钟线(spikclk)、数据输出线(spimosi),程序模拟spidat完成并-串转换即可。如前所提到打印头打印的数据点数为1728点,辨别率为8mm/mv,对应216字节的数据,为此从内部ram中分配出216字节的空间作为打印缓冲区,程序从缓冲区依次读数据,在模拟时钟线的控制下将并行数据转换成的串行数据按位依次送

7、至打印机的移位寄存器中,结束后送latch锁存信号和打印头加热脉冲strobe,从而在热敏打印纸打印出一线心电图形,驱动步进电机向前走纸即可以延续打印。spi口模拟程序如下:output:现场庇护lcall intram ;初始化内部打印缓冲区mov r0,dat_buff ;初始化r0为缓冲区末位地址dat_out:mov a,r0 ;从缓冲区读数据mov r7,08h ;初始化r7控制并/串数据转换cont_chg:rrc a ;对acc循环右移实现并-串转换mov p1.3,c 将串行数据送至打印机setb p1.1 ;模拟spi时钟nopclr p1.1djnz r7,cont_chg

8、 ;推断1字节数据是否转换完dec r0 ;寻址下一字节cjne r0,15h,dat_out;推断数据是否所有转换完clr p1.2 ;产生数据锁存信号nopsetb p1.2nopclr p1.0 ;产生加热脉冲lcall heatdly ;调用加热延时程序setb p1.1lcall motor_run ;步进电机走纸复原现场ret2.2 打印算法数字打印机实质上实现了数据与打印点的对应,也就是说8位心电数据数值范围为0255,对应于热敏打印纸上的256点,通过加热敏单元使纸上某点变黑显示数据的大小。这就需要将表征实际心电大小的数据(以下称为原始数据)转换成能够指示加热点位置的数据(以下

9、称为位置数据),通过位置数据的控制将心电数据对应的点依次打印出来,就可获得心电图。但是因为系统模数转换器获得的心电数据是离散的,假如仅将它们对应的点打印出来,得到只是一些离散的点,要想获得延续的心电图形,需要将相邻的离散点根据一定的算法将它们衔接起来,对于纵向打印方式和横向打印方式,离散点连线算法是不同的。限于篇幅,在下面介绍打印方式的实现中,仅对横向12导同步打印和纵向打印举行具体阐述,而对6导联打印仅介绍其实现思想。2.2.1 横向6导联打印心电图纸长度为216mm,为每一导联心电信号分配32mm,对应于打印缓冲区中延续的32字节,打印数据转换后的位置数据存储于这32个字节中。12导联的心

10、电数据被分为两大组,当一组打印完成再打印剩下的6导联的数据。详细的实现过程可参考横向12导联打印方式。2.2.2 横向12导联同步打印在6导联打印方式实现过程中,注重到在大多状况下一个完事心电波形中仅qrs波主峰较高可以点满囫囵空间外,其他波段幅值都较小占用空间很少,而这些波段可以提供更多的信息,此外将12导联分开打印,不利于医生对照同一时刻不同导联的心电波形。而采纳12导联同步打印,虽然会浮现波形部分重叠,但是在一些心脏疾病诊断中影响不大,且可以得取更直观的效果。12导联同步打印程序实现的基本思想与6导联同步打印相同,不同在于将12导联的数据同时在216mm宽的打印纸上打印出来,不行避开地浮

11、现不同导联心电图形重叠的现象,对应的内存单元也会浮现复用的状况。假如容易地套用6导联打印程序,那么前一导联的数据会被相邻导联数据冲掉,从而使图形无法正确显示。图3列出了为各个导联分配的热敏打印纸空间与缓冲内存单元(这里假定缓存地址为0x1dh0xedh)。从图3中可以看出除了i导联前16mm空间和v6导联的后16mm空间没有被复用,打印纸的其它空间都是被两个导联共用。内部ram用法状况也与之类似。为此在外部ram开拓一个内部打印缓冲区的影像区(大小为216字节,单元地址的低8位与内存相应单元相同,如内部ram 0x1dh单元与外部ram 0xxx1dh相对应),将12导联分为两组:一组(i,i

12、ii,avl,v1,v3,v5)仍然存储于内部存储器,而另一组(ii,avf,v2,v4,v6)存储于外部影像区,在12导联一线数据转换完要打印时,将两部分根据对应单元相与即可。这样做不但可以解决上述问题,而且节约了内部资源、降低程序编写的难度。如前所述不同导联所占的打印空间不同,所以,对于某导联心电信号,先要确定其打印区间,然后再确定打印数据在该区间的相对位置。假定某导联所占打印空间的起始字节为第n个字节,而要打印的心电数据为m,将m除以8,得商k,余数为1,则此心电数据对应点对数(n-k)字节的第1位。即该心电数据对应的位置数据为第(n-k)字节(该字节的1位置1,其它位清零)。因此,打印

13、此心电数据时,该导联所要传送的32字节打印数据中惟独第(n-k)字节的第1位为1,其他都为0。与液晶显示相类似,对于一个导联的心电信号,要实现心电图打印,必需将盯连两个心电数据用线衔接。即对于一条心电曲线,起始显示数据点在起始列只显示1点;从其次个数据点开头,要在下一列显示上一数据点到此次数据点之间的线段。在热敏打印纸上表现为将两数据点之间的点都加热,对应于内存则是将两点之间的数据都置1。对于导联的心电信号,先读出第一个心电数据,将其转换成32字节位置数据挺直打印。从其次个心电数据开头,除了要转换成位置数据外,还要与上一个数据相比较,用大数对应的位置数据减去小数对应的,然后结果与大数的位置数据

14、相加,结果即为此心电数据应送打的32字节数据,也即完成了与上一心电数据连线的操作。分析发觉连线算法只影响相连两个位置数据中非零字节之间的数据,为了简化计算,只需对这些字节举行减法操作,而不必计算全部的32个字节。对于加法,也只需将大数对应位置数据中的非零字节举行加法,即举行单字节加法。举例解释,对于导联v6心电信号,前一个数据37h,下一个数据为55h,导联v6分配的打印区间为1dh3dh,根据位置数据转换算法,37h的位置数据为第37h字节,该字节内容为80h,其他字节都为00h;55h的位置数据为第33h字节,该字节内容为20h,其他字节为00h。因为37h55h,因此应是心电数据55h的位置数据减去33h的位置数据,计算4所示。table2.3 纵向打印程序纵向打印能够实现将12导联数据无重叠同步显示。这样医生可以参考比较同一时刻的各个波形的变幻趋势,为疾病的诊断提供便利。热敏打印纸宽度为216mm,辨别率为8dot/mm,这样最多能够打印1728点,将这些点与某一导联延续的1728个心电数据相对应,也就是说导联挨次第n个数据对应于一线图形中的第n个点。与模向打印相比纵向打印仍然要解决将离散的点衔接起来的问题;但与横向挨次打印方式,即打印点按时光挨次打印相比,其难点在于需要将不同时刻同一幅值的多个点同时打印出来,即打印点按空间挨次打

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论