• 官方微信

            CA800二維碼微平臺 大視野

          • 工控頭條

            CA800二維碼工控頭條App

          當前位置:自動化網>自動化文庫>應用案例>ARM+DSP結構設計與實現

          ARM+DSP結構設計與實現

          發布時間:2012-12-06 來源:中國自動化網 類型:應用案例 人瀏覽
          分享到:
          關鍵字:

          嵌入式系統 ARM處理器 DSP

          導讀:

          ARM(Advanced RISC Machine)是英國ARM公司設計開發的通用32位RISC微處理器體系結構,其主要優勢在于簡單的設計和高效的指令集。

          1  引言
          ARM(Advanced RISC Machine)是英國ARM公司設計開發的通用32位RISC微處理器體系結構,其主要優勢在于簡單的設計和高效的指令集。ARM的設計目標是微型化、低功耗、高性能的微處理器實現[1]。ARM已經成為嵌入式系統主控制器的首選。DSP(Digital Signal Processor)具有運算速度高、功耗低和智能化外設等特點,在數字信號處理方面顯示了強大的實力。由于ARM與DSP所具有的微型化、低功耗、高效性等共同特點和各自的獨特優勢,以ARM+DSP結構為核心的嵌入式系統在PDA、STB、DVD等消費類電子產品以及GPS、航空、勘探、測量等軍方產品中得到了廣泛的應用。
          本文設計了基于ARM S3C2410與TMS320C5510 DSP的ARM+DSP結構的接口電路,并給出了其軟件實現。
          ARM+DSP結構以ARM為主控制器,DSP為協處理器,方案如圖1所示。

          ARM完成系統的流程調度、任務處理、中斷處理以及提供顯示、通信、遠程控制等人機接口;DSP主要完成數字濾波、編碼解碼、數字調制解調等功能。ARM與DSP利用了DSP提供的HPI口的進行通信,方便、靈活,接口電路設計簡單。ARM+DSP結構把ARM處理器和DSP處理器有機地結合起來,既能滿足信號數據實時性要求,又便于系統的控制操作與升級,提高了系統的整體性能。ARM+DSP結構具有很強的通用性,幾乎不修改硬件和修改少量軟件代碼就可以輕松實現不同系統間的移植。

          3  ARM S3C2410與TMS320C5510 DSP硬件接口設計
          TMS320C5510 DSP提供了一個16位寬的并行端口HPI(host port interface),通過HPI口,主機可以直接訪問TMS320C5510 DSP的存儲器,有關TMS320C5510 DSP的HPI口詳細情況請參考資料[2][3]。
          ARM S3C2410與TMS320C5510 DSP接口電路圖如圖2所示。

          硬件設計中需要注意事項及相關引腳說明:
          (1)  HPI接口是16位數據寬度的,S3C2410的地址引腳ADD20:1應當分別與TMS320C5510的A19:0腳相連。
          (2)  設計中采用非復用模式,控制信號HCNTL0用于控制訪問HPIC或HPID寄存器。HCNTL0與ARM S3C2410的A21引腳相連,訪問HPIC和HPID的起始地址分別為0x38000000和0x38200000。
          (3)  nOE1和DIR1控制與數據線相連的緩沖器,nOE2和DIR2控制與地址線相連的緩沖器。
          (4)  nHCS作為HPI的選通信號,和nHDS1、nHDS2信號一起控制HPI的數據傳輸,3個信號中最后出現下降沿完成對HCNTL0、HR/nW信號采樣。由于nHDS1和nHDS2信號在HPI內是異或關系,他們不能同時為高電平或低電平,否則不能產生使能信號,HPI口不能工作。設計中將HDS1拉高,這樣只需對nHDS2進行控制即可。
          (5)  由于TMS320C5510不再支持位使能功能,必須將nHBE0、nHBE1置位低電平。
          (6)  須將nWait和HRDY引腳相連,以實現高速數據傳輸過程中ARM S3C2410與TMS320C5510 DSP之間的同步操作。

          4  ARM S3C2410與TMS320C5510 DSP通信程序設計
          ARM S3C2410通過HPI口訪問TMS320C5510 DSP存儲器,必須正確設置ARM S3C2410訪問外部存儲器的控制時序和帶寬相關寄存器。
          4.1  TMS320C5510 DSP系統引導程序設計[4][5]
          TMS320C5510 DSP提供了多種引導方式,其中HPI口引導方式具有方便、靈活的特點,可以根據實際需要從主機加載不同的應用程序和數據到DSP的存儲器中。
          采用HPI口引導方式的步驟如下:
          (1)  設置引導模式引腳BOOTM[3:0]=1101b。
          (2)  釋放nRESET引腳(由低到高)。
          (3)  主機加載DSP應用程序到目的地址(DSP片內存儲器)。
          (4)  加載完成后,主機設置HPIC寄存器的RESET位為1。
          (5)  DSP從字節地址010000h開始運行應用程序。
          在ARM+DSP結構中,利用本文設計的HPI口接口電路圖,選擇HPI引導方式加載TMS320C5510 DSP程序代碼和數據。為了加快下載程序速度,DSP程序以可執行的二進制代碼方式進行存儲(將CCS編譯器所產生的COFF文件轉化為可執行的二進制代碼請參考相關資料)。在存儲器中,按照DSPProgramInMemoryStruct結構體存儲DSP程序的相關信息,之后依次存儲DSP各段程序的二進制代碼。
          typedef struct DSPProgramInMemoryStruct{
          unsigned short Flag;                        
                       //文件完整性標志,完整時為0xE5
          unsigned short TotalSection;                  
                      //程序總的段數
          struct {                   
               unsigned short SectionAddressInDSP;     
                      //各段程序在DSP中的地址
               unsigned short SectionLength;           
                                      //各段程序長度
          }SectionInfo[7];               //為了方便和實際情況,這里最多只能存7段程序
          } DSPProgramInMemory_Struct;
          根據硬件設計圖,初始化及地址定義如下:
          #define WriteHPIC(data)  (*(volatile unsigned short *)(0x38000000))=(unsigned short)data
          #define WriteHPID(addr,data) 
          (*(volatile unsigned short *) (0x38200000+(((unsigned int)(addr))<<1)))=( unsigned short )data
          #define ReadMemory(addr)  (*((volatile unsigned short *)(addr)) )            //讀取存儲器中的數據
          void ResetDSP(void);   //主機通過GPH8引腳復位DSP
          S3C2410下載TMS320C5510 DSP程序的實現代碼如下:
          int DownLoadDSP(unsigned int StartAddress){
          DSPProgramInMemory_Struct DSPInMemory;
          int i, j;
          unsigned int Pos=0; 
          ResetDSP ();    //主機通過GPH8引腳復位DSP
          If(ReadMemory(StartAddress)!=0xE5)
                         //檢驗DSP文件的完整性
                reuturn 0;
          DSPInMemory.TotalSection=ReadMemory (StartAddress+2);                //獲取總段數
          for(i=0; i<7; i++){          //獲取各段在DSP中的地址和長度
               DSPInMemory.SectionInfo[i].SectionAddressInDSP=ReadMemory (StartAddress+4+2*i);
          DSPInMemory.SectionInfo[i].SectionLength      =ReadMemory (StartAddress+4+2*i+1);}
          for(i=0;i< DSPInMemory.TotalSection;i++)
                             //下載程序到DSP
              for(j=0;j< DSPInMemory. SectionInfo[i].SectionLength;j+=2){
                       WriteHPID(DSPInMemory. SectionInfo[i].SectionAddressInDSP +j/2,
          ReadMemory (StartAddress +0x30+Pos));
                       Pos+=2;}
                  WriteHPID(0x8000,(ReadMemory(StartAddress+0x30) &0x00ff)|0x6a00);  
                                 //寫入口點向量
                  WriteHPID(0x8001,ReadMemory(StartAddress+0x32));        //寫入口點向量
          WriteHPIC(0x1);        //通過HPIC口復位DSP
          return 1;}
          4.2  ARM S3C2410與TMS320C5510 DSP通信程序設計
          在HPI口通信方式下,TMS320C5510 DSP的片內存儲器DARAM、SARAM和片外存儲器CE0對外界完全透明,由主機通過訪問HPI的地址和數據寄存器便可完成對TMS320C5510 DSP片內存儲器和部分片外存儲器的讀寫。ARM S3C2410與TMS320C5510 DSP通信的流程圖如圖3所示。

          主機通過HPI口將參數寫入DSP的DARAM,通過向HPI控制寄存器(HPIC)的DSPINT位寫1產生HPI中斷;DSP接收到HPI中斷后,從DARAM取參數,根據要求執行不同的任務,數據處理完成后,將結果存放在DARAM中,通知主機取結果,主機通過HPI讀取結果,根據結果控制程序流程和顯示,這樣,通過HPI口就完成了ARM S3C2410與TMS320C5510 DSP之間的通信。

          5  結束語
          隨著嵌入式系統和信號處理器的飛速發展,ARM+DSP結構應用得越來越廣泛,利用HPI口進行ARM與DSP之間的通信,可以使硬件的設計更加簡單、靈活。DSP在通過HPI口和主機通信的過程中完全沒有軟件和硬件開銷,由DSP自身的硬件協調沖突,不會打斷DSP正常程序的運行,這特別有利于構成主處理器和協處理器的模式,完成高速的數字信號處理。本文設計的ARM+DSP結構已成功地應用在測試儀器中。

          參考文獻:
          [1] 蔣亞群,張春元.ARM微處理器結構及嵌入式SOC[J]. 計算機工程,2002,28(11):4-6.
          [2] Texas Instruments Incorporated.TMS320VC5510 DSP Host Port Interface(HPI) Reference Guide[Z].Texas,USA:http://www.ti.com,2004.
          [3] Texas Instruments Incorporated.TMS320VC5510 Fixed-Point Digital Signal Processor[Z].Texas,USA:http://www.ti.com,2004.
          [4] 陳喆,張幅洪.數字信號處理引導裝載方式研究[J].杭州電子工業學院學報,2002,22(6):65-68.
          [5] 易飛,趙洪信.TMS320VC4502芯片的并口啟動轉載方案[J].計算機應用,2001,127(7):6-14.

          作者簡介:董曉威(1979-),男,講師,碩士,研究方向:機械設計制造及其自動化。

          本文地址:本文地址: http://m.xznet110.com/apply/d_1nrutga2l2ds7_1.html

          拷貝地址

          上一篇:臺達A2伺服在包裝機打碼工藝控制的應用

          下一篇:基于FPGA的雷達視頻壓縮技術研究*

          免責聲明:本文僅代表作者個人觀點,與中國自動化網無關。其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關內容!

          主站蜘蛛池模板: 国产裸拍裸体视频在线观看| 最近中文字幕在线mv视频7| 国产欧美日韩专区| www.精品国产| 明星换脸高清一区二区| 人妻内射一区二区在线视频| 两个人看的视频高清在线www| 欧美日韩中文国产一区二区三区 | jjzz日本护士| 尤物在线影院点击进入| 亚洲av中文无码乱人伦在线观看| 青青在线国产视频| 性久久久久久久| 久热这里有精品| 波多野结衣中文字幕一区二区三区 | 久久久久九九精品影院| 欧美性大战久久久久久| 俺来也俺去啦久久综合网| 色婷婷综合激情视频免费看| 国产真实伦在线视频免费观看| a级成人免费毛片完整版| 无码午夜人妻一区二区不卡视频| 亚洲中文字幕伊人久久无码 | 国产精品一区二区av| 99麻豆久久久国产精品免费| 成人羞羞视频网站| 久久精品无码一区二区日韩av| 欧美极品videossex激情| 免费无码又爽又刺激网站| 贱妇汤如丽全篇小说| 国产精品99无码一区二区| 99精品久久久久久久婷婷| 成人免费福利视频| 久久国产乱子伦精品免费看| 欧美一级免费看| 亚洲精品第一国产综合野| 精品久久久久久久久久中文字幕| 国产精品日韩欧美一区二区三区 | 欧美老人巨大xxxx做受视频| 公和我在厨房猛烈进出视频| 蜜桃臀无码内射一区二区三区|