新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > TMS320 DSP的并行I/O引導裝載方法研究

        TMS320 DSP的并行I/O引導裝載方法研究

        作者: 時間:2016-12-21 來源:網絡 收藏

          TMS320VC5402(以下簡稱C5402)是德州儀器公司(TI)1999年10月推出的性價比極高的定點數字信號處理器(DSP).C5402主要特點如下[1]:

          ·操作速率達100MIPS;

          ·具有先進的多總線結構,三條16位數據存儲器總線和一條程序存儲器總線;

          ·40位算術邏輯單元(ALU),包括一個40位桶形移位器和兩個40位累加器;

          ·一個17×17乘法器和一個40位專用加法器,允許16位帶/不帶符號的乘法;

          ·整合維特比加速器,用于提高維特比編譯碼的速度;

          ·單周期正規化及指數譯碼;

          ·8個輔助寄存器及一個軟件棧,允許使用業界最先進的定點DSP C語言編譯器;

          ·數據/程序尋址空間1M×16bit,內置4K×16bit ROM和16K×16bit RAM;

          ·內置可編程等待狀態發生器、鎖相環(PLL)時鐘產生器、兩個多通道緩沖串行口、一個8位并行與外部處理器通信的HPI口、2個16位定時器以及6通道DMA控制器;

          ·低功耗,工作電源有3V和1.8V(內核),特別適合電池供電設備.

          由此可見,與TMS32054X系列的其它芯片相比,C5402以其獨有的高性能、低功耗和低價格特性,使得一推出就受到業內用戶的歡迎.但它的內部結構和片內掩模的引導裝載(Bootloader)程序與C54X系列的其它DSP處理器[2]有較大的差異,而它的應用對象又大多是要求能脫機運行,如機頂盒(STB)、個人數字助理(PDA)和數字無線通信等內嵌式系統.為此,本文立足我們的實踐經驗,簡單介紹C5402 Bootloader程序分析和實現方法,并較為詳細地介紹并行I/O Bootloader方法.

          1 幾種引導裝載方法

          C5402片內掩模的Bootloader用于在上電復位時把用戶程序從外部引導到高速RAM中,以保證其全速運行.C5402提供了如下四種Bootloader方法:8位或16位并行EPROM方法、8位或16位并行I/O方法、8位或16位串行口方法和處理器通信口(主端口)HPI方法.

          上電復位后,C5402檢測其MP/MC引腳,如果MP/MC=“0”則進入Bootloader程序.進入Bootloader后,如有INT2請求中斷,則進入HPI引導方式,否則則讀入端口地址為0FFFFH的I/O端的引導方式選擇字(Boot Routine Selection,BRS).當BRS=XXXX00時,進入I/O或串行口引導方式如BRS=XXXX1000時,進入8位I/O引導方式BRS=XXXX1100時,進入16位I/O引導方式,否則則進入串行口引導方式.當BRS=XXXX01時,進入8位EPROM引導方式,BRS=XXXX10時,進入16位EPROM引導方式.

          2 C5402片內ROM結構及并行I/O引導裝載程序分析

          C5402提供了4K×16bit 的掩模ROM,其具體內容見表1.C5402上電復位后,如果MP/MC=“0”則從F800h地址開始運行Bootloader程序.在進入8位并行I/O引導程序以前,C5402與外部I/O要進行一系列的通信聯絡,其程序框圖如圖1所示.

        TMS320VC5402DSP的并行I/O引導裝載方法研究

        TMS320VC5402DSP的并行I/O引導裝載方法研究

          以下是8位并行I/O引導程序片段下:

          行號 源程序 注 解

          (標號) ..

        END       ;讀入用戶代碼結束
                ;并轉執行用戶程序
        1 CALL (21) ;調用讀數據子程序
        2 STL   B,61h ;B的內容→61H單元
        3 CALL  (21) ;調用讀數據子程序
        4 STL   B,61h ;B的內容→62H單元
        5 CALL (21) ;調用讀數據子程序
        6 BC (END), BEQ ;B=0時結束
        7 SUB #01h,0,B,B ;B-1→B
        8 STLM B,BRC;B→BRC
        9 CALL (21) ;調用讀數據子程序
        10 STL  B, 68h ;B的內容→68H單元
        11 CALL (21) ;調用讀數據子程序
        12 ADD 68h,16,B,B ;68H移位后加B→B
        13 LD  B,0,A   ;B→A
        14 RPTD (20)-1; 循環15-19       
        15 CALL (21) ;調用讀數據子程序
        16 SSBX   XF  ;XF=1
        17 BC  (17),BIO;BIO=0則等待
        18 WRITA  B  ;把B的內容寫到*A
        19 ADD #01h,0,A,A ;A+1→A
        20 B  (5)    ;跳轉到標號為5
            .
        21 SSBX  XF    ;XF=1
        22 BC (22),BIO  ;BIO=0則等待
        23 RXBX   XF   ;XF=0
        24 BC (24),NBIO ;BIO=1則等待
        25 POETR 0000h,B ;讀0地址端口→B
        26 SFTL  B,8,B  ;B左移8位→B
        27 SSBX  XF    ;XF=1
        28 BC (28),BIO  ;BIO=0則等待
        29 RXBX  XF   ;XF=0
        30 BC (30),NBIO ;BIO=1則等待
        31 PORTR 0000h,68h ;讀0地址端口→68
        32 ANDM 000ffh,68h ;邏輯與
        33 OR  68h,B   ;邏輯或后→B
        34 RET ;返回

          在上述程序中,END標號給出I/O讀入操作結束后所轉移的入口地址,之后轉到61H和62H給出的入口地址執行用戶程序.第1~4行讀入入口地址;第5~8行讀入數據塊長度;第9~13行讀入數據塊首地址;第14~20行讀入數據塊.為了更好地了解這段程序的工作過程及其原理,圖2給出了8位并行I/O Bootloader程序流程圖.第21~34行為讀數據子程序,在該程序中,利用了XF和BIO信號與外部I/O進行握手聯絡,其信號時序如圖3所示.

        TMS320VC5402DSP的并行I/O引導裝載方法研究

        TMS320VC5402DSP的并行I/O引導裝載方法研究

          3 C5402并行I/O引導裝載方法的實現

          3.1 硬件電路分析

          為了滿足C5402 DSP 8位并行I/O Bootloader引導程序的時序要求,本文利用8031單片機作智能I/O部件,圖4為C5402與8031的連接電路圖.在圖中,U3為TMS320VC5402DSP,U?為8031單片機,U1、U2均為SN74AHC245,單片機系統中的EPROM

          電路沒有給出.

          U1、U2的DIR引腳接地,數據傳輸方向為B→A.U2的B7~B4和B2~B0接地,B3接DVDD(3.3V),/CE端接系統復位信號,保證了在上電復位期間U2給C5402提供00001000B數據,使其進入8位并行I/O引導模式,而當復位信號無效后,U2的/CE=“1”片選信號無效而脫離系統.U1的作用是數據緩沖兼作電平轉換器,U1的VCCD端接4.3V,其作用是將8031輸出的TTL電平轉換成5402能接受的CMOS電平;U1的/CE斷接8031的P3.3(/INT)腳,在系統復位直到執行CLR P3.3之前都保持高電平,在此期間U1無效,保證了U2正常供給5402所需的數據.8031的P3.0( RXD)、P3.1(TXD)作為握手信號,分別與C5402的/BIO和XF相連.JP3、JP4可供用戶跳線選擇C5402的系統時鐘以及選擇C5402的運行模式.

          3.2 程序設計

          根據以上分析,本文設計了如下8031匯編程序.首先使U1的/CE有效,然后等待C5402的XF為低電平,XF=“0”后,使8031的P3.1=“0”即BIO=“0”C5402進入等待數據狀態.在數據送到數據總線之后,使BIO=“1”通知C5402讀取I/O端口數據.程序中,UC定義的代碼前面22個字節是與C5402的聯絡碼,從第23個字節開始才是用戶程序代碼.··

          CLR P3.3    ;使U1(AHC245) CE=0
        W1: JB P3.0,W1  ;XF=1等待
          CLR   P3.1  ;使BIO=0
          MOV R4,#00H  ;初始化變址寄存器
        W2: JNB P3.0,W2  ;XF=0等待
          MOV DPTE,#UC ;指向用戶代碼首地址
          MOV A,R4    ;變址送A
          MOVC A,@A+DPTR ;取用戶代碼
          MOV P1,A    ;送到數據總線
          SETB P3.1   ;使BIO=1
        W3: JB P3.0,W3   ;XF=1等待
          CLR P3.1    ;使BIO=0
          INC R4     ;指向下一代碼
          CJNE R4,#0FFH,W2 ;未完重來
        UC: DB 08H,0AAH,00H,00H
           DB 00H,00H,00H,00H
           DB 00H,08H,00H,25H
           DB 00H,00H,00H,80H
           DB 0F4H,95H,0E9H,27H
           DB 0F3H,10H ;以上為與C5402的聯絡碼
                 ;用戶程序代碼

          TMS320VC5402 DSP是C54X家族乃至TI的DSP家族的最新成員,正以其極高的性價比被越來越多的用戶所接受.本文利用廉價、通用的8031單片機實現C5402 8位并行I/O Bootloader功能,一方面,可以很好地解決快速DSP與慢速I/O(EPROM)之間的數據傳輸問題;另一方面,C5402 Bootloader成功后,8031還可作為“協助理器”使用,從而極大提高了系統的靈活性和實用性.具有廣闊的應用前景.



        關鍵詞: TIDSP并行IO加

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 宁南县| 秀山| 黄平县| 定日县| 漳平市| 施秉县| 合水县| 东乌珠穆沁旗| 浪卡子县| 黄大仙区| 磐石市| 兴化市| 孟连| 沙湾县| 汽车| 阆中市| 正镶白旗| 海晏县| 仁化县| 大洼县| 柞水县| 公主岭市| 定结县| 阜新| 营口市| 德钦县| 南皮县| 潍坊市| 安岳县| 井研县| 洛隆县| 盐源县| 合作市| 攀枝花市| 永善县| 怀化市| 茶陵县| 鞍山市| 新闻| 惠东县| 盐城市|