PC为中心的互联网应用现已开始转向以嵌入式设备为中心。据网络专家预测,将来在互联网上传输的信息中,有来自小型嵌入式系统,因此,对嵌入式系统接入因特网的研究是有必要的。目前有两种方法可以实现单片机系统接入因特网:一种方法是利用网络控制网卡实现网络接口,由单片机来提供所需的网络协议;另外一种方法是利用具有网络协议栈结构的芯片和物理层的接收器来实现网络接口,主控制器只负责往协议栈结构芯片的某个寄存器里放上适当的数据。与此同时,用实现单片机系统接入因特网的方法也日益受到人们的重视。本文提出采用实现网络协议栈,介绍以太网接口协议的硬件实现方法,其中的奇偶模块分频器和异步等通用器件在日常中也很有应用价值。
1 硬件结构框图
2模块发送时序波形图
MII接口协议
,数据链路层包括逻辑链路控制子层和媒体访问控制子层。其中单独作为一个子层完成数据帧的封装、解封、发送和接收功能。物理层的结构随着传输速率的不同而有一定差异,在和以太网中,依次为子层、子层和子层。接口是连接数据链路层和物理层的接口,因为本设计中以太网速率采用,所以接口实际连接的是子层和子层。根据协议,要求接口具有的功能有:数据和帧分隔符的读写时钟同步,提供独立的读写数据通道,为层和层提供相应的管理信号,以及支持全双工模式。
MII接口功能及其
以太网的物理层采用编码,为了扩展接口的功能,要求其能够实现直接物理层位数据和层位数据的发送接收传输转换。即把从子层用于发送的数据和从用于接收的数据存入数据缓冲,同时要求接口将从传来的信号、转为信号和,并提供给子层用于载波监听和冲突检测,以及发送和接收时的时钟、使能、错误位信号的传送。扩展功能后的接口硬件结构框图如图所示,由编解码器、控制信号与位位转换、分频器及双口个模块组成,而且能够同时支持半双工和全双工模式。
FIFO。这是接口设计中的难点本身也具有很高的实用价值。
2n+1等占空比奇数分频的基本思路是:先通过模的计数器实现占空比为的奇数分频比如三分频,正负波形的占空比为,然后有两种方法可以实现等占空比的奇数分频,一种是当计数器至时,让此波形与输入时钟波形相“与”,不过可能会存在毛刺输出;另一种是当计数器至时,在输入时钟的下降沿触发产生低电平脉冲,然后再和原波形相“或”,这种方法没有毛刺产生。因此本文采用第二种方法。
4b/5b的编码和解码同时集中到一个模块上实现。数据可以直接编、解码。层有个特殊的码:为帧间填充码;、和、是两对成对出现的码组,分别为数据流开始和结束时的分隔符;则是数据错误位,用以表示错误。数据接收时,可以直接对这几个码组解码,则产生信号。发送时,需要对从接口传来的信号位进行判断:若上升沿,则在头两个前导码时编码输出;若下降沿帧间隔,则在后输出,然后一直用为数据流间隔填充码;若有触发,则编码输出。
FIFO的设计
PCS层数据的物理层时钟以及层总线时钟不同步的需求,需要有异步的读、写时钟。当冲突检测为高时,要求发送帧执行退回操作回至中等待下一个信号。
Reset,高电平触发;设置位寄存器保存的数据;设置和为读、写指针;和为进位标志,和为的时候取反;设置、、、为数据空、满指示。
FIFO_RD为,则,;为,则,。、位信号值的变化通过借助和的进位输出来判断实现。当读写两个指针的值相等,即时,判断异或的值:若是,则满,;若是,则空,。如果则,不为空也不为满。
FIFO_DEPTH为实际要求是至少一个帧的大小即字节大小,读、写时钟分别为和,在写之后同时读写。时序仿真波形如图所示,能够成功读写。
4/8位数据的转换;给层和层的控制信号输出;双向数据,表征接口与物理层相连接的情况,可以异步输入输出控制。
4/8位数据转换的要求是:发送时,将位数据分成两个依次输出;接收时,将编解码器接收到的位数据依次填入高、低组成位数据输出。
MII模块的核心。设立位,从高位到低位依次是输入;位从高位到低位依次是输入。输出控制信号的基本算法流程如下:
1时,工作在全双工模式。和输出始终置为。
0时,工作在半双工模式。如果为,则输出置为,开始执行退回程序;如果为,则输出置为,继续等待。
1时,工作在接收状态,输出置为此时必须为。此时如果为,则接收数据有效,输出为;反之则置为,停止数据传输。
0时,工作在接收停止状态,输出置为。此时如果为,输出为,若接收端数据为,则表示载波错误,若接收端数据为,则表示正常的帧间隔阶段;如果为,则表示正常的帧间隔阶段,输出为。
1时,工作在发送状态,输出置为此时必须为。此时如果为,则正常发送,置为;否则发送错误,置为,且跳过该字节继续执行发送程序。
0时,若为,则处于正常帧间隔,、置为;若为,则为无效状态。
Altela公司的系列1C20F400C8芯片整个设计全部采用硬件描述语言来实现并在的设计平台上完成整个模块的设计、综合、仿真、映射及布局布线。发送时序仿真的波形如图所示从图中可以看出当传输过程中发生冲突时,继续发送比特的阻塞码进制然后随机延时一段时间重新争用介质以传输数据这说明本模块满足了协议要求以及。
FPGA的以太网协议的设计方法。通过本模块可以简单方便地实现小型嵌入式系统的因特网接口如果再结合基于实现的层协议和协议栈及其他辅助功能模块不仅可以使小型嵌入式系统接入网络更加简单系统的集成度、稳定性也将进一步得到提高。