以太网芯片dm9000a的特点包括哪些

本节书摘来异步社区《嵌入式Linux软硬件开发详解——基于S5PV210处理器》一书中的第2章第2.4节,作者:刘龙更多章节内容可以访问云栖社区“异步社区”公众号查看

嵌入式Linux软硬件开发详解——基于S5PV210处理器
为了实现以太网通信功能,Smart210开发板搭载了一片以太网芯片DM9000A它是一款高度集成、低成本的单片快速以太网MAC控制器,含有通用的处理器接口、10M/ 100M物理层和16KB的SRAM

支持处理器读写内部存储器的数据操作,命令以字节/字/双字的长度进行
集成10/100M自适应收发器。
支持背压模式半双工流量控制模式
IEEE802.3x流量控制的全双工模式。
支持唤醒帧链路状态改变和远程的唤醒。
内部具有4K双字SRAM
支持自动加载EEPROM里媔生产商ID和产品ID。
支持4个通用输入输出口
兼容3.3V和5.0V输入输出电压。

DM9000A的引脚排列如图2-13所示各个引脚的功能如表2-8所示。

~08FFFFFF空间的任一地址DM9000嘚地址信号和数据信号复用,使用CMD引脚来区分CMD引脚为低的时候总线上传输的是地址信号,引脚为高的时候总线上传输的是数据信号S5PV210的哋址线Xm0ADDR2连接至CMD引脚,通过控制Xm0ADDR2引脚的高低电平来区分S5PV210传输的是地址还是数据访问DM9000A内部寄存器时,我们需要先将CMD置为低电平发出地址信號,然后将CMD置为高电平读写数据。

通过以上分析DM9000A的地址与数据端口地址分别为如下所示。

DATA端口加上0x04是因为DM9000A的CMD引脚连在了CPU的Xm0ADDR2地址线上當写数据时,此引脚必须为高所以地址为IOAddr加上0x04,这样既可以选择访问不同的端口同时也能将端口数据写在两块不同的存储空间。

版权聲明:本文内容由阿里云实名注册用户自发贡献版权归原作者所有,阿里云开发者社区不拥有其著作权亦不承担相应法律责任。具体規则请查看《》和《》如果您发现本社区中有涉嫌抄袭的内容,填写进行举报一经查实,本社区将立刻删除涉嫌侵权内容

}


正点原子STM32开发板购买店铺


初级会員, 积分 90, 距离下一级还需 110 积分

我知道我连菜鸟都不算先做一个好菜鸟再说

初级会员, 积分 90, 距离下一级还需 110 积分

我知道我连菜鸟都不算,先做┅个好菜鸟再说

}

关键词:100M以太网MII;FPGA;奇偶分频器;4b/5b编解码;异步双口FIFO

传统以PC为中心的互联网应用现已开始转向以嵌入式设备为中心据网络专家预测,将来在互联网上传输的信息中囿70%来自小型嵌入式系统,因此 对嵌入式系统接入因特网的研究是有必要的。目前有两种方法可以实现单片机系统接入因特网:一种方法昰利用NIC (网络控制/网卡)实现网络接口由单片机来提供所需的网络协议;另外一种方法是利用具有网络协议栈结构的芯片和PHY(物理层的接收器)來实现网络接 口,主控制器只负责往协议栈结构芯片的某个寄存器里放上适当的数据与此同时,用FPGA实现单片机系统接入因特网的方法也ㄖ益受到人们的重视本文提出 采用FPGA实现网络协议栈,介绍100M以太网MII接口协议的硬件实现方法其中的奇偶模块分频器和异步FIFO等通用器件在ㄖ常中也很有应用价值。

IEEE802协议标准系列中,数据链路层包括LLC (逻辑链路控制)子层和MAC (媒体访问控制)子层其中MAC单独作为一个子层,完成数据帧的封裝、解封、发送和接收功能。物理层PHY的结构随着传输速率的不同而有一定差异在 100M和1000M以太网中,依次为PCS子层、PMA子层和PMD子层MII接口是连接数據链路层和物理层的接口,因为本设计中以太网速率采用 100Mb/s所以MII接口实际连接的是MAC子层和PCS子层。根据协议要求MII接口具有的功能有:数据囷帧分隔符的读写时钟同步,提供独立的 读写数据通道为MAC层和PCS层提供相应的管理信号,以及支持全双工模式

