基于FPGA與VHDL的微型打印機的驅(qū)動設(shè)計
使用VHDL硬件描述語言來進行軟件設(shè)計。對微型打印機的驅(qū)動主要是對其工作時序進行正確的控制,利用VHDL常見的狀態(tài)機來實現(xiàn)對打印機的工作時序的控制,根據(jù)時序圖1所示的時序,狀態(tài)機使用4個狀態(tài),狀態(tài)轉(zhuǎn)換圖如圖5所示。
初始狀態(tài)STATE0時,數(shù)據(jù)選通觸發(fā)脈沖信號STB置‘1’(高電平),檢測打印機是否正忙,如果打印機為空閑狀態(tài)(busy=‘0’),轉(zhuǎn)入下一狀態(tài)STATE1,否則(busy=‘1’)繼續(xù)執(zhí)行STATE0;在狀態(tài)STATE1,將數(shù)據(jù)寫入打印機,直接轉(zhuǎn)入下一狀態(tài);在狀態(tài)STATE2,將數(shù)據(jù)選通觸發(fā)脈沖信號STB置‘O’,打印機讀數(shù)據(jù),轉(zhuǎn)入下一狀態(tài);在狀態(tài)STATE3,檢測數(shù)據(jù)是否已經(jīng)被接受,若數(shù)據(jù)已被接受(ACK=‘O’),打印機轉(zhuǎn)入初始狀態(tài)STATE0,等待接受新數(shù)據(jù),若數(shù)據(jù)未被接受(ACK=‘1’),繼續(xù)執(zhí)行STATE3直到數(shù)據(jù)被接受。
3 結(jié)語
使用FPGA與VHDL硬件描述語言設(shè)計的微型打印機驅(qū)動,通過系統(tǒng)調(diào)試能夠完成對打印機的時序控制,目前已經(jīng)在某型測試儀中正常使用。該設(shè)計系統(tǒng)控制簡單,抗干擾性強,可靠性高,移植性較好,能夠用于任何使用FPGA芯片的系統(tǒng)中,具有一定的應(yīng)用前景。
評論