嵌入式设备和USB打印机的交互建立方法和装置与流程

文档序号:18141955发布日期:2019-07-10 11:10阅读:235来源:国知局
嵌入式设备和USB打印机的交互建立方法和装置与流程

本发明涉及嵌入式,具体地涉及嵌入式设备和usb打印机的交互建立方法和装置。



背景技术:

目前随着嵌入式设备在国内得到了广泛的应用,其自身协议也在飞速的发展以满足各种硬件设备和业务需求。目前市面上所售的usb接口的税控打印机都需要桌面级系统(windows和linux桌面版)的驱动支持,这是为了迎合主流的用户群的需求为蓝本的。但是随着嵌入式设备的广泛使用,越来越多的用户需要在这些设备上支持更多的外设产品,但是通过串口协议进行数据传输会导致税控打印机和嵌入式设备由于串口通信传输速率的低效,引发打印税控发票延迟性的问题。



技术实现要素:

本发明实施例的目的是提供一种嵌入式设备和usb打印机的交互建立方法和装置,该嵌入式设备和usb打印机的交互建立方法和装置可以使嵌入式设备通过usb打印机进行打印。

为了实现上述目的,本发明实施例提供一种嵌入式设备和usb打印机的交互建立方法,该嵌入式设备具有嵌入式系统,该方法包括:接收主机针对所述嵌入式系统生成的可执行代码;以及执行所述可执行代码以获取与所述usb打印机进行交互所需的配置以便于进行交互。

优选地,所述嵌入式系统为arm嵌入式系统。

优选地,所述配置包括:基于所述usb打印机的控制指令接口、基于所述usb打印机的打印指令集封装的动态库以及基于所述usb打印机的专用设备驱动。

优选地,所述可执行代码包括:与所述usb打印机对应的驱动可执行代码和动态库可执行代码。

优选地,所述可执行代码是所述主机使用对应所述嵌入式系统的工具链交叉编译驱动源代码和动态库源代码生成的。

优选地,所述工具链包括二进制程序处理工具、编译器以及函数库软件包。

本发明实施例还提供一种嵌入式设备和usb打印机的交互建立装置,该嵌入式设备具有嵌入式系统,该装置包括:接收模块和处理模块,其中,所述接收模块用于接收主机针对所述嵌入式系统生成的可执行代码;以及所述处理模块用于执行所述可执行代码以获取与所述usb打印机进行交互所需的配置以便于进行交互。

优选地,所述配置包括:基于所述usb打印机的控制指令接口、基于所述usb打印机的打印指令集封装的动态库以及基于所述usb打印机的专用设备驱动。

优选地,所述可执行代码包括:与所述usb打印机对应的驱动可执行代码和动态库可执行代码。

优选地,所述可执行代码是所述主机使用对应所述嵌入式系统的工具链交叉编译驱动源代码和动态库源代码生成的。

通过上述技术方案,采用本发明提供的嵌入式设备和usb打印机的交互建立方法和装置,该嵌入式设备具有嵌入式系统,该方法包括:接收主机针对所述嵌入式系统生成的可执行代码;以及执行所述可执行代码以获取与所述usb打印机进行交互所需的配置以便于进行交互。本发明可以使嵌入式设备与usb打印机之间进行数据交互,使嵌入式设备可以通过usb打印机进行打印。

本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:

图1是本发明一实施例提供的嵌入式设备和usb打印机的交互建立方法的流程图;

图2是本发明一实施例提供的嵌入式设备的打印功能调用的示意图;

图3是本发明一实施例提供的启动嵌入式设备的usb打印机驱动的示意图;

图4是本发明一实施例提供的嵌入式设备和usb打印机的交互示意图;

图5是本发明一实施例提供的嵌入式设备和usb打印机的交互建立装置的结构示意图。

附图标记说明

1接收模块2处理模块。

具体实施方式

以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。

图1是本发明一实施例提供的嵌入式设备和usb打印机的交互建立方法的流程图。如图1所示,该嵌入式设备具有嵌入式系统,该方法包括:接收主机针对所述嵌入式系统生成的可执行代码(步骤s11);以及执行所述可执行代码以获取与所述usb打印机进行交互所需的配置以便于进行交互(步骤s12)。

本发明使用的操作系统优选为linux操作系统,嵌入式系统为arm嵌入式系统。它的系统架构由5部分组成,分别是:userapplications、clibrary、systemcallinterface、kernel、architecture-dependentkernelcode,本发明是增加linux内核usb打印机的驱动和相关的动态库接口所实现的。

优选地,本发明mcu处理器是nuc972芯片,它是以arm926ejs为核心的系统级单芯片。包含了16kbi-cache以及16kbd-cache以及mmu内存管理模块。最高支持到300mhz的频率,并且提供了丰富的外设接口。usb打印机选用的wd-710。此打印机的打印系统是9针串行点阵击打式,打印方式是双向逻辑定位,纸张类型为高质普通白纸卷纸或压敏卷纸。

由于需要在嵌入式设备上通过usb打印机进行打印操作,势必要与usb打印机进行交互,包括与usb打印机进行连接以及发送打印指令和打印要求等命令至usb打印机。为了解决嵌入式设备无法支持usb打印机的问题,本发明提出了一种在嵌入式设备上添加usb打印机的驱动和打印机指令集封装动态库的方法,来支持大部分的usb打印机。

