微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 数据链路层发送与接收的处理过程及涉及到的模块

数据链路层发送与接收的处理过程及涉及到的模块

时间:02-08 来源:网络整理 点击:

SYNC信号的低电平持续时间必须大于5个数据帧或者9个octet的持续时间。

Code groupsynchronization 同步的状态机转换图如图23所示,变量的具体意义在表1中有详细的描述。

图23:Code groupsynchronization state machine

Variable

Meaning

Icounter

Counter used in the CS_CHECK phase to count the number of invalid symbols

INVALID

Asserted by receiver to indicate that the current symbol is an invalid symbol given the current running disparity.

K_received

Asserted when the current symbol corresponds to control character K28.5

Kcounter

Counter used in the CS_INIT phase to count the number of valid K28.5 symbols

sync_request

Asserted by receiver when loss of code group synchronization has been detected. Note that sync_request does not drive SYNC~ directly, as SYNC~ assertion/de-assertion is based on more than just the sync_request signal described here.

VALID

Asserted by receiver to indicate that the current symbol is a valid symbol given the current running disparity.

Vcounter

Counter used in the CS_CHECK phase to count the number of successive valid symbols

code groupsynchronization只需要在SYNC有效时进行,而在数据的正常传输时,两个相邻字节中的某1bit出现错误,也将有可能出现comma码,而此时的comma码将不能用来作为同步的检测的标准。

1.1.2 Initial frame synchronization

Initial framesynchronization 的状态机如图24所示,该系统复位时,状态机将进入initial state,octet counter 将会被清零,而的code group synchronization 将在系统复位后生成同步请求,在这种情况下,framesynchronization 将一直处于initialstate。

图23:frame synchronizationstate machine

Frame synchronization的状态机将在code group synchronization完成后,并且发送器停止发送K码后进入FS_DATA状态,在该状态下,octet counter将会进行计算,以标记当前的octet在frame中的位置,octet counter的计数范围是:0 到F-1.如果有同步请求状态机将直接回到FS_INIT状态,但是如果有各个接受器的情况下,其他接受器发送SYNC请求时,当前接收器并不知道有同步请求的情况下,状态机只能通过检测连续的K28.5来判断状态机是否跳转。

如果K28.5被检测到,状态机将进入FS_CHECK状态,在FS_CHECK状态中,octet counter将继续计数,如果有4个K28.5被检测到,状态机将直接跳转到initial 状态。

Variable

Meaning

any_sync_request

A sync request asserted by any receiver connected to the link.

CHECK_ALIGNMENT

Perform frame alignment monitoring, see subclause 7.3

F

Number of octets per frame

Kcounter

Counter used in the FS_CHECK phase to count the number of K28.5 symbols

K_received

Asserted when the current symbol corresponds to control character K28.5 (valid or invalid)

Ocounter

Counter used to mark the position of the current octet in the frame.

sync_request

Asserted by receiver when loss of code group synchronization has been detected or if another error requires re-initialization.

1.2 Tx controller

Tx controller主要功能与Rx controller是保持一致的,其内部需要完成状态如下图所示:

具体的流程如下:

在系统复位后,状态机进入SYNC状态,在该状态下发送器将持续的发送K28.5的comma码,在SYNC信号被释放后的第一个数据帧到来时,状态机将跳转到INIT_LANE状态。

在LINIT_LANE状态下,状态机将通过控制信号控制Initial lanealignment sequence generator模块开始生产lane同步的序列,并控制MUX模块输出Initial lane alignment sequence。

在Initial lane alignment sequence发送完毕后,状态机将进入正常的数据发送状况,并在系统要求同步时进入SYNC状态。

Variable

Meaning

7C_octet

Asserted when the scrambler outputs a 0x7C (28.3) octet

alignment_sent

Used to indicate a /K28.3/ or /K28.7/ has been sent in the previous frame.

FC_octet

Asserted when the scrambl

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top