新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 微型打印機(jī)與FPGA的硬件接口及軟件設(shè)計(jì)

微型打印機(jī)與FPGA的硬件接口及軟件設(shè)計(jì)

作者: 時(shí)間:2010-12-28 來源:網(wǎng)絡(luò) 收藏

設(shè)計(jì)控制功能模塊時(shí),由于有富余的I/O接口,所以打印機(jī)可以不經(jīng)過另外的接口電路而直接與相連接,同時(shí)其內(nèi)部的嵌入式陣列塊 EAB是輸入端口和輸出端口都帶有觸發(fā)器的RAM塊,可實(shí)現(xiàn)小容量的ROM和RAM,無需外部擴(kuò)展ROM和RAM,也無需外加鎖存器。FPGA芯片可以通過編程配置其內(nèi)部邏輯單元,通過編寫軟件來設(shè)計(jì)控制器,所以只需分配好與打印機(jī)相連接的I/O接口,讀寫相連的信號(hào)線即可。打印機(jī)的BUSY,和D0~D7信號(hào)接口分別由FPGA在編程綜合過程中分配通用I/O接口,接口方式如圖2所示。

b.JPG

本文引用地址:http://butianyuan.cn/article/191405.htm

c.JPG
圖中JP1和JP2是FPGA的配置接口,JP1與EPCS16SI16N外部存儲(chǔ)芯片一起,構(gòu)成FPGA的串行(AS)配置端口,當(dāng)程序調(diào)試完成后,可將程序經(jīng)JP2口下載至配置芯片EPCS16SI16N,F(xiàn)PGA上電之后,系統(tǒng)自動(dòng)將配置芯片中的程序讀入FPGA內(nèi),完成邏輯功能塊的配置。JP1是 JTAG配置口,主要作用是方便程序的現(xiàn)場(chǎng)調(diào)試,不需經(jīng)過外部存儲(chǔ)器,程序直接下載到FPGA中完成邏輯功能塊的配置,以驗(yàn)證程序設(shè)計(jì)能否實(shí)現(xiàn)預(yù)期的功能。SP1與SP2用以設(shè)置配置芯片與FPGA數(shù)據(jù)傳輸?shù)墓ぷ鞣绞剑鏜ESL2,MESL1,MESL0為“010”時(shí),配置為標(biāo)準(zhǔn)串行端口,配置電壓為3.3 V;若為“100”時(shí)為快速串行配置端口,配置電壓可在3.3 V和2.5V兩者中選其一。P1是有源晶振,可提供FPGA系統(tǒng)時(shí)鐘頻率。RP1是打印機(jī)數(shù)據(jù)端口的上拉排阻,這樣輸出數(shù)據(jù)與端口數(shù)據(jù)邏輯與之后輸入打印機(jī),避免顯示亂碼。打印機(jī)RD-E32-V8與FPGA由8根數(shù)據(jù)線和3條控制、狀態(tài)讀寫線連接,另有一條線將2部分的接地端連接到公共的模擬地線。

2 軟件實(shí)現(xiàn)
系統(tǒng)是基于VHDL語言編寫的。的關(guān)鍵是在打印機(jī)工作時(shí)序的基礎(chǔ)上完成與FPGA之間數(shù)據(jù)和指令的讀寫和狀態(tài)的檢測(cè)。
2.1 控制時(shí)序與原理
控制過程的時(shí)序在延遲時(shí)間上有嚴(yán)格的要求,所以,設(shè)計(jì)控制程序時(shí),必須考慮打印機(jī)狀態(tài)轉(zhuǎn)換和數(shù)據(jù)傳輸?shù)难舆t時(shí)間。當(dāng)數(shù)據(jù)線上有待打印的數(shù)據(jù)時(shí),打印機(jī)并不是立即將數(shù)據(jù)打印輸出,必須根據(jù)當(dāng)前的打印機(jī)狀態(tài)來判斷。
當(dāng)BUSY狀態(tài)被檢測(cè)到為“1”時(shí),說明打印機(jī)處于“忙”狀態(tài),此時(shí)打印機(jī)不會(huì)接收任何數(shù)據(jù)。當(dāng)BUSY信號(hào)為“O”時(shí),說明打印機(jī)處于“空閑”狀態(tài),先向數(shù)據(jù)線寫入數(shù)據(jù),在延時(shí)時(shí)間符合時(shí)序的情況下,通過FPGA控制信號(hào),將數(shù)據(jù)寫入打印機(jī)。為數(shù)據(jù)選通觸發(fā)脈沖,下降沿時(shí)輸入數(shù)據(jù),對(duì)低電平的時(shí)間時(shí)序上也有要求,最小為O.5μs。當(dāng)下降沿到來的同時(shí),數(shù)據(jù)即送入打印機(jī),同時(shí)BUSY信號(hào)由低電平跳變?yōu)楦唠娖剑柚笷PGA向打印機(jī)數(shù)據(jù)線寫入數(shù)據(jù)。當(dāng)數(shù)據(jù)輸入以后,直到回答脈沖跳變成低電平,此時(shí)表示數(shù)據(jù)已被接受,而且打印機(jī)準(zhǔn)備好接受下一數(shù)據(jù),之后大約5μs時(shí)間以后,BUSY信號(hào)變?yōu)榈碗娖?,之后約5μs信號(hào)變高。對(duì)打印機(jī)的控制是通過查詢方式實(shí)現(xiàn)的,根據(jù)打印機(jī)工作時(shí)序,將打印機(jī)控制過程分為3個(gè)狀態(tài),打印機(jī)控制程序基于這3個(gè)狀態(tài),采用VHDL語言的有限狀態(tài)機(jī)編寫實(shí)現(xiàn)。時(shí)序與狀態(tài)轉(zhuǎn)換如圖3所示。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