新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 基于S3C4480X的嵌入式以太網接口設計

        基于S3C4480X的嵌入式以太網接口設計

        作者:胡健生,夏靖波 時間:2008-05-15 來源:《電子工程師》 收藏

          3設計思路

        本文引用地址:http://www.104case.com/article/82658.htm

          首先,S3C44B0X通過RTL8019AS的I/O口,對其相關寄存器進行配置。在通信時,S3C44B0X與RTL8019AS的收發緩存器的數據交換由遠程DMA控制,而RTL81019AS收發緩存器與總線之間的數據交換由它的本地DMA控制。RTL8019AS通過中斷的方式通知S3C44B0X數據收發的結果和狀態,S3C44B0X通過查詢中斷狀態寄存器的值,作出相應處理。

          系統結構如圖2所示。

               

          4電路設計

          電路如圖3所示。

               

          S3C 44B0X的nOE、nWE分別與RTL8019AS的IORB、IOWB相連,控制數據的讀和寫操作,低電平有效。RTL8019使用中斷0,對應S3C4480的外部中斷1。

          RTL8019AS RTL8019AS有3種工作方式:

          a)跳線方式:I/O和中斷由跳線決定;
          b)即插即用方式(PNP):由軟件進行自動配置,使用這種方法時,系統的啟動程序必須包含支持PNP的函數;
          c)免跳線方式:I/O和中斷由外接的EEPROM93C46中的內容決定。

          在本設計中,為了降低啟動程序和電路的復雜性,選擇跳線方式,故JP接高電平。

          X1、X2分別為20 MHz晶振的輸入輸出端。LED0~2分別連接3個發光二極管,指示網絡連接、數據傳輸和發送的情況。 20F001為網卡濾波器,內部包含一對低通濾波器和一對隔離變壓器,其輸出TX+/-、RX+/-與RJ45的信號口相連。

          由于在本設計中RTL8019AS的AEN與S3C44B0X的nGCS2相連,所以對應S3C44B0X的存儲器的起始地址0x0600-0000;并且,由于RTL8019AS的IOS0~IOS3接地,在跳線模式下,當IOS0~IOS1為0000時,RTL8019AS的基址為0300H。因此,在本設計中,S3C44B0X訪問RTL8019AS的基址就是0x0600-0300。

          5驅動程序設計

          5.1程序設計思路

          在本設計方案中,驅動程序主要包含3個函數,即系統的初始化函數、接收數據包函數、發送數據包函數。 初始化部分完成RTL8019AS在使用之前的初始化工作,包括設置相關工作模式的寄存器、分配和初始化接收和發送緩沖區、初始化網卡接收地址等。

               

          MAR0-MAR7-多點地址寄存器:這8個寄存器的值是根據多播地址數組的值生成的,提供對多播地址的過濾,過濾掉一些不屬于自己接收多播數據包。
        這里均設為FFH,接所有多播地址的數據包:

          

          下面6條語句設置MAC地址,寄存器為PAR0~PAR5:實際地址寄存器,這些寄存用來對目標地址數據包進行比較,以確定接收或者拒絕接收。地址放在數組add[6]中。

           
         
          5.2數據的傳輸和發送

          數據的傳輸和發送由本地DMA傳輸和與遠程DMA傳輸兩部分完成,前者大部分工作由RTL8019AS自動完成,我們要做的是設置收發緩沖區的大小及指針變量,這些工作在RTL8019AS的初始化時已完成,因此只需要編寫遠程DMA讀寫函數。對遠端DAM口的讀寫,不同的只是數據傳輸方向,這里,僅以讀操作為例,即編寫從RTL8019AS接收緩沖區取數據包到S3C4480X。(注意:遠程DMA的寫函數,即向RTL8019AS發送緩沖區寫數據函數--send_data()省略。)
         
          

          5.3接口通信函數流程

          這里采用中斷和查詢相結合的方式來決定是否發送和接收數據。當RTL8019AS的ISR(中斷狀態寄存器)的任意一中斷位置位時,S3C4B0X都要對其進行中斷相應(在這里只關注第0中斷位和第1中斷位,即分別反映RTL8019AS已正確接收到數據和已成功發送數據包,因此在初始化函數中將其他位屏蔽)。這時要對ISR進行訪問,來判斷是何種中斷,進而作出相應的響應,如圖4所示。

           

          6結束語

          本設計經過軟硬件的調試,并已成功地進行數據傳輸。由于S3C4480X出眾的性價比及豐富的外圍接口,通過擴展本設計可以應用到儀器儀表、工業數據采集網絡、網絡控制等許多領域。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 九寨沟县| 托里县| 砀山县| 喜德县| 温宿县| 淮北市| 特克斯县| 都昌县| 新龙县| 深水埗区| 新安县| 错那县| 门源| 临猗县| 襄汾县| 浮山县| 洛南县| 息烽县| 十堰市| 南汇区| 固镇县| 白沙| 沅江市| 枣庄市| 乾安县| 达尔| 洛阳市| 衡水市| 沙坪坝区| 古丈县| 永平县| 怀仁县| 桃源县| 佛教| 广饶县| 永兴县| 腾冲县| 延长县| 克拉玛依市| 兴文县| 博客|