扩展MII接口功能及其

由于100M以呔网的物理层采用4b/5b编码,为了扩展MII接口的功能要求其能够实现直接物理层5位数据和MAC层8位数据的发送接收传输转 换。即把从MAC子层用于发送嘚数据和从PHY用于接收的数据存入数据缓冲FIFO同时要求MII接口将从PHY传来的信号COL、CRS转为信号 Carrier和Collision,并提供给MAC子层用于载波监听和冲突检测以及发送和接收时的时钟、使能、错误位信号的传送。扩展功能后的MII 接口硬件结构框图如图1所示由4b/5b编×××、控制信号与4位/8位转换、分频器及双ロFIFO 4个模块组成,而且能够同时支持半双工和全双工模式

在设计过程中,为了考虑测试和支持多种速率传输的需要要求设计带有分频参數的可实现奇偶分频的分频器和支持能够同时进行读写操作和异步读写时钟的FIFO。这是MII接口设计中的难点,本身也具有很高的实用价值

分频器是数字系统设计中的基本电路,同一个设计中有时要求多种形式的分频通常由计数器或计数器的级联构成各种形式的偶数分频及非等占空比的奇数分 频,实现较为简单;对等占空比的奇数分频实现则较为困难本文对2n+1等占空比奇数分频的基本思路是:先通过模2n+1的计数器實现占空比为n+1/n 的奇数分频(比如三分频,正负波形的占空比为2:1)然后有两种方法可以实现等占空比的奇数分频,一种是当计数器至n+1时让此波形与输入时钟波形相 “与”,不过可能会存在毛刺输出;另一种是当计数器至n+1时在输入时钟的下降沿触发产生低电平脉冲,然后再和原波形相“或”这种方法没有毛刺产生。 因此本文采用第二种方法

为了减少系统的开销,本文把4b/5b的编码和解码同时集中到一个模块上實现数据0~F可以直接编、解码。PCS层有6个特殊的5b 码:11111为帧间填充码;11000、10001和01101、00111是两对成对出现的码组分别为数据流开始和结束时的分隔符;00100則是 数据错误位,用以表示错误数据接收时,可以直接对这几个5b码组解码00100则产生信号rx_er。发送时需要对从MII接口传来的信号位进行判 断:若tx_en上升沿,则在头两个前导码时编码输出SSD;若tx_en下降沿(帧间隔)则在FCS后输出ESD,然后一直用11111为数据流间隔 填充码;若有tx_er触发则编码00100输出。

異步双口FIFO的设计

为了满足PCS层数据的物理层时钟以及MAC层总线时钟不同步的需求需要FIFO有异步的读、写时钟。当冲突检测COL为高时要求发送帧執行退回操作回至FIFO中等待下一个Transmitting信号。

测试时暂定容量FIFO_DEPTH为32(实际要求是至少一个帧的大小即1530字节大小),读、写时钟分别为50MHz和25MHz在写550ns之后同時读写。时序仿真波形如图2所示FIFO能够成功读写。

主控制模块要求实现的功能是:4/8位数据的转换;给MAC层和PCS层的控制信号输出;双向数据MDIO表征MII接口与物理层相连接的情况,可以异步输入输出控制

实现4/8位数据转换的要求是:发送时,将8位数据分成两个nibble依次输出;接收时将4b/5b編×××接收到的4位数据依次填入高、低nibble组成8位数据输出。

. status2 [3]为1时工作在发送状态,tx_en输出置为1(此时status2[1]必须为0)此时如果status2[2]为0,则正常发送tx_er置为0;否则发送错误,tx_er置为1且跳过该字节继续执行发送程序。

本文采用Altela公司的Cyclone系列EP1C20F400C8芯片,整个设计全部采用Verilog HDL硬件描述语言来实现,并在Quatus4.0的设计平囼上完成整个模块的设计、综合、仿真、映射及布局布线发送时序仿真的波形如图3所示,从图中 可以看出,当传输过程中发生冲突时,继续發送32比特的阻塞码(16进制FF),然后随机延时一段时间重新争用介质以传输数据,这说明本模块满足了协议要 求以及CSMA/CD

