《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于ARM的TMS320C6455 DSP HPI的動態程序加載設計與實現
基于ARM的TMS320C6455 DSP HPI的動態程序加載設計與實現
來源:電子技術應用2013年第6期
趙建波1,胡文若2,習 勇1,陳路輝1
1.國防科技大學 電子科學與工程學院,湖南 長沙410073; 2.江西新余學院 數學與計算機科學學院,江西 新余338004
摘要: 設計了ARM與DSP HPI(Host Port Interface 主機接口)的通信接口,并通過該接口完成了ARM對DSP程序的動態加載。該方法減少了DSP對于外部非易失性存儲器的需求,同時提高了DSP加載方式的靈活性,對于軟件無線電波形組件的動態加載有重要的意義。
中圖分類號: TP399
文獻標識碼: B
文章編號: 0258-7998(2013)06-0014-03
Design and implementation of TMS320C6455 DSP HPI dynamic program loading based on ARM
Zhao Jianbo1,Hu Wenruo2,Xi Yong1,Chen Luhui1
1.School of Electronic Science & Engineering, National University of Defense Technology, Changsha 410073,China; 2.School of Mathematics & Computer Science, Xinyu University,Xinyu 338004,China
Abstract: This article designs the communication interface between ARM and DSP HPI. The ARM processor can dynamically load the DSP program through this interface. This method reduces the requirements of external nonvolatile memory, and improves the flexibility of the DSP boot mode, which is also important for the loading of the software defined radio waveform components.
Key words : ARM;DSP HPI;interface design;dynamic program loading

    軟件無線電的基本思想是通過構造一個通用、標準、模塊化的硬件平臺并加載不同的軟件來實現不同的通信功能,使用不同的通信標準(如工作頻段、調制解調類型、數據格式、加密模式、通信協議等),構成具有高度靈活性的通信設備(如多模手機、多功能基站、多波形電臺等)[1]。

    典型的軟件無線電通信設備包含CPU、DSP和FPGA等波形處理單元。一般來說,CPU完成系統控制與波形的網絡協議功能,而DSP和FPGA完成波形的物理層和部分協議功能。軟件無線電通信設備具有波形可動態加載的特點,這對系統設備的軟硬件設計提出了要求,要求CPU能夠對DSP和FPGA波形組件程序進行動態加載。
    BCNG-SDR-2012是自主研發的軟件無線電通信平臺,由一片Samsung公司的S3C2440 ARM920T CPU、一片TI公司的TMS320C6455 DSP和兩片Xilinx公司的高性能FPGA(VIRTEX-5和SPARTAN-6)以及可配置的寬頻段射頻模塊組成,具有強大的通信信號處理能力。本文利用TMS320C6455 HPI口,在上述平臺上實現了ARM對DSP的程序動態加載功能,從而為軟件無線電的實現提供了有力的支撐。
1 TMS320C6455 HPI啟動流程
1.1 TMS320C6455 DSP簡介

    TMS320C6455是TI公司推出的高性能定點數字信號處理器[2],最高主頻為1.2 GHz,在該主頻下最高性能可達9 600 MIPS(Million Instructions Per Second)。該芯片的外設包括用于處理器間通信的 Serial RapidIO總線、千兆以太網存儲接入控制器(MAC) 、66 MHz外設組件互連(PCI)總線接口、用戶可配置的16 bit或者32 bit的主機接口HPI等。C6455 DSP建立在增強型C64x+DSP內核基礎之上,該內核添加了專用的新指令,與基于TI的高級C64x DSP架構的代碼相比,其代碼尺寸平均縮短了20%~30%,周期效率提高了20%。
    該芯片集成了大量的片上存儲器,這些存儲器被組織為一個兩級存儲系統。其中,第一級(L1)為2個32 KB存儲器,可配置為數據Cache和程序Cache;第二級(L2)為一塊2 MB的存儲器,可作為程序或者數據存儲器。
