DSP系統(tǒng)PDIUSBD12的USB設計應用
1 硬件設計
硬件設計的主要框圖如圖2所示:
圖2 轉換板硬件主體框圖
它的主要工作原理是:從主機的應用程序發(fā)出的訪問PC-104總線設備的命令,經過底層的USB驅動程序將其轉換為相應的USB設備標準要求送到USB接口芯片PDIUSBD12(以下簡稱D12),運行于DSP的固件程序接收到這個要求,就會向PC104總線執(zhí)行相應的命令,從而達到控制PC-104總線硬件的目的。
2 固件程序的開發(fā)
固件程序運行在USB外圍設備的單片機中,由它響應主機發(fā)送過來的USB的各種要求和數據傳輸。固件的組成主要有兩大部分,ISR(中斷程序)和主程序。中斷程序運行在后臺,負責USB芯片與單片機MPU的USB要求中斷響應與數據傳輸,中斷程序接收到主機發(fā)送來的USB要求和數據后就將它轉送給主程序并設置相應的標志位。主程序運行在前臺,它根據中斷程序傳給它的數據及標志位而進行實際的硬件動作。后臺ISR中斷服務程序和前臺主程序循環(huán)之間的數據交換通過事件標志和數據緩沖區(qū)來實現(xiàn)的。例如PDIUSBD12的批量輸出端點可使用循環(huán)的數據緩沖區(qū),當PDIUSBD12 從USB收到一個數據包那么就對MPU 產生一個中斷請求,MPU立即響應中斷。在ISR中固件將數據包從PDIUSBD12內部緩沖區(qū)移到循環(huán)數據緩沖區(qū)并且隨后清空PDIUSBD12的內部緩沖區(qū)以使能接收新的數據包。MPU可以繼續(xù)它當前的前臺任務,直到完成任務后返回到主循環(huán)。同時檢查循環(huán)緩沖區(qū)內是否有新的數據并開始其它的前臺任務編寫固件程序可用匯編語言或者C語言,用C語言得有KEIL C編譯器的支持。但總體上它們的程序框架是一樣的。主體程序框架如圖3所示:
圖3 固件主程序框架
評論