1.引言
針式印表機曾經在相當長的一段時間佔據印表機市場的主導地位,但是近年來由於噴墨、雷射等非擊打式印表機的衝擊,針式印表機的市場份額逐年下降。即便如此,由於針式印表機在票據列印領域的不可取代性,同時鑑於當前國內印表機市場一直被國外品牌充斥的現狀,我們設計並開發了這款基於
usb傳輸的針式印表機。乙個完整的
usb針式印表機系統包括印表機軟體和印表機硬體兩部分,其中印表機軟體負責列印任務的建立,而印表機硬體負責列印任務的執行。如果仔細劃分,印表機軟體又分為執行於主機系統的應用程式、印表機驅動程式和埠驅動程式,以及執行於印表機的印表機韌體程式、印表機命令解析程式和印表機控制程式,印表機命令解析程式和印表機控制程式接受印表機主控程式的排程。印表機硬體也可分為電路組成和執行機構兩部分。2.
針式印表機
系統設計
乙個列印任務的完成必須要經過任務建立和任務執行兩個步驟。在
windows
作業系統下,列印任務起始於應用程式,如圖
1。當使用者使用應用程式的列印功能後,應用程式將使用者的列印任務提交給印表機驅動程式,印表機驅動程式將該任務解析為一些字元資料,包括印表機控制命令資料和列印圖形資料。這些資料通過埠驅動程式傳送到印表機。當印表機接收到列印資料後,首先解析這些資料為印表機的實際執行指令,然後由控制程式操作執行機構將位圖資訊列印到媒介上。整個列印資料的傳輸都建立在主機與印表機正常通訊的基礎上,這項工作由印表機韌體程式完成。
了解了印表機系統的工作流程和系統內各個元件的作用,我們來對系統各個元件進行設計。
(1) windows
印表機驅動程式設計
開發印表機驅動程式通常有兩種途徑:一是開發乙個完整的驅動程式,二是利用微軟提供的通用印表機驅動程式
( unidrv )
開發小型驅動程式
( minidriver )
。開發乙個完整的驅動程式工作量大且過程複雜,因此我們採用通用印表機驅動程式
+小型驅動程式來開發印表機驅動程式。
(2)
印表機韌體程式設計
在usb
協議中,不同的裝置類具有著不同描述符和裝置請求,
usb印表機作為一種特殊的
usb裝置也有其特殊性,必須嚴格按照協議規定進行設計。在本文中,我們使用整合
usb通訊口的
at91sam7s32
晶元完成印表機韌體程式開發。
(3)
印表機主控程式設計
印表機主控程式由印表機解析程式模組和印表機控制程式模組組成。解析模組通常使用順序解析法解析資料,但是這種方法結構死板,解析效率低,為此本文提出了一種基於**的解析法;對印表機執行機構進行控制是整個印表機系統的核心。一般採用的方法是使用微控制器作為系統控制器,但是控制印表機需要同時控制兩個步進電機和
24個列印針頭,對微控制器處理速度要求較高,同時還要使用大量的微控制器介面資源,
一般微控制器都無法滿足要求,為此我們提出了一種微控制器
+cpld
的印表機控制方法,有效的解決了這個問題。微控制器使用上面提到的
at91sam7s32
,cpld
使用altera
生產的epm1270
晶元,該晶元具有
1270
個邏輯單元和
212個使用者引腳,滿足印表機控制的速度要求和介面數量要求。
windows
列印體系結構由列印假離線系統(
spool
)和一系列的印表機驅動程式(
driver
)組成。
spool
是windows
列印系統的核心,它有乙個關鍵的作用就是對列印任務進行路由,將列印任務傳遞到正確的印表機驅動程式進行處理。列印驅動程式由列印圖形動態鏈結庫和列印介面動態鏈結庫組成,列印圖形動態鏈結庫負責將列印任務解析為列印
3.1小型驅動程式的開發
小型驅動程式是建立在通用驅動程式
( unidrv )
基礎之上的。通用驅動程式由列印圖形動態鏈結庫
unidrv.dll
、列印介面動態鏈結庫
unidrvui.dll
以及一些文字檔案和二進位制結構檔案組成,這些文字檔案和二進位制檔案檔案構成了我們的小驅動程式。小型驅動程式的文字檔案稱為
gpd(
general printer description)
檔案,乙個小型驅動程式可以由乙個或多個
gpd檔案構成。小型驅動程式的二進位制檔案包括
gtt(glyph translation table)
檔案和ufm
(unidrv font metric
)檔案,
gtt檔案用來描述印表機所能支援的字型,
ufm檔案用來描述字型的尺寸大小。由於
gtt檔案和
ufm檔案不是小型驅動程式所必須的檔案,所以這裡只介紹
gpd檔案的設計方法。
基於 USB 傳輸的針式印表機驅動程式開發
1 引言 針式印表機曾經在相當長的一段時間佔據印表機市場的主導地位,但是近年來由於噴墨 雷射等非擊打式印表機的衝擊,針式印表機的市場份額逐年下降。即便如此,由於針式印表機在票據列印領域的不可取代性,同時鑑於當前國內印表機市場一直被國外品牌充斥的現狀,我們設計並開發了這款基於 usb傳輸的針式印表機。...
針式印表機微調功能
如果您 比如使用了進紙旋鈕調整頁頂位置之後,或者 在使用專用軟體列印套打票據的時候 發現列印的起始位置不正確。列印起始位置偏上或者偏下。和預先設計的在紙張上的位置不一樣。如圖 1 所示 如何通過微調整功能,解決列印位置上下偏移的問題?一 問題現象 如果您 比如使用了進紙旋鈕調整頁頂位置之後,或者在使...
針式印表機列印發虛 針式印表機常見問題及解決方法
在使用針式印表機的過程中難免會遇到故障,影響工作效率,影響心情。下面我來介紹一些遇到常見故障時候的解決方法。針式印表機色帶故障是最常見的,比如色帶斷裂 色帶被卡。1 色帶斷裂 色帶的拉力過大,拉斷縫合線或字鎚打爛色帶導致色帶斷裂。前一種情況可將斷裂部分剪掉,重新縫合好 後一種情況只要更換色帶即可。2...