新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于S3C4480X的嵌入式以太網接口設計

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

        作者: 時間:2014-12-02 來源:網絡 收藏

          引言

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

          在互聯網絡和局域網絡飛速發展的今天,計算機進行網絡互聯的同時,各種家電設備、儀器儀表、工業生產中的數據采集和控制正在走向網絡化。(Ethemet)由于它的普遍性及低廉的接口價格,因而已經作為一種最通用的網絡,廣泛應用于生產和生活中。另一方面,嵌入式設備在價格、體積及實時性等方面是通用計算機無法比擬的,也已廣泛應用于自動化控制、數據采集、通信網絡等領域。因此,嵌入式技術有著廣闊的前景,首先要解決的問題就是嵌入式接口問題。

          本文基于最常用的嵌入式處理器S3C44B0X和以太網驅動器RTL8019AS來設計了一款嵌入式以太網接口。本設計的特點是,既可僅用于嵌入式以太網驅動設備,方便簡單,又可進行擴展其他模塊,必要時可以移植操作系統,應用于其他復雜領域。本文從RTL8019AS的內部結構工作原理出發,介紹了基于S3C44B0X的硬件接口電路,詳細說明了基于硬件層的驅動程序C語言的設計。

          1以太網幀結構

          一個標準的以太網物理傳輸幀由7部分組成:PR(同步位)、SD(分隔位)、DA(目的地址)、SA(源地址位)、TYPE(類型字段)、DATA(數據段)、FCS(幀校驗)。

          其傳輸幀結構(及各部分長度)如圖1所示。

          

         

          除了數據段的長度不定外,其他部分的長度固定不變。數據段為46~1500字節。以太網規定整個傳輸包的最大長度不能超過1514字節(14字節為DA、SA、TYPE),最小不能小于60字節。需填充時,填充字符的個數不包括在長度字段中;超過1 500字節時,需拆成多個幀傳送。事實上,發送數據時,PR、SD、FCS及填充字段這幾個數據段由以太網控制器自動產生;而接收數據時,PR、SD被跳過,控制器一旦檢測到有效的前序字段(即PR、SD),就認為接收數據開始。

          2芯片簡介

          S3C44B0X是公司使用ARM7TDMI核生產的16/32位RISC(精簡指令集計算機)處理器,它提供了豐富的內置模塊,包括:8 kB Cache和內部SRAM,LCD(液晶顯示器)控制器,2通道的UART,4通道的DMA(直接存儲器存取),存儲器管理,帶PWM(脈寬調制)的定時器,I/O口,8通道10位的A/D轉換器,IIC、IIS總線,同步SIO接口和PLL(鎖相環)倍頻器,可根據需要進行接口擴展,并且價格低廉,目前已被廣泛應用于嵌入式領域中。

          RTL8019AS是在嵌入式領域應用廣泛且性價比很高的網絡控制芯片。RTL8019AS的主要性能有:符號EthernetⅡ與IEEE 802.3(10Base5、10Base2、10BaseT)標準;全雙工,收發可同時達到10 Mbit/s的速率;內置16 kB的SRAM,用于收發緩沖,降低對主處理器的速度要求;支持8/16位數據總線,8個中斷申請線以及16個I/O基地址選擇;支持UTP、AUI、BNC自動檢測,還支持對10BaseT拓撲結構的自動極性修正;允許4個診斷LED引腳可編程輸出。

          RTL8019AS可分為以下幾部分功能模塊:

          a)遠程DMA接口:處理器與RTL8019AS收發緩沖的連接通道,處理器只需對遠程DMA操作。

          b)本地DMA接口:RTL8019AS與網線的連接通道,完成控制器與網線的數據交換。

          c)MAC(介質訪問控制)邏輯:完成對遠程DMA和本地DMA數據包傳輸、中斷的產生等自動控制。

          d)地址識別邏輯:將接收到的數據幀中的目的地址和地址寄存器中的地址進行比較,判斷其是否為發到本地的幀。

          e)CRC(循環冗余校驗)產生校驗邏輯:在發送數據時,產生CRC碼,對接收幀進行CRC。

          f)協議PCA:負責實施以太網規范。

          RTL8019AS內部有16kB SRAM,分為64頁,256字節/頁,組成環形隊列作為收發緩沖區,只能按頁操作,頁地址從0x4000~0x7FFF。可以通過相關的寄存器讀寫操作,可以對緩沖區進行設置及狀態的讀取。由于接收緩沖區是按頁即256 B來操作的,與緩沖區地址有關的寄存器中只需存儲緩沖區的高16位地址即可。在本設計中,將前32頁(0x400~0x5fff)作為接收緩沖區,將后32頁(0x6000~0x7ff)作為發送緩沖區。

          RTL8019AS具有32位輸入輸出地址,地址偏移量為00H~1FH。其中,00H~0FH共16個地址為寄存器地址。遠程DMA地址包括10H~17H,都可以用來做遠程DMA端口,只要用其中的一個就可以了。復位端口包括18H~1FH共8個地址,功能相同,用于RTL8019AS復位。RTL8019AS的內部I/O基址是00H,但微處理器要訪問8019的地址卻不是00H,該地址是由處理器與網絡控制器的連線決定的。

          RTL8019AS寄存器分為4頁,即PAGE0~PAGE3,每一頁的地址偏移量均為0x00~0x1f由RTL8019AS的CR(命令寄存器)中的PS1、PS0位來決定要訪問的頁,每一頁中的寄存器由SA0~SA3尋址。第0頁和第1頁的寄存器很重要,用于數據收發的控制和中斷管理等,使用前必須對其進行配置。第2頁和第3頁只用于診斷和其他一些配置,很少使用。

        c語言相關文章:c語言教程


        脈寬調制相關文章:脈寬調制原理
        鎖相環相關文章:鎖相環原理

        上一頁 1 2 3 下一頁

        關鍵詞: S3C4480X 以太網 三星

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 崇明县| 福泉市| 郯城县| 青铜峡市| 崇礼县| 北宁市| 云龙县| 甘孜县| 娄烦县| 东源县| 营口市| 竹北市| 七台河市| 永修县| 从江县| 宜川县| 安新县| 山阴县| 巍山| 堆龙德庆县| 逊克县| 金华市| 凤台县| 宁河县| 邢台县| 板桥市| 安泽县| 苍溪县| 马龙县| 湛江市| 青浦区| 武清区| 齐河县| 恭城| 宜都市| 崇文区| 洛阳市| 六枝特区| 宁陵县| 庄浪县| 昭苏县|