linux系统如何运行python程序,如何在linux中运行python程序

  linux系统如何运行python程序,如何在linux中运行python程序

  本发明涉及打印机技术领域,尤其涉及一种微型打印机及其驱动方法。

  背景:

  在传统的微型针式打印机机芯驱动模式下,必须使用专用的MCU控制芯片、电机控制芯片和字体芯片。为了使用微型打印机核心,应用程序必须首先通过串行ESC命令将待打印字符的代码和打印位置信息发送给MCU。在打印之前,MCU根据ESC命令将字体存储IC中的字符转换成打印头控制信号、进给电机控制信号和托架电机控制信号。

  传统的微型打印机需要多个芯片协同工作,尤其是字体存储IC价格昂贵,只能支持2-3种英文点阵字体,如5x7、7x7。以及基于GB2312编码的宋体中文字体库,宋体或黑体。字体数量少,字体大小固定,无法满足各种字体大小的票据打印场景需求。

  传统微型针式打印机的MCU不能运行多任务操作系统,所以对于票据打印的无线和有线云处理的微型打印机,必须使用ARM或MIPS芯片等嵌入式CPU来运行Linux内核、Linux或Android操作系统。嵌入式CPU,因为没有打印机控制器,所以连接一个专用的打印机MCU芯片来实现打印功能。这种方案需要外部专用打印机MCU和字体芯片,大大增加了新型微型打印机的成本。同时,由于双CPU架构,系统可靠性下降。

  技术要素:

  鉴于现有技术的不足,本发明的目的在于提供一种新型微型打印机及其驱动方法,利用嵌入式ARM CPU直接驱动打印头和系统自身的存储器,而不需要额外的专门动作来驱动MCU和字体芯片。同时,使用Linux系统中英文矢量字体,配合字体排版处理程序,可以打印任意大小字体,尤其适用于各种字体和字号的票据打印场景。

  本发明的技术方案是:一种基于Linux系统的微型针式打印机,包括驱动打印机的驱动电路,其中:

  送纸电机通过嵌入式CPU上的GPIO或PWM控制器与电机控制芯片的输入端连接,电机控制芯片的输出端与打印机机芯的送纸电机连接;

  打印头通过MOS管或达林顿管通过嵌入式CPU上的GPIO与打印机核心的打印头控制信号连接;

  回程传感器通过嵌入式CPU上的GPIO与打印机机芯的回程传感器信号连接;

  黑标传感器通过嵌入式CPU上的GPIO与打印机核心的黑标传感器信号连接;

  缺纸传感器通过嵌入式CPU上的GPIO与打印机机芯的缺纸传感器信号连接;

  温度传感器通过嵌入式CPU上的ADC控制器与打印机核心的温度传感器信号相连。

  优选地,电机驱动芯片可以选择GPIO或PWM信号之一。

  优选地,打印头根据实际硬件选择MOS管或达林顿管。

  优选地,根据原位传感器GPIO的状态判断打印头是否原位,然后根据打印头的位置控制滑架电机。

  优选地,根据黑色标记传感器的GPIO状态判断打印纸上是否检测到黑色标记,然后根据打印驱动器设置的配置控制进纸电机。

  优选地,根据缺纸传感器的GPIO状态来判断是否存在打印纸。然后,根据打印驱动程序设置的配置,相应地处理打印程序。

  优选地,根据温度传感器的ADC值判断打印头是否过热,然后根据打印驱动程序设置的配置处理打印速度和打印模式。

  本发明涉及一种基于Linux的微型针式打印机的打印驱动方法,包括以下步骤:

  步骤1,当有打印需求的应用程序向打印驱动器发送打印请求时,向电机芯片发送控制信号,请求托架电机移动,将托架上的打印头移动到指定位置的装置;

  步骤2,根据应用程序发送的打印数据,将打印请求转换成打印头支持的驱动信号并逐行打印文字的装置;

  步骤3,根据行距将打印数据转换成送纸请求,并将送纸请求转换成打印机送纸电机支持的驱动信号,进行送纸运动控制的安装;

  步骤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通过MOS管或达林顿管由嵌入式CPU上的GPIO连接到打印机核心的打印头控制信号。

  回程传感器34通过嵌入式CPU上的GPIO与打印机机芯的回程传感器信号连接。

  黑色标签传感器35通过嵌入式CPU上的GPIO与打印机核心的黑色标签传感器连接。

  缺纸传感器通过嵌入式CPU上的GPIO与打印机核心的缺纸传感器信号相连。

  温度传感器36通过嵌入式CPU上的ADC控制器与打印机核心的温度传感器信号连接。

  电机驱动芯片20选择GPIO或PWM信号之一。

  打印头33根据实际硬件选择MOS管或达林顿管之一。

  根据返回传感器34的GPIO状态来控制打印头位置,然后根据驱动器设置的打印头位置来调节和控制滑架电机。

  根据黑色标记传感器35的GPIO状态,然后根据由打印驱动器设置的配置,纸张馈送电机被调节和控制。

  根据缺纸传感器的GPIO状态判断是否有打印纸。然后根据打印驱动设置的配置,打印程序给出故障提示。

  优选地,根据温度传感器36的ADC值来判断打印头是否过热,然后根据打印驱动器设置的配置来调整打印速度和打印模式或使其待机。

  在本发明的具体实施例中,电机驱动芯片20来支持微型针式打印机的送纸电机和滑架电机的驱动。Linux下的电机驱动顺序需要根据实际的硬件配置参数进行修改。根据实际的电机相位控制、驱动电流控制、加减速控制,修改了驱动程序。这样就可以在Linux系统下完成对滑架电机和送纸电机的控制。

  打印头驱动需要MOS管或达林顿管,以支持微型针式打印机的打印头驱动。Linux下的打印头驱动需要根据实际的硬件配置参数进行修改。根据9针或18针的实际打印头针数、打印头针返回时间和打印头线圈的最大负载时间,修改驱动程序。这样就可以在Linux系统下控制打印头。

  返回传感器、缺纸传感器、黑标传感器和温度传感器所需的GPIO或ADC信号,以支持微型针式打印机的返回检测、缺纸检测、黑标检测和温度检测。Linux驱动需要根据实际的硬件配置参数进行修改。这样在Linux系统下可以检测到打印机的退纸、缺纸、黑标、温度状态。

  作为本发明的一个具体实施例,图2示出了应用本发明的打印驱动程序的流程图,该驱动程序运行在具有打印需求的设备上,该驱动程序的步骤包括:

  S100,初始化打印机驱动程序;

  S110、接收应用程序的打印请求;

  S120,将待打印的一行字符的预处理数据接收到共享内存Buffer1和Buffer2中;

  S130,检查单向缓存器1的数据合法性;

  S140,驱动滑架电机加速至字符行的初始打印位置;

  S150。根据Buffer1对应点位置的值,驱动9针或18针打印头是否出针;

  S160,驱动滑架电机到下一个位置;

  循环步骤S150和S160,直到打印完所有列数据。

  S170检查双向缓冲器2的数据合法性;

  S180,如果缓冲器2不为空,控制电机反转;

  S190驱动滑架电机加速到字符行的初始打印位置;

  S200根据缓冲器2对应点位置的值驱动9针或18针打印头是否出针;

  S210,把马车马达开到下一个位置;

  循环步骤S200和S210,直到打印完所有列数据。

  S220根据打印请求的行距,将进纸电机驱动到与指定距离相对应的步数。

  S230打印结束。

  在打印机驱动程序的实现步骤中,驱动程序根据实际的驱动程序接口接收打印机请求和数据,执行相应的打印动作和进纸动作,上报打印机状态Linux内核UEVENT事件,发回打印机缺纸状态和打印纸黑标状态。

  尽管已经示出和描述了本发明的实施例,但是本领域技术人员将理解,在不脱离本发明的原理和精神的情况下,可以对这些实施例进行许多改变、修改、替换和变化,并且本发明的范围由所附权利要求及其等同物来限定。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: