基于FPGA的喷墨打印机控制系统

  • 投稿胡杨
  • 更新时间2015-09-11
  • 阅读量539次
  • 评分4
  • 40
  • 0

高德洋,侯立刚,张志远

(北京工业大学集成电路与系统研究室,北京100124)

摘要:提出一种基于FPGA的喷墨打印机控制系统,使用Altera公司的FPGA芯片EP1C6Q240C8作为控制核心,把喷墨打印机分为两部分研究,控制喷墨打印机喷墨的打印头与控制喷墨打印机走纸的步进电机,实现喷墨打印机打印头的喷墨与步进电机的走纸运动的联合控制。实验结果表明,该系统不但能实现对喷墨打印机的高精度控制,并且具有操作简单、可升级性强等特点。

教育期刊网 http://www.jyqkw.com
关键词 :FPGA;喷墨打印机;打印头;步进电机

中图分类号:TN709?34 文献标识码:A 文章编号:1004?373X(2015)18?0064?04

收稿日期:2015?04?25

基金项目:国家自然科学基金(61204040,60976028);教育部博士点基金(20121103120018);北京市教育委员会科技计划面上项目(JC002999201301);北京市自然科学基金(4152004)

喷墨打印机摒弃了原始打印机的击打的工作方式,采用更为先进的微压控制技术与气泡喷墨控制技术,其无论在体积上、可操作性上、打印噪音的控制方面,较原始的打印机都有很大的突破,使用专用纸张时可以打印出与照片相媲美的图片。所以,研发喷墨打印机的控制系统,是制造自主知识产权的喷墨打印机的基础,也是制造以喷墨打印机作为输出部件的设备的重要基础。

现场可编程门阵列(Field Programmable Gate Ar?ray,FPGA)是在PAI,GAL 等逻辑器件的基础上发展起来的。由于它具有集成度高、速度快、开发周期短、费用低、用户可定义功能及可重复编程和擦写等许多优点,其应用领域不断扩大。这些器件的灵活性和通用性使它们成为了研制和开发复杂数字系统的理想选择[1]。

在国内,对于喷墨打印机的打印头与电机联合控制的研究相对较少,而且大多数的控制核心芯片采用单片机,其速度、精度、开发周期、可操作性、可升级性等远不如FPGA,因此本文提出了一种基于FPGA的喷墨打印机控制系统,并且同时实现喷墨打印机的喷墨与走纸运动。

1 系统整体设计

如图1所示,本文将喷墨打印机的控制系统分为控制喷墨打印机喷墨的打印头与控制喷墨打印机走纸的步进电机,在FPGA 的控制下,实现对喷墨打印机的打印头的喷墨与步进电机的机械运动的控制。喷墨打印机的工作共有3 种模式:FPGA 控制打印头喷墨;FPGA控制步进电机运动;FPGA对打印头和步进电机的联合控制。

1.1 FPGA控制打印头喷墨

1.1.1 打印头

喷墨技术主要分为微电压控制技术与气泡喷墨打印技术,本文采用的打印机头为气泡喷墨打印头,特点是打印头和墨盒集成在一起,喷头上集成喷嘴数量比微电压控制技术喷头上的喷嘴要多得多,喷嘴数量排列多,打印每一行的宽度也就宽,从而完成一页内容的时间就会短。因此气泡喷墨打印头在打印速度上要比微电压控制打印头快,对其进行控制系统的研究与搭建有重要的意义。

1.1.2 打印头的控制信号要求

打印头中共有7 个主要控制信号[2] S1~S6,K,其中S4,S5,S6是需要差分的信号:

S1:使能信号EN,3.3 V TTL电平,低电平有效;

S2:辅助信号A,3.3 V TTL电平,高电平有效;

S3:辅助信号B,3.3 V TTL电平,高电平有效;

S4:+(LVDS+ 信号高);

S4:-(LVDS- 信号低);

S5:+(LVDS+);

S5:-(LVDS-);

S6:+(LVDS+);

S6:-(LVDS-);

K:GND。

其中:使能信号S1为喷头的起始信号;S2,S3为辅助信号,分别对应数据信号S4、S5,S4 比S2 迟4 个时钟周期,S5比S3迟4个时钟周期;S6为时钟信号,要求频率为28.5 MHz;K 为GND 信号,需要连接1 kΩ电阻并接地。

当满足打印头控制信号要求的前提下,数据信号S4,S5在辅助信号S2,S3有效后的528个周期里为低电平的部分,打印头进入工作状态[3]。

1.1.3 FPGA控制打印头喷墨的工作原理

