《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于USB2.0總線的TMS320VC5402 HPI自舉的實現方案
基于USB2.0總線的TMS320VC5402 HPI自舉的實現方案
摘要:  USB接口具有即插即用,速度快(最高可達480Mbps)等特點,可成為PC機的外圍設備擴展中應用日益廣泛的接口標準,基于USB總線對DSP實現HPI自舉,可以降低成本,也便于DSP與PC機的高速數據通信,鑒于此種考慮,本文介紹一種利用USB2.0接口控制芯片(CY7C68013-56PVC)實現TMS320VC5402自舉的實現方案。
Abstract:
Key words :

  TMS320VC5402是TI公司的一種16位數字信號處理器,以其獨有的低功耗和高性價比,受到用戶的歡迎。C54x操作靈活及運行速度高;使用改進的哈佛結構,具有專用硬件邏輯的CPU、片內存儲器和外設接口,以及高度專業化的指令集。而且, C54系列DSP與主機連接通過HPI(Host Port Interface)接口,以邏輯電路設計簡單、不需要額外的存儲器和程序更新方便優點,可以應用靈活多樣的引導加載模式以實現接口和處理功能開發。

  HPI口是C54x DSP系列芯片內部的并行接口部件,用于與其他總線或CPU主機之間進行連接通信,主機是HPI口的主控者,通過專用地址和數據寄存器、HPI控制寄存器以及外部數據和接口控制信號與HPI口通信。

  USB接口具有即插即用,速度快(最高可達480Mbps)等特點,可成為PC機的外圍設備擴展中應用日益廣泛的接口標準,基于USB總線對DSP實現HPI自舉,可以降低成本,也便于DSP與PC機的高速數據通信,鑒于此種考慮,本文介紹一種利用USB2.0接口控制芯片(CY7C68013-56PVC)實現TMS320VC5402自舉的實現方案。

  USB2.0芯片及其GPIF簡介

  本方案采用的USB2.0接口控制芯片是Cvpress公司的CY7C6801356PVC,該系列芯片是世界上第一款支持USB2.0的集成微控制器芯片,它集成有USB2.0收發器、智能串行接口引擎(SIE)、增強的8051微處理器,通用可編程接口(GPIF)、片上RAM和FIFO存儲器.該系列芯片的智能引擎也支持USB1.1協議,因此,它具有很好兼容性。

  CY7C68013與外設有主/從兩種接口方式:可編程接口GPIF和Slave FIFO,可編程接口GPIF是一個微狀態機,可由軟件編寫讀寫控制時序,也可以作為USB FIFO的主控制器與DSP進行無縫連接,GPIF可工作在自動模式,USB總線和GPIF接口域直接進行數據傳輸,無需8051內核直接參入,以此解決USB2.0高速傳輸的"瓶頸"問題,GPIF與8051內核關系如圖1所示。

  硬件設計原理

  自舉從本質上說就是DSP上電后,在Bootloader引導下,獲取應用程序并開始運行的過程,TMS320VC5402上電以后,當MP/MC為低電平時,系統將從片內ROM的OFF80H開始執行,此處的跳轉指令使程序跳轉至BootLoader程序入口處(OF800H處)。Bootloader程序先清除IFR,并設置HPI入口點(0x7F)的值為0,置HINT為低,再檢測INT2是否置位,如置位則進行HIP自舉,具過程如圖2所示。

  DSP復位之后,如檢測到HPI自舉方式有效,就可以進行HPI自舉引導,基于USB總線的HPI自舉,就是在Bootloader引導下,通過USB接口控制芯片把程序數據由主機(PC)寫入DSP內部RAM(DARAM)并使DSP開始運行的過程,該自舉過程分為三個步驟:一是寫HPIC,以設置HPI控制參數;二是寫HPIA,設置訪問DSP的首地址;三是通過HPID下載程序。

  首先,推動EZ-USB Control Panel下載CY7C68013的固件程序。當重枚舉結束,驅動程序(ezusb.sis)重新安裝成功后,在Control Panel中通過發送請求的方式由端點0向HPIC發送兩個相同的8位控制字,而當HPIC初始化完成之后,再通過端點0設置欲下載程序段到DSP中的首地址HPIA.HPIC、HPIA設置好之后,就可以通過端點2下載DSP程序代碼段,程序代碼段需要分段下載,實際上,CY7C68013通過端點2把數據寫入HPID,然后,DSP按照HPIA指定的地址,由DMA自動將HPID中的數據寫到RAM,接口控制時序可由GPIF軟件編程控制,程序數據分段下載完畢之后,再將程序的入口地址通過端點0寫入0x7F處,在主機下載程序的過程中,DSP將一直檢測0x7F是否為0,如不為0,即判定DSP已由主機進行了HPI自舉加載,并按照該值跳轉PC指針,以開始運行,進而完成HPI自舉。

  硬件電路

  本設計用CY7C68013-56PVC與TMS320VC5402的HPI口相連接,接口選擇GPIF模式,硬件電路如圖3所示,該方案中,HCNTL[1:0]與GPIF的低位地址線PA3、PA2相連,以選擇需要訪問的HPI的HPIA、HPIC,HPID寄存器,CTL0接至HR/W,可作為讀寫控制信號,HDS1與輸出信號線CTL1相連,以作為HPI訪問的選通信號,HBIL與輸出信號線CTL2相連,已用于識別傳輸的是第一個字節還是第二個字節,HRDY接輸入信號線RDY0.用于通過主機查詢HPI口的狀態,HINT、INT2與INT0連接,可確保HPI自舉有效,HCS接GND,可使HPI片選信號有效,HPIENA接高電平時,HPI使能,HAS、HDS2接高電平時,信號線禁用。數據線PD[7:0]與HD[7:0]相連,可在控制時序作用下傳輸一切數據信號。HPI接口控制時序由CTL0、CTL1、CTL2引腳輸出,在自舉過程中,系統將關閉CY7C68013所有的中斷,若要通過中斷實現數據通信的握手,可以在自舉完畢打開CY7C68013的中斷。

  CY7C68013的具體配置為:啟用GPIF接口控制數據傳輸,GPIF接口采用內部時鐘(48MHz);端點2設置為批量傳輸輸出端點,最大傳輸值是512字節,雙緩沖;終端4、8禁用。端點6可作為批量傳輸輸入端點來向主機傳輸數據,需要說明的是端點6不是自舉所必需的。

  DSP應用程序設計

  實現TMS320VC5402 HPI自舉的前提是生成DSP應用程序的分段Hex代碼文件,在CCS中可用匯編語言,C語言等編寫應用程序源代碼,經匯編、鏈接、編譯后,生成可執行的公共目標文件格式(COFF)的文件,COFF文件不能用于HPI自舉引導,而需要利用TI公司的文件格式轉換工具hex00.exe,將COFF文件轉換為Hex格式文件[5].格式轉換的關鍵是正確編寫Hex命令文件,下面討論如何編寫這種命令文件,例如將包含text段的源程序鏈接、編譯生成test.out文件,編寫命令文件時,可利用hex500.exe將test.out轉換為對應text段的Hex文件,命令文件test為。cmd如下:

  -i      //生成Intel格式

  test.out   //輸入文件

  ROMS

  {

  PAGE 0:ROM1:org=0x2000,Length=0x2000,romwidth=16,memwidth=16,

  files={test1.hex}   //text段的起始地址為0x2000

  }   //如有多端就可增加多個ROM SECTIONS

  {text:paddr=0x2000} //如有多端就可增加多個部分

  在DOS環境下,利用hex500.exe轉換命令文件test.cmd,就可得到test1.hex文件,通過CY7C68013把test1.hex文件寫入DSP內部RAM,再把程序的入口地址寫入0x7F處,便可完成自舉。

  USB固件程序設計

  Cypress公司提供有USB的輔助開發工具:EZ-USB Control Panel,GPIF Designer.通過GPIF Designer可以生成GPIF波形圖及相應的C源代碼gpif.c.Cypress公司同時提供了固件程序框架,因而可把gpif.c加入固件程序框架進行開發,從而提高開發效率。本方案中,固件程序設計的重點是對GPIF的編程,以便生成符合HPI接口的時序的波形描述代碼,以用于控制數據傳輸,HPI自舉需要的GPIF控制波形描述符為:單字節寫,FIFO寫。HPIA、HPIC的初始化需要單字節寫控制時序,程序代碼寫入HPID需要FIFO寫控制時序,若要實現二者的數據通信,還需要單字節讀、FIFO讀等控制波形描述符。

  HPIC、HPIA的初始值是在EZUSB Control Panel中通過制造商請求工具欄由EP0發送的,固件程序中還要有相應的請求處理程序,以完成具體的設置,如假定HPIC請求類型的ID為0xB6.HPIC=0x0101,則請求工具欄的具體參數應為:Req=0xB6,Value=0x0000,Index=0xBEEF,Length=2,Dir=0,Hex Bytes=0101,固件中應加入的請求處理程序為:

  case 0xB6:

  {EPOBCL=0;          //EP0使能

  while(EP01STAT&bmEP0BSY); //等待EPO數據接收完畢

  while(!HPI_RDY);      //等待HPI處理完畢

  IOA=0x00;           //選擇HPIC寄存器

  GPIFWFSELECT=0x1E;      //選擇寫低字節的單字節寫控制波形

  while(!(GPIFTRIG&0x80))

  {;}

  XGPIFSGLDATLX=EP0BUF[0];   //寫低字節數據

  GPIFWFSELECT=0x4E;      //選擇寫高字節的單字節寫控制波形

  while(!(GPIFTRIG&0x80))

  {;}

  XGPIFSGLDATALX=EP0BUF[1];  //寫高字節數據

  break;}

  設置程序下載的首地址(HPIA值)的請求處理程序與設置HPIC的程序基本相同,只需按照請求類型的ID,來改變訪問寄存器的地址即可,訪問HPIA時,HCNTL[1:0]=10b,即IOA=0x08.

  訪問HPID下載程序數據時,可采用大端點EP2自動打包方式(AUTOIN=1),即將數據發送到端點后,自動傳到FIFO中,等待寫HPID條件具備,再啟動GPIF,以將程序數據寫入HPID,訪問HPDI可采用地址自動增加模式(HCNTL[1:0]=01b),寫數據前,地址自動加1,這樣,數據便可以經過DSP內部DMA自動寫入內部RAM,寫HPID的程序如下:

  if(GPIFTRIG&0x80)  //GPIF接口是否處于空閑狀態

  {if(!(EP24FIFOELGS&0x02)) //自動向量是否可以訪問EP2FIFO中數據

  {IOA=0x04; //選擇HPID寄存器,且訪問時地址自動增加

  while(!HPI_RDY);  //等待HPI處理完畢

  SYNCDELAY;

  GPIFTCB1=EP2FIFOBCH; //寫入的字節數

  SYNCDELAY;

  GPIFTCB0=EP2FIFOBCL;

  SYNCDELAY;

  GPIFTRIG=GPIF_EP2;  //啟動寫數據

  SYNCDELAY;

  While(!(GPIFTRIG&0x80) //等待寫入完畢

  {;}

  SYNCDELAY;}}

  這樣程序數據就可以分段通過端點2寫入DSP內部RAM,最后再把入口地址寫入0x7F,以完成HPI自舉,值得注意的是,采用此種方式訪問HPID時,寫入HPIA的初值為程序入口的一個地址,例如,寫test1.hex時,應設定HPIA=0x1fff.

  為縮短開發周期,本設計采用開發包中通用驅動(ezusb.sys)和EZUSB Control Panel進行開發、調試、也可以對通用驅動、控制面板的源程序在VC++環境(需要DDK的支持)下進行二次開發,以便編譯出開發者滿意的驅動程序和上位機程序。

  結語

  通過實踐證明,基于USB2.0總線DSP HPI自舉的方案是可行的,可以達到預期效果,該方案可以省掉外擴的EPROM、FLASH及RAM等程序存儲器,故可節約成本,也便于DSP軟件算法升級,而且符合嵌入式系統要求,有很好的應用前景,當然,該方案還有待進一步優化與增強,若要訪問外部存儲器,還需要編寫二次引導程序,以便通過該程序把內部存儲器中的數據編譯到外部存儲器,若需DSP與主機實時通信,則需要USB固件和DSP源程序中編寫相應的中斷服務程序。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 男女扒开双腿猛进入免费看污 | 黄视频网站入口 | 国产丰满眼镜女在线观看 | 日韩久草视频 | 男女男精品视频在线播放 | www.精品| 亚洲精品天堂在线观看 | 综合激情区视频一区视频二区 | 18年大片免费在线 | 4480yy私人午夜a级国产 | 一级做a爰片毛片 | 亚洲国产精品+制服丝袜 | 日韩精品成人免费观看 | 日韩国产在线观看 | 欧美一区二区三区在线 | 日本精品一区二区 | 羞羞视频在线观看 | 看看免费a一片欧 | 99免费| 天天干天天操天天做 | 国产乱人伦偷精品视频不卡 | 天天摸天天做天天爽天天弄 | 亚洲黄色视屏 | 日韩精品综合 | 好男人社区成人影院在线观看 | 欧美日韩中文国产 | 男女交性过程视频无遮挡在线 | 黄色影片在线播放 | 日本在线国产 | 黄色青青草 | 河南毛片 | 精品国产一区二区三区国产馆 | 国产精品福利无圣光一区二区 | 日本乱人伦片中文字幕三区 | 成人小视频免费 | 亚洲无线码一区二区三区 | 天堂网在线看 | 一卡二卡3卡四卡网站精品国 | 日韩久草视频 | 日本二级黄色片 | 日韩精品影院 |