lcytms 发表于 2017-8-19 09:28:07

1032
        另一种是保守的、悲观的、消极的方案。
        我不能保证数据区不会出现55。

lcytms 发表于 2017-8-19 09:29:13

1033
        帧检测只能在指定的时刻检测。
        因为你已经知道帧结构,我们完成一帧之后,做一次检查,走完一帧做一次检查。
        或者是走完若干帧,512个帧。

lcytms 发表于 2017-8-19 09:36:04

1034
        它不能保证帧头不出现在数据区,需要定时进行帧检测。
        这是串行通信的又一个问题。
        必须要知道帧结构,由帧结构恢复出帧边界。
        得到了帧边界,就得到了字边界,字节边界。
        关于帧边界,就是用帧结构来解决。
        下面呢,我们来看一下Altera的Cyclone IV,它的架构。
        高速串行通信的架构Altera的Cyclone IV器件手册。
        打开高速收发器。
        看它支持哪些协议。

lcytms 发表于 2017-8-27 16:03:20

1035
        SATA可以到1.5到3个G。
        重点是串行通信的部分。

lcytms 发表于 2017-8-27 16:03:52

1036
        这张图我们解释一下。它内部有一个PCIe的硬核。
        还有一个流水线的接口。
        有一个调整相位的双时钟的FIFO。

lcytms 发表于 2017-8-27 16:04:20

1037
        跨时钟域。
        通信是一个时钟,内核逻辑又是一个时钟。
        再后面是字节的串化器。
        要把字节转换成串行的比特。

lcytms 发表于 2017-8-27 16:05:20

1038
        然后是8B/10B,必须要把静音消除掉。
        然后就是串行化。
        这个是一个字节的串化器。
        内核的逻辑可能是32位的,16位的,把它转换成字节。
        字节串化器的输出一定是8个比特。
        48位也好,64位也好。
        把它都转成一个字节一个字节。

lcytms 发表于 2017-8-27 21:56:46

1039
        8B/10B就是把8个比特变成10个比特。
        仍然是并行的,10位的串化器,转成差分信号了。
        我们内核逻辑是400M、500M。

lcytms 发表于 2017-8-27 21:57:15

1040
        这是发送端。
        下面是它的接收器。
        接收到以后,首先进入CDR。
        这是一个无随路时钟的。
        它要从信号上恢复出时钟。
        之后是一个并化器。
        把串行的比特装配成一个并行的数据。

lcytms 发表于 2017-8-27 21:57:42

1041
        并行的数据,它首先要做对齐。
        它要找到帧边界在什么地方。
        要求字对齐。
        下面会借助很多FIFO来调节偏斜,调节速率。
        并化器已经把单比特变成了10比特了,接着要从8B/10B恢复出原始信息。
页: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 18 19
查看完整版本: 跟李凡老师学FPGA扩频通信D01:串行通信基础(20170418课堂笔记)