新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > GDB RSP協議與USB通信在嵌入式調試系統中的應用

        GDB RSP協議與USB通信在嵌入式調試系統中的應用

        作者: 時間:2013-11-14 來源:網絡 收藏

        EZ-USB FX2的前身是EZ-USB,其芯片固件也是存儲在主機上而不是芯片內部,顯著特點是代碼容易升級。芯片結構也與EZ-USB類似,主要包括USB2.0收發器、串行接口引擎、增強型8051、16 KB的RAM、4 KB的FIFO存儲器、I/O口、數據總線、地址總線和通用可編程接口GPIF.

          采用Cypress EZ-USB FX2芯片進行傳輸性能穩定,其硬件性能可以進行靈活配置。該芯片的特點在于:

          (1)USB2.0單芯片解決方案,包括USB2.0收發器,串行接口引擎(SIE)和增強型51內核。可“軟配置”RAM,大小為16 K,可取代傳統51的RAM和ROM,程序可以通過USB口下載或者通過外部EEPROM裝載,同時也支持外界存儲設備。

          (2)通用可編程接口GPIF.GPIF是FX2一個重要技術,可設置為主從模式,主從模式下可對外部FIFO、存儲器、ATA接口設備進行高速讀寫操作,從模式下外部主控器(如DSP,MCU)可把GPIF端口當做FIFO進行高速讀寫操作;支持與外設通過并行8位或者16位總線傳輸;支持通過GPIF編程工具編程,靈活產生各種波形。支持多CTL輸出和RDY輸入。

          (3)增強工業級8051內核:支持48 MHz時鐘;4個時鐘指令周期,在時鐘為48 MHz時,單指令執行時間為83.3 ns;兩個UART;三個TIMER;多中斷系統;多數據指針。

          

          3 研究與實現

           技術在中主要由三部分組成:EZ-USB FX2芯片功能開發、RSP Server與的RSP通信、RSP Server與EZUSBFX2芯片的USB數據交互。在進行功能開發之前,我們需要將EZ-USB FX2的開發包安裝到PC機上,該開發包主要包括了EZ-USB FX2芯片的USB驅動、EZ-USB FX2進行USB開發所需的鏈接庫和相關頭文件、增強型8051單片機開發所需的頭文件等開發要件。

          3.1 EZ-USB FX2芯片USB通信功能開發

          為了簡化固件編程,Cypress提供了固件編程框架,開發人員只需要在此基礎上添加少量代碼就可以完成固件編程。固件編程框架已經將USB標準請求和USB電源管理包括進去了,并且提供了任務調度函數,只需要在這任務調度函數中添加部分代碼就完成了固件編程。

          上電復位時,固件先初始化一些全局變量,接著調用初始化函數TD_Init(),初始化設備到沒有配置的狀態和打開中斷,循環1 s后重新枚舉,直到端點0接收到SETUP包退出循環,進入循環語句while,執行任務函數,函數包括:

          (1)TD_POLL()用戶任務調度函數;

          (2)如果發現USB設備請求,則執行對應的USB請求;

          ( 3 ) 如果發現U S B 空閑置位, 則調用TD_Suspend()這個掛起函數,調用成功則內核掛起,直到出現USB遠程喚醒信號,調用TD_Resume(),內核喚醒重新進入while循環。

          3.2 PC端USB通信開發

          PC端USB通信的開發主要由三部分組成:設置要讀寫的內存空間地址、讀內存地址空間、寫內存地址空間。這三個功能主要由3個函數來實現:voidSetAddr(DWORD addr)、int ReadReg(ULONGaddr, ULONG *val)、int WriteReg(ULONG addr,ULONG data)。

          3.2.1 void SetAddr(DWORD addr)函數的實現

          SetAddr函數的實現過程可以由圖4來表示。

          

          3.2.2 int ReadReg(ULONG addr, ULONG *val)函數的實現

          考慮到調試器要頻繁讀取DS P 內核寄存器及相關的內存地址空間內容, 因此USB采用異步通信的方式來完成讀取功能, P C 端的RSP Se r v e r 通過啟動傳送線程實現數據的異步傳輸。R e a d R e g 函數的實現流程如圖5 所示。

          3.2.3 int WriteReg(ULONG addr, ULONG data)函數的實現

          在調試過程中,通常寫寄存器的操作由程序員在調試過程中手動實現,USB通信量相比較于讀操作要小得多,因此本采用簡單的Write函數操作來實現DSP內存地址空間的寫操作,其實現流程如圖6所示。

        數字通信相關文章:數字通信原理


        通信相關文章:通信原理




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 称多县| 东明县| 桑植县| 清新县| 拜泉县| 井冈山市| 汉中市| 高雄县| 昌图县| 克拉玛依市| 嘉祥县| 肇源县| 长泰县| 扶余县| 台中市| 潜江市| 磐安县| 彩票| 威宁| 苍梧县| 西和县| 平果县| 景宁| 庆云县| 凤山市| 二连浩特市| 雅安市| 乌拉特后旗| 郑州市| 宣威市| 武功县| 石河子市| 镇宁| 大名县| 玛纳斯县| 鄂伦春自治旗| 光山县| 济宁市| 伊川县| 宁晋县| 裕民县|