1.2 TMS320C6455 DSP的HPI特性
    主機接口HPI(Host Port Interface)是一個并行端口,主要用于DSP與其他總線或CPU進行連接,可實現高速、并行的數據通信。HPI使一個外部主機可以通過16 bit或者32 bit的并行接口直接訪問DSP的內部或外部存儲器。HPI有3個寄存器,分別為HPIC控制寄存器、HPIA地址寄存器、HPID數據寄存器,均為32 bit。如圖1顯示了HPI在主機與DSP數據交互中的位置[3],通過HPI DMA邏輯以及資源交換控制邏輯,主機CPU可以訪問DSP的內存、EMIF以及其他設備。

1.3 使用HPI的啟動流程
    TMS320C6455復位和上電時的引導模式[4]主要有NO BOOT模式、HPI引導模式、Flash引導模式等。具體采用哪種引導模式是由復位或上電時管腳BOOTMODE[3:0]的狀態決定的[5]。本文使用的平臺中,BOOTMODE[3:0]管腳可通過撥碼開關來設置。
    如圖2顯示了使用HPI的啟動流程。系統上電復位后,首先采樣管腳BOOTMODE[3:0]的狀態確定啟動方式(即引導模式)。由于本文采用的是HPI引導模式,上電后DSP內核處于掛起狀態;接下來外部主機通過HPI口直接將代碼和數據加載到DSP的內存中,在這期間DSP內核保持掛起狀態不變;當主機完成程序加載后,主機向HPIC中的DSPINT位寫1,向DSP發出中斷;DSP收到中斷后,DSP內核從掛起狀態喚醒,從L2的基地址(0x800000)處開始執行程序。

2 硬件設計與寄存器讀寫驅動
    在本文的硬件平臺設計中,ARM與DSP HPI的接口連線如圖3所示。從ARM端看,由數據線、地址線、讀寫控制線和片選線組成,其中數據線通過162245總線隔離器進行雙向傳輸。

 

 

    本文使用地址線作為HPI的控制信號,各信號對應的地址線如圖3所示。表1顯示了信號線的組合對應的訪問類型。
    需要特別注意的是,由于本文中的數據總線是16 bit的,使得ARM訪問的地址必須是偶數,因此不使用ADDR[0],從而有了表1中的偶數偏移地址??紤]到這一點,結合表1,下面以HPIC為例,給出其在ARM加載程序中的地址定義,其中_F和_S對應HHWIL信號,指明是第1個半字還是第2個半字。
    unsigned long Write_HPIC_F_ADDR=CS3_BASE_ADDR+0x0;
    unsigned long Write_HPIC_S_ADDR=CS3_BASE_ADDR+0x2;
    unsigned long Read_HPIC_F_ADDR=CS3_BASE_ADDR+0x4;
    unsigned long Read_HPIC_S_ADDR=CS3_BASE_ADDR+0x6;
    根據上述定義,從ARM來看,對于每個寄存器都有4個地址,在數據訪問中必須選擇正確的地址來操作。上述定義中,CS3_BASE_ADDR對應著DSP HPI的片選基地址,由于HPI 掛到了ARM的nGCS3片選上,根據S3C2440數據手冊[6]可知其為0x18000000。
    對HPIA和HPID的地址定義類似。定義了寄存器的地址后,再定義如下宏函數[7]來實現對相應寄存器的讀寫操作:
    #define IOWrite(reg, data)   *(unsigned short *)(reg)=data
//寫寄存器宏定義
    #define IORead(reg)         *(unsigned short *)(reg)
//讀寄存器宏定義
3 HPI啟動軟件實現流程
    主機通過HPIC、HPIA、HPID和16 bit數據線與DSP進行數據交換和中斷控制。HPI加載軟件實現流程如圖4所示。

    (1)初始化HPIC
    設置相應比特位,在這里僅僅設置了HPIC的HWOB位,該比特位設置第一個半字是所傳32 bit數據的高16 bit(MSB16)還是低16 bit(LSB16)。在這里需要注意HHWIL信號線與HWOB位所起作用的不同,兩者的共同協作才能確保數據的正確傳輸。操作如下:
      temp1=IORead(Read_HPIC_F_ADDR);
