<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > TMS320VC5402DSP的并行I/O引導裝載方法研究

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

作者: 時(shí)間:2006-05-07 來(lái)源:網(wǎng)絡(luò ) 收藏

摘 要 介紹TMS320VC5402 芯片的性能,著(zhù)重分析它的片內ROM結構及并行I/O引導裝載程序,并給出利用8031單片機實(shí)現8位并行I/O引導裝載的方法。實(shí)踐證明,該方法具有很大的靈活性和實(shí)用性。

本文引用地址:http://dyxdggzs.com/article/242341.htm

關(guān)鍵詞 器() 引導裝載 單片機

TMS320VC5402(以下簡(jiǎn)稱(chēng)C5402)是德州儀器公司(TI)1999年10月推出的性?xún)r(jià)比極高(目標價(jià)格僅為5美元)的定點(diǎn)器()。C5402主要特點(diǎn)如下[1]:

·操作速率達100MIPS;

·具有先進(jìn)的多總線(xiàn)結構,三條16位數據存儲器總線(xiàn)和一條程序存儲器總線(xiàn);

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

·一個(gè)17×17乘法器和一個(gè)40位專(zhuān)用加法器,允許16位帶/不帶符號的乘法;

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

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

·8個(gè)輔助寄存器及一個(gè)軟件棧,允許使用業(yè)界最先進(jìn)的定點(diǎn)DSP C語(yǔ)言編譯器;

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

·內置可編程等待狀態(tài)發(fā)生器、鎖相環(huán)(PLL)時(shí)鐘產(chǎn)生器、兩個(gè)多通道緩沖串行口、一個(gè)8位并行與外部處理器通信的HPI口、2個(gè)16位定時(shí)器以及6通道DMA控制器;

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

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

1 幾種引導裝載方法

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

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

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

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

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

行號 源程序 注 解

(標號) ..

END ;讀入用戶(hù)代碼結束

;并轉執行用戶(hù)程序

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時(shí)結束

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; 循環(huán)15-19

15 CALL (21) ;調用讀數據子程序

16 SSBX XF ;XF=1

17 BC  (17),BIO;BIO=0則等待

18 WRITA B ;把B的內容寫(xiě)到*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給出的入口地址執行用戶(hù)程序。第1~4行讀入入口地址;第5~8行讀入數據塊長(cháng)度;第9~13行讀入數據塊首地址;第14~20行讀入數據塊。為了更好地了解這段程序的工作過(guò)程及其原理,圖2給出了8位并行I/O Bootloader程序流程圖。第21~34行為讀數據子程序,在該程序中,利用了XF和BIO信號與外部I/O進(jìn)行握手聯(lián)絡(luò ),其信號時(shí)序如圖3所示。

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

3.1 硬件電路分析

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

電路沒(méi)有給出。

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

3.2 程序設計

根據以上分析,本文設計了如下8031匯編程序。首先使U1的/CE有效,然后等待C5402的XF為低電平,XF=“0”后,使8031的P3.1=“0”即BIO=“0”C5402進(jìn)入等待數據狀態(tài)。在數據送到數據總線(xiàn)之后,使BIO=“1”通知C5402讀取I/O端口數據。程序中,UC定義的代碼前面22個(gè)字節是與C5402的聯(lián)絡(luò )碼,從第23個(gè)字節開(kāi)始才是用戶(hù)程序代碼?!ぁ?/p>

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 ;指向用戶(hù)代碼首地址

MOV A,R4 ;變址送A

MOVC A,@A+DPTR ;取用戶(hù)代碼

MOV P1,A ;送到數據總線(xiàn)

SETB P3.1 ;使BIO=1

W3: JB P3.0,W3 ;XF=1等待

CLR P3.1 ;使BIO=0

INC R4 ;指向下一代碼

CJNE R4,#0FFH,W2 ;未完重來(lái)

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的聯(lián)絡(luò )碼

;用戶(hù)程序代碼

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



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>