TMS320C54x DSP的以太網(wǎng)接口設(shè)計
以太網(wǎng)是當今最受歡迎的局域網(wǎng)之一,而數(shù)字信號處理器(DSP)正加速進入嵌入式應(yīng)用領(lǐng)域,如何將DSP與以太網(wǎng)連接起來,實現(xiàn)DSP與DSP或DSP與計算機間的網(wǎng)絡(luò)互連顯得非常重要。目前還未見到自帶以太網(wǎng)接口的DSP,本文介紹以太網(wǎng)控制器的主要特點、性能及操作方法,并給出 DSP[1](以下簡稱)通過與以太網(wǎng)互連的接口方法。
1 介紹
RTL8019AS[2]是臺灣readlted公司生產(chǎn)的以太網(wǎng)控制器,支持IEEE802.3;支持8位或16位數(shù)據(jù)總線;內(nèi)置16KB的,用于收發(fā)緩沖;全雙工,收發(fā)同時達到10Mbps;支持10Base5、10Base2、10BaseT,并能自動檢測所連接的介質(zhì),在ISA總線網(wǎng)卡中占有相當比例。RTL8019AS與主機有3種接口模式,即跳線模式、PnP模式和RT模式。本文主要介紹便于DSP應(yīng)用的跳線模式,因此下面主要介紹與跳線模式有關(guān)的引腳、寄存器及操作。
1.1 引腳介紹
RTL8019AS可提供100腳的TQFP封裝,其引腳可分為電源及時鐘引腳、網(wǎng)絡(luò)介質(zhì)接口引腳、自舉ROM及初始化接口引腳、主處理器接口引腳、輸出指示及工作方式配置引腳。由于本文主要討論非PC環(huán)境下的以太網(wǎng)接口,該接口不必具有即插即用功能(PnP)和遠程自舉加載功能,因此不介紹RTL8019AS與自舉ROM、初始化接口的引腳。其余各部分引腳的功能如表1所示。
表1 RTL8019AS部分引腳
1.2 寄存器介紹
RTL8019AS片內(nèi)寄存器分為寄存器組和PnP寄存器組(本文不介紹PnP寄存器組)。寄存器組地址如表2所示。寄存器分為4頁,都映射到16個I/O端口地址上。主機通過命令寄存器(CR)中的PS0、PS1位來尋址不同的頁,通過16個I/O口地址來尋址頁內(nèi)寄存器。
表2 RTL8019AS 寄存器地址表
1.3 RTL8019AS與主機的接口模式
RTL8019AS與主機的接口模式有三種,即跳線模式、PnP模式和RT模式,見表3。
表3 RTL8019AS的接口模式
(1)跳線模式 這種模式與早期的網(wǎng)絡(luò)控制器兼容。RTL8019AS的端口基地址、中斷口等都由或跳線器決定。跳線模式簡單,但配置資源麻煩。
(2)PnP模式 與微軟的PnP協(xié)議兼容。在這種模式下,RTL8019AS的端口基地址、中斷口等都由設(shè)定,但需要進行PnP芯片的識別,不便與DSP接口。
(3)RT模式 為了避免PnP模式下的PnP芯片識別和配置過程,readlted公司提供RT模式。在RT模式下,RTL8019AS的端口基地址、中斷口等也是由EEPROM決定的。
2 RTL8019AS與傳輸介質(zhì)的連接
RTL8019AS可與雙絞線或同軸接口,連接方法如圖1所示。介質(zhì)選擇由引腳PL1、PL0決定,另外,RTL8019AS還自動測試介質(zhì)連接是否成功。
圖1中,NS8392是同軸驅(qū)動/接收器,其電源應(yīng)與RTL8019AS的電源隔離,一般使用一個電源轉(zhuǎn)換器得到該隔離電源。內(nèi)有3個耦合,用來傳輸信號,同時抑制來自介質(zhì)的共模噪聲/干擾。是雙絞線驅(qū)動/接收器,內(nèi)部也有2個傳輸。
3 DSP與RTL8019AS的接口
為了簡化DSP網(wǎng)絡(luò)接口的軟、硬件設(shè)計,不使用遠程自舉加載功能,并且選用跳線接口模式。用的擴展I/O口代替跳線器對RTL8019AS進行初始化配置,這樣既省去了,又避免了跳線器更改變資源配置的麻煩。
RTL8019AS的總線接口是與ISA總線兼容的,雖然不能與的外部總線直接接口,但是只要進行一些簡單的邏輯變換就可以了。另外,C5402的總線電平是3.3V的,而RTL8019AS的是5V的,二者接口時要使用電平轉(zhuǎn)換器。C5402與RTL8019AS的接口如圖2所示。
(1)地址總線 RTL8019AS的20根地址線主要是為了讀/寫自舉ROM,對于I/O端口尋址來說只要16根地址線就足夠了,因此將DSP的地址總線A0~A15與RTL8019AS的地址總線SA0~相連,而~SA19全部接地。由于DSP系統(tǒng)無DMA控制器,因此將RTL8019AS的AEN引腳也接地。
(2)數(shù)據(jù)總線RTL8019AS的IOCS16引腳接高電平,選擇16位數(shù)據(jù)總線方式,并且使用了電平轉(zhuǎn)換器。
(3)中斷連接 雖然RTL8019AS有7個中斷輸出,但只要從中選擇一個送往C5402的外部中斷輸入口就可以了。中斷接口也使用了電平轉(zhuǎn)換器。
(4)讀/寫控制C5402的I/O口控制信號IS、IOSTRB、R/W等信號經(jīng)過74HACT139譯碼后與RTL8019AS的IOR、IOW連接。由于C5402的I/O口讀/寫速度很快,因此將RTL8019AS的IOCHRDY信號與C5402的外設(shè)準備好信號READY相連。另外,將SMEMR和SMEMW引腳接高電平,屏蔽了遠程自舉加載功能。
(5)初始化配置 用C5402的一個擴展輸出口代替跳線器來指定RTL8019AS的I/O口基地址、中斷輸出口、介質(zhì)類型,并用一個輸出信號作為RTL8019AS的復(fù)位信號。RTL8019AS復(fù)位結(jié)束時采樣這些配置引腳,并根據(jù)引腳狀態(tài)初始化其內(nèi)部的配置寄存器。
4 RTL8019AS的編程
可以用查詢方式或中斷方式對RTL8019AS進行操作[3]。RTL8019AS復(fù)位初始化后,程序員應(yīng)對表2中的部分寄存器進一步初始化,然后才能發(fā)送數(shù)據(jù)或接收數(shù)據(jù)。RTL8019AS內(nèi)置16KB的,可作為接收緩沖區(qū)和發(fā)送緩沖區(qū)。緩沖區(qū)分為64頁,頁范圍為0x40~0x80,每頁256個字節(jié)。由和PSTOP寄存器來設(shè)定接收緩沖器的頁范圍,由RSAR0、1和RBCR0、1寄存器來設(shè)定發(fā)送緩沖器的頁范圍。CURR指向接收到幀的起始頁,Boundary指向還未讀幀的起始頁。當CURR到達了接收緩沖頁的底部與PSTOR相等時,CURR又會指向處。
(1)查詢方式 在查詢方式下,通過CURR和Boundary兩個寄存器的值來判斷是否收到一幀數(shù)據(jù)。當Boundary與CURR不等時,說明接收緩沖區(qū)接收到了新的幀,主程序讀取數(shù)據(jù)后,以讀取幀的第二個字節(jié)(下一幀的頁地址)更新Boundary,主程序循環(huán)跟蹤CURR和Boundary達到接收數(shù)據(jù)的目的。主程序發(fā)送一幀數(shù)據(jù)時,先要查TSR寄存器判斷上一幀是否發(fā)送完畢。
(2)中斷方式 在實際的DSP應(yīng)用系統(tǒng)中常采用中斷方式。當一幀數(shù)據(jù)發(fā)送結(jié)束、接收到一幀數(shù)據(jù)或出錯等事件發(fā)生時,RTL8019AS向DSP申請中斷,DSP響應(yīng)中斷后根據(jù)中斷狀態(tài)寄存器的內(nèi)容進行相應(yīng)的處理。
RTL8019AS性價比高,與DSP連接方便,二者的結(jié)合將大大拓寬DSP的應(yīng)用范圍。帶有以太網(wǎng)接口的DSP應(yīng)用系統(tǒng)可以通過雙絞線或同軸與PC機構(gòu)成一個高速局域網(wǎng),并且DSP可以通過PC機接入互連網(wǎng),進一步延伸DSP的應(yīng)用領(lǐng)域。