集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1744|回复: 3

基于FPGA的微型打印机驱动电路设计

[复制链接]
晓灰灰 发表于 2019-11-1 10:44:52 | 显示全部楼层 |阅读模式
基于FPGA的微型打印机驱动电路设计
微型打印机简介

RD DH 型微型打印机采用热敏加热点阵打印方式,是一款体积小,打印速度快的打印输出设备。该型打印机可采用标准并行接口,RS 232 串行接口,T TL 电平串口,485 接口,USB 接口,打印速度达到 50 m/ s,分辨率为 8 点 / mm,384 点 / 行,打印纸张采用 57 mm 热敏纸。可打印国标一、二级汉字库中全部汉字和西文字、图标共 8 178 个。微型打印机并行接口与 CENTRONICS 标准接口兼容,可直接由微机并口或单片机控制。其 26 线双排插座引脚序号如图 1 所示。此 26 个并口各引脚信号定义如下图所示。



微型打印机 26 并口各引脚定义



对打印机的驱动主要是对其工作时序进行正确的控制,RD DH 型并行接口定时图如图 2 所示。



2 总体系统设计

使用 Altera 公司的 Cyclon ?系列的 FPGA 芯片 EP3C25Q240C8N 实现对 RD DH 型微型打印机的硬件电路控制,使用 Quar tus 开发工具,通过 VHDL 语言实现对微型打印机的软件功能实现。


2. 1 硬件电路设计

如图 3 所示为打印机与 FPGA 的连接示意图。

DATA 1~ DATA8 表示打印机的 8 个数据位,他们的逻辑“1”表示高电平,逻辑“0”表示低电平; STB 为数据选通触发脉冲,下降沿时读入数据; ACK 为回答脉冲,低电平表示数据已被接受; BUSY 为高电平时表示打印机正忙,此时不接收数据。

由于 ACK 和 BUSY 输出的是 5 V 的 TT L 电平,而 FPGA 的 I/ O 口标准为 3. 3 V LVCMOS 电平,因此这两个信号作为 FPGA 的输入信号时,要进行分压,保证电路正常运行。



2. 2 软件设计

软件平台采用  Intel altera 公司的 FPGA 开发平台 Quartus II 。

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



使用 VHDL 或者 verilog HDL硬件描述语言来进行软件设计。

对微型打印机的驱动主要是对其工作时序进行正确的控制,利用 VHDL 或者 verilog HDL常见的状态机来实现对打印机的工作时序的控制,根据时序图 1 所示的时序,状态机使用 4 个状态。

初始状态 STA TE0 时,数据选通触发脉冲信号 STB 置“1” ( 高电平) ,检测打印机是否正忙,如果打印机为空闲状态( busy= “0”) ,转入下一状态 STAT E1,否则( busy = “1 ” ) 继续执行 ST AT E0; 在状态 STAT E1,将数据写入打印机,直接转入下一状态; 在状态 STAT E2,将数据选通触发脉冲信号 STB 置“0” ,打印机读数据,转入下一状态; 在状态 ST ATE3,检测数据是否已经被接受,若数据已被接受( ACK = “0” ) ,打印机转入初始状态 ST AT E0,等待接受新数据,若数据未被接受( ACK = “1” ) ,继续执行 STAT E3 直到数据被接受,如下为状态转移图。


​使用 FPGA 与 VHDL 或者 verilog HDL硬件描述语言设计的微型打印机驱动,通过系统调试能够完成对打印机的时序控制,目前已经在某型测试仪中正常使用。该设计系统控制简单,抗干扰性强,可靠性高,移植性较好,能够用于任何使用 FPGA 芯片的系统中,具有一定的应用前景。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 晓灰灰 发表于 2019-11-1 10:45:31 | 显示全部楼层
基于FPGA的微型打印机驱动电路设计
zxopenljx 发表于 2020-12-24 22:19:16 | 显示全部楼层
基于FPGA的微型打印机驱动电路设计
zxopenljx 发表于 2024-5-10 10:04:56 | 显示全部楼层
基于FPGA的微型打印机驱动电路设计
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-23 23:28 , Processed in 0.065691 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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