DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 144|回复: 0
打印 上一主题 下一主题

基于FPGA与VHDL的微型打印机的驱动设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-17 15:09:59 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
摘要:为了取代传统利用单片机驱动微型打印机,使用Altera公司的FPGA芯片EP3C225Q240C8N设计驱动打印机的硬件控制电路,并正确控制微型打印机的工作时序。软件使用硬件描述语言VHDL实现对微型打印机的时序控制,并通过QuartusⅡ软件平台下栽到FPGA调试通过,证明该方法行之有效,完全可以取代传统利用单片机来驱动微型打印机,且抗干扰性好,可靠性高,具有较强的可移植性。
关键词:微型打印机;VHDL;时序;FPGA
0 引言
??? FPGA即现场可编程逻辑阵列。是在CPLD的基础上发展起来的新型高性能可编程逻辑器件。FPGA的集成度很高,其器件密度从数万门到数千万门不等,可以完成极其复杂的时序与组合逻辑电路功能,适用于高速、高密度的高端数字逻辑电路设计领域。新一代的FPGA甚至集成了中央处理器(CPLU)或数字处理器(DSP)内核,在一片FPGA上进行软硬件协同设计,为实现片上可编程系统(SOPC)提供了强大的硬件支持。对微型打印机的驱动,传统方法是使用单片机是实现对其的时序控制。随着FPGA在各领域的普及使用,以及对微型打印机的需要,因此要实现FP-GA对微型打印机的时序控制。
??? 当前各ASIC芯片制造商都相继开发了用于各自目的的HDL语言,但是大多数都为标准化和通用化。惟一被公认的是美国国防部开发的VHDL语言,它已成为IEEE STD_1076标准。另外从近期HDL语言发展的动态来看,许多公司研制的硬件电路设计工具业都逐渐向VHDL语言靠拢,使得他们的硬件电路设计工具也能支持VHDL语言。
??? VHDL语言可以支持自上而下和基于库的设计方法,而且还支持FPGA的设计。
1 微型打印机简介
??? RD-DH型微型打印机采用热敏加热点阵打印方式,是一款体积小,打印速度快的打印输出设备。该型打印机可采用标准并行接口,RS232串行接口,TTL电平串口,485接口,USB接口,打印速度达到50 m/s,分辨率为8点/mm,384点/行,打印纸张采用57 mm热敏纸。可打印国标一、二级汉字库中全部汉字和西文字、图标共8 178个。微型打印机并行接口与CENTRONICS标准接口兼容,可直接由微机并口或单片机控制。其26线双排插座引脚序号如图1所示。此26个并口各引脚信号定义如表1所示。



??? 注:“入”表示输入到打印机;“出”表示从打印机输出,信号的逻辑电平为TTL电平。
??? 对打印机的驱动主要是对其工作时序进行正确的控制,RD-DH型并行接口定时图如图2所示。




                          
                       
                          
                               
2 总体系统设计
??? 使用Altera公司的CyelonⅢ系列的FPGA芯片EP3C25Q240C8N实现对RD-DH型微型打印机的硬件电路控制,使用QuartusⅡ开发工具,通过VHDL语言实现对微型打印机的软件功能实现。
2.1 硬件电路设计
??? 如图3所示为打印机与FPGA的连接示意图。DATA1~DATA8表示打印机的8个数据位,他们的逻辑‘1’表示高电平,逻辑‘O’表示低电
平;-STB为数据选通触发脉冲,下降沿时读入数据;-ACK为回答脉冲,低电平表示数据已被接受;BUSY为高电平时表示打印机正忙,此时不接收数据。由于-ACK和BUSY输出的是5 V的TTL电平,而FPGA的I/O口标准为3.3 V LVCMOS电平,因此这两个信号作为FPGA的输入信号时,要进行分压,保证电路正常运行。




2.2 软件设计
??? 软件平台采用Altera公司的FPGA开发平台QuartusⅡ。QuartusⅡ提供了一种与器件结构无关的设计环境,设计者不需要精通器件的内部结构,只需要运用自己熟悉的输入工具(如原理图输入或数字电路描述语言输入)进行设计,利用QuartusⅡ可以将这些设计转换为最终结构所需要的格式。有关结构的详细知识已写入开发工具软件,设计人员无需手工优化自己的设计。软件的开发流程如图4所示。




                          
                       
                          
                               



??? 使用VHDL硬件描述语言来进行软件设计。对微型打印机的驱动主要是对其工作时序进行正确的控制,利用VHDL常见的状态机来实现对打印机的工作时序的控制,根据时序图1所示的时序,状态机使用4个状态,状态转换图如图5所示。
??? 初始状态STATE0时,数据选通触发脉冲信号STB置‘1’(高电平),检测打印机是否正忙,如果打印机为空闲状态(busy=‘0’),转入下一状态STATE1,否则(busy=‘1’)继续执行STATE0;在状态STATE1,将数据写入打印机,直接转入下一状态;在状态STATE2,将数据选通触发脉冲信号STB置‘O’,打印机读数据,转入下一状态;在状态STATE3,检测数据是否已经被接受,若数据已被接受(ACK=‘O’),打印机转入初始状态STATE0,等待接受新数据,若数据未被接受(ACK=‘1’),继续执行STATE3直到数据被接受。
3 结语
??? 使用FPGA与VHDL硬件描述语言设计的微型打印机驱动,通过系统调试能够完成对打印机的时序控制,目前已经在某型测试仪中正常使用。该设计系统控制简单,抗干扰性强,可靠性高,移植性较好,能够用于任何使用FPGA芯片的系统中,具有一定的应用前景。
?
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2026-2-26 22:42 , 耗时 0.101914 秒, 20 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表