文档详情

DPK620印刷机功能的设计.pdf

发布:2017-08-11约1.01万字共6页下载文档
文本预览下载声明
南京富士通计算机设备有限公司第二技术课 苗圃 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
显示全部
相似文档