關(guān) 閉

新聞中心

EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > TM1300 PCI-XIO口的UART和USB接口設(shè)計(jì)

TM1300 PCI-XIO口的UART和USB接口設(shè)計(jì)

作者: 時(shí)間:2005-04-01 來源:網(wǎng)絡(luò) 收藏
摘要:以Philips公司的多媒體數(shù)字信號(hào)處理器TM1300的硬件核心平臺(tái),通過TM1300芯片的口,經(jīng)芯片ST16C550實(shí)現(xiàn)串行通信接口,經(jīng)接口芯片N9604實(shí)現(xiàn)接口,設(shè)計(jì)方案簡(jiǎn)潔。實(shí)際測(cè)試結(jié)果表明,通信接口工作穩(wěn)定。

關(guān)鍵詞:TM1300 PCI-XI0口 接口 USB接口

引言

Trimedia集成電路是Philips公司新近推出的針對(duì)多媒體應(yīng)用的一種高性能DSP,它能夠進(jìn)行高質(zhì)量的視頻和音頻處理。TM1300是Trimedia系列產(chǎn)品之一,它的核心是32位處理器,能夠進(jìn)行32位線性尋址,尋址能力可達(dá)4GB,含有128個(gè)通用寄存器。Tm1300核心處理器采用的是VLIW(超長(zhǎng)指令字)結(jié)構(gòu),可以在每一時(shí)鐘周期內(nèi)同時(shí)進(jìn)行5個(gè)操作,VLIW結(jié)構(gòu)還可以減少處理器的工作量。TM1300支持16KB的數(shù)據(jù)高速緩存和32KB的指令高速緩存,并且數(shù)據(jù)高速緩存是雙端口的,允許同時(shí)雙向接入。

TM1300有別于一般的通用DSP,它有專門的視頻接口、音頻接口和PCI、SSI(同步串行接口)等豐富的外設(shè)接口。在本設(shè)計(jì)前,已經(jīng)利用TM1300上的SSI接口實(shí)現(xiàn)了(Universal Asynchronous Receiver and Transmit)接口板和E1接口板,利用片上PCI接口實(shí)現(xiàn)了以太網(wǎng)接口,并實(shí)現(xiàn)了PSTN、DDN和以太網(wǎng)上的視頻傳輸。本文改進(jìn)了參考文獻(xiàn)中的URAT實(shí)現(xiàn)方案,利用TM1300的接口實(shí)現(xiàn)串行通信接口和USB接口,系統(tǒng)框圖如圖1所示。

1 硬件設(shè)計(jì)

TM1300集成了一個(gè)符合PCI 2.1的PCI接口,總線數(shù)據(jù)寬度為32位,最高時(shí)鐘頻率可達(dá)33MHz,峰值吞吐率可達(dá)132MB/s。TM1300還通過XIO總線控制器在PCI接口上擴(kuò)展了一個(gè)XIO接口。通過XIO接口,TM1300可以方便實(shí)現(xiàn)對(duì)8位簡(jiǎn)單外設(shè)的無縫連接。本文設(shè)計(jì)的硬件實(shí)現(xiàn)主要就是基于XIO接口,下面將對(duì)其進(jìn)行詳細(xì)介紹。

圖2

1.1 TM1300 接口的工作機(jī)制

PCI-XIO總線提供了TM1300與普通PCI外設(shè)和簡(jiǎn)單8位外設(shè)的無縫混合連接。它提供以下特性:

*完全的PCI 2.1特性(32位,33MHz);

*簡(jiǎn)單的非復(fù)用8位數(shù)據(jù),24位地址XIO總線,支持68K、X86控制信號(hào);

*內(nèi)部或外部可編程時(shí)鐘源;

*0~7個(gè)可編程等待周期以適應(yīng)慢速XIO設(shè)備;

*支持單字節(jié)讀寫和DMA讀寫。

圖3

圖2是PCI-XIO總線系統(tǒng)示意圖,可以看出,XIO總線控制器作為PCI總線上的一個(gè)特殊設(shè)備工作,通過復(fù)用PCI信號(hào)線,實(shí)現(xiàn)簡(jiǎn)單8位設(shè)備的標(biāo)準(zhǔn)接口。XIO總線控制器作為XIO總線的“代理”,在XIO總線操作進(jìn)行時(shí)負(fù)責(zé)為PCI總線接口單元(BIU)產(chǎn)生PCI_DEVSEL信號(hào),當(dāng)收到BIU的PCI_IRDY信號(hào)時(shí),它使能PCI_INTB信號(hào),可以作為所有XIO設(shè)備的全局片選信號(hào)。它還重新配置了PCI的32位地址/數(shù)據(jù)線,將低24位作為XIO總線的地址線,高8位作為XIO總線的數(shù)據(jù)線。