如图2 所示,采用气泡喷墨打印头驱动板,其主要由Altera 公司的FPGA 芯片EQ1C6T144C8 作为核心控制,AS芯片作为逻辑储存,一个AM26LV31I差分芯片和一个LVC14A信号传输芯片作为整个板子的输入的接收接口,一个AM26LV32I差分芯片和一个LVC14A信号传输芯片作为整个板子的输出接口、打印头的输入接口[4]。

气泡喷墨打印头驱动板需要的信号即为1.1.2节中提到的S1~S6,K信号,其中S4,S5作为输入信号来自于FPGA 开发板中的EP1C6Q240C8 芯片,S1,S2,S3,S6,K信号的逻辑通过USB Blaster下载到AS芯片中。

FPGA 上的转接板是由一个AM26LV32I 差分芯片和一个LVC14A信号传输芯片组成,其的作用是与打印头驱动板实现接口对接,使FPGA 开发板中的EP1C6Q240C8 芯片把驱动信号发送到打印头驱动板。其PCB原理图如图3所示。

FPGA 开发板的EP1C6Q240C8 芯片主要输出信号共有4 个:cs_n,sck,mosi_s4,mosi_s5。其中:cs_n 是整个系统的使能信号,低有效,当其有效时,整个系统开始工作;sck是气泡喷墨打印头驱动板的工作时钟信号,由于FPGA开发板提供的时钟为50 MHz,不满足气泡喷墨打印头驱动板的时钟工作要求,因此其由开发板的FP?GA芯片EP1C6Q240C8调用IP核锁相环分倍频后得到;cs_n和sck这2个信号由FPGA 开发板经过转接板的信号传输芯片LVC14A 发送给气泡喷墨打印头驱动板的相对应的LVC14A 芯片,再经过驱动板上的FPGA 芯片EQLC6T144C8 发送给打印头的接收端相对应的芯片LVC14A;

mosi_s4,mosi_s5即为1.1.2节中所描述的打印头喷墨的数据信号S4,S5,这2 个信号由开发板的FPGA 芯片EP1C6Q240C8经过转接板上的AM26LV32I芯片发送给打印头驱动板的AM26LV31I芯片,在气泡喷墨打印头驱动板的FPGA 芯片EP1C6T144C8 中经过移位寄存器后发送给打印头接收端的相对应芯片AM26LV32I。

1.2 FPGA控制步进电机运动

1.2.1 FPGA控制步进电机运动的工作原理

如图4所示,步进电机一般包括PUL,DR,FREE这3 个主要输入控制信号和2 个码盘输出信号。其中,PUL是步进电机运动需要的脉冲信号,其不仅决定了电机是否转动,而且其宽度也决定了电机转动的速度,其在不超过驱动器可接受的脉冲频率和电机响应频率脉冲的前提下越宽电机转动的速度越慢,反之越快[5];DR是步进电机的方向信号,其确定步进电机的转动方向;FREE 是步进电机的脱机信号,当脱机信号FREE 为低电平时,驱动器输出到电机的电流被切断,电机转子处于自由状态(脱机状态)。如果在驱动器不断电的情况下要求直接转动电机轴(手动方式),就可以将FREE信号置低,使电机脱机,进行手动操作或调节。

码盘经常以转速传感器的形式出现,其不但能检测电机的转动速度,也能有效地对电机定位;码盘一般设在电机的一端,使电机和码盘同步转动,这样便可以通过接收到码盘转动时所产生的2 个脉冲信号来定位电机。

FPGA作为步进电机的信号源,其能提供较稳定的控制信号,但由于FPGA的标准电平为3.3 V?LVTTL,而步进电机的驱动电平为5 V,因此,需要在FPGA与电机驱动板、FPGA与码盘间加入电平转换芯片以保证电机的正常驱动与码盘的正常反馈[6]。

1.2.2 步进电机的精度的确认

码盘的两个输出信号SignalA,SignalB 作为电机的定位信号,当电机转动时,码盘向FPGA 发送SignalA,SignalB,其信号为相位相差90°的脉冲方波信号[7],如图5所示。

在FPGA 内部把SignalA,SignalB 信号的异或作为电机的定位信号,利用计数器与数码管直观的定位电机的实际位移[8]。由于电机带动打印机的走纸会存在一定的机械抖动误差;因此SignalA,SignalB会产生一些极小的脉冲误差信号,会影响电机的定位精度;因此需要对码盘的输出信号进行简单的信号滤波处理。

