TM1300 PCI-XIO口的UART和USB接口設計
關(guān)鍵詞:TM1300 PCI-XI0口 UART接口 USB接口
引言
Trimedia集成電路是Philips公司新近推出的針對多媒體應用的一種高性能DSP,它能夠進(jìn)行高質(zhì)量的視頻和音頻處理。TM1300是Trimedia系列產(chǎn)品之一,它的核心是32位處理器,能夠進(jìn)行32位線(xiàn)性尋址,尋址能力可達4GB,含有128個(gè)通用寄存器。Tm1300核心處理器采用的是VLIW(超長(cháng)指令字)結構,可以在每一時(shí)鐘周期內同時(shí)進(jìn)行5個(gè)操作,VLIW結構還可以減少處理器的工作量。TM1300支持16KB的數據高速緩存和32KB的指令高速緩存,并且數據高速緩存是雙端口的,允許同時(shí)雙向接入。
TM1300有別于一般的通用DSP,它有專(zhuān)門(mén)的視頻接口、音頻接口和PCI、SSI(同步串行接口)等豐富的外設接口。在本設計前,已經(jīng)利用TM1300上的SSI接口實(shí)現了UART(Universal Asynchronous Receiver and Transmit)接口板和E1接口板,利用片上PCI接口實(shí)現了以太網(wǎng)接口,并實(shí)現了PSTN、DDN和以太網(wǎng)上的視頻傳輸。本文改進(jìn)了參考文獻中的URAT實(shí)現方案,利用TM1300的PCI-XIO接口實(shí)現串行通信接口和USB接口,系統框圖如圖1所示。
1 硬件設計
TM1300集成了一個(gè)符合PCI 2.1的PCI接口,總線(xiàn)數據寬度為32位,最高時(shí)鐘頻率可達33MHz,峰值吞吐率可達132MB/s。TM1300還通過(guò)XIO總線(xiàn)控制器在PCI接口上擴展了一個(gè)XIO接口。通過(guò)XIO接口,TM1300可以方便實(shí)現對8位簡(jiǎn)單外設的無(wú)縫連接。本文設計的硬件實(shí)現主要就是基于XIO接口,下面將對其進(jìn)行詳細介紹。
圖2
PCI-XIO總線(xiàn)提供了TM1300與普通PCI外設和簡(jiǎn)單8位外設的無(wú)縫混合連接。它提供以下特性:
*完全的PCI 2.1特性(32位,33MHz);
*簡(jiǎn)單的非復用8位數據,24位地址XIO總線(xiàn),支持68K、X86控制信號;
*內部或外部可編程時(shí)鐘源;
*0~7個(gè)可編程等待周期以適應慢速XIO設備;
*支持單字節讀寫(xiě)和DMA讀寫(xiě)。
圖3
PCI-XIO總線(xiàn)控制器包括一個(gè)可編程的MMIO寄存器:XIO_CTL。其中使能位(7)為1時(shí),允許XIO總線(xiàn)操作;高6位(31:26)定義了XIO空間的基地址;時(shí)鐘頻率位(4:0)用來(lái)定制內部時(shí)鐘;等待狀態(tài)(10:8)用來(lái)支持慢速外部XIO設備操作。
TM1300初始化后,PCI-XIO總線(xiàn)默認為普通PCI模式。若MMIO里XIO-CTL寄存器的使能位被置位,并且TM1300尋址到XIO地址空間,XIO總線(xiàn)控制器就被激活。
從圖2可以看出,TM1300利用PCI BIU訪(fǎng)問(wèn)XIO總線(xiàn),TM1300訪(fǎng)問(wèn)XIO總線(xiàn)的地址格式如圖3所示。
在XIO邏輯激活期間,PCI-XIO接口把PCI中斷信號PCI_INTB復用為XIO總線(xiàn)全局使能信號CS;把PCI的命令/比特使能信號PCI_C/BE0和PCI_C/BE1分別復用為XIO總線(xiàn)的讀使能信號RD和寫(xiě)使能信號WR;把PCI/C_BE2復用為數據鎖存信號,用于地址線(xiàn)與數據線(xiàn)復用的環(huán)境;PCI的時(shí)鐘信號PCI_CLK可在XIO總線(xiàn)操作期間為PCI總線(xiàn)接口單元(BIU)提供由TM1300內部高速時(shí)鐘分頻而來(lái)的可編程時(shí)鐘;其它PCI控制信號則由XIO總線(xiàn)控制器負責與PCI BIU進(jìn)行交互。
1.2 基于PCI-XIO的接口實(shí)現方案
通過(guò)上述介紹不難看出,PCI-XIO接口的8位數據線(xiàn)無(wú)疑是TM1300連接8位外設ST16C550和USBN9604的理想橋梁。
串行接口的實(shí)際技術(shù)已經(jīng)非常成熟,本文選用比較常見(jiàn)的ST16C550芯片。ST16C550是可編程的通用異步接收/發(fā)送器,工作在3.3V或5V,內部收發(fā)均有16個(gè)字節FIFO,能實(shí)現數據的串行與8位并行之間的轉換,支持異步通信協(xié)議。片內有時(shí)鐘產(chǎn)生電路,最高工作頻率24MHz,波特率可以從50bps~1.5Mbps.ST16C550可以為應用于遠程通信系統中的調制解調器提供控制信號,并接收和記錄調制解調器的狀態(tài)信息。
本文所選用的USB接口芯片USBN9604是National Semiconductor公司設計生產(chǎn)的一款新型的USB通信控制芯片,支持全速傳輸,可滿(mǎn)足USB1.0和USB1.1協(xié)議。它具有8位并行接口,可支持DMA、MICROWIRE。其主要特別如下:工作頻率為48MHz,芯片內部有倍頻電路;可編程產(chǎn)生不同的接口(SIE),可實(shí)現USB物理層和信號協(xié)議層的轉換;帶有7個(gè)端點(diǎn)的USB功能控制器,每個(gè)端點(diǎn)對應一個(gè)FIFO;內部有64個(gè)映射到內存的寄存器。
圖5
在TM1300通過(guò)XIO口對USB芯片進(jìn)行讀寫(xiě)的過(guò)程中,要特別注意時(shí)序問(wèn)題。雖然TM1300的XIO接口和USB芯片能夠實(shí)現硬件上的無(wú)縫連接,但兩者在讀寫(xiě)數據的時(shí)序上并不匹配。TM1300在發(fā)起XIO總線(xiàn)讀寫(xiě)操作時(shí),在片選信號有效期間,地址和數據是同時(shí)發(fā)向USB芯片時(shí);而USB芯片需要先接收一個(gè)地址,再對相應地址讀寫(xiě)數據,地址與數據是分時(shí)的。對于TM1300的讀寫(xiě)操作,USB芯片無(wú)法將地址和數據區分開(kāi)來(lái),即兩個(gè)芯片的讀寫(xiě)時(shí)序不匹配。本文利用TM1300的PCI_AD0引腳來(lái)控制USBN9604的A0,當PCI_AD0為1時(shí),表示寫(xiě)入USBN9604的是地址;當PCI_AD0為0時(shí),表示真正的數據通信。具體的編程語(yǔ)句如下:
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);}
對UART的讀寫(xiě),則不用考慮時(shí)序問(wèn)題,使用如下語(yǔ)句即可。
xioWrite(UART基地址+UART寄存器地址,data);
TM1300除了內部模塊中斷之外,還提供了5個(gè)外部中斷輸入引腳:PCI-INTA/B/C/D和TR1_USERIRQ,前四個(gè)中斷引腳推薦為電平觸發(fā)模式,在不用作中斷輸入時(shí),可以配置為通用I/O引腳,TRI_USERIRQ適合于電平觸發(fā)或者邊沿觸發(fā)模式。
在本文的硬件設計中,PCI-INTB在PCI-XIO總線(xiàn)激活時(shí),作為XIO總線(xiàn)的全局使能信號;UART芯片利用TRI_USERIRQ引腳向TM1300發(fā)中斷請求;PCI-INTD用于UART通信接口板上USB芯片的中斷請求;PCI-INTC保留未用,可用作以后的擴展。
由于ST16C550的中斷輸出引腳和TM1300的TRI-USERIRQ中斷輸入引腳都工作在正邏輯模式,兩者可以直接連接。對于ST16C550這樣可以同時(shí)發(fā)生多個(gè)中斷條件的外部設備,INT-USERIRQ應該工作在電平觸發(fā)模式。
1.4 PCI-XIO總線(xiàn)復用
本文設計的硬件系統中,通過(guò)PCI-XIO總線(xiàn)連接到TM1300的外部設備有三個(gè):Flash、ST16C550和USB9604。為了這三個(gè)設備能夠同時(shí)正常工作,必須加入地址譯碼芯片以復用PCI-XIO總線(xiàn)。
由于Flash占用4MB的地址空間,可以考慮將16MB的XIO空間劃分為4個(gè)4MB的地址塊,利用XIO地址線(xiàn)的高2位作地址譯碼。
本文選擇的地址譯碼芯片是常見(jiàn)的三-八譯碼器,原理圖如圖7所示。這里將XIO總線(xiàn)的全局使能信號PCI-INTB作為74138的使能信號。XIO邏輯激活期間,XIO地址線(xiàn)AD[23、22]的值決定了三個(gè)外部設備中的一個(gè)片選信號有效。由圖7可見(jiàn),Flash的基地址為0x000000,USB9604的基地址為0x800000,ST16C550的基地址為0xC00000。
2 總結
本文通過(guò)PCI-XIO接口為T(mén)M1300硬件平臺實(shí)現串行接口和USB接口,在硬件上實(shí)現了帶有串行通信接口和USB接口的TM1300編碼板。
接下來(lái)的工作是為T(mén)M1300實(shí)現一個(gè)WLAN通信接口,使得以TM1300為硬件平臺的編碼器可以用于高速無(wú)線(xiàn)網(wǎng)絡(luò )平臺。
評論