国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

嵌入式系統以太網接口的設計

發布時間:2009-4-9 17:24    發布者:李寬
關鍵詞: 接口 , 嵌入式 , 以太網
目前,以太網(Ethernet)協議已經非常廣泛地應用于各種計算機網絡,如辦公局域網、工業控制網絡、因特網等場合,并且還在不斷地發展。基于以太網的新技術和聯網設備不斷出現,以太網已經成為事實上最常用的網絡標準之一。 但是,基于以太網的嵌入式系統目前并不是很多。其原因除了嵌入式系統本身運行速度較慢、資源較少且不足以實現以太網的各種協議外,更重要是設計以太網的接口及協議相對比較復雜,使人望而卻步。
本文將介紹以8051系列單片機系統為例的嵌入式系統與10Mbps以太網控制器芯片DM9008的接口電路實現及編程方法。
1 以太網控制器DM9008簡介
DM9008是臺灣DAVICOM公司生產的基于ISA總線的10M超級以太網控制器芯片。它集成了介質訪問控制子層(MAC)和物理層的功能,可以方便地設計基于ISA總線的系統,也可以比較簡單地與通用單片機進行接口。
主要特點如下:
    ·實現IEEE 802.3協議、10BASE-T、10BASE2和10BASE5的單芯片解決方案;
    ·集成ISA總線接口、8K×16 SRAM、介質訪問控制(MAC)、編解碼器(ENDEC)和10BASE-T收發器;
    ·與NOVELL NE2000軟件兼容;
    ·可選8根中斷申請線;
    ·自動極性檢測和糾正;
    ·可選8、16位模式;
    ·外部可編程EEPROM;
    ·單5V電源低功耗CMOS設計;
    ·100腳PQFP封裝。
由于該芯片功能較強,配置有較多的引腳,但在與一般單片機接口時只需要用到其中的一部分即可完成常用的功能。
2 與8051單片機系統的接口電路
下面介紹國內最常用的8051系列單片機與DM9008的接口電路,實現的網絡接口采用無屏蔽雙絞線(UTP)RJ-45接口。
圖1給出了8051單片機系統與DM9008網絡控制器的接口電路框圖。8051單片機系統所提供的接口信號線為0口的8位數據總線D0~D7、5根經過鎖存的地址線A0~A4、讀信號線RD、寫信號線WR、經過譯碼產生的片選線CS1和經過反相后高電平有效地中斷請求線INT。這些信號線分別與DM9008的數據線低8位SD0~SD7、地址線低5位SA0~SA4、I/O讀信號線IOR、I/O寫信號線IOW、地址使能線AEN和8根中斷請求線中的一根IRQ12相連。



