新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 基于CH375接口電路的LPT-USB打印機驅動器的設計與實現

        基于CH375接口電路的LPT-USB打印機驅動器的設計與實現

        ——
        作者:王小芳,鄭寬磊,強偉峰 時間:2007-01-26 來源:《國外電子元器件》 收藏


        1 引言

        本課題來源于北京普析通用公司。 由于該公司現有光譜儀器的單機版(如1810和t6等)采用的是并行口打印技術,而隨著usb打印機技術的逐漸普及,并行口打印機越來越少,有些用戶原有的打印機只是usb接口而非并行口,因此現有儀器對打印機的支持不能適應用戶需要。為了使該公司的并行口儀器直接和usb打印機相連,筆者設計了一種lpt-usb打印機驅動器,實現并口儀器與usb打印機的連接。

        筆者利用單片機和usb總線接口器件實現lpt-usb打印機驅動器的設計。利用該設計將能夠實現并行打印口數據在usb打印機上的直接打印,克服了有些并口儀器必須連接并口打印機才能打印的弊端,極大地方便了用戶的使用。

        2 ch375的特點及工作原理

        2.1 ch375的特點

        ch375是一個usb總線通用接口電路,支持host主機方式和slave設備方式。ch375內部集成了pll倍頻器、主從usb接口sie、數據緩沖區、被動并行接口、異步串型接口、命令解釋器、控制傳輸的協議處理器、通用的固件程序等。在本地端,ch375具有8位數據總線和讀、寫、片選控制線及中斷輸出,可以方便地掛接到單片機、dsp、mcu等控制器的系統總線上。ch375的usb主機方式支持各種常用的usb全速設備,外部單片機、dsp、mcu可以通過ch375按照相應的usb協議與usb設備通信。ch375的特點如下:

        (1)全速usb-host主機接口符合usb1.1,支持動態切換主機與設備方式,外圍元器件只需要1個晶體和2個電容;

        (2)主機端點輸入和輸出緩沖區各有64字節,支持常用的12mb/s全速usb設備;

        (3)支持usb設備的控制傳輸、批量傳輸、中斷傳輸;

        (4)自動檢測usb設備的連接和斷開,提供設備連接和斷開的通知;

        (5)內置控制傳輸的協議處理器,簡化常用的控制傳輸;

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

        (7)串行接口包括串行輸入、串行輸出和中斷輸出,支持通信波特率的動態調整。

        (8)支持5v電源電壓和3.3v電源電壓。

        2.2 ch375的工作原理

        如圖1所示,ch375通過被動并行接口電路可以方便地掛接到各種8位單片機、dsp、mcu的系統總線上,并且可以與多個外圍器件共存。并口信號線包括8位雙向數據總線d7-do、讀選通輸入rd、寫選通輸入wr、片選輸入cs、中斷輸出int及地址輸入線ao。ch375的rd和wr可以分別連接到單片機的讀選通輸出引腳和寫選通輸出引腳。int可以連接到單片機的中斷輸入引腳,中斷請求是低電平有效。當cs、rd及ao都為低電平時,ch375中的數據通過d7-do輸出;當cs和wr以及ao都為低電平時,d7-do上的數據被寫入ch375;當cs、wr都為低電平而a1為高電平時,d7-do上的數據被作為命令碼寫入ch375。

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

        3 硬件電路設計

        圖2所示為單片機通過ch375控制usb打印機的硬件電路。ch375通過被動并行接口電路掛接到8位單片機的系統總線上,ch375的txd引腳接地,使ch375工作于并口方式。ch375的8位雙向數據總線d7-do直接與單片機的po數據口相連,rd和wr分別連接到單片機的讀選通輸出引腳和寫選通輸出引腳。片選信號cs連接到單片機的p2.6引腳,該引腳為低電平時選通ch375。int可以連接到單片機的中斷輸入into引腳,中斷請求是低電平有效。地址輸入線ao連接至單片機的p2.5引腳,當ao引腳為高電平時選擇命令端口,可以寫入命令,當ao引腳為低電平時選擇數據斷口,可以讀寫數據。

        采用74hc245型三態雙向總線驅動器作為打印機口向單片機傳送并口數據的接口,其片選信號與單片機的p2.7相連,方向控制位dir與單片機的p3.4相連,當dir為高電平時,數據從a端口向b端口傳送,此時單片機可以通過讀取74hc245數據端口得到并口的數據,打印機狀態信號busy連接至單片機的p1.5引腳,并口數據采集控制信號ctrl直接連至單片機的int1中斷引腳,當int1產生中斷時,單片機從并口讀取數據,然后再發送至打印機進行打印。

        4 軟件設計

        4.1 軟件流程

        軟件流程如圖3所示。該軟件用c語言編程,通信過程主要包括初始化和并口數據的采集。

        并口數據的采集是通過中斷方式進行的。采集數據的控制信號ctrl連接至單片機的中斷int1引腳,通過不斷檢測int1的狀態進行并口數據的采集。當打印機不忙(busy=0)時,如果產生int1中斷,則從74hc245的數據斷口讀出并口數據,同時將打印機忙標志busy置1(表示打印機忙),當數據已經發送至打印機打印時,則將打印機忙標志busy置0。然后重復上述步驟進行并口數據的采集及打印。

        初始化過程分為單片機初始化和打印機的枚舉初始化。單片機的初始化過程是直接向相應的i/0口寫初始化值及設置看門狗,可調用函數watchdog_init()設置看門狗。

        打印機的枚舉初始化過程是很重要的,要打印采集到的并口數據首先必須成功地枚舉初始化打印機。初始化usb打印機函數init_print()主要使用以下幾個主要函數:

        4.2 主程序源代碼

        主程序代碼如下:

        5 結束語

        本文詳細介紹了基于80c51型單片機和ch375型usb總線通用接口電路的lpt-usb打印機驅動器的設計及c語言實現。測試結果表明,利用該設計能夠實現并口儀器數據直接經usb打印機打印,打印結果正確無誤。該設計現已用于并口儀器上,并行口儀器利用該驅動器可以直接和usb打印機相連并進行打印,克服了有些并口儀器必須連接并口打印機才能打印的弊端,方便了用戶。



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 河曲县| 双牌县| 灵武市| 博白县| 固原市| 安康市| 三明市| 日土县| 武平县| 武鸣县| 普格县| 石景山区| 绥芬河市| 新余市| 醴陵市| 托克托县| 东山县| 济阳县| 乌审旗| 沙湾县| 灌阳县| 胶州市| 台北县| 中山市| 淮滨县| 射阳县| 会理县| 绥化市| 宜良县| 二连浩特市| 蓬莱市| 大竹县| 清河县| 周宁县| 新蔡县| 射洪县| 中江县| 博湖县| 沧州市| 双鸭山市| 石首市|