本文介绍了一种简易的基于FPGA的鉯太网MII协议的设计方法。通过本模块可以简单方便地实现小型嵌入式系统的因特网 接口,如果再结合基于FPGA实现的MAC层协议和TCP/IP协议栈及其他辅助功能模块,不仅可以使小型嵌入式系统接入网络更加简单,系统的集成度、稳 定性也将进一步得到提高

摘要:互联网络硬件、软件的迅猛发展使得网络用户呈指数增长,在使用计算机进行网 络互联的同时各种家电设备、仪器仪表以及工业生产中的数据采集与控制设备在逐步哋走向网络化,以便共享网络中庞大的信息资源在电子设备日趋网络化的背 景下,利用廉价的51单片机来控制RTL8019AS实现以太网通讯具有十分重偠的意义

一个标准的以太网物理传输帧由七部分组成(如表1所示,单位:字节)

除了数据段的长度不定外,其他部分的长度固定不变数据段为46~1500字节。以太网规定整个传输包的最大长度不能超过1514字节(14字节为DA、 SA、TYPE)最小不能小于60字节。除去DA、SA、TYPE14字节还必须传输46字節的数据,当数据段的数据不足46字节时需填充填充字符 的个数不包括在长度字段里;超过1500字节时,需拆成多个帧传送事实上,发送数據时PR、SD、FCS及填充字段这几个数据段由以太网控制器自动产 生;而接收数据时,PR、SD被跳过控制器一旦检测到有效的前序字段(即PR、SD),僦认为接收数

由台湾Realtek公司生产的RTL8019AS以太网控制器由于其优良的性能、低兼的价格,使其在市场上10Mbps网卡中占有相当的比例

(2)全双工,收發可同时达到10Mbps的速率;

(3)内置16KB的SRAM用于收发缓冲,降低对主处理器的速度要求;

(4)支持8/16位数据总线8个中断申请线以及16个I/O基地址选择;

(5)支持UTP、AUI、BNC自动检测,还支持对10BaseT拓扑结构的自动极性修正;

(6)允许4个诊断LED引脚可编程输出;

(7)100脚的PQFP封装缩小了PCB尺寸。

RTL8019AS内部可分為远程DMA接口、本地DMA接口、MAC(介质访问控制)逻辑、数据编码解码逻辑和其他端口内部结构如图1所示。

远程DMA接口是指单片机对RTL8019AS内部RAM进行读寫的总线即ISA总线的接口部分。单片机收发数据只需对远程DMA操作本地DMA接口是把RTL8019AS与网线的连接通道,完成控制器与网线的数据交换

MAC(介質访问控制)逻辑完成以下功能:当单片机向网上发送数据时,先将一帧数据通过远程DMA通道送到RTL8019AS中的发送缓存区然后 发出传送命令;当RTL8019AS唍成了上帧的发送后,再开始此帧的发送RTL819接收到的数据通过MAC比较、CRC校验后,由FIFO存到接收 缓冲区;收满一帧后以中断或寄存器标志的方式通知主处理器。FIFO逻辑对收发数据作16字节的缓冲以减少对本地DMA请求的频率。

2.3 内部RAM地址空间分配

0x4c00~0x7fff)存储区作为接收缓冲区第0页叫Prom页,呮有32字节地址为0x0000~0x001f,用于存储以太网物理地址

要接收和发送数据包就必须通过DMA读写RTL8019AS内部的16KB RAM。它实际上是双端口的RAM是指有两套总线连接到该RAM,一套总线RTL8019AS读或写该RAM即本地DMA;另一套总线是单片机读或写该RAM,即远程DMA

的,对于其他兼容NE2000的芯片如DM9008无效远程DMA地址包括10H~17H,都可鉯用来做远程DMA端口只要用其中的一个就可以了。复 位端口包括18H~1FH共8个地址功能一样,用于RTL8019AS复位

下面介绍51系列单片机与RTL8019AS的接口电路,實现的网络接口采用UTP(无屏蔽双绞线)RJ-45接口

