基于USB總線的實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
2系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)
系統(tǒng)軟件包括USB設(shè)備固件編程、驅(qū)動(dòng)程序和應(yīng)用程序。其中設(shè)備固件是整個(gè)系統(tǒng)的核心,它控制芯片D12采集數(shù)據(jù)、接收并處理USB驅(qū)動(dòng)程序的請(qǐng)求和應(yīng)用程序的控制指令。
2.1 USB設(shè)備固件程序設(shè)計(jì)與實(shí)現(xiàn)
設(shè)備固件是設(shè)備運(yùn)行的核心,用C語(yǔ)言設(shè)計(jì)。其主要功能是控制A/D模塊的數(shù)據(jù)采集;接收并處理驅(qū)動(dòng)程序的請(qǐng)求,如請(qǐng)求描述符、請(qǐng)求或設(shè)置設(shè)備狀態(tài)、請(qǐng)求設(shè)備設(shè)置、請(qǐng)求或設(shè)置設(shè)備接口等USBl.1標(biāo)準(zhǔn)請(qǐng)求;控制芯片D12接收應(yīng)用程序的控制指令等。其程序主框圖如圖4所示。單片機(jī)檢測(cè)到D12后進(jìn)入主循環(huán)。此時(shí)PC機(jī)先發(fā)令牌包給D12,D12接收到令牌包后給單片機(jī)發(fā)中斷,單片機(jī)據(jù)中斷類型設(shè)定標(biāo)志位Status,最后執(zhí)行相應(yīng)標(biāo)志位的中斷服務(wù)程序。單片機(jī)通過(guò)A/D模塊的中斷入口控制A/D模塊的數(shù)據(jù)采集。
2.2驅(qū)動(dòng)程序設(shè)計(jì)與實(shí)現(xiàn)
USB系統(tǒng)驅(qū)動(dòng)程序采用分層結(jié)構(gòu)模型:較高級(jí)的USB設(shè)備驅(qū)動(dòng)程序和較低級(jí)的USB函數(shù)層。其中USB函數(shù)層由通用串行總線驅(qū)動(dòng)程序模塊(USBD)和主控制器驅(qū)動(dòng)程序模塊(HCD)組成。
評(píng)論