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