图2给出了89C52单片机控制RTL8019AS实现以太网通讯的接口电路框图。用到的主要芯片有80C52、RTL8019AS、 93C46(64×16bit的EEPROM)、74HC573(8位锁存)、62256(32K字节的RAM)为分配好地址空间,采用对93C46进 行读(或写)操作来设置RTL8019AS的端口I/O基地址和以太网物理地址

93C46是采用4线SPI串行接口的Serial EEPROM,嫆量为1Kbit(64×16bit)主要保存RTL8019AS的配置信息。00H~03H的地址空间用于存储RTL8019AS内配 置寄存器CONFIG1~4的上电初始化值;地址04H~11H存储网络节点地址即物理地址;地址12H~7FH内存储即插即用的配置信息

019AS复位后读取93C46的内容并设置内部寄存器的值,如果93C46中内容不正确RTL8019AS就无法正常工作。先通过编程器如ALL07把配置好的数据写入93C46再焊入电路。

对93C46进行数据配置:数据00H写入93C46的地址00H内;93C46地址04H~0AH中存放的是物理地址可以写入设置所需的物理地 址值,或鈈修改采用原始值为物理地址。通过编程器读出04H~0AH的原始值为5即所采用的物理地址。

读写操作、复位操作对应的引脚按表3连接

采用10BASE-T咘线标准通过双绞线进行以太网通讯,而RTL8019AS内置了10BASE-T收发器所以网络接口的电路比较简单。外接一 个隔离LPF滤波器0132TPIN±为接收线,TPOUT±为发送线,经隔离后分别与RJ-45接口的RX±、TX±端相连。

时钟电路通过T1、T2接口一个20MHz晶振以及2个电容,实现全双工方式

LED0、LED1各接一发光二极管以反映通讯状態:LED0表示LED_COL,即通讯有冲突;LED1表示LED_RX即接收到网上的信息包。

所有程序采用Framclin C51语言编制可读性强,移植性好开发简易。

80C52的P3.4连接RTL8019AS的RESDRV来进行复位操作RSTDRV为高电平有效,至少需要800ns的宽度给该引脚旋加一 个1μs以上的高电平就可以复位。施加一个高电平后然后施加一个低电平。复位过程将执行一些操作至少需要2ms的时间,推荐等待更久的时间之后如 100ms之后才对它操作以确保完全复位。

初始化页0与页1的相关寄存器頁2的寄存器是只读的,不可以设置页3的寄存器不是NE2000兼容的,不用设置

(2)TPSR=0x45,发送页的起始页地址初始化为指向第一个发送缓冲区的頁即0x40;

(5)RCR=0xcc,设置接收配置寄存器使用接收缓冲区,仅接收自己地址的数据包(以及广播地址数据包)和多点播送地址包小于64字节的包丢弃,校验错的数据包不接收;

(6)TCR=0xe0设置发送配置寄存器,启用CRC自动生成和自动校验工作在正常模式;

(7)DCR=0xc8,设置数据配置寄存器使用FIFO缓存,普通模式8位数据DMA;

(8)IMR=0x00,设置中断屏蔽寄存器屏蔽所有中断;

(11)设置多址寄存器MAR0~MAR5,均设置为0x00;

(12)设置网卡地址寄存器PAR0~PAR5;

(13)CR=0x22选择页1的寄存器,进入正常工作状态

图2 89C52单片机控制RTL8019AS实现以太网通讯的接口电路框图

将待发送的数据按帧格式封装,通过遠程DMA通道送到RTL8019AS中的发送缓存区然后发出传送命令,完成帧的发送需要设置以太网目的地 址、以太网源地址、协议类型,再按所设置的協议类型来设置数据段之后启动远程DMA,数据写入RTL8019AS的RAM再启动本地DMA,将数据发 送网上

RTL8019AS无法将整个数据包通过DMA通道一次存入FIFO,则在构成一個新的数据包之前必须先等待前一数据包发送完成为提高发送效率,设计将12页的发送缓存区分为两个6页的发送缓存区一个用于数据包發送,另一个用于构造端的数据包交替使用。

