技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動(dòng)網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > 基于CH372的USB高速接口的設(shè)計(jì)

基于CH372的USB高速接口的設(shè)計(jì)

時(shí)間:2012-06-14 09:19:57來源:張英菊

導(dǎo)語:?本文針對現(xiàn)有與計(jì)算機(jī)通信的高速接口存在的問題,以STC89C58為核心,基于USB接口芯片CH372設(shè)計(jì)了一個(gè)高速接口,詳細(xì)介紹了硬件電路設(shè)計(jì),下位機(jī)固件程序設(shè)計(jì)和上位機(jī)應(yīng)用程序設(shè)計(jì)。

摘  要:本文針對現(xiàn)有與計(jì)算機(jī)通信的高速接口存在的問題,以STC89C58為核心,基于USB接口芯片CH372設(shè)計(jì)了一個(gè)高速接口,詳細(xì)介紹了硬件電路設(shè)計(jì),下位機(jī)固件程序設(shè)計(jì)和上位機(jī)應(yīng)用程序設(shè)計(jì)。結(jié)果表明,該接口能很好完成高速通信,有較高的可靠性,可用于檢測測量控制系統(tǒng)的高速數(shù)據(jù)采集和監(jiān)控調(diào)試等場合,具有很大的應(yīng)用價(jià)值。

關(guān)鍵詞:USB;高速接口;CH372;固件編程;數(shù)據(jù)采集

 

0 引言

     在現(xiàn)代科學(xué)研究和工業(yè)現(xiàn)場應(yīng)用中,信號(hào)采集和圖像處理等諸多領(lǐng)域,對高速的數(shù)據(jù)通信要求越來越高。傳統(tǒng)的高速數(shù)據(jù)通信多是基于PCI,ISA等接口的數(shù)據(jù)卡,存在過多占用系統(tǒng)資源、設(shè)計(jì)復(fù)雜、不便攜帶、價(jià)格較高和擴(kuò)展性差等缺點(diǎn)。因此提出一種基于USB接口芯片CH372實(shí)現(xiàn)的高速接口。USB(Universal Serial Bus,通用串行總線)是在1995年被提出來的,并由Compaq,Digital Equipment Corp,IBM,Intel,Microsoft,NEC和Northern Telecom等7家公司定義和推廣[1]。由于其具有的易擴(kuò)展,支持熱插拔,價(jià)格低廉,使用方便等優(yōu)點(diǎn),應(yīng)用廣泛,已成為計(jì)算機(jī)外設(shè)的主流必備接口之一,具有低速和高速兩種模式,在USB2.0高速模式下,速率可達(dá)480Mbps,滿足大部分高速通信的要求。

1 CH372芯片介紹

     CH372是沁恒公司生產(chǎn)的USB總線的通用設(shè)備接口芯片。在本地端,CH372具有8位數(shù)據(jù)總線和讀、寫、片選控制線以及中斷輸出,可以方便地掛接到單片機(jī)/DSP/MCU/MPU等控制器的系統(tǒng)總線上;在計(jì)算機(jī)系統(tǒng)中,CH372的配套軟件提供了簡潔易用的操作接口,與本地端的單片機(jī)通訊就如同讀寫文件。同時(shí),CH372內(nèi)置了USB通訊中的底層協(xié)議,具有省事的內(nèi)置固件模式和靈活的外置固件模式。在內(nèi)置固件模式下,CH372自動(dòng)處理默認(rèn)端點(diǎn)0的所有事務(wù),本地端單片機(jī)只要負(fù)責(zé)數(shù)據(jù)交換,所以單片機(jī)程序非常簡潔。在外置固件模式下,由外部單片機(jī)根據(jù)需要自行處理各種USB請求,從而可以實(shí)現(xiàn)符合各種USB 類規(guī)范的設(shè)備[2]。

     CH372為全速USB,兼容USB2.0,即插即用,外圍元器件簡單,只需要晶體和電容。提供一對主端點(diǎn)和一對輔助端點(diǎn),支持控制傳輸、批量傳輸、中斷傳輸?shù)榷喾N傳輸模式。通用Windows驅(qū)動(dòng)程序提供設(shè)備級(jí)接口,通過DLL提供API應(yīng)用層接口??梢宰远x廠商標(biāo)識(shí)( Vendor ID) 和產(chǎn)品標(biāo)識(shí)( Product ID) 。主端點(diǎn)上傳下傳緩沖區(qū)各64 字節(jié),輔助端點(diǎn)上傳下傳緩沖區(qū)各8字節(jié)[2]。由于CH372內(nèi)置了USB底層通訊協(xié)議,且提供驅(qū)動(dòng)程序,大大節(jié)省了開發(fā)者的開發(fā)時(shí)間,提高效率,降低了成本。

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

     CH372與單片機(jī)連接可選擇總線擴(kuò)展或非總線擴(kuò)展的方式,在本設(shè)計(jì)中,AT89C58和CH375采用地址/數(shù)據(jù)復(fù)用的總線擴(kuò)展方式連接。其硬件接口電路圖如圖1所示。

 

 