//讀HPIC的第1個半字
      temp2=IORead(Read_HPIC_S_ADDR);
//讀HPIC的第2個半字
      IOWrite(Write_HPIC_F_ADDR,temp1|0x1);
//設置HPIC中的HWOB位
      IOWrite(Write_HPIC_S_ADDR,temp2|0x1);
//設置HPIC中的HWOB位
      需要注意的是,HPIC的高16 bit和低16 bit內容是相同的,所以寫入相同的數據進行設置。
      (2)初始化HPIA
      將操作地址寫到HPIA中,由前所述,DSP要從L2的基地址(0x800000)處開始執行程序。因此需要將程序加載到從L2的基地址開始的內存中。對于TMS320C6455,L2的基地址為0x800000,芯片要求HPIA中寫入32 bit的字地址,因此要將字節地址轉為字地址,即0x200000,所以寫HPIA寄存器代碼如下:
    IOWrite(Write_HPIA_F_ADDR,0x0000);
    for(time_out=0;time_out<HRDY_TIMEOUT;time_out++);
    IOWrite(Write_HPIA_S_ADDR,0x20);
    for(time_out=0;time_out<HRDY_TIMEOUT;time_out++);
    根據TMS320C6455的芯片手冊,HPIA的2個半字的寫操作之間需要增加一定的延時。因此,上面的代碼中設定了延時。具體時間參考TMS320C6455的芯片手冊[2]。
    (3)向HPID中寫入數據
    存取HPID時,通過控制HCNTL[1:0]信號可選擇帶地址自增的讀寫操作或是不帶地址自增的讀寫操作。當訪問連續的DSP存儲空間時,使用帶地址自增的讀寫操作只需要對HPIA寄存器賦值一次即可,能夠給數據存取操作帶來很大的方便。本文操作的是連續地址,因此使用帶地址自增的HPID,這樣僅需要進行一次設置HPIA,之后便不用再對其進行設置。
    (4)向HPIC中的DSPINT位寫入1,向DSP發出中斷
    至此,加載數據全部寫入內存。接下來通知DSP數據加載完畢,這需要通過設置HPIC中的DSPINT位來完成,實現代碼如下:
    temp3=IORead(Read_HPIC_F_ADDR);
    temp4=IORead(Read_HPIC_S_ADDR);
    IOWrite(Write_HPIC_F_ADDR,temp3|0x2);
    IOWrite(Write_HPIC_S_ADDR,temp4|0x2);
    這樣當主機向DSP發送了DSPINT中斷后,DSP會從L2基地址處開始執行。但是對于DSP的C程序來說,是要從_c_int00處開始執行,因此需要在L2基地址處增加跳轉指令,使得程序跳轉到_c_int00處,這樣程序便可以正確運行,從而實現DSP程序的動態加載。
    需要注意的是,由于項目中電路板設計使用HPI16模式,因此對HPI任何一個寄存器的訪問,主機都需在HPI總線上進行2次半字存取,否則可能會引起整個數據的丟失或是其他不可預料的錯誤。
4 格式轉換
    使用DSP集成開發環境CCS生成的文件一般為.out文件,該文件是通用目標文件格式(COFF)的目標文件,COFF文件中包含一些定位符號以及一些頭信息等,而本文加載到內存中的數據是CPU能夠直接運行的代碼,不能包含任何的其他冗余信息,因此不能直接將COFF文件加載到內存中。本文使用TI公司提供的工具hex6x.exe和hex2aray.exe進行格式的轉換,其中hex6x.exe將COFF文件轉換為hex文件,hex2aray.exe將hex文件轉換為一個數組,這樣,直接讀取數組中的數據并將其加載到內存中即可。
    本文在介紹DSP主機接口并通過HPI接口啟動流程的基礎上,詳細介紹了在項目平臺上ARM通過DSP的HPI口動態加載DSP的硬件設計與軟件實現,同時詳細描述了設計的注意事項、啟動跳轉以及格式轉換等問題。實際的測試表明,加載1 MB的內存數據僅需要0.28 s,可見該加載方法加載速度快,靈活性好,很好地解決了軟件無線電設備對DSP波形組件可重構的要求。