移植usb打印机驱动的方法牵扯到内核、驱动层和应用层等多方面的因素,其重点在于底层硬件驱动的完整支持和上层打印机所需要的各种打印接口相应的动态库的交叉编译移植和模板打印等方法:向上提供满足操作系统关于打印机应用框架层的接口,向下对打印机的usb驱动模块的各种读写控制功能进行封装。嵌入式设备不仅不具有usb打印机的驱动,而且由于每种usb打印机所对应的打印指令也都是各不相同,每个厂商都有他们自己的专有指令集,所以嵌入式设备也不能对usb打印机下达指令。因此在移植usb打印机专用驱动的同时,还需要编译和移植专用打印指令集封装动态库为上层应用使用打印模板而铺平道路。

对于上述移植,可以利用在linux操作系统的主机上对源代码进行交叉编译生成linux操作系统的嵌入式设备的开发平台可执行的代码,如果嵌入式设备是其他操作系统,则可同样利用对应系统的主机进行可执行代码的生成。

交叉编译可以理解为,在当前编译平台下,编译出来的程序能运行在体系结构不同的另一种目标平台上,但是编译平台本身却不能运行该程序。交叉编译的困难主要体现在不同的体系架构拥有不同的机器特性的问题(是64位还是32位系统、是大端还是小端系统、是否必修按照4字节对齐方式进行访问、默认数据类型是有符号还是无符号以及是否支持内存管理单元mmu)和交叉编译时的主机环境与目标环境不同的问题(配置问题、主从机器编译器不一致、编译链是否交叉、动态库和静态库是否交叉以及能否在本地进程测试)。

在交叉编译之后,嵌入式设备需要接收针对自身嵌入式系统的可执行代码,以便执行该可执行代码来获取与所述usb打印机进行交互所需的配置。该配置包括:基于所述usb打印机的控制指令接口、基于所述usb打印机的打印指令集封装的动态库以及基于所述usb打印机的专用设备驱动。

本发明中,可执行代码是所述主机使用对应所述嵌入式系统的工具链交叉编译驱动源代码和动态库源代码生成的,其中可执行代码包括:与所述usb打印机对应的驱动可执行代码和动态库可执行代码,嵌入式设备执行驱动可执行代码获取该usb打印机的驱动,执行动态库可执行代码获取该usb打印机的指令集封装的动态库。工具链包括二进制程序处理工具(binutils)、编译器(gcc)以及函数库软件包(glibc)。

嵌入式设备可以通过烧写、网络传输(例如nfs)以及串口传输,或者其它传输方式接收可执行代码。

图2是本发明一实施例提供的嵌入式设备的打印功能调用的示意图。如图2所示,将嵌入式设备分为用户空间和内核空间,基于标准模板的函数接口和基于所述usb打印机的控制指令接口位于用户空间,基于所述usb打印机的打印指令集封装的动态库、usb标准驱动以及基于所述usb打印机的专用设备驱动位于内核空间。基于所述usb打印机的控制指令接口和基于所述usb打印机的专用设备驱动通过驱动可执行代码移植,基于所述usb打印机的打印指令集封装的动态库通过动态库可执行代码移植。嵌入式设备自带usb标准驱动以及基于标准模板的函数接口,在获取上述配置之后,可以通过基于所述usb打印机的控制指令接口控制基于所述usb打印机的专用设备驱动以与usb打印机进行连接,并通过基于标准模板的函数接口和基于所述usb打印机的打印指令集封装的动态库发送数据,如此可以完成打印操作。

图3是本发明一实施例提供的启动嵌入式设备的usb打印机驱动的示意图。如图3所示,在移植usb驱动之后,可以通过依次使用usb主机控制器、usb主机控制器驱动(例如ohci、ehci)、usb核心(存储协议等)、usb设备驱动以及usb打印机的专用驱动等来启动usb打印机驱动,建立与usb打印机的连接。

图4是本发明一实施例提供的嵌入式设备和usb打印机的交互示意图。如图4所示,在移植上述usb打印机专用驱动和指令集封装动态库之后,usb打印机与嵌入式设备处理器通过usb总线接口进行数据和指令交互,然后usb打印机与上层应用通过调用标准打印模板来完成税控发票的打印。usb接线包括接地线gnd、电源线vbus以及用于传输数据点负电压数据线d-和正电压数据线d+。

与常规usb打印机操作方式一样,嵌入式设备可以对打印机的句柄和打印内容进行操控,包括打开和关闭usb打印机的usb端口、向usb打印机发送打印内容或指令、获取usb打印机的机号以及读取usb打印机返回的内容等。

图5是本发明一实施例提供的嵌入式设备和usb打印机的交互建立装置的结构示意图。如图5所示,该嵌入式设备具有嵌入式系统,该装置包括:接收模块1和处理模块2,其中,所述接收模块1用于接收主机针对所述嵌入式系统生成的可执行代码;以及所述处理模块2用于执行所述可执行代码以获取与所述usb打印机进行交互所需的配置以便于进行交互。

优选地,所述配置包括:基于所述usb打印机的控制指令接口、基于所述usb打印机的打印指令集封装的动态库以及基于所述usb打印机的专用设备驱动。

优选地,所述可执行代码包括:与所述usb打印机对应的驱动可执行代码和动态库可执行代码。

优选地,所述可执行代码是所述主机使用对应所述嵌入式系统的工具链交叉编译驱动源代码和动态库源代码生成的。

通过上述技术方案,采用本发明提供的嵌入式设备和usb打印机的交互建立方法和装置,可以使嵌入式设备与usb打印机之间进行数据交互,使嵌入式设备可以通过usb打印机进行打印。

以上结合附图详细描述了本发明实施例的可选实施方式,但是,本发明实施例并不限于上述实施方式中的具体细节,在本发明实施例的技术构思范围内,可以对本发明实施例的技术方案进行多种简单变型,这些简单变型均属于本发明实施例的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施例对各种可能的组合方式不再另行说明。

本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1