碧波液压网 欢迎你,游客。 登录 注册

DPU-3445位图驱动程序的设计与实现

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  1 引言

  Dpu-3445是Seiko Instrument公司开发的便携式热敏打印机,它体积小,重量轻,只有250克左右,打印宽度达104cm,点密度为8dot/mm,最大速度达50mm/s,有4KB的输入缓冲区。由于这些特点,我们在设计便携式产品中选择它作为系统的输出设备。

  2 系统实现

  2.1 接口描述

  DPU-3445可以通过串行RS-232接口或IRDA接口同计算机相连。当采用RS-232接口时,信号电平-3到-15V为逻辑‘1’,+3到+15V为逻辑‘0’。波特率可选为1200,2400,4800,9600,19200,38400bps,数据长度可选7或8位。停止位可选1或2位。校验位可选奇校验,偶校验或无校验。与主机(标准PC机)接口连接如图1。

  

  基于IRDA接口时,传送距离为0.05m到1m,传送角度±15°,脉宽典型值为1.63微秒,波特率为9600至115200bps,LSAP地址固定为7。

  Dpu-3445有输入缓冲区和行缓冲区。当它从主机接收数据时,将数据先存放到输入缓冲区中,然后再从输入缓冲区将数据取出放入行缓冲区中并执行命令。

  2.2 位图输出驱动程序的实现

  驱动程序的一个主要功能就是利用I/O缓冲,对数据进行加工,包括格式处理和编码的转换。Dpu-3445提供了一个位图处理命令,其格式为:ESC+”*”+m+nl+nh+DATA

  写成代码方式为:1bH+2aH+m+nl+nh+d1+d2++dk

  m表明位图方式:m=0,为8点单密度,m=1,为8点双密度,m=32,为24点单密度,m=33,为24点双密度。水平方向的点数为:256×nh+nl。d表示位图的数据,8点位图模式时k=(256×nh+nl),24点模式时k=(256×nh+nl)×3。其数据序列如图2。

  

  然而,BMP文件的数据存储格式与Dpu-3445的数据存储序列不一致。BMP文件可看成由三部分组成:位图文件头(bitmap-file header)、位图信息(bitmap-infor-mation)和位图字节阵列。位图文件头可用BITMAP-FILEHEADER来定义:

  

  位图信息用BITMAPINFO结构来定义,它由位图信息头和彩色表组成,形式如下:

  

  彩色表之后是图像数据字节阵列。图像的每一扫描行由表示图像像素的连续的字节组成,每行的字节数取决于图像的颜色数目和用像素表示的图像宽度,

  扫描行是由底向上存储的,也就是说,阵列的第一个字节表示位图左下角的像素,而最后一个字节表示位图右上角的像素。

  以黑白BMP文件为例,位图的宽和高(像素)分别存放在第0x12~0x15与0x16~0x19字节处,数据字节阵列从0x3e开始存放。当用Dpu-3445输出时,由于阵列排序不一致,所以从位图文件中读出的数据必须进行转换,变换成Dpu-3445位图处理命令所需要的格式才能输出。下面给出从黑白BMP数据字节阵列到DPU-3445下24点方式打印数据序列转换部分的C语言源代码。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论