基于USB總線(xiàn)和Aduc831單片機(jī)的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)
當(dāng)USB控制器從USB總線(xiàn)檢測(cè)到主機(jī)啟動(dòng)的某一傳輸請(qǐng)求后,通過(guò)中斷方式將此請(qǐng)求通知Aduc831系統(tǒng),Aduc831系統(tǒng)通過(guò)訪(fǎng)問(wèn)USB控制器的狀態(tài)寄存器和數(shù)據(jù)寄存器獲得與此次傳輸有關(guān)的各種參數(shù),并根據(jù)具體的傳輸參數(shù),對(duì)USB控制器的控制寄存器和數(shù)據(jù)寄存器進(jìn)行相應(yīng)的操作,以完成主機(jī)的傳輸請(qǐng)求。Aduc831與USBN9603接口電路如圖2所示。
3. 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件主要包括:控制程序和USB設(shè)備驅(qū)動(dòng)程序。
3.1 控制程序
控制程序就是指在Aduc831中運(yùn)行的程序,對(duì)USB控制器的操作是嚴(yán)格按照USB協(xié)議1.1進(jìn)行的。在實(shí)際開(kāi)發(fā)中使用了控制傳輸和塊傳輸兩種傳輸方式??刂苽鬏斨饕脕?lái)完成主機(jī) 對(duì)設(shè)備的各種控制操作,也就是用來(lái)實(shí)現(xiàn)位于主機(jī)上的USB總線(xiàn)驅(qū)動(dòng)程序 (USBD.SYS)以及編寫(xiě)的功能驅(qū)動(dòng)程序?qū)υO(shè)備的各種控制操作。塊傳輸主要用來(lái)完成主機(jī)和設(shè)備間的大批量數(shù)據(jù)傳輸以及對(duì)傳輸數(shù)據(jù)進(jìn)行錯(cuò)誤檢測(cè)(若發(fā)生錯(cuò)誤,它支持“重傳”功能)。
控制程序主要功能有控制A/D采樣, 控制USBN9603接受并處理USB驅(qū)動(dòng)程序的請(qǐng)求及應(yīng)用程序的控制指令。因?yàn)锳duc831帶有串口下載功能,所以可以很方便的通過(guò)串口將程序下載到Aduc831中,不用仿真機(jī),不用傳統(tǒng)的方法向EEPROM中燒制程序,所以調(diào)試起來(lái)非常方便??刂瞥绦蛄鞒獭⒅袛嗵幚沓绦蛉鐖D3、4所示。
評(píng)論