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语言源代码。
相关文章
- 2022-08-18基于聚焦离子束注入的微纳加工技术研究
- 2022-08-29光学系统双胶合透镜的替代设计法
- 2022-08-08光电位置敏感器件的非线性误差分析及其在医学中的应用
- 2023-08-18基于格型陷波滤波器的科里奥利质量流量计信号处理方法
- 2024-03-04基于高精度通用运算放大器的简易心电图仪设计
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。