为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 基于FPGA的以太网控制器设计

基于FPGA的以太网控制器设计

2010-04-29 6页 pdf 318KB 31阅读

用户头像

is_693576

暂无简介

举报
基于FPGA的以太网控制器设计 第9卷 第6期 2007年6月 簖姆漂褥 Vo1.9 No.6 June.2007 基于FPGA的以太网控制器设计 许全泉,胡文江,苏里 (西安电子科技大学机电工程学院,陕西 西安 710071) 摘 要 :针对嵌入式 系统的底层 网络接 口给 出了一种 由FPGA实现 的以太网控制器的设计方 法.该控制器能支持10Mbps~100Mbps~传输速率以及半双工和全双工模式,同时可提供 MII4~口,可并通过外接以太网物理层 (PHY)芯片来实现网络接入。 关键词 :以太网;FPGA;嵌入式系统 ;以太网...
基于FPGA的以太网控制器设计
第9卷 第6期 2007年6月 簖姆漂褥 Vo1.9 No.6 June.2007 基于FPGA的以太网控制器设计 许全泉,胡文江,苏里 (西安电子科技大学机电工程学院,陕西 西安 710071) 摘 要 :针对嵌入式 系统的底层 网络接 口给 出了一种 由FPGA实现 的以太网控制器的设计方 法.该控制器能支持10Mbps~100Mbps~传输速率以及半双工和全双工模式,同时可提供 MII4~口,可并通过外接以太网物理层 (PHY)芯片来实现网络接入。 关键词 :以太网;FPGA;嵌入式系统 ;以太网控制器 0 引言 目前 .以太网802.3和TCP/IP协议是现今 嵌入式系统接人Intemet的首选协议。而以太网 (Ethemet1的核心思想是多用户使用共享的公共 传输信道。它通过带冲突检测的载波侦听多路访 问协议 (CSM CD)来控制对介质的访问。 本文给 出了完全用FPGA的控制逻辑来 实现 嵌入式系统Intemet接人 中的底层 以太网控制器的 设计。并最终设计出符合IEEE 802.3的 控制器 .从而实现了10 Mbps和100 Mbps两种传 输速率以及半双工和全双工两种工作模式,并可 通过IEEE802.3标准定义的介质独立接 口 (MII) 与以太网物理层芯片相连接 。 1 总体#设计# 以太网控制器的FPGA设计工作包括以太网 MAC子层的FPGA设计 、MAC子层与上层协议的 接口设计以及MAC与物理层 (PHY)的MII接口设 计。 该以太网控制器的总体结构设计框图如图1 所示。整个系统分为发送模块、接收模块 、MAC 状态模块、MAC控制模块 、MII管理模块和主机 接口模块六部分。发送模块和接收模块主要提供 MAC帧的发送和接收功能.其主要操作有MAC帧 的封装与解包以及错误检测.它直接提供了到外 部物理层芯片 (PHY)的并行数据接 口 (MII)。 收稿 日期 :2006—09—14 MAC控制模块则用于执行全双工模式中的流量控 制功能。MAC状态模块可用来监视MAC的操作过 程的各种状态信息,并作修改。MII管理模块提 供了标准的IEEE 802.3介质独立接口 (MII),可用 于连接以太网的链路层与物理层 (PHY)。主机接 口则提供有 以太网控制器与上层协议 f如TCP/IP 协议1之间的接 口。以用于数据的发送 、接收以 及对控制器内各种寄存器 (控制 、状态和命令寄 存器1的设置。 2 MAC发送模块 MAC发送模块可将上层协议提供的数据封装 之后通过MII接 口发送给PHY。发送模块 可接 收 主机接口模块的数据帧开始和数据帧结束标志, 并通过主机接口从外部存储器中读取要发送的数 据.然后对数据进行封装,然后通过PHY提供的 载波侦听和冲突检测信号 ,在信道空闲时通过 MII接 口将数据 以4位 的宽度发送给PHY.最后 由 PHY将数据发送到网络上。 发送模块由CRC生成模块 (crc_.gon)、随机数 生成模块 (random_gen)、发送计数模块 (tx_cnt) ._叫MⅡ管理模块卜.- 主机接口 发送模块 卜._ 上层协议 (寄存器、 呻中 PHY 发送队列、 接收队列) + _叫 接收模块 }._ 图l 以太网控制 器的结构设计框 图 埘 .ecda.crt 2007.6 电子元 器 件 主用 21 维普资讯 http://www.cqvip.com 第9卷 第6期 2oo7年6月 电子元 器 件 主 用 Electronic Component& Device Applications Vo1.9 No.6 June.2oo7 和发送状态机 ftx_statem_模块等四个子模块组 成。其内部结构如图2所示。 f·--一 CRC l I MTxClk Htus J··一 Generation J arrierSen sI 1 Collision 卜__ Tx 一.G R an d o m 。 J !MhE。 State Machine Tx startfrm I MTxErr: Tx endfrm— IM'rxD[3:0】 MII !x data[7:0l', T×m 0dule Signals 图2 IEEE 8o2.3 MAC发 送 模 块 结 构框 图 2.1 CRC生成模块 (crc gen) 该模块用于计算发送数据 的CRC值 。并将 CRC值添加到数据帧的帧校验序列字段 fFCS1 内。为了提高效率。并考虑到MAC与PHY的数据 通道为4位 ,设计时可采用4位并行CRC计算方法 [41 。 算法中可使用一个次态函数,并通过循环迭 代来模拟移位操作。这样。发送模块就可以在边 发送数据到PHY的同时,一边计算CRC,这样当 数据发送完时,CRC值也计算完成了。 2.2 随机数生成模块 random—gen) 如在发送过程中检测到冲突.发送模块就先 发送拥塞码 jam),随后停止发送。在下次重新 发送之前。发送模块会先执行一个后退 fbackoff) 操作,即发送模块等待一个半随机 (生成的随机 数有范围限制)的时间之后再开始发送。该随机 数就是由随机数生成模块产生的,它采用经典的 截断二元指数后退算法。后退的时间是一个与发 生冲突次数有关的随机数,随着冲突的次数增 多,用于生成该随机数的范围也将逐渐增大,以 减少冲突的概率。 2.3 发送计数模块 (tx_cnt1 发送计数模块由半字节计数器 fnibcnt1、字 节计数器和重试次数计数器 fretrycnt)三个计数 器组成。其中重试次数计数器 fretrycnt1可对发 送某个帧时产生冲突次数进行计数。当计数器的 值达到最大重试次数时,它将放弃重试 ,并丢弃 发送缓冲器内的数据。同时,重试计数器的值还 被随机数生成模块用于计算下次重试之前需要后 退 fbackof0的时隙的个数。 半字节计数器和字节计数器分别用于对发送 过程中的半字节 (bibble)和字节进行计数。 22 电子元 器 件 焘 用 2007.6 WWW.ecda.cn 信道忙时,发送模块会一直等待 ,半字节计 算器一直计数。当计数到额定等待时间时 f最大 帧长度的两倍 ,即3036字节时间),系统会根据 设置放弃发送或是一直等待 f可选功能)。一旦信 道空闲再进人帧间间隙周期 f>196个比特时间) [51 。 由半字节计数器从零开始计数。帧间间隙分 为两个部分 。在前2/3个周期中。如果检测到信 道忙信号,则半字节计数器复位,发送模块重新 开始等待;在后1/3周期中,即使检测到信道忙 信号 。半字节计数器也不会复位,而是继续计 数,以保证每个站点公平的竞争信道。而当半字 节计数器的值达到帧间间隙周期时。此时如果有 数据等待发送 ,发送模块就开始发送数据。此 外。半字节计算器还用于前序码的生成和短帧的 判断。在数据帧的长度小于最小帧时。发送模块 必须根据系统设置进行填充或不填充。 字节计算器还可用于滞后冲突 flate collision) 和超长帧的判断。当滞后冲突发生时,正在发送 的数据将被丢弃。超长帧的判断则是从对帧内容 f包括FCS)进行字节计数,如果字节计数器的值 大于最大有效帧的长度 (1518个字节),发送模块 就根据系统设置 f是否支持超长帧1丢弃或发送。 2.4 发送状态机模块 ftx—statem) 发送状态机模块是整个发送模块的核心。主 要 用 于 控 制整 个 发 送 过程 。发 送 状态 机 由I— die _ State、 Preamble _ State、 Data0 _ State、 Da— ta l _ State、 PAD — State、 FCS_-State、 IPG State、 Jam_State、BackOff_State、Defer__State等十个状 态组成。其状态转移图如图3所示。 系统复位后。发送模块即进人Defer_State状 态 ,并一直检测载波侦听 (CarrierSense)信号。 当载波侦听信号变成无效 (表示信道空闲)时 , 状态机进入IPG—State状态。尔后 ,在等待一个帧 间间隙之后。状态机则进人Idle—State状态。如果 在帧间间隙的前2/3个周期检测到信道忙信号 , 状态机将重新回~1]Defer_State状态。 状态机进人Idle—State状态之后,发送模块将 检测载波侦听信号和主机接口的发送请求。若主 机模块请求发送。状态机将进人Preamble—State状 态,发送模块即通知PHY发送开始,同时开始发 送前序码 f7个0x5),然后发送帧起 始定界符 维普资讯 http://www.cqvip.com 第9卷 第6期 20o7年6月 霸据黎滞唐 Vol_9 No.6 June.20o7 图3 发送状 态机的状态转移图 (SFD,0xd)。状态机进 入Data0_State后 ,发送模 块将发送一个数据字节的低4位 (LSB nibble),将 当其进入Datal—State状态后,发送模块则发送数 据字节的高4位 (MSB nibble)。随后,状态机一直 在data0和datal之间循环 ,直到数据发送完毕。 当还剩一个字节时.主机模块将通过发送帧结束 信号来通知发送模块。如果数据帧的长度大于最 小帧并且小于最大帧.状态机就进入FCS_State状 态.此时发送模块则将CRC生成模块生成的CRC 值添加到帧的FCS字段中并发送给PHY。帧发送 完 之后 ,状 态机 进入 Defer_State状态 。之后 是 IPG _ State和Idle _ State状态。此后状态机又 回到初 始状态。以重新等待新的发送请求。 如果数据帧的长度小于最短帧.状态机就进 入PAD 状态 .发送模块根据系统设置是否_State 在数据之后来添加填充码。然后 ,状态机进入 FCS _ State状态。如果数据帧的长度大于最大帧, 而系统设置又支持发送超长帧。那么。状态机就 进入FCS—State状态;如果不支持发送超长帧,发 送模块将放弃发送 .状态机直接进入Defer状态, 然后是IPG状态 .最后 回~UIdle状态。 在发送数据的过程中.发送模块会一直检查 冲突检测信号 (collision detected)。如果发现冲突 且状态机正处于Preamble_ State.状态机将在发送 完前序码和SFD之后进入Jam_State.并发送拥塞 码,然后进入BackOff状态,以等待重试。之后 , 状态机经过Defer和IPG回到Idle状态 。如果 此时 重试次数计数器的值没有达到额定值.发送模块 将重新开始发送刚才的帧.并将重试次数计数器 的值加1;如果发现冲突且状态机处于data0、da— ta1或FCS状态,而且没有超过冲突时间窗.那么 状态机将马上进入Jam状态发送拥 塞码 .之后经 过BackOff、Defer、IPG、回到Idle,并根据重试 计数器的值决定是否重新发送刚才的数据帧;如 果检测到发生冲突的时间超过了冲突时间窗.状 态机将进入Defer状态 ,然后经过IPG到IDLE状 态,并放弃重试 。 在全双工模 式 中发送 帧时 .不 会进行延迟 (defer),发送的过程中也不会产生冲突。此时, 发送模块将忽略PHY的载波侦听和冲突检测信 号。当然,帧与帧之间仍然需遵守帧间间隙的规 则 。因此 ,全 双工 模 式 下 的发 送 状 态 机 没有 Jam_State、BackOff_State、Defer_State~个状态。 3 MAC接收模块 MAC接收模块负责数据帧的接收。当外部 PHY将通信信道的串行数据转换为半字节长的并 行数据并发送给接收模块后.接收模块会将这些 半字节数据转换为字节数据.然后经过地址识 别、CRC校验、长度判断等操作后,再通过主机 接口写入外部存储器,并在主机接口模块的接收 队列中记录帧的相关信息。此外,接收模块还负 责前序码和CRC的移除。 接收模块 由CRC校验模块 、地址识别模块 、 接 收计数器模块 和接收状态机 模块等 四部分组 成 ,图4所示是接收模块的结构框图。 f··—一 I MRxCIk a【us』· 一 ] I 卜一 Rx 钽 I State l M achine J MRxDV . RX starffrm AMIL,d3[3:01 蠢 Ⅶ I Rx module Signals 图4 接收模块框图 WWW.ecdo.cn 2007.6 电 子元 器 件 盔 用 23 维普资讯 http://www.cqvip.com 第9卷 第6期 2007年6月 电子元 器 件 主 用 Electronic Component&Device Applications V0I.9 No.6 June.2007 接收模块中的CRC校验模块可通过检查输入 帧的CRC值来验证帧的正确性。其算法与CRC生 成模块相同。 地址识别模块用于决定是否接收收到的帧. 接收模块首先接收输入帧而不管目的地址。随后 由地址识别模块检查帧中的目的地址。若MAC被 设置为混杂模式 fPromiscuous mode)且 目的地址 为广播地址 。同时允许接收广播帧。帧则被接 收。否则。帧被丢弃。 接收计数器模块由字节计数器 (Bytecnt)和 帧间间隙计数器 (IFGcnt1组成。字节计数器在 接收帧过程中将对字节进行计数。以用于识别帧 中的各个字段 (前序码 、目的地址字段 、数据、 FCS等)以及判断超长帧。帧间间隙计数器则对 两帧之间的间隔时间进行计数.以用于判断下一 帧数据的开始。IEEE 802.3规定。两帧之间的间 隔至少必须为96个比特时间 f10 Mbps中为9 600 ns,100 Mbps中为960 ns)。如果两帧之间的间隔 小于要求。帧将被丢弃。 接收状态机为接收模块的核心。用于控制整 个 接 收 过 程 。 接 收 状 态 机 由 Idle _ State、 Drop — State、 Preamble — State、 SFD — State、 Da— taO _ State、Datal — State等六个状态组成,其状态 转移图如图5所示。 图5 接 收 状 态转 移 图 系统复位后 ,状态机处于Drop—State。如果 此时MII的数据有效信号 (MRxDV)无效,状态机 马上进入Idle_State状态 ,并一直处于Idle等待接 收输入帧。 当接收模块检测到数据有效信号之后。状态 机将进入Preamble—State,并开始接收前序码。此 后再状态机进入SFD—State,接收一个字节的帧起 始定界符。之后,根据IFGcnt计数器的值进入不 同的状态。如果 。IFGcnt所确定的时间大于96个 比特时间.状态机将进入Data0状态以接收字节 的低4位 。然后是Datal状态,并接收字节的高4 24 电予元 嚣 件 主硐 2007.6 www.ecda.cn 位,之后又回到Data0状态。状态机就一直在这 两个状态之间循环。直到数据接收完毕 (PHY清 除MRxDV信号1后进入Idle,以重新等待接收新 的数据;如果接收到帧起始定界符时,IFGcnt计 数器所确定的时间小于96个比特时间。那么状态 机将进f1.Dmp—State状态,并一直维持该状态直 到数据有效信号结束 fPHY清除MRxDV信号)。之 后,状态机再回~Uldle等待接收新的数据。 如果在接收前序码、帧起始定界符和数据期 间。数据有效信号被清除,那么,状态机将回到 Idle。 4 MAC的其它模块 4.1 MAC状态模块 在接收过程的状态信息 中。接收错误表明 PHY在接收过程中检测到了错误;接收到无效符 号则表明接收到的帧中包括无效 (PHY无法识别) 的符号;滞后冲突表明接收帧时检测到滞后冲突 信号:超短帧表明接收到的帧小于最短有效的长 度:超长帧表明接收到的帧大于最大有效帧的长 度 ;半字节对齐错误表明接收到的半字节不是偶 数 f即帧的长度不是字节的整数倍);接收溢出则 表明接收模块来不及处理接收到的数据而导致接 收FIFO溢出。 在发送过程的状态信息中,超过重试限制表 示由于冲突导致的重试次数超过了额定值;滞后 冲突表示发送帧的过程中检测到的冲突信号超过 了规定的冲突时间窗;延迟 ,表明在发送帧之前 检测到信道忙。 4.2 MAC控制模块 MAC控制模块提供有全双工操作中的流量控 制功能 .流量控制可通过发送和接收PAUSE的 MAC控制帧来实现。当接收站点的接收缓冲区 fRx FIFO)快溢出而主机接口又来不及取走数据 时.系统就会发出流量控制请求。‘MAC在接收到 流量控制请求之后,即发送PAUSE控制帧,以使 数据发送站点在指定的时间内暂停发送数据。 数据发送站点接收到PAUSE控制帧后,便可 根据帧中的参数设置PAUSE定时器。PAUSE定时 器在减到0之前 。发送模块将暂停发 送数据 维普资讯 http://www.cqvip.com 第9卷 第6期 20o7年6月 姆壤镣瘗 Vol_9 No.6 June.20o7 (PAUSE控制帧除外)。PAUSE定时器减到O之后, 发送模块将恢复发送数据。 4.3 MII管理模块 MII管理模块用于控制MAC与外部PHY之间 的接口.以用于对PHY进行配置并读取其状态信 息 。该接 口由时钟信号MDC和双向数据信号 MDIO组成。MII管理模块则由时钟生成模块 、移 位寄存器模块和输出控制模块三部分组成。 时钟生成模块可以根据系统时钟和系统设置 中的分频系数来产生MII管理模块的时钟信号 MDC f10 Mbps速率时为2.5 MHz,100 Mbps速率 时为25 MHz)。 移位寄存器模块既可用于对PHY的控制数据 进行写入操作,也可用于对PHY的状态信息进行 读出操作。写控制数据时,移位寄存器根据其他 模块的控制信号将并行控制数据转换为串行数 据;而在读状态信息时,移位寄存器则将PHY的 串行数据转换为并行数据,MAC中的其他模块可 将该并行数据写入适当的寄存器。 由于MDIO是双向信号.因此,输出控制模 块就用来决定MDIO是处于输入状态还是输出状 态。当MDIO处于输出状态时 ,移位寄存器输出 的串行控制数据在经过时钟同步后发送到PHY; 当MDIO处于输入状态时,移位寄存器将数据线 上的串行数据转换为并行数据。 MII地址和MII控制命令、接收和发送队列的长度 以及本机MAC地址等。 上层协议通过MAC发送和接收数据的操作主 要由主机接口模块内的两个队列来进行管理.这 两个队列用于对等待发送的多个帧和接收到的多 个帧进行排队。 发送队列主要记录等待发送的帧的相关信 息、发送该帧时对MAC的设置以及该帧发送完之 后产生的状态信息。帧的相关信息包括帧的长 度、帧在外部存储器中的地址、该帧是否准备好 发送以及队列中是否还有其它帧等待发送:对 MAC的设置则包括中断使能、填充使能、CRC使 能:产生的状态信息包括成功发送之前的重试次 数、由于达到重试限制而放弃发送、发送时产生 的滞后冲突以及成功发送之前发生过的延迟。 接收队列主要对接收到的数据帧进行排队并 记录每个接收到的帧信息。这些信息包括帧的长 度、是控制帧还是普通数据帧、帧中包含无效符 号、接收到的帧太长或太短、发生CRC错误、接 收的过程中发生滞后冲突、帧是否接收完、队列 中是否还有其它已接收到的帧以及帧存储在外部 存储器中的地址等。该位同时队列中还有针对每 个帧的设置位.用来设置是否在接收到帧时产生 中断。 发送队列和接收队列的长度都可以在控制寄 存器中进行设置。 4.4 主机接口模块 5 综合结果 主机接口是运行以太网的上层协议 f如 rCP/ IP协议1与MAC控制器的接 口。通过该接 口,上 层协议可以设置MAC的工作模式并读取MAC的状 态信息。该接口还可用于上层协议与MAC之间的 数据交换。 主机接口模块内有一组寄存器,可用于存储 上层协议对MAC设置的参数以及MAC的状态信 息。上层协议对MAC设置的参数包括接收超短帧 的使能、添加填充码使能、持发送超长帧的使 能、添~tlCRC校验值使能、全双工模式或半双工 模式 、持超长延迟 fDefer)使 能 、混杂模式 fPromiscuous)、接收广播帧使能、发送和接收使 能、中断源和中断使能、帧间间隙的长度、最大 帧和最小帧的长度 、重试限制和冲突时间窗 、 本设计采用Verilog语言描述 .FPGA芯片使 用Ahera公司的Stratix一6.整个设计~Synplicity公 司的Synplify Pro 8.1综合后 .可在Ahera公 司的 Quartus II 4.2下布局布线.最后用Mentor Graphics 公司的ModelSim软件进行仿真。表1所列是Syn— plify Pro 8.1综合结果。 从表1可以看出,该以太网控制器使用的逻 辑单元为2273,占用的存储器资源为9 216 bits, 最终的时钟频率可达到101.16 MHz.因此,能够 满足100 Mbit/s的速率要求。 (下转第29页) 表1 系统在FPGA中的综合结果 WWW.ecda~cn 2007.6 电子元嚣件主用 25 维普资讯 http://www.cqvip.com 第9卷 第6期 2007年6月 瞬姆霪缔 厕 V01.9 No.6 JuBe.2007 INL、DNL、SNR、SINAD和有效位数 (ENOB) 等。在本系统的测试过程中,AD采样时钟为40 MHz且输入信号为20 kHz的正弦信号时,其实际 测试功率谱的密度如图2所示。 109 10。 10' 10 墨10 l 0. 10 10 Pxx-X Pow日 Spectral Density ⋯ ⋯ ⋯ ‘ ⋯ ⋯ ⋯ 。 ⋯ ⋯ ⋯ 。 ⋯ ⋯ ⋯ ’ ⋯ ⋯ ⋯ 魍 燮 ⋯ ⋯ ⋯ 。 ⋯ ⋯ ⋯ ‘ ⋯ ⋯ ⋯ 。 ⋯ ⋯ ⋯ ’:⋯ ⋯ ’ ⋯ ⋯ ⋯ 。 ⋯ ⋯ ⋯ 。{⋯ ⋯ ⋯ · ⋯ ⋯ ⋯ 。t⋯ ⋯ 。⋯ ÷⋯ ⋯ ⋯ 。 ⋯ ⋯ ⋯ 一{⋯ ⋯ ⋯ ” 燮 糍 鎏 ⋯ ⋯ ⋯ -{⋯ ⋯ ⋯ ÷⋯ ⋯ ⋯ -÷⋯ ⋯ ⋯ ·÷⋯ ⋯ ⋯ -÷⋯ ⋯ ⋯ -÷⋯ ⋯ ⋯ -{⋯ ⋯ ··⋯ lIIIIIIl|I lI£IIIII££ |.|l|l1.1. IIIII|lII! I±II!|.|.I玉llIII-t|ll |.|llIlI !如lIII!Ill” 臻 誊 警 ⋯ ⋯ ‘ ⋯ ⋯ ⋯ 。÷⋯⋯⋯。÷⋯⋯⋯’÷⋯⋯⋯。÷⋯⋯⋯。 ⋯⋯⋯” ⋯⋯⋯一 篷! ! 搂 } 壤!!!ii;黪 §gl li }l !i纂!{i ! 婺i i! l ll}l ::: :::::x::::::::::x::::::::::x::::::::::x :::::::::: :::::::::: :::::::::: ::::::::::: ⋯ 。 。 “ ⋯ ⋯ 一 ÷⋯⋯⋯。÷⋯⋯⋯。÷⋯⋯⋯‘÷⋯⋯⋯‘÷⋯⋯⋯。;__⋯⋯⋯ !}{至i攫}!!}!! 攫 搬 g 蹬 攫攫攫 l 燮 :::::::::: : ,‘;逆: :::::::::: :::::::::: :::::::::: ::::::::::{:::::::::::{::::::::::: ⋯⋯ ⋯‘ ⋯ ⋯’—’ ::⋯ “了⋯ ⋯⋯。 ⋯⋯ ⋯。 ⋯ ⋯⋯ 。:⋯⋯ ⋯一:⋯ ⋯⋯ ” 型型型塑⋯IIIII⋯Iiili⋯iiiii⋯iii! ∞ 占_— ——-}_—— —— —— — -— }— , X10‘ 图2 20kHz信号的功率谱 图 图2中,主频率集中在20 kHz处,同时还有 一 些噪声频率,最大能量值为73.95。利用Matlab 软件可以计算出SINAD为63.2 dB。根据ENOB= fSINAD一1.76)/6.02,可得出:ENOB为10.5。当 输入为0 V时,理论上的AD输出值应为7FF,而 实际测得的输出数据的平均值为7FB,由此可求 出其偏移误差为04H;同样,输入为1 V时,测得 系统的增益误差为03H。AD转换位数为12位,而 被设置为1 V.则转换精度为1 V/2 2=0.024 mV。 6 结束语 经测试.本系统能对单一频率的模拟信 号准确地进行数据采集和恢复。由于本系统AD 的最大采样速率是40 MHz,FIFO深度为4 KB,故 对速率在7.5 kHz一20 MHz的信号.写满一次FIFO 足已使采样点多于一个周期 ,又不至出现混叠, 这样就可以准确地恢复出信号。当然,为了满足 各个频率范围内模拟信号的采样.也可以考虑扩 大FIFO深度、改变AD采样时钟频率。总之,本 文提出的这种 由MCU、FIFO实现的采集系统方案 比较简单,且实用可靠。 参考文献 【l】 颜荣江.EZ-USB 2l0o系列MCU原理、编程及应用【M】. 北京:北京航空航天大学出版社,2002. 【2】 http://www.analog.corn/UploadedFiles/Data_Sheets/ 268958357AD9238 _ b.pdf. 【3】 hap:l/focus~ti com/lit/ds/scas636e/scas636e.pdf. 【4】 http://www.analog.corn/UploadedFiles/Data_Sheets/ 2O358l387AD8l38』 oaf. 【5】 陈怀琛,吴大正,高西全.matlab~在电子信息课程中 的应用【M】.北京:电子工业出版社,2004. 【6】 曾峰,巩海,曾波.印刷电路板设计与制作【M】.北京:电 子工业 出版社 .2005. 【7】 【~]HenryW.0tt.电子系统中噪声的抑制与衰减技术 『M】.北京:电子工业出版社,20o3. (上接第25页) 6 结束语 本文给出了完全用FPGA实现嵌入式以太网 控制器的设计方法 .该方法只需要外接物理层芯 片 fPHY)和集成有TCP/IP协议的单芯片 (即硬协 议)或在嵌入式操作系统中运行TCP/IP协议 (即 软协议1就可以实现嵌入式系统的高速互联网接 入。从而有效地降低成本,减小版面积和布线复 杂度,提高整个系统的集成度。因此,该方法具 有一定的实际意义。 参考文献 【1】 AndrewS.Tanenbaum.计算机网络(第四版)【M】.北京: 潘爱民,译.清华大学出版社,2004. 【2】 赵曙光,郭万有.可编程逻辑器件原理、开发与应用 【M】.西安:西安电子科技 大学出版社,2000. 【3】 CiseoSystem公司.网络互连技术手册【M】.北京:李莉, 童小林.译.人 民邮 电出版社.2004. 【4】 Rajesh Nair,Gerry Ryan and Farivar Farzaneh.A Sym- bol Based Algorithm for Hardware Implementation of Cyclic Redundancy Check(CRC),Bay Networks. 【5】 IEEE Std 802.3,2000 Edition,IEEE Standard for Infor- mation technology ——Telecommunications and informa. tion exchange between systems ——Local and metropoli· tan area networks-Specific requirements.Part 3:Carrier sense multiple access with col lision detection(CSMM CA)access method and physical layer specifications. .ecda.cn 2Oo7。6 电子元 器 件 主用 29 维普资讯 http://www.cqvip.com
/
本文档为【基于FPGA的以太网控制器设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索