嵌入式系統(tǒng)以太網(wǎng)接口的設(shè)計(jì)
目前,以太網(wǎng)(Ethernet)協(xié)議已經(jīng)非常廣泛地應(yīng)用于各種計(jì)算機(jī)網(wǎng)絡(luò),如辦公局域網(wǎng)、工業(yè)控制網(wǎng)絡(luò)、因特網(wǎng)等場(chǎng)合,并且還在不斷地發(fā)展?;?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/以太網(wǎng)">以太網(wǎng)的新技術(shù)和聯(lián)網(wǎng)設(shè)備不斷出現(xiàn),以太網(wǎng)已經(jīng)成為事實(shí)上最常用的網(wǎng)絡(luò)標(biāo)準(zhǔn)之一。
本文引用地址:http://www.ex-cimer.com/article/152560.htm但是,基于以太網(wǎng)的嵌入式系統(tǒng)目前并不是很多。其原因除了嵌入式系統(tǒng)本身運(yùn)行速度較慢、資源較少且不足以實(shí)現(xiàn)以太網(wǎng)的各種協(xié)議外,更重要是設(shè)計(jì)以太網(wǎng)的接口及協(xié)議相對(duì)比較復(fù)雜,使人望而卻步。
本文將介紹以8051系列單片機(jī)系統(tǒng)為例的嵌入式系統(tǒng)與10Mbps以太網(wǎng)控制器芯片DM9008的接口電路實(shí)現(xiàn)及編程方法。
1 以太網(wǎng)控制器DM9008簡(jiǎn)介
DM9008是臺(tái)灣DAVICOM公司生產(chǎn)的基于ISA總線的10M超級(jí)以太網(wǎng)控制器芯片。它集成了介質(zhì)訪問(wèn)控制子層(MAC)和物理層的功能,可以方便地設(shè)計(jì)基于ISA總線的系統(tǒng),也可以比較簡(jiǎn)單地與通用單片機(jī)進(jìn)行接口。
主要特點(diǎn)如下:
?實(shí)現(xiàn)IEEE 802.3協(xié)議、10BASE-T、10BASE2和10BASE5的單芯片解決方案;
?集成ISA總線接口、8K×16 SRAM、介質(zhì)訪問(wèn)控制(MAC)、編解碼器(ENDEC)和10BASE-T收發(fā)器;
?與NOVELL NE2000軟件兼容;
?可選8根中斷申請(qǐng)線;
?自動(dòng)極性檢測(cè)和糾正;
?可選8、16位模式;
?外部可編程EEPROM;
?單5V電源低功耗CMOS設(shè)計(jì);
?100腳PQFP封裝。
由于該芯片功能較強(qiáng),配置有較多的引腳,但在與一般單片機(jī)接口時(shí)只需要用到其中的一部分即可完成常用的功能。
2 與8051單片機(jī)系統(tǒng)的接口電路
下面介紹國(guó)內(nèi)最常用的8051系列單片機(jī)與DM9008的接口電路,實(shí)現(xiàn)的網(wǎng)絡(luò)接口采用無(wú)屏蔽雙絞線(UTP)RJ-45接口。
圖1給出了8051單片機(jī)系統(tǒng)與DM9008網(wǎng)絡(luò)控制器的接口電路框圖。8051單片機(jī)系統(tǒng)所提供的接口信號(hào)線為:P0口的8位數(shù)據(jù)總線D0~D7、5根經(jīng)過(guò)鎖存的地址線A0~A4、讀信號(hào)線RD、寫(xiě)信號(hào)線WR、經(jīng)過(guò)譯碼產(chǎn)生的片選線CS1和經(jīng)過(guò)反相后高電平有效地中斷請(qǐng)求線INT。這些信號(hào)線分別與DM9008的數(shù)據(jù)線低8位SD0~SD7、地址線低5位SA0~SA4、I/O讀信號(hào)線IOR、I/O寫(xiě)信號(hào)線IOW、地址使能線AEN和8根中斷請(qǐng)求線中的一根IRQ12相連。
DM9008的復(fù)位線RST與8051單片機(jī)的復(fù)位線同為高電平有效,故在系統(tǒng)上電時(shí)同時(shí)復(fù)位。時(shí)鐘電路只需外接1個(gè)20MHz的晶振及2個(gè)電容即可。
DM9008有16根數(shù)據(jù)線,與8051單片機(jī)接口,只需用到低8位數(shù)據(jù)線,其它高8位數(shù)據(jù)線不用,IO16接高電平或浮空,MD6/SLOT接地。地址線有SA0~SA19共20根,只用到低5位SA0~SA4與單片機(jī)相連,SA5~SA7接地、SA8~SA9接高電平,其它高地址位全部接地。這樣對(duì)于DM9008內(nèi)部來(lái)說(shuō),I/O的基地址為300H。另外BALE、SYSCLK接地,SMEMR、MEMW、MEMR浮空。DM9008有8根中斷請(qǐng)求線,可以選1根與8051系統(tǒng)的中斷線相連,其它7根線均浮空,所選線在EEPROM 93C46中指定。
EEPROM 93C46是一個(gè)采用4線SPI串行接口的電可擦除存儲(chǔ)器,容量為64×16位(即128個(gè)字節(jié)),主要保存DM9008的配置信息,如網(wǎng)絡(luò)硬件地址、I/O基地址、中斷線選擇等配置寄存器內(nèi)容,在DM9008復(fù)位后讀取93C46的內(nèi)容并設(shè)置內(nèi)部配置寄存器的值。如果93C46中內(nèi)容不正確,DM9008就無(wú)法正常工作。所以通常先通過(guò)編程器把配置數(shù)據(jù)寫(xiě)入93C46,再把它焊在電路板上。DM9008通過(guò)EECS、EEDI、EEDO、EECK與93C46相連。
由于本設(shè)計(jì)只使用10BASE-T,即采用無(wú)屏蔽雙絞線的RJ45接口,而DM9008已內(nèi)置了10BASE-T的收發(fā)器,故接口部分電路比較簡(jiǎn)單,只需要外接1個(gè)隔離濾波器LAN7236即可。TPTX+、TPTX-為發(fā)送線,TPRX+、TPRX-為接收線,經(jīng)隔離后的4根線與RJ45接口相連。
對(duì)于其它型號(hào)的單片機(jī),如16位單片機(jī)80C196KC等,其接口電路只需稍作修改即可改為16位數(shù)據(jù)總線方式。
3 軟件設(shè)計(jì)
DM9008的編程包括初始化、發(fā)送、接收三部分功能。在接收和發(fā)送數(shù)據(jù)以前要進(jìn)行必需的檢測(cè)和初始化。DM9008的初始化主要是設(shè)置所需的寄存器狀態(tài),建立網(wǎng)絡(luò)接口收發(fā)的條件。
網(wǎng)絡(luò)接口通過(guò)2個(gè)DMA操作來(lái)完成數(shù)據(jù)的接收和發(fā)送。本地DMA完成DM9008與其內(nèi)部FIFO隊(duì)列之間的數(shù)據(jù)傳送,遠(yuǎn)程DMA完成DM9008與CPU之間的數(shù)據(jù)傳送。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論