一种打印机的制作方法

文档序号:6364388阅读:223来源:国知局
专利名称:一种打印机的制作方法
技术领域
本发明属于打印设备技术领域,尤其涉及包括采用可编程器件FPGA(可编程门阵列,Field Programable Gate Array)或CPLD(以并行走线的可编程逻辑器件,Complex Programmable Logic Device)设计的打印机控制器的打印机。


图1所示,对于FPGA的编程,在生产的调试阶段,可以通过JTAG编程端口进行编程,JTAG编程方式是对FPGA直接编程。在产品上,是用配置芯片的方式进行编程,在打印机每次上电时,FPGA通过自带的编程接口自行读取存放在配置芯片的文件,从而对FPGA进行编程;打印机每次掉电时,FPGA的编程即删除。总之,对于FPGA,无论是JTAG编程方式还是配置芯片编程方式,都需要专用编程器和专用软件工具。对于CPLD的编程,生产时通过专用编程器和专用软件工具由人工通过JTAG编程端口进行。
具体到采用FPGA或CPLD设计的打印机控制器的打印机,尽管在修正或升级打印机控制器的硬件设计时无须更换打印机控制器,但是,需要对FPGA或CPLD重新编程。当对FPGA重新编程时,必须打开打印机机壳替换相应的配置芯片;当对CPLD重新编程时,必须打开打印机机壳,用专用软件工具和硬件编程工具进行重编程。因此,这种打印机在对控制器硬件逻辑进行修正或升级的时候,不仅成本高,而且用户无法自己对打印机控制器进行修正和升级,需要专业维护人员才能完成重新编程工作。