參考文獻
[1] MITOLA J.The software radio architecture[J].IEEE Communications Magazine,1995,15(5):26-38.
[2] Texas Instruments.TMS320C6455 fixed-point digital signal  processor[EB/OL].[2012-10-10].http://www.ti.com.
[3] Texas Instruments.TMS320C645x DSP host port interface (HPI) user&prime;s guide[EB/OL].[2012-10-10].http://www.ti.com.
[4] 吳海洲,劉恒甫,黃克武.基于TMS320C6455的DSP加載模式研究[J].電子測量技術,2008,31(6):155-162.
[5] Texas Instruments.TMS320C645x/C647x DSP bootloader user&prime;s guide[EB/OL].[2012-10-10].http://www.ti.com.
[6] Texas Instruments.S3C2440A 32-BIT CMOS Microcontroller user&prime;s manual[EB/OL].[2012-10-10].http://www.samsungsemi.com.
[7] Texas Instruments.TMS320C6000 programmer&prime;s guide[EB/OL].[2012-10-10].http://www.ti.com.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          久久精品青青大伊人av| 伊人一区二区三区久久精品| 亚洲第一精品夜夜躁人人爽| 欧美精品v国产精品v日韩精品| 国产精品亚洲а∨天堂免在线| 亚洲美女精品久久| 欧美激情一级片一区二区| 国产中文一区二区| 一区二区三区日韩精品视频| 久久国产一二区| 国语自产精品视频在线看8查询8| 国语自产精品视频在线看一大j8| 亚洲视频www| 亚洲一区二区三区777| 在线综合+亚洲+欧美中文字幕| 亚洲激情校园春色| 国产精品嫩草影院一区二区| 国产精品免费网站| 欧美一区二区三区在| 久久午夜影视| 欧美视频专区一二在线观看| 欧美亚洲一区二区三区| 久久理论片午夜琪琪电影网| 欧美极品在线视频| 亚洲日本成人女熟在线观看| 国产麻豆精品久久一二三| 国产精品美女久久久久久久| 久久视频在线视频| 欧美高清影院| 欧美成人免费在线观看| 韩曰欧美视频免费观看| 经典三级久久| 国产精品国产馆在线真实露脸| 亚洲电影第三页| 亚洲精品国产品国语在线app| 欧美体内she精视频在线观看| 亚洲日本va午夜在线影院| 国产中文一区二区| 久久国产精品毛片| 影音先锋欧美精品| 国产精自产拍久久久久久| 久久精品五月婷婷| 国产精品久久久久免费a∨| 国产精品丝袜白浆摸在线| 欧美在线观看www| 美女精品在线观看| 国产精品自拍三区| 国产日韩欧美在线看| 欧美三区在线视频| 国产午夜精品全部视频播放| 亚洲欧洲日产国产综合网| 久久夜色精品国产亚洲aⅴ| 亚洲在线成人精品| 日韩午夜激情av| 麻豆精品在线视频| 亚洲人被黑人高潮完整版| 欧美日一区二区三区在线观看国产免| 在线激情影院一区| 亚洲网站在线看| 亚洲一区二区成人在线观看| 蜜桃av噜噜一区二区三区| 欧美日韩免费在线观看| 欧美日韩一级视频| 久久美女艺术照精彩视频福利播放| 欧美黑人多人双交| 亚洲精品影视在线观看| 国产精品国产馆在线真实露脸| 国产欧美精品日韩精品| 99精品热视频只有精品10| 国产精品萝li| 欧美性猛交xxxx乱大交蜜桃| 久久亚洲欧美国产精品乐播| 黄色日韩精品| 欧美日韩另类一区| 日韩视频一区二区三区在线播放| 欧美xxx在线观看| 欧美精品v日韩精品v国产精品| 亚洲欧洲综合另类在线| 99精品热视频只有精品10| 午夜精品美女自拍福到在线| 欧美日韩成人在线| 午夜精品av| 久久久综合激的五月天| 欧美日韩视频在线| 欧美日韩中文在线| 亚洲一区欧美激情| 久久精品国产成人| 国产精品久久久久毛片软件| 国产精品美女久久久久aⅴ国产馆| 性色av一区二区三区| 一区二区动漫| 欧美激情视频在线免费观看 欧美视频免费一| 欧美性淫爽ww久久久久无| 亚洲国产一区在线观看| 亚洲精品乱码久久久久| 国产精品视频999| 亚洲成色www8888| 美女主播精品视频一二三四| 国产精品青草久久| 黄色亚洲在线| 欧美日韩在线精品| 免费观看欧美在线视频的网站| 影音先锋国产精品| 亚洲第一精品夜夜躁人人爽| 先锋影音网一区二区| 欧美 亚欧 日韩视频在线| 欧美日韩国产二区| 久久精品日韩欧美| 开心色5月久久精品| 99精品热视频| 欧美超级免费视 在线| 91久久一区二区| 亚洲一区免费视频| 宅男在线国产精品| 欧美va日韩va| 欧美成人精品福利| 国产精品高精视频免费| 国产欧美日韩在线观看| 久久噜噜亚洲综合| 亚洲第一伊人| 亚洲欧美资源在线| 亚洲高清不卡av| 极品中文字幕一区| 一区二区国产精品| 欧美亚洲免费| 国产精品红桃| 亚洲无限乱码一二三四麻| 一区二区不卡在线视频 午夜欧美不卡'| 一本一本久久a久久精品综合麻豆| 欧美日本视频在线| 欧美精品电影在线| 亚洲成人在线| 亚洲第一精品久久忘忧草社区| 欧美三区美女| 美女网站久久| 欧美精品一区二区高清在线观看| 亚洲欧洲精品成人久久奇米网| 欧美日韩一区二区免费视频| 欧美一区亚洲| 欧美日韩精品国产| 中日韩美女免费视频网址在线观看| 一区在线播放视频| 欧美在线看片a免费观看| 国产精品每日更新| 欧美成人午夜影院| 亚洲视频在线观看网站| 国产精品一区二区你懂得| 久久精品在线视频| 亚洲大片一区二区三区| 欧美综合激情网| 影音先锋欧美精品| 亚洲黄色成人| 亚洲欧美色一区| 国产精品视频网| 尤物yw午夜国产精品视频明星| 在线日韩av片| 国产精品免费观看视频| 一区二区三区免费看| 欧美一区二区黄| 两个人的视频www国产精品| 亚洲精品中文在线| 亚洲国产经典视频| 国产美女精品视频免费观看| 久久精品亚洲国产奇米99| 国产精品一区一区| 伊甸园精品99久久久久久| 欧美.www| 国产精品日韩欧美综合| 99视频一区二区三区| 亚洲欧美制服另类日韩| 欧美激情一区二区久久久| 国产欧美日韩在线视频| 亚洲激情小视频| 欧美日韩一区综合| 欧美理论片在线观看| 欧美理论在线| 亚洲一级二级在线| 宅男噜噜噜66一区二区| 欧美一区在线直播| 一区二区视频欧美| 久久成人免费电影| 狠狠色综合日日| 国产精品国产精品| 欧美一区视频在线| 久久精品一区中文字幕| 亚洲欧洲精品成人久久奇米网| 欧美日韩高清区| 亚洲欧美日韩一区| 国产日韩欧美综合| 国产视频亚洲精品| 亚洲国产婷婷香蕉久久久久久99| 亚洲欧洲av一区二区三区久久| 香蕉久久夜色精品| 久久国产高清| 久久精品亚洲| 在线观看成人av电影| 午夜视黄欧洲亚洲| 欧美韩日一区二区三区| 久久午夜羞羞影院免费观看| 午夜亚洲视频| 在线日韩一区二区| 亚洲欧美国产视频| 久久精品日韩| 欧美中在线观看| 国产综合视频在线观看| 欧美日韩一区免费| 国产欧美日韩专区发布| 欧美日韩成人综合| 亚洲欧美视频一区| 激情欧美日韩| 亚洲福利精品| 欧美三级特黄| 欧美亚洲一区二区在线| 精品91久久久久| 亚洲国产日韩欧美在线动漫| 狠色狠色综合久久| 欧美一区二区免费| 99精品国产99久久久久久福利| 亚洲最新中文字幕| 一区二区三区精密机械公司| 久久久精品日韩欧美| 9国产精品视频| 黄色小说综合网站| 国产日韩一区欧美| 一区二区动漫| 欧美一区永久视频免费观看| 一本色道久久综合狠狠躁篇怎么玩| 欧美日韩一区三区四区| 你懂的网址国产 欧美| 亚洲天堂网站在线观看视频| 亚洲一区二区三区中文字幕| 国产日韩欧美在线播放不卡| 在线观看欧美黄色| 欧美精品18videos性欧美| 久久噜噜噜精品国产亚洲综合| 久久天堂av综合合色| 午夜精品视频在线观看| 韩国在线一区| 欧美亚州一区二区三区| 国产精品久久久久婷婷| 国产精品久久久久久模特| 美女精品视频一区| 欧美日韩国产综合一区二区| 国产精品久久久久久久久久免费| 在线观看精品一区| 亚洲欧洲在线观看| 欧美日韩一区二区欧美激情| 亚洲高清免费在线| 亚洲精品国产日韩| 久久精品国产亚洲aⅴ| 国产一区观看| 一本久道久久久| 国产精品久久久久91| 国产一区二区三区久久精品| 亚洲综合欧美日韩| 亚洲综合三区| 欧美成年视频| 久久国产夜色精品鲁鲁99| 亚洲欧美激情四射在线日| 国内精品伊人久久久久av影院| 国产精品区一区| 久久午夜色播影院免费高清| 国产日韩欧美在线播放不卡| 国产日韩欧美| 亚洲国产精品尤物yw在线观看| 国产一本一道久久香蕉| 午夜视频一区在线观看| 激情综合中文娱乐网| 亚洲另类春色国产| 国产热re99久久6国产精品| 午夜亚洲福利在线老司机| 新67194成人永久网站| 亚洲专区一区二区三区| 国产精品热久久久久夜色精品三区| 亚洲国产中文字幕在线观看| 亚洲一区视频在线观看视频| 欧美日一区二区三区在线观看国产免| 亚洲欧美日韩区| 欧美一区二区性| 亚洲精品国产精品久久清纯直播| 亚洲一级二级在线| 国产亚洲成年网址在线观看| 一区二区在线观看视频在线观看| 亚洲精选一区二区| 欧美—级a级欧美特级ar全黄| 影音先锋欧美精品| 99国产精品私拍| 国语自产偷拍精品视频偷| 99精品视频免费观看视频| 欧美视频在线观看一区二区| 亚洲一区国产| 亚洲国产精品悠悠久久琪琪| 国产精品国产三级国产| 亚洲成人在线视频播放| 夜夜爽99久久国产综合精品女不卡| 亚洲影院高清在线| 国产欧美日韩视频一区二区三区| 国产午夜一区二区三区| 欧美91大片| 欧美日韩亚洲高清一区二区| 91久久极品少妇xxxxⅹ软件| 国产精品一区二区在线| 欧美日韩成人网| 欧美尤物巨大精品爽| 久久综合中文字幕| 欧美日韩成人在线观看| 久久精品夜夜夜夜久久| 亚洲美女av在线播放| 在线成人性视频| 久久综合伊人77777蜜臀| 欧美激情在线免费观看| 亚洲乱码视频| 中文精品一区二区三区| 一区二区久久| 一区视频在线| 性欧美大战久久久久久久久| 亚洲欧美卡通另类91av| 亚洲国产视频一区| 欧美好骚综合网| 欧美美女bb生活片| 国产精品激情偷乱一区二区∴| 国产精品欧美经典| 久久尤物电影视频在线观看| 一区二区欧美国产| 久久亚洲综合网| 欧美va亚洲va日韩∨a综合色| 久久人体大胆视频| 欧美中文字幕在线播放|