您的当前位置:首页正文

基于FPGA的CPU多MII通信接口实现

2022-09-24 来源:个人技术集锦
第3O卷2010年第2期 2月 核电子学与探测技术 Nuclear Electronics 8L Detection Technology VoL 3O No.2 Feh 2010 基于FPGA的CPU多MII通信接口实现 郁专,王兵,武杰 (中国科学技术大学近代物理系,安徽合肥,230026) 摘要:为实现嵌入式C J和两路数据采集系统之间的长距离高速通信,利用F GA将嵌入式 的MII(介质无关接口)扩展成两个40Mbps的非标准数据率MII,FPGA通过这两个MII和长距离以太 网收发器通信,接收和汇聚来自220米以外的数据采集系统的数据,数据采集系统的最高数据率为 24Mbps,这些数据最后通过嵌入式CPU的MII发送给CPU。全部逻辑设计在Xilinx的XC3SlOOE上 实现,通过基于S3CA510B的测试平台测试验证其正确性,在实际使用中效果良好。 关键词:FPGA;嵌入式CPU MIl;长距离以太网 中图分类号:TP274+.2 文献标识码: A 文章编号:0258-0934(2010)01-0243--04 早期的嵌人式CPU是各种类型的8位和 16位单片机,近年来基于ARM内核的32位 处理器以其高性能、低价格,已经得到了广泛运 用。在具体工程应用中,经常出现嵌入式CPU CPU较多资源。MAC(Media Access Con- troller)在嵌人式CPU上比较常见,其通过 MII与PHY(物理层)芯片进行数据交换,再由 缺乏合适的接口和外设进行通信的情况。现实 中一般使用FPGA扩展CPU的接口来解决。 对于一些低速应用,可以扩展CPU的UART 接 ̄D,23,这种方法受到UART数据率的限制, 经常不能满足高速通信的要求。在一些高速应 用中,也有基于LVDS接口[3 ]的设计,但 LVDS接口在嵌入式CPU中很少见。还有一 PHY芯片把物理层的信号编解码之后进行传 输和接收。MII传输数据率能达到 100Mbps[引,为此我们采用FPGA将MII接口 扩展成高速的通信接口。嵌人式CPU上的 MAC控制器一般都带有DMA和FIFO(或者 高速缓存),FPGA理论上可以作为主设备来 操作,从而节省了CPU的资源。 本文做了这样的尝试,将一个数据率高达 100Mbps的MII扩展成两个40Mbps的MII。 种广泛使用的方法是将FPGA当作一个存储 器来操作,相当于扩展CPU的SRAM接口。 使用两片长距离以太网物理层芯片接收采集系 统的数据。该设计使用Verilog HDL语言实 现,运行在Xinlix公司Spartan3一E系列的 XC3S100E匕。 文献[5]基于这种方法实现了数据率高达 500Mbps的通信传输,但是这种方法中FPGA 作为从设备,存在CPU参与过多的问题,特别 是很多低成本嵌入式CPU的sI M控制器并 不包含DMA或FIFO,这时通信就需要占用 1 MⅡ介绍 MII(Medium Independent InteHace)是 收稿日期:2009-01-09 基金项目:国家自然科学基金资助项目(10505020) 作者简介:郁专(1982一),男,江苏海门人。博士研 IEEE802.3规定的与介质无关的接口,负责 MAC和以太网PHY之间的通信。MII接口 一共有16根信号线,可以分成发送信号线,接 243 究生,研究方向是高精度数据采集。 收信号线以及网络状态信号线三组。 发送信号线由发送时钟TX_CLK,数据线 TXD[3:O],发送使能T EN和发送错误TX —ER组成。 接收信号线由接收时钟RX._CLK,数据线 —RXD[3:O],接收有效RX_DV和接收错误RX ER组成。 图3系统拓扑图 . 网络状态信号线包含载波侦听信号CRS 果工作在十兆模式下,数据率显然达不到所要 和冲突信号COL。 求的24Mbps,而工作在百兆模式下,收发器的 图1和图2分别给出了MII接口的接收和 最大传输距离是200米[7],小于要求的220米。 发送时序。 VX CL ̄ LXB 图2 MII接收时序 通过MII接口发送一个完整的数据帧包 含以下五个部分[6]:帧间隔,前导段,帧起始符, 数据和帧结束符。其中帧起始符的比特序列为 10101011,在逻辑实现中,可以通过寻找“5D” 这个关键字来判断数据帧的起始。 2 MII扩展电路的设计 2.1应用背景 本设计应用于某大型数据采集系统中,该 系统拓扑结构如图3所示。采集节点负责信号 的获取和数字化。采集节点间的距离是220 米,每个节点的数据率为96kbps。交叉节点负 责汇总两边所有采集节点的数据。根据系统设 计要求,交叉节点两边最多各有250个采集节 点,每个节点的数据都向交叉节点汇聚,这样交 叉结点最多需要汇聚两个通道24Mbps的数 据。 考虑到采集节点间距离长达220米,同时 数据率高达24Mbps,我们选用长距离PHY芯 片ANX5802作为收发器。该收发器的标准传 输数据率是10Mbps和100Mbps["。收发器如 244 为了延长传输距离,可以降低ANX5802的参 考时钟频率将其数据传输率由100Mbps降低 到40Mbps,形成一个非标准的传输速率。这 种方法还可以降低功耗[7]。由此我们给出了如 图4所示的设计方案,采集节点中,矸 A通过 40Mbps的MII接收和转发ANX5802的数据。 交叉节点中,FPGA通过两个40Mbps的MII 接收 5802的数据,将数据汇聚,再通过 100Mpbs的MII发送给CPU。 图4系统设计方案 2.2硬件电路框图 根据系统设计要求,我们给出了如图5所 示的交叉节点硬件设计。 图5交叉节点设计框图 系统的硬件部分包含一片FPGA和两片 长距离PHY芯片ANX5802,在图5上分别标 记为ANX5802A和ANX5802B。FPGA选用 Xilinx公司低成本系列Spartan3一E中的 XC3S100E。两块ANX5802接收两边采集节 点汇聚的数据,接收时钟(MII—Rx—CLK—A和 沿,表明收到一个有效帧,标记fifoa_inc(fifob— MII-=RX CLK--B)为10MHz,对应的数据率为 40Mbps,这样的数据率足够应付协议开销。 FPGA接收这两个非标准MI1接口的数据,将 inc)为1,指示FIFO_A(FIFO—B)里面帧的个 数需要加1。同时轮询检查两个FIFO里面帧 的计数是否为零,如果FIFO_A(FIFO_B)中不 这两端的数据汇聚后通过标准的MII接口提 供给CPU。 2.3 I GA逻辑的工作流程 如图5所示,FPGA逻辑由两个异步FIFO (分别记为FIFO_A和FIFO_B)和一个判决逻 辑构成。异步FIFO使用FPGA中的块状 RAM实现,数据宽度是4bit,深度为2048。 ANX5802在判决逻辑的控制下把数据写入到 异步FIFO中,同时判决逻辑读取FIFO,通过 标准MII接口将F1FO中的数据发送给CPU。 FIFO的写时钟(图5中的MILRX—CLK—A和 MILRX—CLK—B)由ANX58O2的接收时钟提 供,频率为10MHz,输人数据端和ANX58O2 的RXD相连。FIFO的读时钟rd—clk就是标 准MI1接口的接收时钟(图5中RXCLK),该 时钟由本地晶振提供,频率为25MHz,FIFO的 输出数据端经过锁存后提供给标准MII接口 的RXD信号线。判决逻辑提供读使能信号(rd —en)和写使能信号(wr—en)给异步FIFO,控制 其读写,实现两端数据的汇聚。 首先分析两片ANX58O2往FIFO的写数 据的过程。两个FIFO的写操作是独立的,现 以ANX5802A为例,ANX5802B类似。逻辑 检测MII…RX DV A信号,如果检测到MII— RX_DV_A为高同时MII—RX—ER—A为低,表 明收发器ANx58O2A上有有效信号,使用状态 机读取MII—R 一A上的数据并寻找关键字 “5D”,即帧起始符,找到帧起始符后,由于我们 事先定义数据帧的开头两个字节是“57 4A”, 所以要接着使用状态机匹配这两个关键字,如 果匹配成功,表示之后是有效数据,给出写使能 信号wr_en,ANX5802A开始往FIFO写人数 据。如果检测到MILRX-DV-A变回低,表明 ~帧结束,延迟6个时钟周期后撤销写使能信 号wr_en,这样保证帧之间的间隔。 下面分析从FIFO读取数据转发到标准 MI1接口的过程。判决逻辑需要决定从哪个 FIFO读取数据,为此我们维持两个计数器分 别统计两个FIFo里帧的个数,如果检测到 MILRX DV—A(或MII—RX—DV—B)的下降 为空,那么从FIFO_A读数,给出rd_ena信号, 标记下次需要轮询FIFO—B(FIFO—A)以及标 记fifoa_dec(fifob—dec)为1,指示对应的计数 器需要减1。这样的轮询机制保证两个FIFO 能被公平得轮询到。 根据fifoa—inc(fifob—ine)和fifoa—dec(fi— fob_dec)对计数器进行如下调整:如果fifoa— inc为0且fifoa_dec为0,FIFo-A帧计数器值 不变;如果fifoa—inc为1且fifoa—dec为1, FIFO A帧计数器值不变;如果fifoa—inc为0 且fifoa_dec为1,FIFO_A帧计数器值加1;如 果fifoa._inc为l且fifoa—dec为0,FIFo_A帧 计数器值减1。 对FIFO_B的帧计数器进行类似操作。 逻辑选定FIFO读数后,会给出读使能信 号(rd_ena或rd—enb),读取FIFO中的内容并 且寻找帧起始符,即匹配关键字“5D”,找到 “5D”后撤销读使能信号,依照IEEES02.3协议 向标准MII接口发送前导码和帧起始符,发送 完毕后再给出读使能信号,接着从FWO中读 出本帧的长度,并依照这个长度发送整个帧,发 送完整个帧后,延迟8个时钟周期再撤销写使 能信号wr en,保证数据帧之间的间隔。 通过上面的操作,我们实现了两端数据的 接收和汇聚。 3实现与测试 逻辑使用Verilog HDL语言实现,Model— Sim仿真,仿真无误后,将逻辑烧写到 XC3S100E中。测试配置如图6所示。 … ……: 图6测试示意图 245 图6中的测试接收板包含一块128Mbit的 SDRAM,CPU选用的是Samsung公司ARM7 系列¥3C4510B,其工作频率是50MHz,自带 MAC。 GA将数据率为100Mbps的MII接口扩展成 两个40Mbps的非标准数据率MII,实现了嵌 入式CPU和两路远距离数据采集系统之间的 高速通信。事实上,利用FPGA丰富的接口, 在本设计的基础上可以很容易地将MII扩展 成其他通信接口。 参考文献: 测试流程如下:PC机通过串口发送采集命 令给接收测试板,接收测试板再通过交叉节点 的485总线将采集命令发送给仿真节点,仿真 节点用于模拟多个采集节点产生的数据流。两 的数据帧,通过40Mbps的非标准MII接口发 送给交叉节点,交叉节点接收这些数据帧后将 数据汇聚到标准MII接口给CPU,CPU中 姚东苹.用FPGA实现异步串口与同步串 个仿真节点收到采集命令后分别产生固定个数 [1]李文亮,口的转换[J].电子工程师,2007,33(11):52—53. E2]陈柄权.基于FPGA器件的RS232--C接口设计及 其扩展EJ].攀枝花学院学报,2006,23(5):106— 109. 控制器的DMA操作将数据帧存储到 SD ,仿真节点发送完毕后,CPU接收并统 计帧的个数,统计结果通过串口发送给PC机。 如果接收到的帧个数等于两个仿真节点产生个 数的总和,表明逻辑运行正常。我们测试了两 边仿真节点以全速率40Mbps发送的情况,测 试结果表明CPU能够接收这80Mbps的数据, 验证了逻辑设计的正确性。本设计最后使用在 该数据采集系统的样机系统上,运行正常。 E33金鹏,邓欣,宋万杰,吴顺君.Ff (4):44—47. 与DSP的高速 通信接口设计与实现[J].电子技术应用,2007,23 [4]刘飞字.基于FPGA的高速通信接口设计[J].实 验科学与技术,2005,3:l13—114. [5]黄圣春,习勇,魏急波,赵海涛.基于MPC8260和 FPGA的DMA接口设计[J].单片机与嵌入式系 统应用,2007,9:23—26. [6]IEI ̄E Computer Society.IEEE 802.3 一2005 SECTION Two[s].2005.12.12. 4总结 本文介绍了一种基于嵌入式CPU的MII 扩展高速通信接口的新方法,设计中利用FP— [7]Analogix Semiconducmr,Inc.ANX5802 Data Sheet[R].2005.1 1. FPGA Based Implementation of the Communication Interface between CPU and MuJtj—MII YU Zhuan,WANG Bing,WU Jie (Department of Modem Physics,USTC,Hefei 230026,China) Abstrmt:Communication interfaee between embedded CPU and two channel data aequisition systems was implemented based on FpG八These two ehanl2el data acquisition systems were 220 meters away and the peak data rate was 24Ⅳfbps per channeL FPGA was used to expand embedded CPU's MII(Media Inde- pendent Interface)into two 1 whieh worked at a nonstandard bit rate(40Mbps).communicated with two long range Ethemet transceiver and received data from these two ehannel data acquisition systems. The data was merged by FPGA nd atrnsamitted tO embedded CPU through CPU's MIL The whole logic design was implmenteed in Xilinx's XC3SIOOE device.verified on the hardware test platforlTl based Oil an ARM ehip(S3CA510B)and worked well in practice. Key words:n A,embedded CPU,MII,Long range Ethernet 246 

因篇幅问题不能全部显示,请点此查看更多更全内容