新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 通用USB接口模塊設計之AVR單片機

通用USB接口模塊設計之AVR單片機

作者: 時間:2013-12-07 來源:網(wǎng)絡 收藏

以下給出了前臺主程序的程序代碼:以下為后臺中斷服務程序:通用USB接口模塊設計之AVR單片機

當前臺主程序檢測到狀態(tài)變量收到SETUP包事件bEvent_flags.bits.setup_packet為1時,該標志位清零,再調(diào)用標準設備請求模塊stdreq.c的control_handler()函數(shù)完成對USB設備的枚舉。

設計標準設備請求模塊,首先利用結(jié)構(gòu)體定義USB枚舉所需的各種描述符,以供不同設備請求使用,其次編寫11個標準的設備請求處理函數(shù)。本層請求模塊重要函數(shù)是協(xié)議控制子程序control han-dler(),它根據(jù)ControlData中標識的不同USB設備請求類型調(diào)用11個函數(shù)中的任意一個。除此之外,本層請示求模塊還實現(xiàn)中斷服務程序調(diào)用的控制端點接收與發(fā)送中斷處理函數(shù)。上述各函數(shù)及ControlData變量間關系如圖4所示。通用USB接口模塊設計之AVR單片機

4 系統(tǒng)集成與應用

4.1 PC機驅(qū)動程序與應用程序的設計

利用該系統(tǒng)模塊實現(xiàn)PC機通訊,需對PC機編寫相關驅(qū)動程序和應用程序,可利用DriverStudio軟件生成該系統(tǒng)模塊在Windows環(huán)境下的驅(qū)動程序。應用程序的設計可使用諸如VB、VC、Delphi以及應用普遍的虛擬儀器軟件開發(fā)工具LabVIEW等軟件開發(fā)工具,直接調(diào)用驅(qū)動程序生成的動態(tài)鏈接庫中的API函數(shù),可根據(jù)具體任務編寫相關應用程序。

4.2 應用于其他系統(tǒng)

利用的多種外設接口特點,例如UART、SPI、I2C接口等可以有效地實現(xiàn)與其他微處理器的通信,將該模塊嵌入各種系統(tǒng),實現(xiàn)與其他器件的通訊。固件程序中預留有UART、SPI、I2C等接口程序,只需通

4.3 固件程序移植其他平臺

由于固件程序最大限度考慮到可移植性,所以將固件程序稍加修改即可應用于各種已擁有C語言編譯器的微處理器,實現(xiàn)PDIUSBD12直接與微處理器的通訊。

移植固件程序主要工作有:根據(jù)硬件連接關系,修改硬件抽象層中的3個讀寫函數(shù),實現(xiàn)CPU與器件之間的通信;通過調(diào)用PDIUSBD12命令接口層的讀取芯片ID函數(shù)返回值是否為0x1012,測試CPU與器件之間的通訊是否正常。

5 在數(shù)據(jù)采集器中的應用

由于ATmega8片內(nèi)集成有逐次比較型ADC,具有6路的模擬輸入通道,所以只需要針對采集的物理量選用相應傳感器,并將輸出信號調(diào)整至0~Vcc的范圍內(nèi)就可利用該模塊實現(xiàn)USB數(shù)據(jù)采集器。集成有ADC自帶采樣保持電路,具有內(nèi)部參考電壓和基于睡眠模式的噪聲抑制器,從而大大提高ADC精度,實現(xiàn)高精度的數(shù)據(jù)采集。而設計只需在相應的固件程序巾增加獲取ADC結(jié)果的函數(shù),并設置相應的狀態(tài)標志位即可完成USB數(shù)據(jù)采集器的設計。

6 結(jié)束語

以ATmega8和PDIUSBD12為核心,實現(xiàn)通用的,并應用于基于的數(shù)據(jù)采集器中。實驗結(jié)果表明,該模塊運行穩(wěn)定可靠,通信速度快,易于修改移植,滿足嵌人式系統(tǒng)對USB接口的需求,并能快速為各種微處理器增加USB接口,具有廣泛的應用前景。

過簡單的跳線連接就可選擇相應的接口,從而實現(xiàn)應用系統(tǒng)增加USB接口。


上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