基于CH372芯片的USB通信系統(tǒng)軟硬件設(shè)計(jì)
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ǔ)言編寫(xiě)程序,在程序設(shè)計(jì)過(guò)程中,考慮到系統(tǒng)的可靠性、穩(wěn)定性以及調(diào)試過(guò)程直觀性的需要,故采用匯編語(yǔ)言編寫(xiě)程序,程序流程如圖2所示。
3.2 計(jì)算機(jī)端程序
CH372在計(jì)算機(jī)端提供了應(yīng)用層接口,應(yīng)用層接口是由CH372動(dòng)態(tài)鏈接庫(kù)DLL提供的面向功能應(yīng)用的API,所有API在調(diào)用后都有操作狀態(tài)返回,但不一定有應(yīng)答數(shù)據(jù)。CH372動(dòng)態(tài)鏈接庫(kù)提供的API包括:設(shè)備管理API、數(shù)據(jù)傳輸API、中斷處理API。
在計(jì)算機(jī)端采用Visual Basic(VB)編寫(xiě)程序,利用VisualBasic的該特性,調(diào)用CH372動(dòng)態(tài)鏈接庫(kù)DLL提供的面向功能的應(yīng)用API函數(shù)編寫(xiě)計(jì)算機(jī)端的應(yīng)用程序,其工作流程如圖3所示。
評(píng)論