PCI-XIO總線控制器包括一個(gè)可編程的MMIO寄存器:XIO_CTL。其中使能位(7)為1時(shí),允許XIO總線操作;高6位(31:26)定義了XIO空間的基地址;時(shí)鐘頻率位(4:0)用來定制內(nèi)部時(shí)鐘;等待狀態(tài)(10:8)用來支持慢速外部XIO設(shè)備操作。

TM1300初始化后,PCI-XIO總線默認(rèn)為普通PCI模式。若MMIO里XIO-CTL寄存器的使能位被置位,并且TM1300尋址到XIO地址空間,XIO總線控制器就被激活。

從圖2可以看出,TM1300利用PCI BIU訪問XIO總線,TM1300訪問XIO總線的地址格式如圖3所示。

由圖3可見,24位16MB地址空間的XIO總線映射到16MB PCI(4字節(jié))地址空間。XIO總線上一次字節(jié)的讀寫對(duì)應(yīng)于PCI總線上的一次字讀寫。圖4是TM1300訪問XIO總線使用的數(shù)據(jù)格式,向XIO總線寫一個(gè)字節(jié)時(shí),PCI BIU在PCI寫操作的數(shù)據(jù)相,向XIO總線控制器寫4字節(jié),但低24位(bit23:0)被忽略,對(duì)應(yīng)的PCI_BYTE_ENABLE信號(hào)無線;從XIO總線讀1字節(jié)時(shí),XIO總線控制器在PCI讀操作的數(shù)據(jù)相,向PCI BIU發(fā)送4字節(jié),其中高8位(bit31:24)是從XIO總線的數(shù)據(jù)線上讀到的數(shù)據(jù),低24位(bit24:0)返回這次讀操作的XIO總線地址。

在XIO邏輯激活期間,PCI-XIO接口把PCI中斷信號(hào)PCI_INTB復(fù)用為XIO總線全局使能信號(hào)CS;把PCI的命令/比特使能信號(hào)PCI_C/BE0和PCI_C/BE1分別復(fù)用為XIO總線的讀使能信號(hào)RD和寫使能信號(hào)WR;把PCI/C_BE2復(fù)用為數(shù)據(jù)鎖存信號(hào),用于地址線與數(shù)據(jù)線復(fù)用的環(huán)境;PCI的時(shí)鐘信號(hào)PCI_CLK可在XIO總線操作期間為PCI總線接口單元(BIU)提供由TM1300內(nèi)部高速時(shí)鐘分頻而來的可編程時(shí)鐘;其它PCI控制信號(hào)則由XIO總線控制器負(fù)責(zé)與PCI BIU進(jìn)行交互。

1.2 基于PCI-XIO的接口實(shí)現(xiàn)方案

通過上述介紹不難看出,PCI-XIO接口的8位數(shù)據(jù)線無疑是TM1300連接8位外設(shè)ST16C550和USBN9604的理想橋梁。

串行接口的實(shí)際技術(shù)已經(jīng)非常成熟,本文選用比較常見的ST16C550芯片。ST16C550是可編程的通用異步接收/發(fā)送器,工作在3.3V或5V,內(nèi)部收發(fā)均有16個(gè)字節(jié)FIFO,能實(shí)現(xiàn)數(shù)據(jù)的串行與8位并行之間的轉(zhuǎn)換,支持異步通信協(xié)議。片內(nèi)有時(shí)鐘產(chǎn)生電路,最高工作頻率24MHz,波特率可以從50bps~1.5Mbps.ST16C550可以為應(yīng)用于遠(yuǎn)程通信系統(tǒng)中的調(diào)制解調(diào)器提供控制信號(hào),并接收和記錄調(diào)制解調(diào)器的狀態(tài)信息。

本文所選用的USB接口芯片USBN9604是National Semiconductor公司設(shè)計(jì)生產(chǎn)的一款新型的USB通信控制芯片,支持全速傳輸,可滿足USB1.0和USB1.1協(xié)議。它具有8位并行接口,可支持DMA、MICROWIRE。其主要特別如下:工作頻率為48MHz,芯片內(nèi)部有倍頻電路;可編程產(chǎn)生不同的接口(SIE),可實(shí)現(xiàn)USB物理層和信號(hào)協(xié)議層的轉(zhuǎn)換;帶有7個(gè)端點(diǎn)的USB功能控制器,每個(gè)端點(diǎn)對(duì)應(yīng)一個(gè)FIFO;內(nèi)部有64個(gè)映射到內(nèi)存的寄存器。