调试环境包括RTL8019AS实验板、PC机(带网卡)以及网线

用C51语言编程,实现TCP/IP协议中ARP数据帧的收发

實验中,单片机首先构造一个ARP请求包发送给PC机PC机收到后会发送一个ARP应答包给单片机,单片机收到该应签包后再发一个ARP请求包给 PCF机如此鈈断循环,来测试系统的性能在PC机上采用Sniffer软件如Windump软件来监视(或截获)PC机网卡接收ARP包的情况,取得 了满意的效果

 :本文介绍了一种实鼡的基于FPGA的以太网视频广播接收系统由于采用了FPGA技术,使得系统结构简单可靠性高。最后进行了波形仿真结果表明了设计的正确性。
关键词:视频广播;接收系统;以太网;现场可编程门阵列;设计

  近年来现场可编程门阵列(FPGA)技术以其独有的优势,在电子设計领域得到越来越广泛的应用FPGA除具有集成度高、体积 小、功耗低、电路简单、可靠性高等优点外,还有自身突出的优点即“现场可编程性”,用户可以很方便地通过相应的软件在较短时间内对FPGA内部逻辑反 复设计或修改,直到满意为止这就大大缩短了开发周期,提高叻最终产品的性能

  以太网是最广泛使用的网络标准。它成为最受欢迎的技术不仅因为其在市场上最低的NIC(网络接口卡)和HUB端口价格,还因为它具有维护简单、易于扩充等优点

  本文介绍的视频广播接收系统是基于标准以太网(10 Mbps)和快速以太网(100 Mbps)的系统。由于系统的主要部分采用了FPGA设计技术使得系统的成本较低和开发周期较短,而且由于前端采用的是具有10M/100M兼容的芯 片并同时支持两种特性嘚以太网(全双工和半双工),有助于实现全双工和半双工以太网之间的无缝连接从而使得该系统具有广阔的应用前景和实用性。

  系统实现中涉及到网络方面的许多相关技术和各种相关的协议、标准下面作一简要介绍。

  以太网用载波侦听多路访问/冲突检测(CSMA/CD)作为它的媒体访问控制协议CSMA/CD定义了以太网节点为传输数据如何获得对网络媒体的访问。其工作过程如下:

  (2)如果介质忙则堅持侦听,直到介质空闲立即传送数据;

  (3)如果在传送过程中,检测到冲突发生发送一个短的阻塞码,以确保让所有终端都检測到冲突发生然后停止发送;

  (4)发送完阻塞码后,等待一个随机时间再试图重新发送,即转(1)

  目前,实际使用较多的沖突检测方法是终端发送器把数据发送到线缆上终端接收器又把数据接收回来和发送的数据比较,判别是否一致若一致,没有冲突;若不一致表示冲突发生。

  当应用程序用UDP(TCP)传送数据时数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网絡其中每一层对收 到的数据都要增加一些首部信息(有时还要增加尾部信息)。UDP传给IP的数据单元称作UDP报文段或简称为UDP段IP传给网络接口層的数据单元称作 IP数据报。

  在OSI模型中数据链路层传输的数据单位是帧。同样以太网CSMA/CD也是通过帧来发送实际数据的。以太网802.3u的MAC孓层定义了帧结构如图1所示。

  其中:前导码用于物理信号的同步为7个字节的序列和1个字节的序列;目的地址和源地址使用的是MAC地址,前3个 字节称为Block ID它标志生产设备的厂家并由IEEE赋值;后3个字节称为设备ID,它由厂家赋值而且总是唯一的;数据长度指要传送的数据的總长度;数据和填充字符 可以从0到1 500字节不等,若实际数据小于所需的最小长度MAC将追加一些可变的填充字符(PAD),以维持64字节的最小帧规模若数据比1 500字节长,则更高层(一般是第三层)将把数据字段分成不同的帧进行传送;帧校验用来确保进行正确的传送循环冗余校验(CRC)用来进行有效帧的检 查。在以太网数据包的数据部分包含了各种上层协议的首部。在本文的系统中包含了IP首部和UDP首部。

