心电图热敏打印机的设计
心电图机现代社会运用的还是很广泛的,有的时候去医院就不是很方便,现在的心电图机还是挺方便携带的,冬天比较冷的时候,老人的话出门就不太方便,现在在家里测量心电图还是很受欢迎的。
软件的主要功能是接收来自主机(心电图机)通过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的原因之一。
软件设计中的另一个关键技术就是将打印数据映射成点,再打印到纸上。映射的点必须和打印纸上的点一一对应,所以合理分配每导在打印纸上的空间就十分重要,既要分配充分,又不能相互重叠。打印纸的宽度是216ms,与1728个点相对应,12导可以成行排列同时打印。