发明内容
本发明的目的是提供一种打印机,该打印机的控制器不需要配置芯片,并且用户可以方便地对打印机控制器地硬件逻辑配置进行修正或升级。
本发明的技术方案如下一种打印机,包括采用可编程器件FPGA或CPLD进行硬件逻辑配置的打印机控制器,所述可编程器件FPGA或CPLD与打印机端口协议通信,配置文件通过打印机端口写入。所述打印机控制器内置一个编程硬件电路或者能实现编程的模块,该模块通过总线缓冲和总线接口与打印机端口进行通讯,并将打印机端口写入的配置文件数据按所述可编程器件FPGA或CPLD的编程接口时序写入可编程器件FPGA或CPLD。
所述打印机端口可以是IEEE1284端口、USB端口、Standard TCP/IP端口或其它打印机协议端口。
本发明的打印机,其打印机控制器采用可编程器件FPGA或CPLD进行硬件逻辑配置。
对于可编程器件FPGA,其编程的实现过程是1.在指定目录下存储配置文件。
2.打印机驱动程序(如打印监控器程序)或者设备驱动在每个开始打印作业时通过读取打印机状态(如用GetDeviceID)来确定FPGA是否需要编程,打印机控制器每次上电后需要编程,因此在开始打印作业时(如在StartDocPort()函数中)判断是否要编程,若控制器上电后第一次打印作业则进行编程。
3.当确认FPGA需要进行编程时,打印机驱动程序或者设备驱动负责打开指定目录下的配置文件、读该文件、写到相应的打印机端口,由打印机控制器内置的编程硬件电路或能实现编程的模块负责打印机端口的数据通讯,并将打印机端口写入的配置文件数据按FPGA的编程接口时序写入FPGA(编程接口时序由FPGA供应商提供)。写配置文件过程中可能需要插入一些配置相关的命令(如加入‘FPGA配置开始命令’,‘FPGA配置结束命令’)。当打印机驱动程序或设备驱动完成写配置文件后,检测编程是否成功(如用GetDeviceID函数)。如果编程不成功,可以进行第二次编程,再次检测编程是否成功;若还是失败,打印监控程序提示错误信息。
4.在FPGA编程成功完成后,FPGA将获得打印机端口的控制权,此时编程硬件电路或能实现编程的模块将打印机端口的通讯工作交付FPGA(例如,打印机端口采用IEEEE1284端口时,具体可用FPGA的CfigDone信号控制,如图3所示)。
对于可编程器件CPLD,其编程的实现过程是1.在指定目录下存储配置文件,并在打印机相关目录的注册库中设置标志位;2.打印机驱动程序(如打印监控器程序)或者设备驱动在每个开始打印作业时通过读取注册库中的标志位确定CPLD是否需要重新编程,若注册库中设置标志位被设置则进行编程(编程可以在StartDocPort()函数进行)。
3.当确认CPLD需要重新编程时,打印机驱动程序(如打印监控器程序)或者设备驱动负责打开指定目录下的配置文件、读该文件、写到相应的打印机端口,由打印机控制器内置的编程硬件电路或能实现编程的模块负责打印机端口的数据通讯,并将打印机端口写入的配置文件数据按CPLD的编程接口时序写入CPLD(编程接口时序由CPLD供应商提供)。过程中可能需要插入一些配置相关的命令(如加入“CPLD配置开始命令”,“CPLD配置结束命令”)。当打印机驱动程序或设备驱动完成写配置文件后,检测编程是否成功(如用GetDeviceID函数)。如果编程不成功,可以进行第二次编程,再次检测编程是否成功;若还是失败,打印监控程序提示错误信息。
4.在CPLD编程成功完成后,清相应注册库中的标志位。CPLD将获得打印机端口的控制权,此时编程硬件电路或能实现编程的模块将打印机端口的通讯工作交付CPLD。(例如,打印机端口采用IEEEE1284端口时,具体可用CPLD的CfigDone信号控制,如图3所示。)一般情况下,都是打印机驱动程序或者设备驱动负责判断可编程芯片FPGA或者CPLD是否需要编程并进行写配置文件。当打印机被作为一PnP(即插即用)设备时(如USB打印机),也可以将编程操作设计在设备驱动的StartDevice例程中。
本发明的打印机,实质是将对可编程器件进行编程的专用编程软件设计在打印机驱动程序(如打印监控器程序)或打印设备驱动中,并加入一些和打印机驱动程序相关的控制,使编程过程能随打印过程一起按要求自行完成(如通过读取打印机状态或者注册库中的设置标志位来分别确定FPGA和CPLD是否需要编程、加入PJL命令‘配置开始命令’和‘配置结束命令’等);将硬件编程工具的硬件电路或实现该电路功能的模块设计在打印机控制器上(如图2所示)。
本发明的打印机,如果需要修正或升级当前打印机控制器,打印机用户只需运行打印机控制器生产商提供的修正程序或升级程序,修正程序或升级程序将更新当前存放在指定目录下的配置文件(编程文件),重新启动打印机即可完成对打印机控制器硬件逻辑的修正或升级,有时需要在打印机相关目录的注册库中设置标志位(针对CPLD)。打印机控制器无须配置芯片(针对FPGA)或在生产时无须预编程(针对CPLD),因此生产时无须用专用编程器和专用软件工具进行编程(写配置芯片或对CPLD编程)。
本发明的优点和积极效果打印机用户可以象软件升级一样方便地修正或升级打印机控制器;打印机控制器开发商可以方便地升级打印机控制器,无需专业人员现场升级;打印机控制器的生产流程中可以省去编程这一环节;对于FPGA更可以省配置用芯片、节省控制器成本。
打印机,包括采用可编程器件FPGA或CPLD进行硬件逻辑配置的打印机控制器,如图2所示,可编程器件FPGA或CPLD与打印机端口协议通信,配置文件通过打印机端口写入。打印机控制器内置一个编程硬件电路或者能实现编程的模块,该模块通过总线缓冲和总线接口与打印机端口进行通讯,并用于将打印机端口写入的配置文件数据按所述可编程器件FPGA或CPLD的编程接口时序写入可编程器件FPGA或CPLD。
实例中使用的打印机端口可以为IEEE1284端口、USB端口或者Standard TCP/IP端口。
对于IEEE1284端口、Standard TCP/IP端口,实例中将编程函数ConfigFpga()或者ConfigCpld()的调用设计在端口监控器程序的StartDocPort()函数中;对于USB端口,实例中将编程函数ConfigFpga()或者ConfigCpld()的调用设计在USB设备驱动程序的StartDevice()中。因为USB端口的打印机是一PnP设备,所以在StartDevice()中无条件调用编程函数。
对于FPGA,编程函数ConfigFpga()执行如下操作1.在每个开始打印作业时通过读取打印机状态来确定FPGA是否需要编程,若打印机控制器是上电后第一次打印作业则进行编程;2.当FPGA编程完成以后,检测编程是否成功(如用GetDeviceID函数);3.在FPGA编程成功以后,FPGA将获得打印机端口的控制权,此时编程硬件电路或能实现编程的模块将打印机端口的通讯工作交付FPGA。
对于CPLD,编程函数ConfigCpld()执行如下操作1.在每个开始打印作业时通过读取注册库中的标志位来确定CPLD是否需要重新编程,若注册库中设置标志位被设置则进行编程;2.当CPLD编程完成以后,检测编程是否成功(如用GetDeviceID函数);3.在CPLD编程成功以后,清相应注册库中的标志位,CPLD将获得打印机端口的控制权,此时编程硬件电路或能实现编程的模块将打印机端口的通讯工作交付CPLD。
实例中总线缓冲或总线接口模块如下1.如图3所示,对于IEEE1284端口,该模块是总线缓冲电路及二选一电路;2.对于USB端口及Standard TCP/IP端口,该模块分别是USB接口芯片及TCP/IP网络协议接口芯片。
实例中编程硬件电路或能实现编程的模块该模块由一单片机(如89C51)实现(如图4所示)。单片机实现FPGA(或CPLD)芯片的编程是用软件仿真的方式实现1.对于IEEE1284端口,单片机的数据总线和IEEE1284的总线相连,用P2口与控制线相连(只须实现兼容模式),用程序仿真控制信号,将编程数据读入。数据读入后同样用程序仿真编程接口的时序将数据写入FPGA或CPLD。
2.对于USB端口及Standard TCP/IP端口单片机按协议接口芯片的时序将编程数据读入。数据读入后用程序仿真编程接口的时序将数据写入FPGA或CPLD(同上)。
权利要求
1.一种打印机,包括采用可编程器件FPGA或CPLD进行硬件逻辑配置的打印机控制器,所述可编程器件FPGA或CPLD与打印机端口协议通信,配置文件通过打印机端口写入,其特征在于所述打印机控制器内置一个编程硬件电路或者能实现编程的模块,该模块通过总线缓冲和总线接口与打印机端口进行通讯,并用于将打印机端口写入的配置文件数据按所述可编程器件FPGA或CPLD的编程接口时序写入可编程器件FPGA或CPLD。
2.如权利要求1所述的打印机,其特征在于,所述打印机端口为IEEE1284端口,与所述编程硬件电路或能实现编程的模块通过总线缓冲电路及二选一电路协议通信。
3.如权利要求1所述的打印机,其特征在于,所述打印机端口为USB端口,与所述编程硬件电路或能实现编程的模块通过USB接口芯片协议通信。
4.如权利要求1所述的打印机,其特征在于,所述打印机端口为Standard TCP/IP端口,与所述编程硬件电路或能实现编程的模块通过TCP/IP网络协议接口芯片协议通信。
5.如权利要求1或2或3或4所述的打印机,其特征在于,所述编程硬件电路或能实现编程的模块为单片机。
全文摘要
本发明提供了一种打印机,包括采用可编程器件FPGA或CPLD进行硬件逻辑配置的打印机控制器,所述可编程器件FPGA或CPLD与打印机端口协议通信,所述打印机控制器内置一个编程硬件电路或者能实现编程的模块,该模块通过总线缓冲和总线接口与打印机端口进行通讯,并将打印机端口写入的配置文件数据按所述可编程器件FPGA或CPLD的编程接口时序写入可编程器件FPGA或CPLD。本发明的打印机,如果需要修正或升级当前打印机控制器,打印机用户只需运行打印机控制器生产商提供的修正程序或升级程序即可,无需专业人员现场升级;打印机控制器的生产流程中可以省去编程环节;对于FPGA更可以省配置用芯片、节省控制器成本。
文档编号G06F13/14GK1462954SQ0313708
公开日2003年12月24日 申请日期2003年6月18日 优先权日2003年6月18日
发明者徐忠良, 陈文先 申请人:上海北大方正科技电脑系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1