GDB RSP協(xié)議與USB通信在嵌入式調試系統中的應用
EZ-USB FX2的前身是EZ-USB,其芯片固件也是存儲在主機上而不是芯片內部,顯著(zhù)特點(diǎn)是代碼容易升級。芯片結構也與EZ-USB類(lèi)似,主要包括USB2.0收發(fā)器、串行接口引擎、增強型8051、16 KB的RAM、4 KB的FIFO存儲器、I/O口、數據總線(xiàn)、地址總線(xiàn)和通用可編程接口GPIF.
采用Cypress EZ-USB FX2芯片進(jìn)行USB通信傳輸性能穩定,其硬件性能可以進(jìn)行靈活配置。該芯片的特點(diǎn)在于:
?。?)USB2.0單芯片解決方案,包括USB2.0收發(fā)器,串行接口引擎(SIE)和增強型51內核??伞败浥渲谩盧AM,大小為16 K,可取代傳統51的RAM和ROM,程序可以通過(guò)USB口下載或者通過(guò)外部EEPROM裝載,同時(shí)也支持外界存儲設備。
?。?)通用可編程接口GPIF.GPIF是FX2一個(gè)重要技術(shù),可設置為主從模式,主從模式下可對外部FIFO、存儲器、ATA接口設備進(jìn)行高速讀寫(xiě)操作,從模式下外部主控器(如DSP,MCU)可把GPIF端口當做FIFO進(jìn)行高速讀寫(xiě)操作;支持與外設通過(guò)并行8位或者16位總線(xiàn)傳輸;支持通過(guò)GPIF編程工具編程,靈活產(chǎn)生各種波形。支持多CTL輸出和RDY輸入。
?。?)增強工業(yè)級8051內核:支持48 MHz時(shí)鐘;4個(gè)時(shí)鐘指令周期,在時(shí)鐘為48 MHz時(shí),單指令執行時(shí)間為83.3 ns;兩個(gè)UART;三個(gè)TIMER;多中斷系統;多數據指針。
3 研究與實(shí)現
GDB RSP協(xié)議與USB通信技術(shù)在調試系統中主要由三部分組成:EZ-USB FX2芯片USB通信功能開(kāi)發(fā)、RSP Server與GDB的RSP通信、RSP Server與EZUSBFX2芯片的USB數據交互。在進(jìn)行功能開(kāi)發(fā)之前,我們需要將EZ-USB FX2的開(kāi)發(fā)包安裝到PC機上,該開(kāi)發(fā)包主要包括了EZ-USB FX2芯片的USB驅動(dòng)、EZ-USB FX2進(jìn)行USB開(kāi)發(fā)所需的鏈接庫和相關(guān)頭文件、增強型8051單片機開(kāi)發(fā)所需的頭文件等開(kāi)發(fā)要件。
3.1 EZ-USB FX2芯片USB通信功能開(kāi)發(fā)
為了簡(jiǎn)化固件編程,Cypress提供了固件編程框架,開(kāi)發(fā)人員只需要在此基礎上添加少量代碼就可以完成固件編程。固件編程框架已經(jīng)將USB標準請求和USB電源管理包括進(jìn)去了,并且提供了任務(wù)調度函數,只需要在這任務(wù)調度函數中添加部分代碼就完成了固件編程。
上電復位時(shí),固件先初始化一些全局變量,接著(zhù)調用初始化函數TD_Init(),初始化設備到?jīng)]有配置的狀態(tài)和打開(kāi)中斷,循環(huán)1 s后重新枚舉,直到端點(diǎn)0接收到SETUP包退出循環(huán),進(jìn)入循環(huán)語(yǔ)句while,執行任務(wù)函數,函數包括:
?。?)TD_POLL()用戶(hù)任務(wù)調度函數;
?。?)如果發(fā)現USB設備請求,則執行對應的USB請求;
?。?3 ) 如果發(fā)現U S B 空閑置位, 則調用TD_Suspend()這個(gè)掛起函數,調用成功則內核掛起,直到出現USB遠程喚醒信號,調用TD_Resume(),內核喚醒重新進(jìn)入while循環(huán)。
3.2 PC端USB通信開(kāi)發(fā)
PC端USB通信的開(kāi)發(fā)主要由三部分組成:設置要讀寫(xiě)的內存空間地址、讀內存地址空間、寫(xiě)內存地址空間。這三個(gè)功能主要由3個(gè)函數來(lái)實(shí)現:voidSetAddr(DWORD addr)、int ReadReg(ULONGaddr, ULONG *val)、int WriteReg(ULONG addr,ULONG data)。
3.2.1 void SetAddr(DWORD addr)函數的實(shí)現
SetAddr函數的實(shí)現過(guò)程可以由圖4來(lái)表示。
3.2.2 int ReadReg(ULONG addr, ULONG *val)函數的實(shí)現
考慮到GDB調試器要頻繁讀取DS P 內核寄存器及相關(guān)的內存地址空間內容, 因此USB采用異步通信的方式來(lái)完成讀取功能, P C 端的RSP Se r v e r 通過(guò)啟動(dòng)傳送線(xiàn)程實(shí)現數據的異步傳輸。R e a d R e g 函數的實(shí)現流程如圖5 所示。
3.2.3 int WriteReg(ULONG addr, ULONG data)函數的實(shí)現
在調試過(guò)程中,通常寫(xiě)寄存器的操作由程序員在調試過(guò)程中手動(dòng)實(shí)現,USB通信量相比較于讀操作要小得多,因此本調試系統采用簡(jiǎn)單的Write函數操作來(lái)實(shí)現DSP內存地址空間的寫(xiě)操作,其實(shí)現流程如圖6所示。
數字通信相關(guān)文章:數字通信原理
通信相關(guān)文章:通信原理
評論