基于ATmegal28控制器和CH375接口的高速數(shù)據(jù)采集系統(tǒng)
ATmegal28采用16 MHz晶振,機(jī)器周期為62.5 ns。通過軟件編程設(shè)置在PD5端口產(chǎn)生周期為125 ns的方波,作為AD9220采樣的時鐘信號(CLK)。由于每次采樣后ATmegal28還要進(jìn)行數(shù)據(jù)存儲,數(shù)據(jù)存儲時間需62.5 ns,故每獲得一個數(shù)據(jù)總共需要187.5 ns。經(jīng)測試表明,轉(zhuǎn)換速率可達(dá)到5MS/s。
當(dāng)ATmegal28接到上位機(jī)請求上傳數(shù)據(jù)的命令后,立即將采集到的數(shù)據(jù)通過USB接口電路傳輸給上位機(jī).CH375與ATmegal28接口電路如圖4所示。CH375是USB總線的通用設(shè)備接口器件,內(nèi)置USB通訊中的底層協(xié)議,支持主機(jī)方式和從機(jī)方式,具有8位數(shù)據(jù)總線(DO-D7)、地址輸入(A0)、讀(RD)、寫(WR)、片選控制線(CS)以及中斷輸出(INT),它作為從機(jī)掛接到ATmegal28的數(shù)據(jù)總線上與上位機(jī)進(jìn)行通信。當(dāng)AO為高電平時,選擇命令端口,可以寫入命令;當(dāng)A0為低電平時,選擇數(shù)據(jù)端口,可以讀寫數(shù)據(jù),單片機(jī)通過8位并口對CH375進(jìn)行讀寫。CH375在接收到上位機(jī)端發(fā)送的數(shù)據(jù)后或者發(fā)送完數(shù)據(jù)后,以中斷方式(INT4)通知單片機(jī),單片機(jī)分析中斷狀態(tài)并進(jìn)行相應(yīng)處理。
3 USB接口軟件設(shè)計(jì)
在本地端,采用從機(jī)方式的CH375在系統(tǒng)中采用內(nèi)置固件模式,端點(diǎn)O作為默認(rèn)端口,CH375自動處理默認(rèn)端口0的所有事件,端點(diǎn)2的上傳端點(diǎn)作為批量數(shù)據(jù)發(fā)送端點(diǎn),端點(diǎn)2的下傳端點(diǎn)作為批量數(shù)據(jù)接收端點(diǎn)。單片機(jī)對CH375的操作是采用命令加數(shù)據(jù)的I/O操作方式,任何操作都是先發(fā)命令給CH375,然后執(zhí)行數(shù)據(jù)輸入輸出。
在計(jì)算機(jī)端,使用VC作為計(jì)算機(jī)端應(yīng)用軟件的開發(fā)平臺,利用CH375動態(tài)鏈接庫DLL提供的API函數(shù)對其進(jìn)行操作。該動態(tài)鏈接庫提供的可供利用的APl包括:設(shè)備管理API、數(shù)據(jù)傳輸API、中斷處理API。首先,將CH375器件的驅(qū)動程序和動態(tài)鏈接庫拷貝到計(jì)算機(jī)中,再將動態(tài)鏈接庫的訪問入口及函數(shù)定義入口添加至VC項(xiàng)目中,此時對USB設(shè)備的通信編程與訪問本地硬盤中的文件幾乎相同。
CH375在計(jì)算機(jī)應(yīng)用層與本地端單片機(jī)之間提供了端對端的連接,該系統(tǒng)采用數(shù)據(jù)加應(yīng)答方式進(jìn)行通訊,該方式具有數(shù)據(jù)自動同步、程序設(shè)計(jì)簡單、較好的交互性和可控性等優(yōu)點(diǎn)。請求加應(yīng)答方式使用一個下傳的主動請求和一個上傳的被動應(yīng)答進(jìn)行交互式的雙向數(shù)據(jù)通訊,下傳與上傳一一對應(yīng),相互關(guān)聯(lián)。主動請求是指由計(jì)算機(jī)應(yīng)用層下傳給單片機(jī)的數(shù)據(jù)請求,被動應(yīng)答是指在單片機(jī)收到數(shù)據(jù)請求后,上傳給計(jì)算機(jī)應(yīng)用層的應(yīng)答數(shù)據(jù)。所有的通訊都由計(jì)算機(jī)應(yīng)用層發(fā)起,然后以接收到單片機(jī)的應(yīng)答結(jié)束,完整的過程包括:
(1)計(jì)算機(jī)應(yīng)用層按事先約定的格式將數(shù)據(jù)請求發(fā)送給CH375;
(2)CH375以中斷方式通知單片機(jī),單片機(jī)進(jìn)入中斷服務(wù)程序,獲取CH375的中斷狀態(tài)并分析;
(3)如果是上傳,則釋放當(dāng)前USB緩沖區(qū),單片機(jī)將應(yīng)答數(shù)據(jù)寫入批量端點(diǎn)的上傳緩沖區(qū)中,然后退出中斷程序;
(4)如果是下傳,則從數(shù)據(jù)下傳緩沖區(qū)中讀取數(shù)據(jù)塊,分析接收到的數(shù)據(jù)塊,將應(yīng)答數(shù)據(jù)返回給計(jì)算機(jī),然后退出中斷程序;
(5)計(jì)算機(jī)應(yīng)用層接收到應(yīng)答數(shù)據(jù)。
評論