新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 微型打印機與FPGA的硬件接口及軟件設計

        微型打印機與FPGA的硬件接口及軟件設計

        作者: 時間:2010-12-28 來源:網絡 收藏

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

        b.JPG

        本文引用地址:http://www.104case.com/article/191405.htm

        c.JPG
        圖中JP1和JP2是FPGA的配置接口,JP1與EPCS16SI16N外部存儲芯片一起,構成FPGA的串行(AS)配置端口,當程序調試完成后,可將程序經JP2口下載至配置芯片EPCS16SI16N,FPGA上電之后,系統自動將配置芯片中的程序讀入FPGA內,完成邏輯功能塊的配置。JP1是 JTAG配置口,主要作用是方便程序的現場調試,不需經過外部存儲器,程序直接下載到FPGA中完成邏輯功能塊的配置,以驗證程序設計能否實現預期的功能。SP1與SP2用以設置配置芯片與FPGA數據傳輸的工作方式,例如MESL2,MESL1,MESL0為“010”時,配置為標準串行端口,配置電壓為3.3 V;若為“100”時為快速串行配置端口,配置電壓可在3.3 V和2.5V兩者中選其一。P1是有源晶振,可提供FPGA系統時鐘頻率。RP1是打印機數據端口的上拉排阻,這樣輸出數據與端口數據邏輯與之后輸入打印機,避免顯示亂碼。打印機RD-E32-V8與FPGA由8根數據線和3條控制、狀態讀寫線連接,另有一條線將2部分的接地端連接到公共的模擬地線。

        2 軟件實現
        系統是基于VHDL語言編寫的。的關鍵是在打印機工作時序的基礎上完成與FPGA之間數據和指令的讀寫和狀態的檢測。
        2.1 控制時序與原理
        控制過程的時序在延遲時間上有嚴格的要求,所以,設計控制程序時,必須考慮打印機狀態轉換和數據傳輸的延遲時間。當數據線上有待打印的數據時,打印機并不是立即將數據打印輸出,必須根據當前的打印機狀態來判斷。
        當BUSY狀態被檢測到為“1”時,說明打印機處于“忙”狀態,此時打印機不會接收任何數據。當BUSY信號為“O”時,說明打印機處于“空閑”狀態,先向數據線寫入數據,在延時時間符合時序的情況下,通過FPGA控制信號,將數據寫入打印機。為數據選通觸發脈沖,下降沿時輸入數據,對低電平的時間時序上也有要求,最小為O.5μs。當下降沿到來的同時,數據即送入打印機,同時BUSY信號由低電平跳變為高電平,阻止FPGA向打印機數據線寫入數據。當數據輸入以后,直到回答脈沖跳變成低電平,此時表示數據已被接受,而且打印機準備好接受下一數據,之后大約5μs時間以后,BUSY信號變為低電平,之后約5μs信號變高。對打印機的控制是通過查詢方式實現的,根據打印機工作時序,將打印機控制過程分為3個狀態,打印機控制程序基于這3個狀態,采用VHDL語言的有限狀態機編寫實現。時序與狀態轉換如圖3所示。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 稷山县| 靖江市| 理塘县| 凌海市| 奇台县| 阜南县| 安岳县| 织金县| 杭州市| 延吉市| 武鸣县| 维西| 山阳县| 伊宁县| 兴海县| 城固县| 祁阳县| 远安县| 五华县| 宁安市| 南昌市| 左云县| 额敏县| 沙洋县| 靖州| 建始县| 岫岩| 吉安市| 杂多县| 萝北县| 锦屏县| 二连浩特市| 清丰县| 巴马| 漠河县| 天长市| 惠州市| 赫章县| 富民县| 文昌市| 永德县|