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