基于飛思卡爾微型熱敏打印機的設計與實現(xiàn)
出處:zywandzfx 發(fā)布于:2023-06-16 15:54:37
本課題來源于北京普析通用公司的一個項目。由于公司現(xiàn)有單機版光譜儀器產品(如1810、T6等)采用的是并行口打印技術,而隨著USB打印機技術的逐漸普及,并行口打印機越來越不好買到,而且有些用戶的打印機只是USB接口而非并行口,因此現(xiàn)有儀器產品對打印機的支持變得不能適應用戶需要。為了實現(xiàn)能將公司的并行口儀器直接和USB打印機相連進行打印,決定設計開發(fā)一款LPT-USB打印機的驅動器,負責并口儀器和USB打印機的連接。
本文利用單片機和USB總線接口芯片實現(xiàn)LPT-USB打印機的驅動器設計。利用該設計將能夠實現(xiàn)并行打印口數(shù)據(jù)可以在USB打印機上的直接打印工作,克服了有些并口儀器必須連接并口打印機才能打印的弊端,極大地方便了用戶的使用。
1 CH375芯片特點及工作原理
1.1 CH375芯片特點
CH375是一個USB總線的通用接口芯片,支持Host主機方式和Slave設備方式。CH375芯片內部集成了PLL倍頻器、主從USB接口SIE、數(shù)據(jù)緩沖區(qū)、被動并行接口、異步串行接口、命令解釋器、控制傳輸?shù)膮f(xié)議處理器、通用的固件程序等。在本地端,CH375具有8位數(shù)據(jù)總線和讀、寫、片選控制線以及中斷輸出,可以方便地掛接到單片機/DSP/MCU等控制器的系統(tǒng)總線上。CH375的USB主機方式支持各種常用的USB全速設備,外部單片機/DSP/MCU可以通過CH375按照相應的USB協(xié)議與USB設備通信。CH375芯片有如下特點:
①全速USBHOST主機接口USBV1.1,支持動態(tài)切換主機與設備方式,外圍元器件只需要一個晶體和2個電容;
②主機端點輸入和輸出緩沖區(qū)各64B,支持常用的12Mbps全速USB設備;
③支持USB設備的控制傳輸、批量傳輸和中斷傳輸;
④自動檢測USB設備的連接和斷開,提供設備連接和斷開的事件通知;
⑤內置控制傳輸協(xié)議處理器,簡化常用的控制傳輸;
⑥并行接口包含8位數(shù)據(jù)總線,4線控制(讀選通、寫選通、片選輸入和中斷輸出);
⑦串行接口包含串行輸入、串行輸出和中斷輸出,支持通信波特率動態(tài)調整;
⑧支持5V電源電壓和3.3V電源電壓。
1.2 CH375芯片工作原理
如圖1所示,CH375芯片通過被動并行接口芯片可以很方便地掛接到各種8位單片機、DSP和MCU的系統(tǒng)總線上,并且可以與多個外圍器件共存。并口信號線包括:8位雙向數(shù)據(jù)總線D7~D0、讀選通輸入RD、寫選通輸入WR、片選輸入CS、中斷輸出INT以及地址輸入線A0。CH375芯片的RD和WR可以分別連接到單片機的讀選通輸出引腳和寫選通輸出引腳。INT可以連接到單片機的中斷輸入引腳,中斷請求是低電平有效。當CS和RD以及A0都為低電平時,CH375中的數(shù)據(jù)通過D7~D0輸出;當CS和WR以及A0都為低電平時,D7~D0上的數(shù)據(jù)被寫入CH375芯片中;當CS和WR都為低電平而A1為高電平時,D7~D0上的數(shù)據(jù)被作為命令碼寫入CH375芯片中。
2 硬件電路設計
單片機通過CH375控制USB打印機的硬件電路,如圖2所示。
如圖2所示,CH375芯片通過被動并行接口芯片掛接到8位單片機的系統(tǒng)總線上,CH375的TXD引腳接地,從而使CH375工作于并口方式。CH375芯片的8位雙向數(shù)據(jù)總線D7~D0直接與單片機的P0數(shù)據(jù)口相連,RD和WR分別連接到單片機的讀選通輸出引腳和寫選通輸出引腳。片選信號CS連接到單片機的P26引腳,該引腳為低電平時選通CH375芯片。INT可以連接到單片機的中斷輸入INT0引腳,中斷請求是低電平有效。地址輸入線A0連接至單片機的P25引腳,當A0引腳為高電平時選擇命令端口,可以寫入命令;當A0引腳為低電平時選擇數(shù)據(jù)端口,可以讀寫數(shù)據(jù)。
采用74HC245三態(tài)雙向總線驅動器作為打印機口向單片機傳送并口數(shù)據(jù)的接口,其片選信號與單片機的P27相連,方向控制位DIR與單片機的T0相連。當DIR置成高電平時,數(shù)據(jù)從A端口向B端口傳送,此時單片機可以通過讀取74HC245數(shù)據(jù)端口即可得到并口數(shù)據(jù)。打印機狀態(tài)信號BUSY連接至單片機的P15引腳,并口數(shù)據(jù)采集控制信號CTRL直接連至單片機的INT1中斷引腳,當INT1產生中斷時,單片機從并口將數(shù)據(jù)取走,然后再發(fā)送至打印機打印出來。
3 軟件設計實現(xiàn)
軟件實現(xiàn)的流程如圖3所示。該軟件編程是用C語言實現(xiàn)的,通信過程主要包括兩部分:初始化和并口數(shù)據(jù)的采集。
并口數(shù)據(jù)的采集是通過中斷方式進行的。采集數(shù)據(jù)的控制信號CTRL連接至單片機的中斷INT1引腳,通過不斷檢測INT1的狀態(tài)來進行并口數(shù)據(jù)的采集。當打印機不忙(即BUSY=0)時,如果有INT1中斷產生,則從74HC245的數(shù)據(jù)端口將并口數(shù)據(jù)讀出,同時將打印機忙標志BUSY置1(表示打印機忙)。當數(shù)據(jù)已經(jīng)發(fā)送至打印機打印時,則將打印機忙標志BUSY置0。然后重復上述步驟進行并口數(shù)據(jù)的采集及打印。
初始化過程分兩部分:單片機初始化和打印機的枚舉初始化。單片機的初始化過程就是直接向相應的I/O口寫初始化值及設置看門狗,可調用函數(shù)watchdog_init()實現(xiàn)設置看門狗。
打印機的枚舉初始化過程很重要,要實現(xiàn)打印采集到的并口數(shù)據(jù),首先必須成功地枚舉初始化打印機。初始化USB打印機函數(shù)init_print()主要用到以下幾個主要函數(shù):
◇get_descr(1),獲取設備描述符。
◇rd_usb_data(buffer),從CH375中讀取數(shù)據(jù)到單片機中。
◇set_addr(3),設置打印機的USB地址。
◇get_full_descr(buffer),獲取配置描述符。
◇set_config(unsignedcharcfg),加載USB配置值。
編者注:具體程序見本刊網(wǎng)站:www.mesnet.com.cn
結語
本文詳細介紹了基于80C51單片機和USB總線通用接口芯片CH375的LPT-USB打印機驅動器設計及C語言實現(xiàn)。經(jīng)測試表明,利用該設計能夠實現(xiàn)并口儀器數(shù)據(jù)直接經(jīng)USB打印機打印出來,打印結果正確無誤。該設計現(xiàn)已被用于并口儀器上,利用該驅動器,并行口儀器可以直接和USB打印機相連進行打印,極大克服了有些并口儀器必須連接并口打印機才能打印的弊端,從而很大程度上方便了用戶。
參考文獻:
[1]. 74HC245 datasheet http://hbjingang.com/datasheet/74HC245_1811615.html.
[2]. P15 datasheet http://hbjingang.com/datasheet/P15_1204152.html.
[3]. 80C51 datasheet http://hbjingang.com/datasheet/80C51_103447.html.
版權與免責聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權均屬于維庫電子市場網(wǎng),轉載請必須注明維庫電子市場網(wǎng),http://hbjingang.com,違反者本網(wǎng)將追究相關法律責任。
本網(wǎng)轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉載時,必須保留本網(wǎng)注明的作品出處,并自負版權等法律責任。
如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網(wǎng)聯(lián)系,否則視為放棄相關權利。
- LED照明技術特性與選型運維指南2026/1/5 10:26:27
- 工業(yè)觸摸屏選型與現(xiàn)場應用技術指南2025/12/22 11:44:57
- 顯示器色深 6Bit、8Bit、10Bit 與 6 抖 8、8 抖 10、FRC2025/8/28 15:29:32
- Micro-LED技術解析2025/8/26 17:21:56
- LED顯示屏標清、高清、超清、1080P與4K的解析2025/8/8 17:05:00









