usb-device測試軟件ch372開發(fā)軟硬件詳細(xì)_第1頁
usb-device測試軟件ch372開發(fā)軟硬件詳細(xì)_第2頁
usb-device測試軟件ch372開發(fā)軟硬件詳細(xì)_第3頁
usb-device測試軟件ch372開發(fā)軟硬件詳細(xì)_第4頁
usb-device測試軟件ch372開發(fā)軟硬件詳細(xì)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

USB接口CH372(或CH375設(shè)備方式)1、演示板采用USB總線接口CH372(或CH375、數(shù)碼管驅(qū)動和鍵盤控制CH451(或CH452、通用的MCS51系列單片機(jī)構(gòu)成,用于演示CH372的USB數(shù)據(jù)通訊功能、CH451的數(shù)碼管驅(qū)動/鍵盤掃描功能、以及CH372與單片機(jī)的連接、CH451與單片機(jī)的連接等。CH372是CH371的升級產(chǎn)品,數(shù)據(jù)緩沖區(qū)更大,傳輸速度更快,除此之外,CH372還支持USB產(chǎn)品IDID。CH375CH372CH375。CH372CH375必須在單片機(jī)或者DSP的控制下才能進(jìn)行USB通訊,如果僅僅是實(shí)現(xiàn)一個簡單的、低速的AD模數(shù)、I/O控制等,那么可以用CH341,CH341可以不需要單片機(jī)和DSP就能USB通訊,CH341通過異步串口、并口、兼容I2C兩線同步串口等連接外部邏輯電路。相比之下,CH452的功能、價格更低,所以本說明也適用于CH452。2、演示板的原第一版演示板的原理圖和PCB請參考DEMO_SCH.PDF文檔及DEMO_PCB.PDF文檔。圖在本演示板中,USB的位置為DIP28插座,可以插入CH372轉(zhuǎn)換板或者CH375轉(zhuǎn)換板,互為代替。默認(rèn)情況下只提供CH372的SSOP20轉(zhuǎn)DIP28轉(zhuǎn)換板,如果需要可以另外提供CH375的SOP28轉(zhuǎn)DIP28轉(zhuǎn)換板。CH372D28.PDF是CH372轉(zhuǎn)換板的原理圖。在本演示板中,CH451的位置可以使用DIP24S或者DIP28兩種插座中的一種,互為代替,并且還可以選用CH452代替CH451。默認(rèn)情況下,隨板只提供DIP24S封裝的CH451或者CH452,如果需要可以另外提供DIP28封裝的CH451。U4(單片機(jī)89C51等)用于測試CH372USB數(shù)據(jù)通訊功能CH372A0U4P20驅(qū)動,CH372的片選線CS#由U4的P21驅(qū)動,所以CH372令口的地址可以是FDXXH(例子程BDF1HBCF0H單片機(jī)U4的INT0相連接,U4通過CH372的并行接口與CH372進(jìn)行數(shù)據(jù)交換。置成功,CH375ACT#引腳將輸出低電平,點(diǎn)亮LED。CH372ACT#引腳。跳線J2用于選擇單片機(jī)U4的上電復(fù)位信號的來源,CH375和CH451都具有上電復(fù)位的功能。如果需要28腳封裝CH451RSTI(28,建議在VCCGND之間跨接一個pF整個演示板通過普通的USB對連線與PC機(jī)進(jìn)行通訊,并且可以由PC機(jī)DEMO應(yīng)用程序控制其進(jìn)行功能演示。該USB對連通訊線的兩個端頭是一樣的,一頭插在演示板的P1端口中,另一頭插在PC機(jī)的任意一個USB端口中。3、演示板的使用如果演示板上沒有89C51,請用編程器將HEX目標(biāo)程序代碼CH375451.HEX寫入單片機(jī),然后將其插到演示板上。單片機(jī)的程序在DEMO\MCU子下,相應(yīng)的匯編源程序是CH375451.ASM,C語言源程序是CH375451.C。用USB通訊線連接演示板和PC機(jī),WINDOWS將提示找到新硬件,只要指定CH372的驅(qū)動程序文件所在的CH372/DRIVER/DRIVER,WINDOWS就會安裝驅(qū)動程序,或執(zhí)行驅(qū)動安裝包CH372DRV.EXE進(jìn)行98/ME/2000/XP三個主要文件:安裝信息CH375WDM.INF、驅(qū)動程序CH375WDM.SYS、動態(tài)庫CH375DLL.DLL,其中的下標(biāo)有“USBCH372/CH375”的設(shè)備就是演示板或者其它CH372CH372DEMO.EXE,該應(yīng)用層程序僅僅是一個簡單的功能演示程序,相應(yīng)的C語言源程序是DEMO.CDEMO.H。DEMO程序首CH372設(shè)備,測試與單片機(jī)的數(shù)據(jù)通訊是否正常,最后安裝中斷服務(wù)程序并進(jìn)入驅(qū)動的消息循環(huán)。新版的DEMO演示程序支持設(shè)備插拔通知,可以自動檢測該演示板的插入與拔出。如果未輸入其它命令則演示板上相應(yīng)的數(shù)碼管也顯示F3演示板上相應(yīng)的鍵被按下,示板上的相應(yīng)位置的數(shù)碼管。演示板上的單片機(jī)U4在啟動時將CH451設(shè)置為BCD譯碼方式。如果輸入EE;4.44.。點(diǎn)擊命令按鈕時,需要輸入3個字符,字符為十六進(jìn)制字符0至9或者A至F,將被解釋為12位令然后傳送給CH451。如果輸入3個字符61A,則CH451收到的12位命令是011000011010,結(jié)果是CH451控制數(shù)碼管N4、N5、N7閃爍;如果輸入字符581,則CH451收到的12位命令是010110000001,結(jié)果是CH451設(shè)定顯示占空比為1/16,也就是顯示亮度調(diào)整為最低檔。后時,對應(yīng)的鍵位才恢復(fù)顯示為鍵號。這個演示是由CH372驅(qū)動程序提供的中斷服務(wù)實(shí)現(xiàn)的。建議在退出應(yīng)用程序后,再拔插演示板的USB通訊線(關(guān)閉演示板該應(yīng)用層程序的C語言源程序是DEMO.C以及DEMO.H,設(shè)計(jì)WINDOWS應(yīng)用程序時可以作為參考。如果調(diào)用CH375提供的動態(tài)庫,則要用到CH375DLL.H和CH375DLL.LIB兩個文件。對于一般的VC編譯環(huán)境,將上述兩個文件放置在應(yīng)用程序的同一下,然后參考下圖將CH375DLL.LIB添加到應(yīng)用程序的庫中,當(dāng)應(yīng)用程序被編譯時就會自動。如果不使用工程文件,則可以參考DEMO的MAKEFILE文件。4、沒有PC機(jī)情況下的5VP212腳輸入。U4CH3725、有關(guān)USB應(yīng)用程序的設(shè)計(jì)CH372提供了3個相互獨(dú)立的端對端的邏輯傳輸通道,USB產(chǎn)品的設(shè)計(jì)人員可以根據(jù)需要自行定義各個通道的用途,并在上位機(jī)與下位機(jī)之間約定各個通道中的數(shù)據(jù)格式。對于CH372A,還有8字節(jié),端點(diǎn)地址和中斷狀態(tài)為01H。單次最大長度8>用WR-USB-DATA5單次最大長度單次最大長度64用RD-USB-DATAHANDLEWINAPICH375OpenDevice(//打開CH375 WINAPICH375CloseDevice(CH375 iIndexCH375以在iIndex指定序號進(jìn)行區(qū)分,先連接的是0#,接著是1#,依次排序。為了在已排序的多個USB設(shè)備中找到特定功能的USB設(shè)備,應(yīng)用程序可以按設(shè)備序號依次查詢,直到某USB設(shè)備對自定義的識別命通過WIN32-APICreateFile以異步方式打開CH375設(shè)備。 WINAPICH375GetDeviceName(//返回指向CH375設(shè)備名稱的緩沖區(qū),出錯則返回NULL iIndex);//指定CH375設(shè)備序號,0對應(yīng)第一個設(shè)備打開CH375設(shè)備后,應(yīng)用程序通過該API可以獲得其名稱,是一個由系統(tǒng)自動生成的較長字符串的名稱,有了設(shè)備名稱后,可以用于多線程應(yīng)用程序以CreateFile自行打開CH375設(shè)備并通訊。 WINAPICH375ResetDevice(USB iIndexCH375 WINAPICH375ReadData(//數(shù)據(jù)ULONGiIndex,//指定CH375PVOIDoBuffer,//指向一個足夠大的緩沖區(qū),用于保存的數(shù)PULONGioLength);//指向長度單元,輸入時為準(zhǔn)備的長度,返回后為實(shí)際的長度WR-USB-DATA7命令寫入上傳數(shù)據(jù)。如果單片機(jī)還沒有寫入上傳數(shù)據(jù)則一直等待,如果單片機(jī)進(jìn)入中斷服務(wù)程序中沒有釋放緩沖區(qū)也會一直等待。一次的最大長度是4096字節(jié),實(shí)際上被分解為不超過64字節(jié)的小數(shù)據(jù)包進(jìn)行多次傳輸,如果單片機(jī)寫入的某個數(shù)據(jù)包不足64字節(jié),那么將提前結(jié)束讀止。這是“立即上傳”模式,也就是調(diào)用CH375ReadData將立即嘗試執(zhí)行一個USB上傳。如果已經(jīng)通過CH375SetBufUpload設(shè)置“緩沖上傳”模式,那么調(diào)用CH375ReadData將只是到內(nèi)存緩沖BOOLWINAPICH375WriteData( //指定 iBuffer,PULONGioLength);//指向長度單元,輸入時為準(zhǔn)備寫出的長度,返回后為實(shí)際寫出的長度式,也就是調(diào)用CH375WriteData將立即嘗試執(zhí)行一個USB下傳。據(jù)進(jìn)行無間隔USB下傳,而不管該數(shù)據(jù)是否已經(jīng)下傳完成。注意應(yīng)該及時查詢防止緩沖區(qū)溢出。644096BOOLWINAPICH375ReadInter(//中斷數(shù)ULONGiIndex,CH375PVOIDoBuffer,//指向一個足夠大的緩沖區(qū),用于保存的中斷數(shù)PULONGioLength);//指向長度單元,輸入時為準(zhǔn)備的長度,返回后為實(shí)際的長度WR-USB-DATA5機(jī)進(jìn)入中斷服務(wù)程序中沒有釋放緩沖區(qū)也會一直等待。一次的最大長度是8字節(jié)。(8KB/S數(shù)據(jù)量大(1MB/S,CH372只能提供400KB/S左右。由于Windows是多任務(wù)操作系統(tǒng),雖然中斷數(shù)據(jù)對于WDM驅(qū)動程序可以獲得1毫秒的響應(yīng)時間,但是對于應(yīng)用程序卻達(dá)不到,因?yàn)閃indows要進(jìn)行任務(wù)BOOLWINAPICH375SetIntRoutine(ULONGiIndex,CH375mPCH375_INT_ROUTINEiIntRoutineNULL序。除了查詢方式之外,CH375DLL動態(tài)庫還提供了中斷方式,用于單片機(jī)在需要時及時通CH375SetIntRoutineiIntRoutine(實(shí)際是一個子程序或者函數(shù)或者過程),當(dāng)單片機(jī)用WR-USB-DATA5命令向CH375寫入中斷數(shù)據(jù)后,計(jì)算機(jī)端的WDM驅(qū)動程序可以在1毫秒之內(nèi)收到該中斷傳輸?shù)臄?shù)據(jù),隨后WDM通知DLL,由DLL調(diào)用iIntRoutine中斷服務(wù)程序,并同時傳遞不超過8個字節(jié)的中斷特征數(shù)據(jù)。 WINAPICH375Abort????如果應(yīng)用程序已經(jīng)打算退出,但是某個USB數(shù)據(jù)讀寫操作尚未完成(API未返回),那么可以由該API取消對應(yīng)的操作。共有3個API,分別對應(yīng)3個管道的取消操作。通常在另外一個線程中,或者在當(dāng)前線程因?yàn)閁SB通訊超時返回時,才有機(jī)會取消未完成的操作,另外,如果USB通訊超時,并且不打算繼CH375CloseDevice通常會自動取消未完成的USB操作。 WINAPICH375SetTimeout(//設(shè)置USBULONGiIndex,CH375//指定ULONGiReadTimeout);//指定USB數(shù)據(jù)塊的超時時間,以毫秒mS為單為了避免在單片機(jī)未準(zhǔn)備好的情況下讀寫USB數(shù)據(jù)時長時間等待,可以設(shè)置USB通訊超時,超時值以毫例如,CH375SetTimeout(0,5000,1000)設(shè)置寫超時為5秒,設(shè)置讀超時為1秒,當(dāng)調(diào)用當(dāng)調(diào)用CH375ReadData上傳數(shù)據(jù)時,如果單片機(jī)忙或者未準(zhǔn)備好上傳數(shù)據(jù),那么該子程序?qū)⒃?秒后超時而返回,從而避免長時間等待導(dǎo)致應(yīng)用程序無法響應(yīng)其它。注意,如果讀寫操作因?yàn)槌瑫r而返回,那么返回時的“實(shí)際讀寫長度”參數(shù)可能小于期望值,并且可能為0。考慮到WINDOWS應(yīng)用程序自身的響應(yīng)時間較長,并且實(shí)際傳輸4K字節(jié)的數(shù)據(jù)至少需要10毫秒,所以超時時間通常不宜小于50毫 WINAPICH375SetExclusive(CH375ULONGiIndex,CH375ULONGiExclusive00如果不希望同一個CH375設(shè)備被多個應(yīng)用程序打開并且使用,那么可以在打開CH375設(shè)備后,調(diào)用該API設(shè)置獨(dú)占使用。如果需要設(shè)置中斷服務(wù)程序,那么應(yīng)該在該API之前執(zhí)行,因?yàn)橹袛喾?wù)程序也需要再次打開CH375設(shè)備。 WINAPICH375SetBufUpload( WINAPICH375QueryBufUpload( 部緩沖區(qū)中可以保存多個數(shù)據(jù)包,每個數(shù)據(jù)包的最大長度是64字節(jié),而包的實(shí)際長度是實(shí)際這個收到的多個數(shù)據(jù)包,直到滿足應(yīng)用程序所要求的字節(jié)數(shù)或者遇到一個長度不足64 WINAPICH375SetBufDownload( 同時清除緩沖區(qū)中的數(shù)據(jù),當(dāng)應(yīng)用程序調(diào)用CH375WriteData時將直接放入緩沖區(qū)并立即返回。LONGWINAPICH375QueryBufDownload(ULONGiIndexCH375,0CH375WriteData中,然后由CH375驅(qū)動程序逐個自動發(fā)送內(nèi)部緩沖區(qū)中的待下傳USB數(shù)據(jù)包。內(nèi)部緩沖區(qū)中可以暫存多個數(shù)據(jù)包,每個數(shù)據(jù)包的最大長度是64字節(jié),而包的實(shí)際長度是實(shí)際這個包的字節(jié)數(shù)。BOOLWINAPICH375SetDeviceNotify(//設(shè)定設(shè)備通知程ULONGiIndex,//指定CH375,0 iDeviceID,//可選參數(shù),指向字符串,指定 mPCH375_NOTIFY_ROUTINEiNotifyRoutine);//指定設(shè) 以及何時拔出(斷開從而避免對已斷開的USB設(shè)備進(jìn)行無效操作。CH375的DLL動態(tài)庫提供了法,即設(shè)備插拔通知,能夠讓應(yīng)用程序及時了解USB設(shè)備的插拔。應(yīng)用程序事先用CH375SetDeviceNotify指定一個回調(diào)程序iNotifyRoutine(實(shí)際是一個子程序或再打開該USB設(shè)備進(jìn)行操作,如果是USB設(shè)備拔出,那么應(yīng)該通知主程序及時停止USB傳輸并關(guān)閉USB設(shè)備。具體實(shí)例可以參考DEMO演示程序。設(shè)備,有則開始USB傳輸,無則等待USB設(shè)備插入。當(dāng)收到插入后,也應(yīng)該使用循環(huán)計(jì)數(shù)逐個嘗試打開USB設(shè)備,無則繼續(xù)等待。64(單個數(shù)據(jù)包的最大檢查上傳數(shù)據(jù)塊RD-USB-DATARD-USB-DATA序(或者C函數(shù))IntRoutine,然后主程序地等待消息通知。當(dāng)單片機(jī)需要上傳數(shù)據(jù)給計(jì)算機(jī)時,首先用WR-USB-DATA7將上傳數(shù)據(jù)的前64字節(jié)寫入CH372,然后用WR-USB-DATA5寫入不超過8個字節(jié)的中斷特征數(shù)據(jù)。不超過1毫秒(理論值,計(jì)算機(jī)CH375的IntRoutine數(shù)據(jù)的長度,例如是4096個字節(jié),那么主程序在調(diào)用CH375ReadData時應(yīng)該指明是要4096個字節(jié),而單片機(jī)在收到上傳成功中斷后,應(yīng)該繼續(xù)用WR-USB-DATA7寫入上傳數(shù)據(jù)的第二組64字節(jié),直到數(shù)據(jù)IntRoutine出消息通知應(yīng)用程序的主程序用CH375WriteData下傳數(shù)據(jù)。式,緩沖下傳不影響USB總線的使用效率。①、在CHECK/DEMO 下是一個計(jì)算機(jī)作為傳輸節(jié)奏控制方的應(yīng)用實(shí)例命令包與數(shù)據(jù)包之間通過長度區(qū)分,用于演示CH372的數(shù)據(jù)傳輸和CH451顯示及鍵盤功能。計(jì)算機(jī)應(yīng)用程序在初始化后調(diào)用CH375SetIntRoutine指定了中斷服務(wù)程序以便在單片機(jī)檢測到CH451的按鍵當(dāng)單片機(jī)檢測到CH451按鍵按下或者釋放時都會以中斷方式通知計(jì)算機(jī)應(yīng)用程序。該程序同時演示USB設(shè)備插拔通知的用法,以及演示CH451和CH452的常用命令等。②、在CHECK/BULK下是另一個計(jì)算機(jī)作為傳輸節(jié)奏控制方的應(yīng)用實(shí)例,所有下傳數(shù)據(jù)包的首字節(jié)是命令碼,沒有專門令包,用于測試CH375或者CH372的數(shù)據(jù)傳輸速度。對于160KB/S150KB/SBULK\MCU\CH375BLK.HEX過編程器寫入單片機(jī),然后該測試程序就可以在本演示板上運(yùn)行。在WINDOWS下,如果CH375A或者CH372A以1uS為周期與單片機(jī)交換數(shù)據(jù),實(shí)測速度最高約為400KB/S。CHECK/BULK/WINSPEED372.C沖上傳”模式的例子,用USB④、在CHECK/TEST 可以用于測試USB數(shù)據(jù)傳輸?shù)恼_性、USB硬件的長期穩(wěn)定性。CHECK/VB中為對應(yīng)的VBVCVC用程序示例,在DELPHI中為對應(yīng)的DELPHI語言的應(yīng)用程序示例。MCU_IF子中為常用的CASM其C子中CH372FRM.C使用CH372CH375USBC程序,該程序可以USB起狀態(tài)的低功耗模式。在CH451或CH452的MCU_IF中有CH451或CH452的接口子程序。⑦、在CHECK/XFIRM子 計(jì)HID類的USB設(shè)備以及其它標(biāo)準(zhǔn)USB類設(shè)備。WINDOWSDEBUG372CH372或CH375和各種單片機(jī),可以通過USB收發(fā)數(shù)據(jù)。注意,工具DEBUG372是多線程應(yīng)用程序,該源程序不推薦參考,工具程序?yàn)镈EBUG/DEBUG372。⑨、對于MCS51單片機(jī),可以直接內(nèi)置CH372的USB調(diào)試固件程序,從而能夠在PC機(jī)端用對應(yīng)的工具程序簡單控制和檢查單片機(jī)的SFR和RAM等。進(jìn)一步的應(yīng)用是,在單片機(jī)與計(jì)算機(jī)MCS51單片機(jī)的內(nèi)存,自然也就實(shí)現(xiàn)了單片機(jī)與計(jì)算機(jī)端兩者之間的數(shù)據(jù)交換。網(wǎng)上提供相關(guān)資料供參考,文件為CH372/DEBUG/MCS51。6、其它注意X1的1‰精度要求,所以不必測量頻率。當(dāng)CH372或者CH375正常工作時,XI和XO引腳用數(shù)字萬VCC/2±1V須關(guān)閉電源再重開。如果電源電壓為3.3V,建議將XI引腳的電容C1容量選用小些(例如10pFXOVCCXIVCC/2,那么通常是晶體或電容對地漏電。⑵為了提高可靠性和穩(wěn)定性,強(qiáng)烈建議參考USB電路設(shè)計(jì)PCB設(shè)計(jì)注意事項(xiàng)README.PDF文檔。為了降低電磁輻射,并減少干擾,晶體X1的金屬外殼應(yīng)該接地,晶體X1以及電容C1、C2應(yīng)該盡量CH375USB數(shù)據(jù)線D+和D-應(yīng)該平行布線,長度保持差不多,兩側(cè)可以環(huán)繞接地線或者敷銅。1KΩC50V。②VCCGND之間的電解電容取小些10uF下,但是如果板上CH451驅(qū)動數(shù)碼管或者LED顯示,那么電解電容也不能小于10

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論