1 引言
VHDL是一種面向設(shè)計、多層次的數(shù)字系統(tǒng)設(shè)計的標(biāo)準(zhǔn)化硬件描述語言,,VHDL不需依賴馮·諾伊曼結(jié)構(gòu),,可實現(xiàn)時序和真正并行設(shè)計,從而開辟一種全新的數(shù)字系統(tǒng)的設(shè)計途徑,。使用VHDL語言更便于建立層次結(jié)構(gòu)和元件結(jié)構(gòu)設(shè)計,。VHDL編寫的電路模塊代碼可重復(fù)利用,故簡化設(shè)計,,縮短設(shè)計時間,,提高工作效率。
2 TP UP-SF微型打印機簡介
TP UP-SF系列的高速微型打印機,,采用針式撞擊點陣打印,,是一類體積小、打印速度快的打印輸出設(shè)備,。該系列打印機配有串行和并行接口,,實現(xiàn)漢字的高速打印,可裝外徑70 mm大打印紙卷,。此系列打印機比較小巧,,攜帶方便,適用于小型收款機,、小型計費器,、*終端等各種應(yīng)用場合。
TP UP-SF支持EPSON M一180,、M—190和M一160系列的10種機頭打?。豢膳渲玫拇泻筒⑿薪涌?,根據(jù)打印機型號不同,,TP UP—SF的打印速度可達2.5行/s,打印密度最高為252點/行,。
微型打印機具有40個通用ESC/P打印控制命令和FS漢字打印控制命令,。其中包括:字符、點陣圖形打印命令和漢字打印命令,。對于前者ESC/P命令支持字符打印及放大,,上、下劃線和點正圖形,,用戶自定義字符打印,,實現(xiàn)打印格式設(shè)置,十六進制形式打印等功能,。而后者,,F(xiàn)S命令支持機內(nèi)國標(biāo)一,、二級硬漢字庫打印漢字,羅馬字母(A6區(qū))和制表符(A9區(qū)),。
3 微型打印機的接口連接
3.1 串口連接
TP UP—SF系列打印機的S型機采用與RS-232C標(biāo)準(zhǔn)兼容的D一25串行接口,,其接口插座則與IBM PC的RS一232C相配合。串行接口引腳排列如圖l所示,,表l為串行接口引腳信號說明,。
有2種握手方式可供選用,一種是標(biāo)志控制方式,,另一種是XON/XOFF協(xié)議方式。串行數(shù)據(jù)傳輸采用異步通訊格式,,串行通訊的數(shù)據(jù)格式和波特率可由用戶自行設(shè)定,。
3.2 并口連接
TP UP-SF系列打印機的P型機采用與Centmnics標(biāo)準(zhǔn)兼容的D一25并行接口,接口插座則與IBM PC的打印接口相配合,。并行接口引腳排列如圖2所示,,表2為并行接口引腳信號說明。
圖3為并行接口的時序,,FPGA按照這些信號工作時序進行正確控制,。當(dāng)輸入信號進入打印機時,即可驅(qū)動打印機完成打印工作,。
4 系統(tǒng)設(shè)計
按照從上至下的可編程系統(tǒng)設(shè)計思想,,利用Ahera公司的CYCLONE系列FPGA器件,通過QUARTUS II開發(fā)工具,,完成了FPGA所需的硬件系統(tǒng)的設(shè)計和軟件開發(fā),。采用模塊式設(shè)計,從存儲器讀取數(shù)據(jù),,再送入至微型打印機打印,。
4.1 硬件電路設(shè)計
硬件電路以FPGA為中心,實現(xiàn)存儲器的接口電路設(shè)計,,以及對打印機的并口接口電路設(shè)計,。該系統(tǒng)設(shè)計采用Flash存儲器,它是一種可擦除,、非易失性存儲器,,可實現(xiàn)數(shù)據(jù)的存儲功能,便于數(shù)據(jù)傳輸,。圖4為Flash存儲器的部分電路連接圖,。
4.2 基于狀態(tài)機的打印控制模塊設(shè)計
微型打印機控制模塊主要控制打印機的工作時序,使其能夠正常工作,??刂颇K主要是利用VHDL語言的狀態(tài)機實現(xiàn),。根據(jù)時序圖并結(jié)合打印機特性,在編寫狀態(tài)機時,,分為3個狀態(tài),,其狀態(tài)轉(zhuǎn)換圖如圖5所示。
這個控制模塊的主要信號目有:reset,,ask,,stb和busy。其中前3個信號是微型打印機的并行接口信號,。而busy信號為高電平表示打印機正“忙”,,不能接收數(shù)據(jù);ask信號是應(yīng)答脈沖,,低電平表示數(shù)據(jù)已接收且打印機已準(zhǔn)備好接收下一個數(shù)據(jù),;sth信號是數(shù)據(jù)選通觸發(fā)脈沖,下降沿時讀入數(shù)據(jù),。當(dāng)reset為‘0’時,,對所有輸入數(shù)據(jù)進行預(yù)置并初始化狀態(tài)機;busy為‘0’則進入下一狀態(tài),,輸入數(shù)據(jù),,延時后,進入下一個狀態(tài),,判斷ask是否為‘0’,。若ask為‘0’則轉(zhuǎn)到初始狀態(tài),接下來進行下一輪循環(huán),。
5 結(jié)論
設(shè)計的微型打印機的控制器已經(jīng)系統(tǒng)調(diào)試,,該控制器具有較強的移植性,打印機的輸入數(shù)據(jù)是系統(tǒng)存儲器數(shù)據(jù),,稍加改動就可實現(xiàn)實時數(shù)據(jù)的打印功能,,能夠使用在任意一個由FPGA構(gòu)成的系統(tǒng)中使用,具有良好的應(yīng)用前景,。