圖1 硬件接口電路
Fig.1 Hardware Interface Circuit

     CH372芯片的八位數(shù)據(jù)線與單片機(jī)P0口連接,RD#和WR#則分別連接到單片機(jī)的讀選通輸出引腳和寫選通輸出引腳,片選信號(hào)CS#為低時(shí)選中芯片,INT#用于接單片機(jī)中斷引腳INT0,中斷請求為低電平有效。當(dāng)A0引腳為高電平時(shí)選擇命令端口,可以寫入新的命令,或者讀出中斷標(biāo)志;當(dāng)A0引腳為低電平時(shí)選擇數(shù)據(jù)端口,可以讀寫數(shù)據(jù)[3]。

     CH372的UD+和UD-引腳直接連接到USB總線上。R1是為了芯片安全而串接保險(xiǎn)電阻,大小為1Ω。CH 372芯片內(nèi)置了電源上電復(fù)位電路,一般情況下,不需要外部提供復(fù)位。CH372的VCC接+5V電源,在VCC和GND之間的0.1μF電解電容C2用于外部電源退耦,電容C1選用獨(dú)石電容或者高頻瓷片電容,用于CH372內(nèi)部電源節(jié)點(diǎn)退耦。在設(shè)計(jì)PCB時(shí),退耦電容C1和C2要盡量靠近CH372的相連引腳;使D+和D-信號(hào)線盡量平行布線,盡量在兩側(cè)提供地線或者覆銅,減少來自外界的信號(hào)干擾;盡量縮短XI和XO引腳相關(guān)信號(hào)線的長度,為了減少高頻時(shí)鐘對外界的干擾,可以在相關(guān)元器件周邊環(huán)繞地線或者覆銅。

3 軟件設(shè)計(jì)

3.1  下位機(jī)固件程序設(shè)計(jì)

     下位機(jī)固件程序是與CH372相連的單片機(jī)中執(zhí)行的代碼,配合相應(yīng)上位機(jī)應(yīng)用程序,實(shí)現(xiàn)數(shù)據(jù)通信。其程序流程圖如圖2所示。

 

 

