音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

嵌入式系統(tǒng)以太網(wǎng)接口的實(shí)現(xiàn)

出處:電子技術(shù)應(yīng)用 發(fā)布于:2011-09-03 12:08:18

  隨著微電子技術(shù)和計(jì)算機(jī)技術(shù)的發(fā)展,嵌入式技術(shù)得到廣闊的發(fā)展,已成為現(xiàn)代工業(yè)控制、通信類和消費(fèi)類產(chǎn)品發(fā)展的方向。以太網(wǎng)在實(shí)時(shí)操作、可靠傳輸、標(biāo)準(zhǔn)統(tǒng)一等方面的卓越性能及其便于安裝、維護(hù)簡(jiǎn)單、不受通信距離限制等優(yōu)點(diǎn),已經(jīng)被國(guó)內(nèi)外很多監(jiān)控、控制領(lǐng)域的研究人員廣泛關(guān)注,并在實(shí)際應(yīng)用中展露出顯著的優(yōu)勢(shì)。

  以太網(wǎng)(Ethernet)是當(dāng)今局域網(wǎng)采用的通用的通信協(xié)議標(biāo)準(zhǔn)。在以太網(wǎng)中,所有計(jì)算機(jī)被連接在一條電纜上,采用帶沖突檢測(cè)的載波偵聽多路訪問(wèn)(CSMA/CD)方法,采用競(jìng)爭(zhēng)機(jī)制和總線拓?fù)浣Y(jié)構(gòu)?;旧?,以太網(wǎng)由共享傳輸媒體,如雙絞線電纜或同軸電纜、多端口集線器、網(wǎng)橋或交換機(jī)構(gòu)成。按照OSI(OpenSystemInterconnectionReferenceModel,開放式系統(tǒng)互聯(lián)參考模型)7層參考模型,以太網(wǎng)定義的是物理層(PHY)和數(shù)據(jù)鏈路層(對(duì)應(yīng)以太網(wǎng)的MAC層)的標(biāo)準(zhǔn)。

  這里介紹一種新款網(wǎng)絡(luò)接口芯片DM9000A,它可以很方便的實(shí)現(xiàn)與嵌入式CPU的接口,實(shí)現(xiàn)擴(kuò)展以太網(wǎng)口的功能。

  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)行接口。DM9000AE實(shí)現(xiàn)以太網(wǎng)媒體介質(zhì)訪問(wèn)層(MAC)和物理層( PHY)的功能,包括MAC數(shù)據(jù)幀的組裝/拆分與收發(fā)、地址識(shí)別、CRC編碼/校驗(yàn)、MLT-3編碼器、接收噪聲抑制、輸出脈沖成形、超時(shí)重傳、鏈路完整性測(cè)試、信號(hào)極性檢測(cè)與糾正等。其基本特征是:集成10/100M物理層接口;內(nèi)部帶有16K字節(jié)SRAM用作接收發(fā)送的FIFO緩存;支持8/16bit兩種主機(jī)工作模式:通過(guò)HP的AUTO-Mdix(支持直接互連自動(dòng)翻轉(zhuǎn))功能;支持TCP/IP加速,減輕CPU負(fù)擔(dān),提高整機(jī)效能;10nsI/O讀寫時(shí)間。

  主要特點(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、寫信號(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、地址使能線AEN和8根中斷請(qǐng)求線中的一根IRQ12相連。

  DM9008的復(fù)位線RST與8051單片機(jī)的復(fù)位線同為高是電平有效,故在系統(tǒng)上電時(shí)同時(shí)復(fù)位。時(shí)鐘電路只需外接1個(gè)20MHz的晶振及2個(gè)電容即可。

  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ù)寫入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ā)的條件。

  DM9008可尋址的空間有32個(gè),分別為00H~1FH。其中00H~0FH是寄存器區(qū),00H~1FH。其中00H~0FH是寄存器區(qū),00H作為命令寄存器,通過(guò)設(shè)置可選擇3個(gè)頁(yè)面,10H~17H為數(shù)據(jù)端口,18H~1FH為復(fù)位端口。

  3.1 DM9008的初始化

  DM9008的具體初始化過(guò)程如下(CPU對(duì)DM9008的尋址需要加上基地址,為了描述方便,省略掉基地址直接用DM9008的內(nèi)部地址描述寄存器地址):

  (1)讀入1FH端口數(shù)據(jù),再寫回該地址以啟動(dòng)DM9008工作。

  (2)向命令寄存器CR(00H)寫入21H,選擇寄存器頁(yè)面0,并進(jìn)行軟件復(fù)位。

  (3)設(shè)置數(shù)據(jù)結(jié)構(gòu)寄存器DCR(0EH)為48H。

  (4)設(shè)置方式狀態(tài)寄存器TCR(0DH)為02H。

  (5)讀出網(wǎng)絡(luò)的物理地址:

  a.設(shè)置遠(yuǎn)程DMA計(jì)數(shù)器RBCR1(0BH)、RBCR0(0AH)的值為000CH;

  b.設(shè)置遠(yuǎn)程DMA地址RSAR1(09H)、RSAR0(08H)的值為0000H;

  c.設(shè)置命令寄存器CR(00H)為遠(yuǎn)程DMA讀,即0AH;

  d.重復(fù)從數(shù)據(jù)端口(10H)讀6個(gè)字節(jié),這6個(gè)字節(jié)即網(wǎng)絡(luò)物理地址;

  e.停止遠(yuǎn)程DMA,設(shè)置CR為21H,RBCR1、RBCR0為0000H。

 ?。?)設(shè)置接收狀態(tài)寄存器RCR(0CH)為04H。

 ?。?)劃分緩沖區(qū)接收緩沖區(qū)和發(fā)送緩沖區(qū),并建立接收緩沖環(huán)。將DM9008內(nèi)部RAM地址為4000H~4BFFH設(shè)置為發(fā)送緩沖區(qū),4C00H~7FFFH設(shè)置為接收緩沖區(qū),即設(shè)置PSTART(01H)為4CH,PSTOP(02H)為80H,BNRY(03H)為4CH。

 ?。?)設(shè)置CR為61H,選擇頁(yè)面1。

 ?。?)設(shè)置網(wǎng)卡地址寄存器,把PAR0(01H)~PAR5(06H)設(shè)置為前面讀出的物理地址。

 ?。?0)設(shè)置當(dāng)前頁(yè)面寄存器CURR(07H)為PSTART+1,即4DH。

 ?。?1)清除多址寄存器,即MAR0(08H)~MAR7(0FH)為00H。

 ?。?2)設(shè)置CR為21H,選擇寄存器頁(yè)面0。

 ?。?3)清除中斷狀態(tài)寄存器ISR(07H)為0FFH。

 ?。?4)設(shè)置中斷屏蔽寄存器IMR(0FH)為3BH,即接收中斷允許、接收錯(cuò)誤中斷允許、發(fā)送錯(cuò)誤中斷允許、溢出中斷允許、計(jì)數(shù)器溢出中斷允許。

  (15)設(shè)置發(fā)送設(shè)置寄存器TCR(0DH)為00H。

 ?。?6)設(shè)置CR為22H,芯片進(jìn)入工作狀態(tài)。

  3.2 接收數(shù)據(jù)

  DM9008收到一個(gè)完整的以太網(wǎng)數(shù)據(jù)包后,向CPU發(fā)出中斷請(qǐng)求,CPU響應(yīng)DM9008的中斷申請(qǐng)后,進(jìn)入中斷服務(wù)程序并開始接收數(shù)據(jù),具體過(guò)程如下:

 ?。?)讀出中斷狀態(tài)寄存器ISR,并寫回該寄存器。

  (2)判斷是否數(shù)據(jù)接收中斷,如果不是,不執(zhí)行以下步驟。

  (3)設(shè)置CR為22H,選擇頁(yè)面0。

 ?。?)設(shè)置遠(yuǎn)程DMA地址寄存器RSAR1、RSAR0為接收地址指針,該指針高位字節(jié)初始值位PSTART+1,低位字節(jié)為0。

 ?。?)設(shè)置遠(yuǎn)程DMA計(jì)數(shù)器RBCR1、RBCR0為0004H;

  (6)設(shè)置CR為遠(yuǎn)程讀0AH,讀數(shù)據(jù)端口,讀出4個(gè)字節(jié),這4個(gè)字節(jié)第1字節(jié)表示接收狀態(tài),第2個(gè)字節(jié)為下一包開始地址指針,第3~4個(gè)字節(jié)為本數(shù)據(jù)包的長(zhǎng)度(高位字節(jié)在前)。

 ?。?)設(shè)置CR為22H,遠(yuǎn)程DMA完成。

  (8)根據(jù)接收狀態(tài)判斷數(shù)據(jù)包是否接收正確,如果接收正確,啟動(dòng)遠(yuǎn)程DMA,收取該數(shù)據(jù)包并進(jìn)行處理。

  (9)結(jié)束遠(yuǎn)程DMA,設(shè)置下接收數(shù)據(jù)指針和接收邊界指針。

  3.3 發(fā)送數(shù)據(jù)

  數(shù)據(jù)的發(fā)送過(guò)程應(yīng)包含三個(gè)步驟:數(shù)據(jù)包的封裝;通過(guò)遠(yuǎn)程DMA將數(shù)據(jù)包送入DMA9008的數(shù)據(jù)發(fā)送緩沖區(qū);通過(guò)DM9008的本地DMA將數(shù)據(jù)送入FIFO進(jìn)行發(fā)送。具體過(guò)程如下:

 ?。?)數(shù)據(jù)包在發(fā)送前應(yīng)該按規(guī)定的格式封裝好,格式如下:

  目的地址(6字節(jié)) 源地址(6字節(jié)) 協(xié)議(2字節(jié)) 數(shù)據(jù)(不小于46字節(jié))

 ?。?)把上面的數(shù)據(jù)包通過(guò)遠(yuǎn)程DMA寫送入DM9008的數(shù)據(jù)發(fā)送緩沖區(qū)。

  a.設(shè)置CR為22H,選擇寄存器頁(yè)面0;

  b.設(shè)置中斷狀態(tài)寄存器ISR為40H,清除發(fā)送完成標(biāo)志;

  c.設(shè)置遠(yuǎn)程DMA地址寄存器RSAR1、RSAR0為4000H,即發(fā)送緩沖區(qū)開始地址;

  d.設(shè)置遠(yuǎn)程DMA字節(jié)計(jì)數(shù)寄存器RBCR1、RBCR0為發(fā)送數(shù)據(jù)包的長(zhǎng)度;

  e.設(shè)置CR為12H,設(shè)置命令寄存器為遠(yuǎn)程DMA寫;

  f.往數(shù)據(jù)端口寫入發(fā)送數(shù)據(jù);

  g.查詢中斷狀態(tài)寄存器ISR,等待遠(yuǎn)程DMA完成;

  h.設(shè)置CR為22H,設(shè)置RBCR1、RBCR0為0,遠(yuǎn)程DMA停止;

  i.設(shè)置ISR為40H,清除發(fā)送完成標(biāo)志。

  (3)啟動(dòng)本地DMA,把數(shù)據(jù)發(fā)送出去。

  a.設(shè)置發(fā)送字節(jié)計(jì)數(shù)器TBCR1(06H)、TBCR0(05H)為發(fā)送數(shù)據(jù)包的長(zhǎng)度;

  b.設(shè)置發(fā)送頁(yè)面起始地址TPSR(04H)為40H,即發(fā)送緩沖區(qū)開始地址高位字節(jié);

  c.設(shè)置命令寄存器CR為26H,啟動(dòng)發(fā)送。

  3.4 高層通信協(xié)議

  上述發(fā)送、接收過(guò)程所完成的協(xié)議是MAC層和物理層的協(xié)議。要真正實(shí)現(xiàn)嵌入式系統(tǒng)與以太網(wǎng)上其它設(shè)備之間的通信,還需要在嵌入式系統(tǒng)中實(shí)現(xiàn)更高層的通信協(xié)議,這樣PC機(jī)的程序員就可以使用TCP/IP協(xié)議透明地訪問(wèn)嵌入式系統(tǒng)的數(shù)據(jù)。

  上述以8051單片機(jī)系統(tǒng)為例的嵌入式系統(tǒng)的軟件設(shè)計(jì)中除了實(shí)現(xiàn)收發(fā)數(shù)據(jù)的功能外,還需要實(shí)現(xiàn)TCP/IP協(xié)議及更高層的應(yīng)用層協(xié)議才能真正實(shí)現(xiàn)整個(gè)系統(tǒng)的通信功能。TCP/IP協(xié)議的實(shí)現(xiàn)通常采用C語(yǔ)言,且有現(xiàn)成的源程序,所以在用8051系列單片機(jī)編程時(shí),可以采有C51語(yǔ)言并參考TCP/IP標(biāo)準(zhǔn)的源程序來(lái)具體實(shí)現(xiàn)。


  

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫(kù)提出的寶貴意見,您的參與是維庫(kù)提升服務(wù)的動(dòng)力!意見一經(jīng)采納,將有感恩紅包奉上哦!