圖5

TM1300與USB9604連接的原理圖如圖6所示。

在TM1300通過XIO口對(duì)USB芯片進(jìn)行讀寫的過程中,要特別注意時(shí)序問題。雖然TM1300的XIO接口和USB芯片能夠?qū)崿F(xiàn)硬件上的無縫連接,但兩者在讀寫數(shù)據(jù)的時(shí)序上并不匹配。TM1300在發(fā)起XIO總線讀寫操作時(shí),在片選信號(hào)有效期間,地址和數(shù)據(jù)是同時(shí)發(fā)向USB芯片時(shí);而USB芯片需要先接收一個(gè)地址,再對(duì)相應(yīng)地址讀寫數(shù)據(jù),地址與數(shù)據(jù)是分時(shí)的。對(duì)于TM1300的讀寫操作,USB芯片無法將地址和數(shù)據(jù)區(qū)分開來,即兩個(gè)芯片的讀寫時(shí)序不匹配。本文利用TM1300的PCI_AD0引腳來控制USBN9604的A0,當(dāng)PCI_AD0為1時(shí),表示寫入U(xiǎn)SBN9604的是地址;當(dāng)PCI_AD0為0時(shí),表示真正的數(shù)據(jù)通信。具體的編程語句如下:

void write_usb(BYTE address,BYTE data)

{xioWrite(USB基地址+0x000001,address);

xioWrite(USB基地十+0x000000,data);}

BYTE read_usb(BYTEaddress)

{xio Write(USB基地址+0x000001,address);

return(BYTE)xioRead(USB基地址+0x000000);}

對(duì)UART的讀寫,則不用考慮時(shí)序問題,使用如下語句即可。

xioWrite(UART基地址+UART寄存器地址,data);

1.3 外部中斷設(shè)計(jì)

TM1300除了內(nèi)部模塊中斷之外,還提供了5個(gè)外部中斷輸入引腳:PCI-INTA/B/C/D和TR1_USERIRQ,前四個(gè)中斷引腳推薦為電平觸發(fā)模式,在不用作中斷輸入時(shí),可以配置為通用I/O引腳,TRI_USERIRQ適合于電平觸發(fā)或者邊沿觸發(fā)模式。

在本文的硬件設(shè)計(jì)中,PCI-INTB在PCI-XIO總線激活時(shí),作為XIO總線的全局使能信號(hào);UART芯片利用TRI_USERIRQ引腳向TM1300發(fā)中斷請(qǐng)求;PCI-INTD用于UART通信接口板上USB芯片的中斷請(qǐng)求;PCI-INTC保留未用,可用作以后的擴(kuò)展。

由于ST16C550的中斷輸出引腳和TM1300的TRI-USERIRQ中斷輸入引腳都工作在正邏輯模式,兩者可以直接連接。對(duì)于ST16C550這樣可以同時(shí)發(fā)生多個(gè)中斷條件的外部設(shè)備,INT-USERIRQ應(yīng)該工作在電平觸發(fā)模式。

1.4 PCI-XIO總線復(fù)用

本文設(shè)計(jì)的硬件系統(tǒng)中,通過PCI-XIO總線連接到TM1300的外部設(shè)備有三個(gè):Flash、ST16C550和USB9604。為了這三個(gè)設(shè)備能夠同時(shí)正常工作,必須加入地址譯碼芯片以復(fù)用PCI-XIO總線。

由于Flash占用4MB的地址空間,可以考慮將16MB的XIO空間劃分為4個(gè)4MB的地址塊,利用XIO地址線的高2位作地址譯碼。

本文選擇的地址譯碼芯片是常見的三-八譯碼器,原理圖如圖7所示。這里將XIO總線的全局使能信號(hào)PCI-INTB作為74138的使能信號(hào)。XIO邏輯激活期間,XIO地址線AD[23、22]的值決定了三個(gè)外部設(shè)備中的一個(gè)片選信號(hào)有效。由圖7可見,F(xiàn)lash的基地址為0x000000,USB9604的基地址為0x800000,ST16C550的基地址為0xC00000。

2 總結(jié)

本文通過PCI-XIO接口為TM1300硬件平臺(tái)實(shí)現(xiàn)串行接口和USB接口,在硬件上實(shí)現(xiàn)了帶有串行通信接口和USB接口的TM1300編碼板。

接下來的工作是為TM1300實(shí)現(xiàn)一個(gè)WLAN通信接口,使得以TM1300為硬件平臺(tái)的編碼器可以用于高速無線網(wǎng)絡(luò)平臺(tái)。



關(guān)鍵詞: PCI-XIO UART USB

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