MII是一个用於互连控制器和收发器的全新介质无关接口它是100 Mbit/s快速以太网开发工作的一个组成部分。此接口提供了新的物理连接机制以及控制器和收发器的功能划分该接口主要由以下一些信号组成:

  包括半字节宽(Nibble-wide)的发送数据信号,加上相关的发送时钟、发送允许信号和發送差错信号数据用时钟同步,时钟率是数据率的1/4 (即100 Mbit/s以太网用25 MHz的时钟)发送信号用于将数据从控制器移动到收发器,然后编码並发送到LAN上

  包括半字节宽的接收数据,加上相关的接收时钟、接收数据有效信号和接收差错信号数据用时钟同步,时钟率是数据率的1/4接收信号用于将解码的数据从收发器移动到控制器。

  这些信号是由收发器生成的载波侦听和冲突检测信号用于控制器做介質访问控制。它们只用于半双工模式在全双工模式中被忽略。

  包括一个串行管理I/O信号和相关的时钟信号用于在控制器和收发器の间双向交换配置和控制的管理信息。

该系统实现的总体框图如图2所示

  其中以太网接口采用的是传统的RJ45接口,10M/100M收发器可以采用DM9101 单爿实现FPGA部分采用的是Xilinx公司的Spartan II系列的芯片,MPEG-1解码芯片采用了C-Cube公司的解码芯片10M/100M收发器到FPGA之间采用MII标准的接口,FPGA到 MPEG-1解码芯片之间采鼡I2S形式的接口

  DM9101是一个物理层的、单片、低功耗的100Base-TX和10Base-T操作的转换器。在介质这一边它既为用于 100Base -TX快速以太网的非屏蔽双绞线对(5类同轴电缆)提供一个直接的接口,也为用于10Base-T以太网的UTP5/UTP3提供直接的接口通过 IEEE802.3u介质无关接口(MII),DM9101可以与介质接入控制(MAC)层相連接确保了在不同生产商的产品之间的高度互操作性。

  该芯片集成了MII标准接口、100Base-TX发送/接收器、10Base-T发送/接收器、自动协商、冲突检测、载波侦听、4B5B编/×××、加/解扰器、串口和并口之间的转换等功能

  由于采用了MII标准接口,使得设计者可以通过该接口的管悝信号线对该芯片的寄存器进行设置从而完成对10 Mbps和100 Mbps两种速率的选择,突出了设计的灵活性

由于要使数据能在以太网上传输,服务器端嘚发送程序应该把要传输的 数据进行打包(或封装)本系统中所要传输的数据为视频数据(VCD数据),而VCD数据一般是以dat格式存放在光盘中嘚因而在接收端应对接收到的数 据包进行解包,并同时完成数据格式转换的功能使得送到MPEG-1解码芯片的数据格式为dat格式的数据,从而進行解码最后用普通的电视机就能够接 收。

  因而该部分主要要实现的功能是:先完成对接收到的以太网数据帧进行解包取出封装茬以太网数据帧中的数据部分,然后再分别解IP数据包和UDP数据 包把真正的具有VCD播放格式的数据取出来,经过一个先进先出(FIFO)缓冲器输出箌MPEG-1解码芯片进行解码其中在解包的过程中,要对数据进 行校验校验正确的数据包才进行传送,对于校验不正确的数据包采用了直接丟弃的方法所采用的校验算法是循环冗余校验算法(CRC)。

  设计框图如图3所示

  (1)前导检测:当系统检测到连续出现了15个nibble的1010,哃时随后的一个nibble为1011时说明一个以太网数据帧开始了,应该对该部分的数据作进一步的处理

  (2)组字节:由于从DM9101芯片出来的数据信號是以一次四位元组(nibble)的形式传输的,因而要对它进行组字节操作每2个nibble组成一个字节,具体操作过程依据的是MII帧结构中的字节组成格式进行

  (3)CRC校验:对以太网帧中的目的地址、源地址、长度、数据进行CRC校验,并与帧的最后四个字节进行比较如果一致,即为正確的以太网数据;若不一致则丢弃这一帧。

  (4)MPEG-1数据:取出以太网帧中的长度字节的值用这个值来预置一个计数器,从而对数據进

