DPK620印刷机功能的设计.pdf
文本预览下载声明
南京富士通计算机设备有限公司第二技术课 苗圃 2012-11-08 Thur.
DPK620 印刷机功能的设计
设计要求:
设计一个模式将上一次退纸前打印内容保存到FLASHROM 内,然后打印机就变成一个
印刷机。并增加SETUP 选项:“ 印刷机:有效 无效” 。有效时,一开机进纸后,自动打印,
无须用户PC 介入。
设计思路:
根据设计要求,我们将整个设计分为4 个模块:①数据接收模块、②FlashRom 擦写模
块、③Eeprom 中菜单选项添加模块、④PIT1 调用打印模块。当菜单选项中的印刷机功能打
开时,PC 端向打印机发送打印数据,由数据接收模块接收打印数据存入 RAM 中,并将将
保存的数据写入FlashRom 空闲的扇区中。再次开机之后,打印机直接进入PIT1 打印模式,
调用存储于FlashRom 中的打印数据直接打印。
Ⅰ、数据接收模块
我们先来分析打印机接收和处理数据的流程。
ICIs 是通过接收中断接收数据的。当IB 被登录时,接收数据保存到IB 内;没有IB 时,
保存在临时缓冲内。UIT 是通过ICP 函数向ICIs 要数据的,ICP 在该命令中,取出数据,发
送ACK 信号、DC1 送信等处理。UIT 从IB 中取出这些命令和字符数据,并进行仿真命令
解析和字符展开处理。然后PMT 向LB 、PBB 展开点阵,进行数据的打印。
① ② ③
(QCB.IGB. (LB.PBB.
ICIs (IB) UIT PIB) PMT MRB1) ACT1
图一 DPK620 打印机数据从接收到处理流程
① 当IB 为零时,输出*ACKNLG 信号,向PC 端取数据,并将取得的数据存放于 IB
缓存内。位于system.c 中的SYS_GetData( )函数。
If(Request.ACKNLG == SET)
{
If(GET_DATA != (GL_ICP(CHKDATA,NULL, icparea)))
{
GL_RQXACK(); //IB 为0 时,输出*ACKNLG 信号,取数据
}
}
② UIT 从IB 中取出存储于其中的命令和字符数据。位于system.c 中的SYS_GetData( )
函数。
data_rtn=GL_GETDATA (OneCode);
1 / 6
南京富士通计算机设备有限公司第二技术课 苗圃 2012-11-08 Thur.
通过调用此全局函数将取得的一个字符存放于OneCode 变量中。
③ 将从 IB 缓存取得的一个字节进行处理。先判断此字节为命令还是字符,再根据相
应的判断对其进行命令解析或者字符展开处理。位于 system.c 中的
SYS_DataDeco(uc code)函数。其中,需要注意的是,图像命令“1B 2A”也在命令中,
因此对于图像数据(大部分情况下由windows 打印驱动发出的打印数据)不经过字
符展开流程,而在图像命令中直接处理,直到图像数据处理完,才返回到
SYS_Online( ) 中的SYS_GetData( ) 函数取图像数据之后的下一个字节数据。
SYS_GetData( )
SY
显示全部