<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > USB打印機(jī)驅(qū)動(dòng)設(shè)計(jì)

          USB打印機(jī)驅(qū)動(dòng)設(shè)計(jì)

          ——
          作者:中國(guó)地質(zhì)大學(xué) 王小芳 鄭寬磊 強(qiáng)偉鋒 時(shí)間:2006-12-19 來(lái)源:中電網(wǎng) 收藏
          引 言 

          本課題來(lái)源于北京普析通用公司的一個(gè)項(xiàng)目。由于公司現(xiàn)有單機(jī)版光譜儀器產(chǎn)品(如1810、T6等)采用的是并行口打印技術(shù),而隨著技術(shù)的逐漸普及,并行口越來(lái)越不好買到,而且有些用戶的只是接口而非并行口,因此現(xiàn)有儀器產(chǎn)品對(duì)打印機(jī)的支持變得不能適應(yīng)用戶需要。為了實(shí)現(xiàn)能將公司的并行口儀器直接和打印機(jī)相連進(jìn)行打印,決定設(shè)計(jì)開發(fā)一款LPT-USB打印機(jī)的器,負(fù)責(zé)并口儀器和USB打印機(jī)的連接。 

          本文利用單片機(jī)和USB總線接口芯片實(shí)現(xiàn)LPT-USB打印機(jī)的器設(shè)計(jì)。利用該設(shè)計(jì)將能夠?qū)崿F(xiàn)并行打印口數(shù)據(jù)可以在USB打印機(jī)上的直接打印工作,克服了有些并口儀器必須連接并口打印機(jī)才能打印的弊端,極大地方便了用戶的使用。 

          1 CH375芯片特點(diǎn)及工作原理 

          1.1 CH375芯片特點(diǎn)
            
          CH375 是一個(gè)USB總線的通用接口芯片,支持Host主機(jī)方式和Slave設(shè)備方式。CH375芯片內(nèi)部集成了PLL倍頻器、主從USB接口SIE、數(shù)據(jù)緩沖區(qū)、被動(dòng)并行接口、異步串行接口、命令解釋器、控制傳輸?shù)膮f(xié)議處理器、通用的固件程序等。在本地端,CH375 具有8 位數(shù)據(jù)總線和讀、寫、片選控制線以及中斷輸出,可以方便地掛接到單片機(jī)/DSP/MCU 等控制器的系統(tǒng)總線上。CH375 的USB 主機(jī)方式支持各種常用的USB 全速設(shè)備,外部單片機(jī)/DSP/MCU 可以通過(guò)CH375 按照相應(yīng)的USB 協(xié)議與USB 設(shè)備通信。CH375芯片有如下特點(diǎn):
            
          ① 全速USBHOST 主機(jī)接口USB V1.1,支持動(dòng)態(tài)切換主機(jī)與設(shè)備方式,外圍元器件只需要一個(gè)晶體和2個(gè)電容;

          ② 主機(jī)端點(diǎn)輸入和輸出緩沖區(qū)各64 B,支持常用的12 Mbps 全速USB設(shè)備;

          ③ 支持USB 設(shè)備的控制傳輸、批量傳輸和中斷傳輸;

          ④ 自動(dòng)檢測(cè)USB 設(shè)備的連接和斷開,提供設(shè)備連接和斷開的事件通知;

          ⑤ 內(nèi)置控制傳輸協(xié)議處理器,簡(jiǎn)化常用的控制傳輸;

          ⑥ 并行接口包含8 位數(shù)據(jù)總線,4 線控制(讀選通、寫選通、片選輸入和中斷輸出);

          ⑦ 串行接口包含串行輸入、串行輸出和中斷輸出,支持通信波特率動(dòng)態(tài)調(diào)整;

          ⑧ 支持5 V電源電壓和3.3 V電源電壓。

          1. 2CH375芯片工作原理 

          如圖1所示,CH375芯片通過(guò)被動(dòng)并行接口芯片可以很方便地掛接到各種8 位單片機(jī)、DSP和MCU 的系統(tǒng)總線上,并且可以與多個(gè)外圍器件共存。并口信號(hào)線包括:8 位雙向數(shù)據(jù)總線D7~D0、讀選通輸入RD、寫選通輸入WR、片選輸入CS、中斷輸出INT以及地址輸入線A0。CH375 芯片的RD和WR可以分別連接到單片機(jī)的讀選通輸出引腳和寫選通輸出引腳。INT可以連接到單片機(jī)的中斷輸入引腳,中斷請(qǐng)求是低電平有效。當(dāng)CS和RD以及A0 都為低電平時(shí),CH375 中的數(shù)據(jù)通過(guò)D7~D0 輸出;當(dāng)CS和WR以及A0 都為低電平時(shí),D7~D0 上的數(shù)據(jù)被寫入CH375 芯片中;當(dāng)CS和WR都為低電平而A1 為高電平時(shí),D7~D0 上的數(shù)據(jù)被作為命令碼寫入CH375 芯片中。


           

          圖1主機(jī)通過(guò)CH375控制USB設(shè)備原理圖


          2 硬件電路設(shè)計(jì) 

          單片機(jī)通過(guò)CH375控制USB打印機(jī)的硬件電路,如圖2所示,CH375芯片通過(guò)被動(dòng)并行接口芯片掛接到8 位單片機(jī)的系統(tǒng)總線上,CH375 的TXD 引腳接地,從而使CH375 工作于并口方式。CH375芯片的8 位雙向數(shù)據(jù)總線D7~D0直接與單片機(jī)的P0數(shù)據(jù)口相連,RD和WR分別連接到單片機(jī)的讀選通輸出引腳和寫選通輸出引腳。片選信號(hào)CS連接到單片機(jī)的P26引腳,該引腳為低電平時(shí)選通CH375芯片。INT可以連接到單片機(jī)的中斷輸入INT0引腳,中斷請(qǐng)求是低電平有效。地址輸入線A0連接至單片機(jī)的P25引腳,當(dāng)A0引腳為高電平時(shí)選擇命令端口,可以寫入命令;當(dāng)A0引腳為低電平時(shí)選擇數(shù)據(jù)端口,可以讀寫數(shù)據(jù)。 

          采用74HC245三態(tài)雙向總線器作為打印機(jī)口向單片機(jī)傳送并口數(shù)據(jù)的接口,其片選信號(hào)與單片機(jī)的P27相連,方向控制位DIR與單片機(jī)的T0相連。當(dāng)DIR置成高電平時(shí),數(shù)據(jù)從A端口向B端口傳送,此時(shí)單片機(jī)可以通過(guò)讀取74HC245數(shù)據(jù)端口即可得到并口數(shù)據(jù)。打印機(jī)狀態(tài)信號(hào)BUSY連接至單片機(jī)的P15引腳,并口數(shù)據(jù)采集控制信號(hào)CTRL直接連至單片機(jī)的INT1中斷引腳,當(dāng)INT1產(chǎn)生中斷時(shí),單片機(jī)從并口將數(shù)據(jù)取走,然后再發(fā)送至打印機(jī)打印出來(lái)。 

          3 軟件設(shè)計(jì)實(shí)現(xiàn) 

          軟件實(shí)現(xiàn)的流程如圖3所示。該軟件編程是用C語(yǔ)言實(shí)現(xiàn)的,通信過(guò)程主要包括兩部分:初始化和并口數(shù)據(jù)的采集。

          并口數(shù)據(jù)的采集是通過(guò)中斷方式進(jìn)行的。采集數(shù)據(jù)的控制信號(hào)CTRL連接至單片機(jī)的中斷INT1引腳,通過(guò)不斷檢測(cè)INT1的狀態(tài)來(lái)進(jìn)行并口數(shù)據(jù)的采集。當(dāng)打印機(jī)不忙(即BUSY=0)時(shí),如果有INT1中斷產(chǎn)生,則從74HC245的數(shù)據(jù)端口將并口數(shù)據(jù)讀出,同時(shí)將打印機(jī)忙標(biāo)志BUSY置1(表示打印機(jī)忙)。當(dāng)數(shù)據(jù)已經(jīng)發(fā)送至打印機(jī)打印時(shí),則將打印機(jī)忙標(biāo)志BUSY置0。然后重復(fù)上述步驟進(jìn)行并口數(shù)據(jù)的采集及打印。 

          初始化過(guò)程分兩部分:?jiǎn)纹瑱C(jī)初始化和打印機(jī)的枚舉初始化。單片機(jī)的初始化過(guò)程就是直接向相應(yīng)的I/O口寫初始化值及設(shè)置看門狗,可調(diào)用函數(shù)watchdog_init()實(shí)現(xiàn)設(shè)置看門狗。

          圖3軟件實(shí)現(xiàn)流程圖


          打印機(jī)的枚舉初始化過(guò)程很重要,要實(shí)現(xiàn)打印采集到的并口數(shù)據(jù),首先必須成功地枚舉初始化打印機(jī)。初始化USB打印機(jī)函數(shù)init_print()主要用到以下幾個(gè)主要函數(shù): 

          get_descr(1),獲取設(shè)備描述符。
          rd_usb_data(buffer),從CH375中讀取數(shù)據(jù)到單片機(jī)中。
          set_addr(3),設(shè)置打印機(jī)的USB地址。
          get_full_descr(buffer),獲取配置描述符。
          set_config(unsigned char cfg),加載USB配置值。 

          結(jié)語(yǔ) 

          本文詳細(xì)介紹了基于80C51單片機(jī)和USB總線通用接口芯片CH375的LPT-USB打印機(jī)驅(qū)動(dòng)器設(shè)計(jì)及C語(yǔ)言實(shí)現(xiàn)。經(jīng)測(cè)試表明,利用該設(shè)計(jì)能夠?qū)崿F(xiàn)并口儀器數(shù)據(jù)直接經(jīng)USB打印機(jī)打印出來(lái),打印結(jié)果正確無(wú)誤。該設(shè)計(jì)現(xiàn)已被用于并口儀器上,利用該驅(qū)動(dòng)器,并行口儀器可以直接和USB打印機(jī)相連進(jìn)行打印,極大克服了有些并口儀器必須連接并口打印機(jī)才能打印的弊端,從而很大程度上方便了用戶。



          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();