1032
另一种是保守的、悲观的、消极的方案。
我不能保证数据区不会出现55。
1033
帧检测只能在指定的时刻检测。
因为你已经知道帧结构,我们完成一帧之后,做一次检查,走完一帧做一次检查。
或者是走完若干帧,512个帧。
1034
它不能保证帧头不出现在数据区,需要定时进行帧检测。
这是串行通信的又一个问题。
必须要知道帧结构,由帧结构恢复出帧边界。
得到了帧边界,就得到了字边界,字节边界。
关于帧边界,就是用帧结构来解决。
下面呢,我们来看一下Altera的Cyclone IV,它的架构。
高速串行通信的架构Altera的Cyclone IV器件手册。
打开高速收发器。
看它支持哪些协议。
1035
SATA可以到1.5到3个G。
重点是串行通信的部分。
1036
这张图我们解释一下。它内部有一个PCIe的硬核。
还有一个流水线的接口。
有一个调整相位的双时钟的FIFO。
1037
跨时钟域。
通信是一个时钟,内核逻辑又是一个时钟。
再后面是字节的串化器。
要把字节转换成串行的比特。
1038
然后是8B/10B,必须要把静音消除掉。
然后就是串行化。
这个是一个字节的串化器。
内核的逻辑可能是32位的,16位的,把它转换成字节。
字节串化器的输出一定是8个比特。
48位也好,64位也好。
把它都转成一个字节一个字节。
1039
8B/10B就是把8个比特变成10个比特。
仍然是并行的,10位的串化器,转成差分信号了。
我们内核逻辑是400M、500M。
1040
这是发送端。
下面是它的接收器。
接收到以后,首先进入CDR。
这是一个无随路时钟的。
它要从信号上恢复出时钟。
之后是一个并化器。
把串行的比特装配成一个并行的数据。
1041
并行的数据,它首先要做对齐。
它要找到帧边界在什么地方。
要求字对齐。
下面会借助很多FIFO来调节偏斜,调节速率。
并化器已经把单比特变成了10比特了,接着要从8B/10B恢复出原始信息。
