)发送引擎
发送引擎通过客户发送端口接收以太网的数据帧,并在帧头添加帧引导区域,甚至在帧长小于最短要求时,添加一定的冗余比特。同时,该模块还会在连续的数据帧之间插入以太网协议所规定的最小延时,将用户数据转化成标准的GMII数据帧,并送至GMII模块。在应用时,面向用户的操作就是将用户数据读入GEMAC核内部 该模块接口信号的简要信息如表10-10所列。
表10-10 发送引擎接口信号列表 发送引擎的时序如图10-38所示。当客户端有数据发送时,将tx_data_valid拉高,同时将数据的第一个字节置于tx_data端口;当GEMAC将第一字节数据读入后,会将tx_ack信号拉高,用户端逻辑检测到tx_ack为高时,要在下一个时钟上升沿将其余的数据发送到数据端口上,当数据发送完毕后,将tx_data_valid拉低。
图10-38 发送引擎的时序图 2)接收引擎
接收引擎接收来自GMII模块的数据,去掉帧头的引导区域,包括为了增加帧长的冗余比特。此外,该模块还能根据数据帧中的检验序列区域、接收到的GMII错误码字以及帧长信息完成错误检测,主要接口信号的简要说明如表10-11所列。 表10-11 接收引擎接口信号列表 接收引擎的时序如图10-39所示。客户端逻辑必须在任何时候都准备好接收数据,因为在GEMAC核中没有接收缓存,有时延就会丢失数据,因此用户可自己添加缓冲逻辑。rx_data_valid为高时立即开始接收连续数据,在检测到rx_data_valid变低后,判断rx_good_frame信号的电平,如果为高则继续处理该帧数据,否则直接丢弃。
图10-39 接收引擎的时序图 3)流控制
流控制模块是根据IEEE 802.3-2002标准的31项条款设计的,在发送时附带暂停帧,接收时也需要对其处理。在GEMAC核中,它是自动配置的,同时,也提供了用户自定义的配置端口,如表10-12所列。 表10-12 流控制接口信号
|