DM9008的復位線RST與8051單片機的復位線同為高電平有效,故在系統上電時同時復位。時鐘電路只需外接1個20MHz的晶振及2個電容即可。
DM9008有16根數據線,與8051單片機接口,只需用到低8位數據線,其它高8位數據線不用,IO16接高電平或浮空,MD6/SLOT接地。地址線有SA0~SA19共20根,只用到低5位SA0~SA4與單片機相連,SA5~SA7接地、SA8~SA9接高電平,其它高地址位全部接地。這樣對于DM9008內部來說,I/O的基地址為300H。另外BALE、SYSCLK接地,SMEMR、MEMW、MEMR浮空。DM9008有8根中斷請求線,可以選1根與8051系統的中斷線相連,其它7根線均浮空,所選線在EEPROM 93C46中指定。
EEPROM93C46是一個采用4線SPI串行接口的電可擦除存儲器,容量為64×16位(即128個字節),主要保存DM9008的配置信息,如網絡硬件地址、I/O基地址、中斷線選擇等配置寄存器內容,在DM9008復位后讀取93C46的內容并設置內部配置寄存器的值。如果93C46中內容不正確,DM9008就無法正常工作。所以通常先通過編程器把配置數據寫入93C46,再把它焊在電路板上。DM9008通過EECS、EEDI、EEDO、EECK與93C46相連。
由于本設計只使用10BASE-T,即采用無屏蔽雙絞線的RJ45接口,而DM9008已內置了10BASE-T的收發器,故接口部分電路比較簡單,只需要外接1個隔離濾波器LAN7236即可。TPTX+、TPTX-為發送線,TPRX+、TPRX-為接收線,經隔離后的4根線與RJ45接口相連。
對于其它型號的單片機,如16位單片機80C196KC等,其接口電路只需稍作修改即可改為16位數據總線方式。
3 軟件設計
DM9008的編程包括初始化、發送、接收三部分功能。在接收和發送數據以前要進行必需的檢測和初始化。DM9008的初始化主要是設置所需的寄存器狀態,建立網絡接口收發的條件。
網絡接口通過2個DMA操作來完成數據的接收和發送。本地DMA完成DM9008與其內部FIFO隊列之間的數據傳送,遠程DMA完成DM9008與CPU之間的數據傳送。
DM9008可尋址的空間有32個,分別為00H~1FH。其中00H~0FH是寄存器區,00H作為命令寄存器,通過設置可選擇3個頁面,10H~17H為數據端口,18H~1FH為復位端口。
3.1 DM9008的初始化
DM9008的具體初始化過程如下(CPU對DM9008的尋址需要加上基地址,為了描述方便,省略掉基地址直接用DM9008的內部地址描述寄存器地址):
    (1)讀入1FH端口數據,再寫回該地址以啟動DM9008工作。
    (2)向命令寄存器CR(00H)寫入21H,選擇寄存器頁面0,并進行軟件復位。
    (3)設置數據結構寄存器DCR(0EH)為48H。
    (4)設置方式狀態寄存器TCR(0DH)為02H。
    (5)讀出網絡的物理地址:
       a. 設置遠程DMA計數器RBCR1(0BH)、RBCR0(0AH)的值為000CH;
       b.設置遠程DMA地址RSAR1(09H)、RSAR0(08H)的值為0000H;
       c. 設置命令寄存器CR(00H)為遠程DMA讀,即0AH;
       d. 重復從數據端口(10H)讀6個字節,這6個字節即網絡物理地址;
       e.停止遠程DMA,設置CR為21H,RBCR1、RBCR0為0000H。
    (6)設置接收狀態寄存器RCR(0CH)為04H。
   (7)劃分緩沖區為接收緩沖區和發送緩沖區,并建立接收緩沖環。將DM9008內部RAM地址為4000H~4BFFH設置為發送緩沖區,4C00H~7FFFH設置為接收緩沖區,即設置PSTART(01H)為4CH,PSTOP(02H)為80H,BNRY(03H)為4CH。
    (8)設置CR為61H,選擇頁面1。
    (9)設置網卡地址寄存器,把PAR0(01H)~PAR5(06H)設置為前面讀出的物理地址。
    (10)設置當前頁面寄存器CURR(07H)為PSTART+1,即4DH。
    (11)清除多址寄存器,即MAR0(08H)~MAR7(0FH)為00H。
    (12)設置CR為21H,選擇寄存器頁面0。
    (13)清除中斷狀態寄存器ISR(07H)為0FFH。
    (14)設置中斷屏蔽寄存器IMR(0FH)為3BH,即接收中斷允許、接收錯誤中斷允許、發送錯誤中斷允許、溢出中斷允許、計數器溢出中斷允許。
    (15)設置發送設置寄存器TCR(0DH)為00H。
    (16)設置CR為22H,芯片進入工作狀態。
至此,DM9008的初始化過程完成,DM9008處于接收狀態。只要網絡上有可以接收的數據包,DM9008自動將數據存入接收緩沖區并在收完后向CPU發中斷申請。
3.2 接收數據
DM9008收到一個完整的以太網數據包后,向CPU發出中斷請求,CPU響應DM9008的中斷申請后,進入中斷服務程序并開始接收數據,具體過程如下。
    (1)讀出中斷狀態寄存器ISR,并寫回該寄存器。
    (2)判斷是否數據接收中斷,如果不是,不執行以下步驟。
    (3)設置CR為22H,選擇頁面0。
    (4)設置遠程DMA地址寄存器RSAR1、RSAR0為接收地址指針,該指針高位字節初始值位PSTART+1,低位字節為0。
    (5)設置遠程DMA計數器RBCR1、RBCR0為0004H;
    (6)設置CR為遠程讀0AH,讀數據端口,讀出4個字節,這4個字節第1個字節表示接收狀態,第2個字節為下一包開始地址指針,第3~4個字節為本數據包的長度(高位字節在前)。
    (7)設置CR為22H,遠程DMA完成。
    (8)根據接收狀態判斷數據包是否接收正確,如果接收正確,啟動遠程DMA,收取該數據包并進行處理。
    (9)結束遠程DMA,設置下一次接收數據指針和接收邊界指針。
