RTL8019型控制器與DSP的接口設(shè)計(jì)及編程技巧
關(guān)鍵詞:閃速存儲(chǔ)器;接口;DSP;TMS320F206;RTL8019
1 引言
數(shù)字信號(hào)處理器(DSP)具有先進(jìn)的并行處理結(jié)構(gòu),特別適合于信號(hào)處理,已經(jīng)越來越多地應(yīng)用于工業(yè)控制領(lǐng)域和各類儀器儀表的開發(fā)設(shè)計(jì)?;ヂ?lián)網(wǎng)絡(luò)硬件和軟件的迅猛發(fā)展使得網(wǎng)絡(luò)用戶呈指數(shù)增長,在使用計(jì)算機(jī)進(jìn)行網(wǎng)絡(luò)互聯(lián)的同時(shí),各種家電設(shè)備、儀器儀表以及工業(yè)生產(chǎn)中的數(shù)據(jù)采集與控制設(shè)備逐步走向網(wǎng)絡(luò)化,以便共享網(wǎng)絡(luò)中龐大的信息資源。在電子設(shè)備日趨網(wǎng)絡(luò)化的背景下,利用高速數(shù)字信號(hào)處理器控制RTL8019實(shí)現(xiàn)以太網(wǎng)通訊具有十分重要的意義。
TMS320F206是TI公司生產(chǎn)的16-bit定點(diǎn)DSP,它有l(wèi)條程序總線和3條數(shù)據(jù)總線,采用了改進(jìn)的哈佛結(jié)構(gòu),內(nèi)含高度并行的32-bit算術(shù)邏輯單元、16×16-bit并行硬件乘法器、片內(nèi)存儲(chǔ)器和片內(nèi)外設(shè),配備了高度專業(yè)化的指令集,功耗相當(dāng)?shù)?,特別適合于信號(hào)處理。RTL8019采用100引腳POFP封裝,性能優(yōu)良,價(jià)格低。它支持PnP自動(dòng)探測(cè).符合EthernetⅡ與IEEE802.3(10Base5、10Base2、10BoseT)標(biāo)準(zhǔn),內(nèi)嵌16 KB SRAM,有全雙工通信接口,可以通過交換機(jī)在雙絞線上同時(shí)發(fā)送和接收數(shù)據(jù),使帶寬從lO MHz增加到20 MHz,是進(jìn)行以太網(wǎng)通信的理想器件。本文即結(jié)合DSP處理器的特點(diǎn),詳細(xì)介紹Realtek公司生產(chǎn)的RTL8019型以太網(wǎng)控制器的硬件電路設(shè)計(jì)方法及編程技巧。
2 RTL8019的主要引腳功能
AEN(34):地址使能引腳,決定電路被分得的地址空間:
INT0-INT7(97~100,1~4):中斷請(qǐng)求引腳;
IOCHRDY(35):讀/寫命令準(zhǔn)備引腳;
IOCSl6B(96):8位/16位數(shù)據(jù)選擇引腳,高電平選擇16位數(shù)據(jù)總線,低電平選擇8位數(shù)據(jù)總線;
IORB,IOWB(29,30):I/O端口讀命令、寫命令;
SMEMRB,SMEMWB(3l,32):寄存器讀命令、寫命令;
RSTDRV(33):復(fù)位信號(hào);
SD0-SDl5(36~43,87,88,90~96):數(shù)據(jù)線;
SA0-SDl9(5,7~13,15,16,18~27):地址線;
X1(50):20 MHz晶體振蕩器或外部晶體振蕩器輸入引腳;
LEDBNC,LEDO,LEDl,LED2(60~63):網(wǎng)卡狀態(tài)指示;
TPOUT+、TPOUT-、TPIN-、TPIN+(45,46,58,59);數(shù)據(jù)發(fā)送和接收引腳。
3 寄存器配置
RTL8019有4頁寄存器組,每頁寄存器組有16個(gè)寄存器。進(jìn)行網(wǎng)絡(luò)通信時(shí)需要對(duì)這些寄存器進(jìn)行設(shè)置。
CR是控制命令寄存器,地址是00H,這個(gè)寄存器用來選擇寄存器頁,控制遠(yuǎn)程DMA操作。其中STP(O bit)是停止命令位,PSO、PSl(6 bit、7 bit)是頁寄存器選擇位,在實(shí)際配置寄存器時(shí),首先要指定要配置的寄存器屬于哪一頁(就是進(jìn)行PSI和PSO的設(shè)置),然后對(duì)該頁中的寄存器寫入配置信息。
PSTART是接收緩沖區(qū)起始頁位置,地址是01H。
PSTOP是接收緩沖區(qū)中止頁位置,地址是02H。
BNRY是邊界寄存器,地址是03H。
TSR是發(fā)送狀態(tài)寄存器,TPSR是發(fā)送緩沖區(qū)起始頁位置,地址是04H。
NCR是發(fā)送期間碰撞次數(shù),地址是05H。
FIFO是回環(huán)檢測(cè)后,查看FIFO內(nèi)容,地址是06H。
ISR是中斷狀態(tài)寄存器,寫“1”清除內(nèi)部所有寄存器位,地址是07H。
CRDAO,CRDAl是當(dāng)前的遠(yuǎn)程DMA地址寄存器,地址是08H、09H。
RBCR0,RBCRl是遠(yuǎn)程DMA字節(jié)計(jì)數(shù)寄存器,地址是0AH、OBH。
RSR接收狀態(tài)寄存器,RCR是接收配置寄存器,地址是0CH。
TCR發(fā)送配置寄存器,TSR是發(fā)送狀態(tài)寄存器,CNTR0是幀同步錯(cuò)總計(jì)數(shù)器,地址是0DH。
DCR是數(shù)據(jù)配置寄存器,CNTRl是CRC錯(cuò)總計(jì)數(shù)器,地址是0EH。
CNTR2是丟包總計(jì)數(shù)器,地址是0FH。
遠(yuǎn)程DMA端口寄存器,地址是10H。
復(fù)位端口寄存器,地址是1AH。
要進(jìn)行網(wǎng)絡(luò)通信必須對(duì)網(wǎng)絡(luò)控制器的各個(gè)寄存器初始化,初始化比較煩瑣,但非常重要,它決定網(wǎng)絡(luò)通信的一些重要參數(shù)。初始化時(shí)需要對(duì)上述的各個(gè)寄存器進(jìn)行詳細(xì)配置。
4 硬件接口電路設(shè)計(jì)
在具體應(yīng)用中,由于DSP本身的限制,進(jìn)行了一系列的簡化設(shè)計(jì)。采用跳線工作方式即網(wǎng)卡的I/0和中斷由跳線決定,JP引腳接高電平時(shí)選擇16位數(shù)據(jù)總線。僅通過4條地址線A0-A3選擇RTL8019的寄存器地址和存儲(chǔ)器地址,控制并實(shí)現(xiàn)數(shù)據(jù)的讀取。LEDBNC、LEDO、LEDl、LED2網(wǎng)卡狀態(tài)指示引腳連接發(fā)光二極管,便于直觀判斷網(wǎng)卡狀態(tài)。通過GAL22V10型邏輯編程器對(duì)RTL8019的片選信號(hào)進(jìn)行控制。具體的硬件接口電路圖如圖1所示。
5 軟件編程
TMS320F206的用戶可以用匯編語言或C語言進(jìn)行源程序的編寫,用C語言開發(fā)出的系統(tǒng)易于維護(hù),可靠性高,可移植性好。下面介紹用C語言編寫的RTL8019的開發(fā)程序。由于篇幅有限,本文僅給出RTL8019的初始化程序和接收包子程序。
void ethernetinit()
6 結(jié)束語
本文詳細(xì)論述了RTL8019的引腳功能、寄存器配置、硬件配置和軟件編程方法,這些同樣可以作為單片機(jī)、微處理器以及PC等其他應(yīng)用系統(tǒng)對(duì)于網(wǎng)絡(luò)通信設(shè)計(jì)的直接參考,用戶也可以針對(duì)自己的特殊需要進(jìn)行一些特殊設(shè)置。這些方面的研究和逐步推進(jìn)將為測(cè)控領(lǐng)域注入新的生機(jī)和活力。