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