本发明涉及打印机技术,特别是微型打印机及其驱动 。
背景技术:
传统的微针打印机芯驱动模式必须使用特殊的MCU 控制芯片、电机控制芯片和字库芯片。为了使用微型打印机芯, 程序必须首先通过串口将待打印字符的编码和打印位置信息 ESC命令发送至MCU,MCU根据ESC存储命令和字库IC 字符图形转换为打印头控制信号、纸电机控制信号、字车电机控制 信号等。
传统的微型打印机需要多个芯片的协同工作,特别是由于字库存储IC 价格昂贵,只能支持2-3种英文点阵字库,如5x7,7x7两种。以及 宋体或黑体黑体为基础GB宋体中文字库编码2312,字库数量少,字体大小固定,不能满足各种字体、字号票据打印场景的需要。
传统的微针打印机MCU,由于无法运行多任务操作系统 ,对于票据打印无线、有线云处理的微型打印机,必须使用嵌入式 CPU,如ARM或MIPS芯片,运行Linux内核,Linux或Android 操作系统。嵌入式。CPU,因为没有打印机控制器,所以外部专用 打印机MCU芯片实现打印功能。该方案需要外部专用打印机 MCU而字库芯片,大大增加了新型微型打印机的成本。同时,由于 双CPU降低了系统的可靠性。
技术实现要素:
针对现有技术的不足,本发明的目的是提供嵌入式微型 打印机及其驱动方法ARM CPU直接驱动打印头机芯驱动,直接驱动打印头和 系统自带的存储器MCU,字库芯片。同时,使用Linux系统中的中英文矢量字库,结合字库排版和处理 程序,可以打印任何大小的字体,特别适用于各种字体和大小的票据打印场景。
本发明的技术方案如下:一种基于Linux微型针式打印 系统:包括驱动打印机的驱动电路,驱动电路:
走纸电机采用嵌入式CPU上的GPIO或PWM控制器与电机控制 芯片输入端连接,电机控制芯片输出端与打印机芯的纸电机连接;
嵌入式打印头CPU上的GPIO经过MOS与打印机芯的打印头控制信号连接管或达林顿管;
回位传感器采用嵌入式CPU上的GPIO连接打印机芯的回位传感器 信号;
黑标传感器由嵌入式CPU上的GPIO黑标传感器 信号连接到打印机芯;
缺纸传感器采用嵌入式CPU上的GPIO连接打印机芯缺纸传感器 信号;
温度传感器采用嵌入式CPU上的ADC控制器连接到打印机芯的温度 传感器信号。
可选择电机驱动芯片GPIO或PWM一个信号。
根据实际硬件选择打印头MOS管或达林顿管。
优选的,根据回位传感器GPIO状态判断打印头是否归位,然后根据打印头位置控制字车电机。
根据黑标传感器,优选GPIO状态判断打印纸是否检测到黑 标记,然后根据打印驱动程序设置的配置控制走纸电机。
根据缺纸传感器GPIO状态判断打印纸是否存在。然后 根据打印驱动程序设置的配置对打印程序进行相应处理。
根据温度传感器优化ADC判断打印头是否过热,然后根据打印驱动程序设置的配置对打印速度和打印模式进行相应的 处理。
一种基于Linux微针打印机打印驱动方法,包括:
第一步:当需要打印的应用程序向打印驱动发出打印请求 时,向电机芯片发出控制信号,要求电机移动,并将电机架上的打印头移动到指定位置;
第二步:根据应用程序发送的打印数据,将打印请求转换为 打印头支持的驱动信号,逐列打印;
第三步:将打印数据的行间距转换为走纸请求,并将走纸请求转换为打印机走纸电机支持的驱动信号进行走纸移动控制的装置 ;
步骤4:将打印机必要的属性信息 装置返回发送请求的应用程序;
此外,步骤还包括:根据接收到的打印机语言安排打印装置 进行打印操作。
此外,步骤还包括:将打印状态信息发送到打印驱动接口。
打印机的必要属性信息包括以下部分或全部信息:缺 纸状态,打印纸黑标状态。
在上述打印机驱动程序步骤中,步骤1根据实际驱动 接口接收打印机请求和数据,执行相应的打印动作和纸张行动。
在上述打印机驱动程序步骤中,步骤2根据实际驱动 接口报告打印机状态Linux内核UEVENT事件。
在上述打印机驱动程序步骤中,步骤3根据实际驱动 接口将打印机缺纸、打印纸黑标状态返回。
应用本发明只需嵌入式CPU及Linux在系统上,增加电机 驱动IC,打印头驱动MOS管道或达林顿管可以通过安装打印机驱动 程序、字库排版和处理程序打印。这种驱动方式不仅可以降低硬件成本,提高系统的可靠性Linux操作系统下的微 型针式打印提供一种便于操作,低成本,且行之有效的方法。
附图说明
图1是本发明的打印驱动功能框图。
图2是本发明的打印驱动程序流程图。
具体实施方法
下面将结合本发明实施例中的附图,对本发明实施例中的技术 方案进行清晰、完整的描述。显然,所描述的实施例只是本发明的部分实施例,而不是所有的实施例。基于本发明中的实施例,本发明保护范围内的所有其他 实施例均属于本发明。
首先,在有打印要求的设备上添加打印机芯驱动所需的设备 和电路,其电路的功能框图如图1所示。微型打印机包括嵌入式 CPU10,马达驱动IC20.通过电路或电线与打印机芯30连接通信。其中,打印机芯30包括电路通信连接的纸电机31、字车电机32、 打印头33、回位传感器34、黑标传感器35、温度传感器36,其中:
走纸马达31嵌入式CPU上的GPIO或PWM控制器与电机控制 芯片输入端连接,电机控制芯片输出端与打印机芯的纸电机连接 ;
字车马达32嵌入式CPU上的GPIO或PWM控制器与字车电机控制芯片输入端连接,电机控制芯片输出端与打印机芯字车电机连接;
打印头33由嵌入式CPU上的GPIO经过MOS与 打印机芯的打印头控制信号连接管或达林顿管。
回位传感器34嵌入式CPU上的GPIO连接打印机芯的回位传感器信号。
黑标传感器35嵌入式CPU上的GPIO连接打印机芯的黑标传感器信号。
缺纸传感器采用嵌入式CPU上的GPIO连接打印机芯缺纸传感器 信号。
温度传感器36CPU上的ADC控制器连接到打印机芯的温度 传感器信号。
根据选择马达驱动芯片20GPIO或PWM一个信号。
打印头33根据实际硬件选择MOS一种管道或达林顿管。
根据回位传感器34,GPIO判断打印头是否归位,然后根据驱动程序设置的打印头位置调整控制字车电机。
根据黑标传感器35GPIO判断打印纸是否检测到黑标,然后根据打印驱动程序设置的配置调整和控制走纸电机。
根据缺纸传感器GPIO状态判断打印纸是否存在。然后根据 打印驱动程序设置的配置,打印程序提示故障。
根据温度传感器36的优选ADC判断打印头是否过热,然后根据打印驱动程序设置的配置调整或待机打印速度和打印模式。
在本发明的具体实施例中,电机驱动芯片20支持走纸电机和字车电机驱动微针 打印机。电机芯片在Linux在下一个驱动 程序中,需要根据实际的硬件配置参数进行修改。根据实际电机相位 控制、驱动电流控制、加减速控制,修改驱动程序。Linux可在系统下完成字车电机和走纸电机的控制。
所需的打印头驱动MOS支持微针打印 机打印头驱动的管道或达林顿管。打印头在Linux在下一个驱动程序中,需要根据实际 的硬件配置参数进行修改。根据实际打印针数9针或18针,打印 头回针时间,打印头线圈最大负载时间,修改驱动程序。Linux打印头可以在系统下控制。
回位传感器、缺纸传感器、黑标传感器、温度传感器所需要的 GPIO或ADC支持微针打印机回位检测、缺纸检测、 黑标检测、温度检测的信号。Linux在驱动程序中,需要根据实际硬件 配置参数进行修改。Linux打印机回位、缺 纸、黑标、温度状态检测可在系统下进行。
图2作为本发明的具体实施例,提供了应用本发明的打印驱动 程序流程图,该程序运行在有打印要求的设备上,包括:
S100、初始化打印机驱动程序;
S接收应用程序的打印请求;
S120.接收待打印的字符行预处理数据到共享内存Buffer1,Buffer2;
S130、检查单向Buffer1的数据合法性;
S140.驱动字车电机加速到字符行开始打印的位置;
S150、根据Buffer1对应点位置的值驱动9针或18针打印头 针或不针;
S160.将字车电机驱动到下列位置;
循环执行步骤S150、S160,直到所有列数据都打印完毕。
S170检查双向Buffer2.数据合法性;
S180如果Buffer如果不是空的,控制电机反向;
S190驱动字车电机加速到字符行起始打印位置;
S200根据Buffer2对应点位置的值驱动9针或18针打印头出 针或不出针;
S210驱动字车电机至下列位置;
循环执行步骤S200,S210直到所有列数据都打印完毕。
S根据打印要求的行间距,将纸电机驱动到指定距离对应 的步数。
S230打印结束。
在打印机驱动程序的实施步骤中,驱动程序根据实际驱动接口接收打印机请求和数据,执行相应的打印动作和纸动作,并报告 打印机状态Linux内核UEVENT事件、回送打印机缺纸状态、打印 纸黑标状态。
虽然本发明的实施例已经展示和描述,但对于本领域的普通技术人员来说,可以理解这些实施例可以在不脱离本发明原理和精神的情况下进行各种变化、修改、更换和变化。范围由 所附权利要求及其等同物限定。