通用串行總線(Universal Serial Bus,簡稱USB)是在1995年被提出來的,并由Compaq,Digital Equipment Corp(現屬于Compaq),IBM,Intel,Microsoft,NEC和Northern Telecom等7家公司定義和推廣。由于USB技術具有易于使用、熱插拔、速度快、功耗低等特點,使得USB通信技術得到廣泛應用?;诖?,本文提出了一種基于CH372芯片的USB通信技術,可實現單片機與計算機之間的USB通訊。
1 CH372簡介
USB接口芯片種類繁多,基本上可分為兩類:一類是內帶有CPU通用功能的USB接口芯片,另一類是內部不帶集成CPU的純粹的USB接口芯片。CH371、CH372、CH375芯片系列就是后者。本研究中,由于USB接口僅用于讀寫等數據傳送功能,且數據處理及信號轉換部分還需單片機控制,因此選用純粹的USB接口芯片CH372與AT89C52單片機配合實現。在單片機端,CH372具有8位數據總線和讀、寫、片選控制線以及中斷輸出,可以方便掛接到單片機/DSP/MCU/MPU等控制器的系統總線上;在計算機端,CH372的配套軟件提供了簡潔易用的操作接口,與本地端的單片機通信就如同讀寫文件一樣便捷。
CH372芯片與普通的通用串口芯片相比有以下優點:
1)全速設備接口,兼容USB2.0,即插即用,外圍元器件只需晶體和電容即可;
2)提供一對主端點和一對輔助端點,支持控制傳輸、批量傳輸、中斷傳輸;
3)具有省事的內置固件模式和靈活的外部固件模式,內置固件模式下屏蔽了相關的USB協議,自動完成標準的USB枚舉配置過程,完全不需要本地端控制器做任何處理,簡化了單片機的固件編程;
4)通用Windows驅動程序提供設備接口,通過DLL提供API應用層接口;
5)通用的本地8位數據總線,4線控制:讀選通、寫選通、片選輸入、中斷輸出;
6)主端點上傳下傳緩沖區各64字節,輔助端點上傳下傳緩沖區各8字節。
CH372芯片在本地端提供了通用的被動并行接口,包括:8位雙向數據總線D7~D0、讀選通輸入引腳RD#、寫選通輸入引腳WR#、片選輸入引腳CS#、中斷輸出引腳INT#以及地址輸入引腳A0。通過被動并行接口,CH372可以很方便地連接到各種8位單片機、DSP、MCU芯片上,并且可以與多個外圍器件共存。基于CH372芯片的信息和參數。這里給出了CH372芯片單片機端的USB通訊電路,如圖1所示。同時,該芯片可通過普通USB傳輸線實現與計算機的互通,圖1中J1即為USB接頭。
?
CH372芯片電路及PCB板設計需要注意的事項有:
1)為了降低電磁輻射,減少來自外界的干擾,PCB板的晶體Y1的金屬外殼接地;
2)為了降低對時鐘信號的干擾,PCB設計時盡量不在晶體及振蕩電容附近走線,尤其是不要走繼電器、電動機等帶有瞬時沖擊電流的電源線和強信號線;
3)給USB插座單獨供電,使USB設備剛插上時的電容充電過程不影響單片機和CH372:
4)在USB插座前串接限流電阻或電感;
5)PCB板布局要合理,電阻電容對齊,溫度敏感的器件布置遠離電源,板子要敷銅。
3 軟件設計
CH372在計算機應用層與本地端單片機之間提供了端對端的連接,在這個基礎上,USB接口可以選用單向數據流和請求加應答兩種通訊方式。采用請求加應答的方式實現通信,都是由計算機主動請求,單片機被動應答完成數據傳輸。在程序編制過程中約定3種數據傳輸模式,通過計算機傳輸數據進行確定,分別是:
1)計算機下傳數據01H,單片機上傳存放數據的文件的參數;
2)計算機下傳數據02H及8字節參數,8字節參數包括存放數據的地址、數據的數量,單片機通過調用相關子程序分析參數,并將相應的數據上傳;
3)計算機下傳數據03H,單片機執行關閉CH372的操作命令。
3.1 單片機端程序
在單片機端采用匯編語言編寫程序,在程序設計過程中,考慮到系統的可靠性、穩定性以及調試過程直觀性的需要,故采用匯編語言編寫程序,程序流程如圖2所示。
?
3.2 計算機端程序
CH372在計算機端提供了應用層接口,應用層接口是由CH372動態鏈接庫DLL提供的面向功能應用的API,所有API在調用后都有操作狀態返回,但不一定有應答數據。CH372動態鏈接庫提供的API包括:設備管理API、數據傳輸API、中斷處理API。
在計算機端采用Visual Basic(VB)編寫程序,利用VisualBasic的該特性,調用CH372動態鏈接庫DLL提供的面向功能的應用API函數編寫計算機端的應用程序,其工作流程如圖3所示。
?
4 試驗結果
本文自主研發的基于CH372的USB通信技術,設計約定了3種通信模式,下面僅介紹模式2(下傳02H和8字節參數)下的通信調試過程,其調試通信步驟如下:
1)在計算機端安裝了CH372的Windows系統下的驅動CH372DRV,安裝后,上位機電路板可以像U盤一樣在計算機上進行熱插拔。
2)運行上位機板USB芯片的初始化程序后,計算機端設備管理器會跳出如圖4的窗口,表示芯片工作正常,計算機和上位機板就可以采用請求加問答的方式進行通信。
3)計算機運行Visual Basic平臺下的程序代碼如下所示,向上位機發送數據02H和參數。
?
?
4)發送數據結束后,計算機跳出如圖5反饋窗口,該窗口表示下傳9個參數成功,單片機在接收到02H及相應的參數后,通過分析參數,確定要上傳數據的存放地址、上傳數據的個數,并通過CH372將數據上傳至計算機。在計算機端,接收的數據放在預先設定的文件中,如圖6所示,以備為計算機分析處理數據所調用。
?
5 結束語
本文研究了基于CH372的USB通訊技術,設計了采用CH372實現單片機與計算機連通的硬件電路,并自主開發了計算機端和單片機端的應用程序。試驗表明在所設計的約定下,單片機與計算機很好地實現了數據通信,且該設計能夠明顯提高了系統數據傳輸速度,增強了數據傳輸的準確性和可靠性。
評論
查看更多