
58mm USB热敏打印机(含写字库源代码、字库软件及USB电脑打印模式等)-电路方案
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本项目提供一款58mm USB热敏打印机的设计方案,包含字体库源码、字库软件和USB电脑连接打印功能,适用于各类小型票据打印需求。
可能感兴趣的项目设计包括应用于POS机、收银机等设备的80mm高速微型打印机(包含原理图、上位机及程序源码)。该项目中对字库进行了如下改组:将16x16大小的汉字拆分为左边从上到下共16个字节和右边同样数量的字节,这样可以将一个完整的汉字视作两个16x8字符或数字来处理。经过这种重组后,在RAM读出送往打印机时,无论是中文还是字母、数字,第n行点对应的字节数据为:n, n+16, n+32...一行取48个字节,总共包含384个像素点。
对于24x24大小的汉字,则将其拆分为左边和右边两部分各含24行X 12列的数据。每行数据以半字(即16位中的低12位)形式存储,左右两边各有24个半字或共96个字节。这样处理后的一个完整汉字可以被视作两个24x12的字符或者数字来操作。在打印时,从SPI FLASH读取的数据按照这种格式进行。
高速SPI接口用于传输数据,在打印过程中,字模信息会通过SPI接口从W25Q16中读出,并送入打印机头准备输出。对于一行包含16个汉字的情况(每个汉字96个字节),总共需要处理的字节数为1536。
字符行与行之间通常间隔一到三个空行,打印速度最快时可达每秒90毫米,在这种情况下走完一行大约耗时694微秒。因此,在这个时间内必须将所有1536个字节读取并放入RAM缓冲区中准备输出。代码里设置SPI传输速率为28.8Mbps以确保高效的数据流,同时利用PDMA(Peripheral Direct Memory Access)来完成数据的接收与发送。
点阵信息移入打印头时采用4.8 Mbps的SPI速率,384个像素点所需的时间大约为 384/4.8 = 80微秒。即使在最快的走纸速度下也能及时传输完毕,并留有余地以适应更高的速度要求。
USB打印机模式则允许上位机通过图形点阵数据与命令混合的格式进行通信,无需从SPI FLASH中读取字模信息。代码定义了一个4096字节大小的环形缓冲区用于接收和处理来自USB的数据流。在接收到打印或走纸指令时,将相应的行数信息传递给主循环。
主程序会根据当前状态决定是否启动新的走纸动作,并检查是否有待输出到打印机头的数据准备就绪以立即进行加热并开始输出过程。整个过程中三者(即数据传输、加热和机械移动)的同步协调由定时器中断代码来实现,确保打印任务能够无缝且高效地完成。
在实际操作中,启动走纸的过程只需设定速度值,并调用相应的函数即可自动执行;停止或调整行数则通过修改全局变量来动态控制。整个系统设计注重于流程自动化和灵活性,以适应不同应用场景下的需求变化。
全部评论 (0)


