新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于S3C4480X的嵌入式以太網(wǎng)接口設(shè)計(jì)

基于S3C4480X的嵌入式以太網(wǎng)接口設(shè)計(jì)

作者:胡健生,夏靖波 時(shí)間:2008-05-15 來(lái)源:《電子工程師》 收藏

  0引言

本文引用地址:http://m.butianyuan.cn/article/82658.htm

  在互聯(lián)網(wǎng)絡(luò)和局域網(wǎng)絡(luò)飛速發(fā)展的今天,計(jì)算機(jī)進(jìn)行網(wǎng)絡(luò)互聯(lián)的同時(shí),各種家電設(shè)備、儀器儀表、工業(yè)生產(chǎn)中的數(shù)據(jù)采集和控制正在走向網(wǎng)絡(luò)化。(Ethemet)由于它的普遍性及低廉的價(jià)格,因而已經(jīng)作為一種最通用的網(wǎng)絡(luò),廣泛應(yīng)用于生產(chǎn)和生活中。另一方面,設(shè)備在價(jià)格、體積及實(shí)時(shí)性等方面是通用計(jì)算機(jī)無(wú)法比擬的,也已廣泛應(yīng)用于自動(dòng)化控制、數(shù)據(jù)采集、通信網(wǎng)絡(luò)等領(lǐng)域。因此,技術(shù)有著廣闊的前景,首先要解決的問(wèn)題就是問(wèn)題。

  本文基于最常用的嵌入式S3C44B0X和以太網(wǎng)RTL8019AS來(lái)設(shè)計(jì)了一款嵌入式以太網(wǎng)。本設(shè)計(jì)的特點(diǎn)是,既可僅用于嵌入式以太網(wǎng)驅(qū)動(dòng)設(shè)備,方便簡(jiǎn)單,又可進(jìn)行擴(kuò)展其他模塊,必要時(shí)可以移植操作系統(tǒng),應(yīng)用于其他復(fù)雜領(lǐng)域。本文從RTL8019AS的內(nèi)部結(jié)構(gòu)工作原理出發(fā),介紹了基于S3C44B0X的硬件接口電路,詳細(xì)說(shuō)明了基于硬件層的驅(qū)動(dòng)程序C語(yǔ)言的設(shè)計(jì)。

  1以太網(wǎng)幀結(jié)構(gòu)

  一個(gè)標(biāo)準(zhǔn)的以太網(wǎng)物理傳輸幀由7部分組成:PR(同步位)、SD(分隔位)、DA(目的地址)、SA(源地址位)、TYPE(類(lèi)型字段)、DATA(數(shù)據(jù)段)、FCS(幀校驗(yàn))。

  其傳輸幀結(jié)構(gòu)(及各部分長(zhǎng)度)如圖1所示。

       

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

  2簡(jiǎn)介

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

  RTL8019AS是在嵌入式領(lǐng)域應(yīng)用廣泛且性價(jià)比很高的網(wǎng)絡(luò)控制。RTL8019AS的主要性能有:符號(hào)EthernetⅡ與IEEE 802.3(10Base5、10Base2、10BaseT)標(biāo)準(zhǔn);全雙工,收發(fā)可同時(shí)達(dá)到10 Mbit/s的速率;內(nèi)置16 kB的SRAM,用于收發(fā)緩沖,降低對(duì)主的速度要求;支持8/16位數(shù)據(jù)總線,8個(gè)中斷申請(qǐng)線以及16個(gè)I/O基地址選擇;支持UTP、AUI、BNC自動(dòng)檢測(cè),還支持對(duì)10BaseT拓?fù)浣Y(jié)構(gòu)的自動(dòng)極性修正;允許4個(gè)診斷LED引腳可編程輸出。

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

  a)遠(yuǎn)程DMA接口:處理器與RTL8019AS收發(fā)緩沖的連接通道,處理器只需對(duì)遠(yuǎn)程DMA操作。

  b)本地DMA接口:RTL8019AS與網(wǎng)線的連接通道,完成控制器與網(wǎng)線的數(shù)據(jù)交換。

  c)MAC(介質(zhì)訪問(wèn)控制)邏輯:完成對(duì)遠(yuǎn)程DMA和本地DMA數(shù)據(jù)包傳輸、中斷的產(chǎn)生等自動(dòng)控制。

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

  e)CRC(循環(huán)冗余校驗(yàn))產(chǎn)生校驗(yàn)邏輯:在發(fā)送數(shù)據(jù)時(shí),產(chǎn)生CRC碼,對(duì)接收幀進(jìn)行CRC。

  f)協(xié)議PCA:負(fù)責(zé)實(shí)施以太網(wǎng)規(guī)范。

  RTL8019AS內(nèi)部有16kB SRAM,分為64頁(yè),256字節(jié)/頁(yè),組成環(huán)形隊(duì)列作為收發(fā)緩沖區(qū),只能按頁(yè)操作,頁(yè)地址從0x4000~0x7FFF。可以通過(guò)相關(guān)的寄存器讀寫(xiě)操作,可以對(duì)緩沖區(qū)進(jìn)行設(shè)置及狀態(tài)的讀取。由于接收緩沖區(qū)是按頁(yè)即256 B來(lái)操作的,與緩沖區(qū)地址有關(guān)的寄存器中只需存儲(chǔ)緩沖區(qū)的高16位地址即可。在本設(shè)計(jì)中,將前32頁(yè)(0x400~0x5fff)作為接收緩沖區(qū),將后32頁(yè)(0x6000~0x7ff)作為發(fā)送緩沖區(qū)。

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

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

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

上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