圖2 程序流程圖
Fig.2 Program Flow Chart

     固件程序主要分為初始化程序模塊和中斷程序模塊,下面分別介紹:

     初始化程序模塊:初始化程序首先向CH372發(fā)送測試工作狀態(tài)的命令,檢查CH372是否正常工作,如不正常,重復(fù)發(fā)送硬件復(fù)位命令多次。然后設(shè)置外部自定義的USB設(shè)備VID和PID,此項(xiàng)操作為可選,不執(zhí)行該命令則使用默認(rèn)的VID和PID。接下來設(shè)置USB的工作模式,這是必須要有的操作。最后,置外部信號(hào)為低電平觸發(fā),清中斷標(biāo)志,允許CH372中斷。

     中斷程序模塊:USB協(xié)議規(guī)定,任何傳輸都必須由主機(jī)發(fā)起。上位機(jī)發(fā)送命令給CH372后,CH372通過中斷的方式通知單片機(jī)。CH372支持所有的四種USB數(shù)據(jù)傳輸方式??筛鶕?jù)具體應(yīng)用使用相應(yīng)傳輸方式。進(jìn)入中斷后,首先獲取中斷狀態(tài)并情中斷標(biāo)志,然后根據(jù)讀取的中斷狀態(tài)進(jìn)行對應(yīng)操作。如果是端點(diǎn)下傳,則從當(dāng)前USB中斷的端點(diǎn)緩沖區(qū)讀取數(shù)據(jù)塊,根據(jù)與上位機(jī)應(yīng)用層約定的命令進(jìn)行操作,并釋放緩沖區(qū)。如果是數(shù)據(jù)發(fā)送,則從下位機(jī)的指定地址緩沖區(qū)中讀取數(shù)據(jù)塊,上傳數(shù)據(jù)。

3.2  上位機(jī)固件程序設(shè)計(jì)

     上位機(jī)程序由設(shè)備驅(qū)動(dòng)程序和應(yīng)用程序組成[4],CH372已經(jīng)提供了設(shè)備驅(qū)動(dòng)程序,開發(fā)者可以直接使用。CH372在計(jì)算機(jī)端還提供了應(yīng)用層接口,應(yīng)用層接口是由CH372動(dòng)態(tài)鏈接庫DLL提供的面向功能應(yīng)用的API。CH372動(dòng)態(tài)鏈接庫提供的API包括:設(shè)備管理API、數(shù)據(jù)傳輸API和中斷處理API。開發(fā)者只需要調(diào)用相應(yīng)的接口函數(shù),就可以方便實(shí)現(xiàn)對CH372的操作,大大提高了開發(fā)效率。

     上位機(jī)程序采用Visual Studio 2010編寫,DLL負(fù)責(zé)與內(nèi)核態(tài)的USB功能驅(qū)動(dòng)程序通信。對上位機(jī)程序來說,CH372是一個(gè)擁有設(shè)備名稱的文件。程序提供對設(shè)備打開、關(guān)閉,對參數(shù)的設(shè)置以及通信數(shù)據(jù)的顯示等功能。上位機(jī)程序與下位機(jī)程序約定命令結(jié)構(gòu),識(shí)別命令與數(shù)據(jù)包,方便分析。上位機(jī)首先加載動(dòng)態(tài)鏈接庫CH372DLL.DLL,然后調(diào)用OpenDevice函數(shù)打開設(shè)備,采用定時(shí)查詢的方式,發(fā)送命令給CH372,獲取采集數(shù)據(jù),進(jìn)而對數(shù)據(jù)做相應(yīng)處理。

4 測試和結(jié)論

     通過上位機(jī)程序測試了數(shù)據(jù)傳輸準(zhǔn)確性和速度,具體結(jié)果如圖3所示。在STC89C58,24M晶振條件下,上傳和下傳速度均已達(dá)到1MBps,同時(shí)具有較高準(zhǔn)確性。本文詳細(xì)介紹了基于CH372的高速接口的硬件和軟件實(shí)現(xiàn),實(shí)現(xiàn)了高速的數(shù)據(jù)通信,該設(shè)計(jì)硬件電路簡單,使用方便,有很好的可靠性和穩(wěn)定性,采用獨(dú)立的USB接口芯片,便于替換升級(jí)各領(lǐng)域系統(tǒng)的接口,可以方便地移植到其它控制器中,在工業(yè)領(lǐng)域具有廣泛的應(yīng)用前景。

 

圖3 測試數(shù)據(jù)傳輸準(zhǔn)確性和速度的結(jié)果
  Fig.3 Results of Test Data Correctness and USB Speed

   

 

 

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:臺(tái)達(dá)并條機(jī)自調(diào)勻整解決方案...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)