一種新型的USB通信技術(shù)研究
通用串行總線(Universal Serial Bus,簡(jiǎn)稱USB)是在1995年被提出來(lái)的,并由Compaq,Digital Equipment Corp(現(xiàn)屬于Compaq),IBM,Intel,Microsoft,NEC和Northern Telecom等7家公司定義和推廣。由于USB技術(shù)具有易于使用、熱插拔、速度快、功耗低等特點(diǎn),使得USB通信技術(shù)得到廣泛應(yīng)用?;诖?,本文提出了一種基于CH372芯片的USB通信技術(shù),可實(shí)現(xiàn)單片機(jī)與計(jì)算機(jī)之間的USB通訊。
1 CH372簡(jiǎn)介
USB接口芯片種類繁多,基本上可分為兩類:一類是內(nèi)帶有CPU通用功能的USB接口芯片,另一類是內(nèi)部不帶集成CPU的純粹的USB接口芯片。CH371、CH372、CH375芯片系列就是后者。本研究中,由于USB接口僅用于讀寫等數(shù)據(jù)傳送功能,且數(shù)據(jù)處理及信號(hào)轉(zhuǎn)換部分還需單片機(jī)控制,因此選用純粹的USB接口芯片CH372與AT89C52單片機(jī)配合實(shí)現(xiàn)。在單片機(jī)端,CH372具有8位數(shù)據(jù)總線和讀、寫、片選控制線以及中斷輸出,可以方便掛接到單片機(jī)/DSP/MCU/MPU等控制器的系統(tǒng)總線上;在計(jì)算機(jī)端,CH372的配套軟件提供了簡(jiǎn)潔易用的操作接口,與本地端的單片機(jī)通信就如同讀寫文件一樣便捷。
CH372芯片與普通的通用串口芯片相比有以下優(yōu)點(diǎn):
1)全速設(shè)備接口,兼容USB2.0,即插即用,外圍元器件只需晶體和電容即可;
2)提供一對(duì)主端點(diǎn)和一對(duì)輔助端點(diǎn),支持控制傳輸、批量傳輸、中斷傳輸;
3)具有省事的內(nèi)置固件模式和靈活的外部固件模式,內(nèi)置固件模式下屏蔽了相關(guān)的USB協(xié)議,自動(dòng)完成標(biāo)準(zhǔn)的USB枚舉配置過(guò)程,完全不需要本地端控制器做任何處理,簡(jiǎn)化了單片機(jī)的固件編程;
4)通用Windows驅(qū)動(dòng)程序提供設(shè)備接口,通過(guò)DLL提供API應(yīng)用層接口;
5)通用的本地8位數(shù)據(jù)總線,4線控制:讀選通、寫選通、片選輸入、中斷輸出;
6)主端點(diǎn)上傳下傳緩沖區(qū)各64字節(jié),輔助端點(diǎn)上傳下傳緩沖區(qū)各8字節(jié)。
2 系統(tǒng)硬件電路設(shè)計(jì)
CH372芯片在本地端提供了通用的被動(dòng)并行接口,包括:8位雙向數(shù)據(jù)總線D7~D0、讀選通輸入引腳RD#、寫選通輸入引腳WR#、片選輸入引腳CS#、中斷輸出引腳INT#以及地址輸入引腳A0。通過(guò)被動(dòng)并行接口,CH372可以很方便地連接到各種8位單片機(jī)、DSP、MCU芯片上,并且可以與多個(gè)外圍器件共存?;贑H372芯片的信息和參數(shù)。這里給出了CH372芯片單片機(jī)端的USB通訊電路,如圖1所示。同時(shí),該芯片可通過(guò)普通USB傳輸線實(shí)現(xiàn)與計(jì)算機(jī)的互通,圖1中J1即為USB接頭。
CH372芯片電路及PCB板設(shè)計(jì)需要注意的事項(xiàng)有:
1)為了降低電磁輻射,減少來(lái)自外界的干擾,PCB板的晶體Y1的金屬外殼接地;
2)為了降低對(duì)時(shí)鐘信號(hào)的干擾,PCB設(shè)計(jì)時(shí)盡量不在晶體及振蕩電容附近走線,尤其是不要走繼電器、電動(dòng)機(jī)等帶有瞬時(shí)沖擊電流的電源線和強(qiáng)信號(hào)線;
3)給USB插座單獨(dú)供電,使USB設(shè)備剛插上時(shí)的電容充電過(guò)程不影響單片機(jī)和CH372:
4)在USB插座前串接限流電阻或電感;
5)PCB板布局要合理,電阻電容對(duì)齊,溫度敏感的器件布置遠(yuǎn)離電源,板子要敷銅。
3 軟件設(shè)計(jì)
CH372在計(jì)算機(jī)應(yīng)用層與本地端單片機(jī)之間提供了端對(duì)端的連接,在這個(gè)基礎(chǔ)上,USB接口可以選用單向數(shù)據(jù)流和請(qǐng)求加應(yīng)答兩種通訊方式。采用請(qǐng)求加應(yīng)答的方式實(shí)現(xiàn)通信,都是由計(jì)算機(jī)主動(dòng)請(qǐng)求,單片機(jī)被動(dòng)應(yīng)答完成數(shù)據(jù)傳輸。在程序編制過(guò)程中約定3種數(shù)據(jù)傳輸模式,通過(guò)計(jì)算機(jī)傳輸數(shù)據(jù)進(jìn)行確定,分別是:
1)計(jì)算機(jī)下傳數(shù)據(jù)01H,單片機(jī)上傳存放數(shù)據(jù)的文件的參數(shù);
2)計(jì)算機(jī)下傳數(shù)據(jù)02H及8字節(jié)參數(shù),8字節(jié)參數(shù)包括存放數(shù)據(jù)的地址、數(shù)據(jù)的數(shù)量,單片機(jī)通過(guò)調(diào)用相關(guān)子程序分析參數(shù),并將相應(yīng)的數(shù)據(jù)上傳;
3)計(jì)算機(jī)下傳數(shù)據(jù)03H,單片機(jī)執(zhí)行關(guān)閉CH372的操作命令。
3.1 單片機(jī)端程序
在單片機(jī)端采用匯編語(yǔ)言編寫程序,在程序設(shè)計(jì)過(guò)程中,考慮到系統(tǒng)的可靠性、穩(wěn)定性以及調(diào)試過(guò)程直觀性的需要,故采用匯編語(yǔ)言編寫程序,程序流程如圖2所示。
評(píng)論