高频率时钟对低频率信号的采样处理即可较好地完成滤波,由于电机的脉冲频率约为1 kHz,码盘因与其保持同步运动,所以其输出的2个定位信号SignalA,SignalB 的频率也为1 kHz,因此用相对高频50 MHz 的时钟分别采样相对低频1 kHz的信号SignalA,SignalB,使两信号通过20 b 的移位寄存器,当在移位寄存器中的SignalA,SignalB 20 b均为1或0的时候输出1或0,否则不输出并继续移位。对同样距离进行定位测试,并通过数码管观察其结果,电机位移精度如表1所示。

如表1 所示,在同样的距离下,当码盘信号没有经过滤波处理时,电机的定位位移相对较大,相同速度下每一次的定位也不够准确,而且由于电机转动的越快,其产生的脉冲误差越多,因此未滤波的时候,电机的转动速度严重影响电机的定位精度;当码盘信号经过滤波处理后,电机的位移明显减小,而且电机的转动速度不再影响电机的定位精度,定位效果准确。

1.3 FPGA对打印头和步进电机的联合控制

1.3.1 FPGA对打印头和步进电机联合控制的工作原理系统分为4 种状态:空闲状态;走纸状态;喷墨状态;喷墨走纸状态,如图6所示[9]。

1.3.2 FPGA对打印头和步进电机联合控制的quartus上的实现[10]

图7中左边模块为数码管显示模块,右边模块为电机、打印机的顶层模块。在FPGA中设置一个工作控制输入信号spray_ctrlin,一个FREE 控制输入信号FREE_ctrlin,当FREE_ctrlin 生效时,电机进入脱机状态;当spray_ctrlin生效时FPGA 产生PUL、DR 信号并发送给电机,系统进入走纸状态,并将电机码盘的2 个输出信号发送给FPGA,将经过滤波后的定位信号作为数码管的输入并对其计数,将计得的数作为电机运动的实际位移,再根据实际位移来触发打印头与电机内部的喷墨使能信号,当喷墨信号有效时打印头进入喷墨状态,整体系统进入喷墨走纸状态,6位的7段数码管上也会实时显示出电机的实际位移。

2 实验结果与硬件实际连接

2.1 打印头与电机联合控制结果

图8 为电机1 先左右运动实现x 轴走纸,并在指定好的位置实现打印头的单色喷墨,当走纸并喷墨完成第一行后,电机2上下运动实现y 轴走纸,随后逆向重复一次x 轴走纸单色喷墨。

图9 为电机1、电机2 同时运动实现x,y 轴同时走纸,并在指定好的位置实现打印头的双色喷墨。

2.2 硬件实际连接

硬件实际连接如图10~图12所示。

3 结语

本文通过对当前喷墨技术、打印技术的研究,在前人的理论基础上再创新,提出了对喷墨打印机的喷墨与电机的联合控制,在FPGA平台下搭建了喷墨打印机的控制系统。实验结果表明,该系统能够精确的实现对打印头的喷墨控制以及电机的走纸控制,且其操作简单,可升级性强。这对制造自主知识产权的喷墨打印机提供了坚实的基础,对当下热门的以喷墨打印机作为输出部件的设备制造提供了更多的可能。

教育期刊网 http://www.jyqkw.com
参考文献

[1] 董盈钧,孔明,马忠祥.基于FPGA 的打印机走纸控制系统[J].微型机与应用,2010,29(21):94?95.

[2] 马玉春,陆华.基于C语言的压电式喷墨打印机驱动程序设计[J].琼州学院学报,2011,18(2):11?12.

[3] 王彦,田丹丹,陈琼,等.基于FPGA的微型打印机驱动电路和程序设计[J].南华大学学报,2004,18(3):79?82.

[4] 廖强,文荣,夏洋,等.基于SoPC 的宽幅喷墨打印机控制系统[J].计算机工程,2009,35(19):260?261.

[5] 陈兴文,刘燕.基于FPGA实现步进电机脉冲信号控制器设计[J].机械设计与制造,2006(2):86?87.

[6] 庞淑娟,倪受东.基于FPGA的步进电机速度控制器的设计[J].新技术新工艺,2008(4):32?33.

[7] 刘加峰,芦勤,郁苏娟,等.步进电机控制电路一种基于FPGA的实现[J].微计算机应用,2007,28(8):864?865.

[8] 安立宇,赵曙光,杜丘.基于FPGA的两相步进电机细分驱动器设计[J].仪表技术,2009(1):31?32.

[9] 粘朋雷,李国林,毛维平,等.基于FPGA 与VHDL的微型打印机的驱动设计[J].现代电子技术,2010,33(24):72?73.

[10] 周润景,图雅,张丽敏.基于QuartusⅡ的FPGA/CPLD[M].北京:电子工业出版社,2007.

作者简介:高德洋(1988—),男,黑龙江牡丹江人,硕士。研究方向为集成电路工程。