3.3 發送數據
數據的發送過程應包含三個步驟:數據包的封裝;通過遠程DMA將數據包送入DM9008的數據發送緩沖區;通過DM9008的本地DMA將數據送入FIFO進行發送。具體過程如下:
    (1)數據包在發送前應該按規定的格式封裝好,格式如下:

    (2)把上面的數據包通過遠程DMA寫送入DM9008的數據發送緩沖區。
    a. 設置CR為22H,選擇寄存器頁面0;
    b. 設置中斷狀態寄存器ISR為40H,清除發送完成標志;
    c.設置遠程DMA地址寄存器RSAR1、RSAR0為4000H,即發送緩沖區開始地址,
    d. 設置遠程DMA字節計數寄存器RBCR1、RBCR0為發送數據包的長度,
    e. 設置CR為12H,設置命令寄存器為遠程DMA寫,
    f. 往數據端口寫入發送數據,
    g. 查詢中斷狀態寄存器ISR,等待遠程DMA完成,
    h. 設置CR為22H,設置RBCR1、RBCR0為0,遠程DMA停止,
    i. 設置ISR為40H,清除發送完成標志。
    (3)啟動本地DMA,把數據發送出去。
    a. 設置發送字節計數器TBCR1(06H)、TBCR0(05H)為發送數據包的長度;
    b. 設置發送頁面起始地址TPSR(04H)為40H,即發送緩沖區開始地址高位字節;
    c. 設置命令寄存器CR為26H,啟動發送。
3.4 高層通信協議
上述發送、接收過程所完成的協議是MAC層和物理層的協議。要真正實現嵌入式系統與以太網上其它設備(如PC機)之間的通信,還需要在嵌入式系統中實現更高層的通信協議,如TCP/IP協議,這樣PC機的程序員就可以使用TCP/IP協議透明地訪問嵌入式系統的數據。
因此上述以8051單片機系統為例的嵌入式系統的軟件設計中除了實現收發數據的功能外,還需要實現TCP/IP協議及更高層的應用層協議才能真正實現整個系統的通信功能。由于TCP/IP協議的實現通常采用C語言,并且有現成的源程序,所以在用8051系列單片機編程時,可采用C51語言并參考TCP/IP標準的源程序來具體實現。有關這方面內容,可以查看有關TCP/IP協議方面的資料。
本文地址:http://www.qingdxww.cn/thread-2652-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
tydzkj123 發表于 2011-3-9 08:26:00
很有用
tfqiong 發表于 2011-3-29 11:06:09
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 無線充電基礎知識及應用培訓教程2
  • 無線充電基礎知識及應用培訓教程3
  • 5分鐘詳解定時器/計數器E和波形擴展!
  • PIC18-Q71系列MCU概述
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成年女人18级毛片毛片免费观看 | 精品四虎免费观看国产高清午夜 | 青青草综合在线 | 欧美日韩一级片在线观看 | 国产片a| 中文字幕手机在线播放 | 美女网站免费福利视频 | 欧美成人免费看片一区 | 欧美黑人性大免费高清视频 | 一区二区手机视频 | 在线看免费观看韩国特黄一级 | 久久亚洲精品国产精品婷婷 | 国产一级在线现免费观看 | 国产麻豆麻豆 | 九九热视频免费在线观看 | 99国产精品农村一级毛片 | 欧美区在线观看 | 免费色视频在线观看 | 香蕉成人国产精品免费看网站 | 免费一级a毛片夜夜看 | 91欧美| 色一情一欲一爱一乱 | 日本高清在线播放一区二区三区 | 女人wwxxxxx | 毛片在线免费观看网站 | tube8欧美| 日韩欧美精品有码在线观看 | 成人免费福利片在线观看 | 四虎影视成人精品 | 美女视频黄的免费看网站 | 国产大毛片 | 香蕉久久久| 欧美色欧美亚洲高清在线观看 | 四虎永久在线精品视频免费观看 | 亚洲国产天堂久久综合226 | 在线观看亚洲一区二区 | 在线欧美精品国产综合五月 | 在线91av | 91视频日韩 | 精品国产高清露脸在线观看 | 久久久久久久久久免免费精品 |