行计数控制取出其中的MPEG-1格式的有效数据。

  (5)FIFO:由于普通的以太网的数据传输速率是10

Mbps或100 Mbps而进行MPEG-1解码时的速率一般为1.5 Mbps左祐,因而要对数据流进行速率调整该FIFO直接利用了Spartan II系列芯片内部的存储模块进行缓存。

  (6)同步头检测:dat格式的数据帧有一个同步头為:00FFFFFFFFFFFFFFFFFFFF00(十六进制)当检测到该同步头时,表明一个dat数据帧开始了应将其后的数据连同该同步头信息一起输出至解码芯片。

  (7)串荇输出:把最后得到的数据转换为串行数据并以I2S的格式将数据和时钟等信号输出到  MPEG-1解码芯片中进行解码。  
1.组字节仿真结果  数据从2个nibble组成一个字节的仿真结果如图4所示其中,CLK信号是25 MHz的时钟信号DA是由4位数据组成的数据信号,它们由DM9101芯片输出;DATA为组成字节後的8位数据信号CLKB是由CLK信号二分频所得到的Byte时钟信号。



2.I2S格式仿真结果

S格式输出的数据的仿真结果如图5所示仿真中采用的格式是:32位BCK,MSB最先右通道为低电平。其中BCK是位时钟信号LRCK是左右时钟选择时钟,DATA是VCD格式的MPEG-1视/音频数据


  本系统所采用的FPGA芯片为Xilinx公司的Spartan II系列芯片,用Foundation软件工具开发设计输入完成后,进行整体的编译和逻辑仿真然后进行转换、布局、延时仿真生成配置文件,最后下载至 FPGA器件实现其硬件功能。由于系统的很多功能由一块FPGA实现外围器件很少,所以系统体积小、可靠性高且器件的可编程性使得系统功能易于唍 善。仿真结果表明各信号的逻辑功能和时序配合完全达到了设计要求

     软件无线电(SDR)技术近年来发展迅速,在无线通信中的数字接收机领域應用尤其广泛。SDR中数据接口设计是关键的环节,以太网是目前最通用的数据接口 之一,但是中低端的FPGA通常不具备以太网接口,这为FPGA在SDR中的应用造荿了不便如果为FPGA配置以太网接口,与外部网络实现通信,将有利 于SDR平台的功能延伸,方便数据传输和与现有系统接口。

     本文在自行设计开发的SDR基带信号处理平台上,为实现高速解调数据的实时远程传输处理及接收机参数的远程配置,提出了采用FPGA直接控制 DM9000A进行以太网数据收发的设计思蕗,采用Xilinx系列XC2V1000 FPGA和DM9000A芯片,实现了一种低成本、低功耗和高速率SDR平台的网络传输功能,最高传输速率可达100Mbps

     DM9000A实现以太网媒体介质访问层(MAC)和物理层(PHY)的功能,包括MAC数据帧的组装/拆分与收发、地址识别、CRC编码/校验、MLT-3编码器、接收噪声抑制、输出脉冲成形、超时重传、链路完整性测试、信号極性检测与纠正等。

     DM9000A可以和微处理器以8位或16位的总线方式连接,并可根据需要以单工或全双工等模式运行在系统上电时,处理器通过总线配置DM9000A内 的网络控制寄存器(NCR)、中断寄存器(ISR)等,以完成DM9000A的初始化。随后,DM9000A进人数据收发等待状态

     当处理器要向以太网发送数据帧时,先将数据打包成UDP戓IP数据包,并通过8位或16位总线逐字节发送到DM9000A的数据发送缓存中,然后将数据长 度等信息填充到DM9000A的相应寄存器内,随后发送使能命令,DM9000A将缓存的数据囷数据帧信息进行MAC组帧,并发送出去。

     当DM9000A接收到外部网络送来的以太网数据时,首先检测数据帧的合法性,如果帧头标志有误或存在CRC校验错误,则將该帧数据丢弃,否则将数据帧缓 存到内部RAM,并通过中断标志位通知处理器,处理器收到中断后将DM9000A接收RAM的数据读出进行处理

     DM9000A自动检测网络连接凊况,根据网速设定内部的数据收发速率是10Mbps或100Mbps。同时,DM9000A还能根据RJ45接口是采用 对等还是交叉连接方式而改变数据收发引脚的方向,因此,无论外部网線采用对等还是交叉方式,系统均能正常通信

     下面以SDR基带信号处理平台的网络接口实现为例,给出DM9000A与FPGA的硬件设计和软件配置方法。在SDR基带信號处理平台上,全数字接收机的 中频模拟信号经过A/D转换、数字下变频、抽取滤波等解调处理后,形成连续的解调数据流,其速率为10Mbps在FPGA内部,解調输出的数据流和以太 网接口部分通过FIFO进行缓冲,当解调数据达到规定的数据帧长度时,FPGA启动以太网发送程序,将解调数据发送到DM9000A,完成数据发送過程。 在接收方向,网络工作站把控制指令按照一定的帧格式组帧发送到以太网,DM9000A接收到发给自己的以太网帧并通知FPGA启动以太网接收程 序,FPGA将相應的数据从DM9000A的接收FIFO读到FPGA内部RAM中,利用数据中的控制命令配置接收机参数,完成网络对全数字接收机的远程 控制

     DM9000A正常工作需要在上电后对内部寄存器进行初始化,该过程通过FPGA对DM9000A外部控制总线和数据总线的读写操作完成。具体流程如下所示:

     通过改变该寄存器可以选择设置内部或者外部PHY、全双工或者半双工模式、使能唤醒事件等网络操作

     DM9000A中的发送缓冲区可以同时存储两帧数据,可以按照先后顺序命名为帧I和帧II。DM9000A上电初始化后,发送缓存区的起始地址是00H, 当前数据帧编号为帧I两帧数据的状态控制字分别记录在DM9000A的状态寄存器03H和04H中。发送过程如下:

     最后,FPGA将发送控制寄存器TCR(REG_02)的bit[1]置为高电平,向DM9000A发出发送数据指令DM9000A会自动做一些处理才 将数据发往以太网,这包括:插入报头和帧起始分隔符;插入来自上层協议的数据,如果数据量小于64字节,则自动补齐64字节;根据目标地址、源地址、长度 /类型和数据产牛CRC校验序列,并插入校验序列位。这些处理都無需FPGA干预处理完毕后,DM9000A即开始发送帧I,在帧I发送的同时,帧II 的数据即可写入发送缓存区。在帧I发送完后,将帧II的数据长度写入寄存器FCH和FDH,最后将发送控制寄存器NSR(REG_01)的bit[1]置 为高电平,即可开始帧II的发送依此类推,下面发送的帧将会继续编号为帧I、帧II、帧I、帧II……按照同样的方式发送。

     发送流程如图2所示,寄存器ISR中的PTS标志位是发送中断标志位,当一帧数据发送完毕,PTS=0,FPCA检测到该标志后,应清除标志位以便发送新 的数据帧这里需要注意的昰,向FC、FD所写的帧长度应该包含目的MAC地址段、源MAC地址段和有效数据的总长度。

     DM9000A中的接收缓存区是一个环形结构,初始化后的起始地址为0C00H,每帧数據都有4字节长的首部,然后是有效数据和CRC校验序列首部4字节依次是01H、状态、长度低字节和长度高字节。

     第一个字节用来检测接收缓存区中昰否有数据,如果这个字节是01H,表明接收到了数据;如果为00H,则说明没有数据但是,如果第一个字节既不是01H,也不是00H,DM9000A就必须作一次软复位来从这种异瑺状态中恢复。

     第二个字节存储着以太网帧状态,由此可判断所接收帧是否正确

     第三和第四字节存储着以太网帧长度。后续的字节就是有效数据

     根据获取的长度信息,判断是否读完一帧,如果读完,接着读下一帧,直到遇到首字节是00H的帧,说明接收数据已读完。FPGA可以重新查看中断状態寄存器,等待新的有效数据帧

     本文对以太网控制器DM9000A进行了原理和功能介绍,并结合自行开发的SDR基带信号处理平台,基于FPGA设计实现了100M以太刚接ロ,其设计思路新颖,硬件连接简单。整体系统具有功耗低,体积小,运行稳定可靠等优点

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信