跟李凡老师学FPGA扩频通信D01:串行通信基础(课堂笔记)

描述

李凡老师学FPGA扩频通信D01:串行通信基础(课堂笔记)

用笨笔头整理课堂笔记,用以备忘,温故而知新。
整理文稿的细节处未能一一体现李凡老师讲课精髓和独特风采,有待下一步补充完善。
感谢李凡老师博大精深的学识、孜孜不倦的教诲,并敬请李凡老师原谅本人拙劣的课堂笔记。

近期精彩课程安排如下图。
实际执行可能会有所调整,谨供参考。

FPGA


从今天开始呢,我们进入通信的课程。

FPGA的应用,其中有很大一个比例,是用在通信上。
据说DSP的一些架构,就是跟FPGA的Altera的通信的用户有关。
所以说呢,FPGA非常重要的一个应用方向,和通信密不可分。
通过这门课程的讨论,我们来了解通信的一个基本的规则,基本的方法,工具,还有通信里面一个一个的技术。
我们通过像WiFi、蓝牙,以及我们的移动通信里面普遍应用的扩频,我们做个讨论。

我们虽然说的是通信,communication,但实际上呢,它的含义,不仅仅是跟信息的传输、收发直接关联,像移动通信、远程的数据通信、互联网的通信,像巡航导弹,设备和设备之间的通信。

FPGA

这些通信呢,我们可以用communication来概括,没有问题。
但是呢,它也有更广义的含义。它不仅仅指的是数据收发端的通信,也指的是逻辑和逻辑之间,芯片和芯片之间,信息的交互。


我们今天要说的通信,指的是串行通信。
什么是串行的?
什么是并行的呢?
我们用过并行打印机,我们知道,一端通过并行电缆接到电脑上。
它可以在同一个时钟节拍发送总线信号。

我们现在介绍的是串行通信。
所谓串行,就是在单位时间内,只有一个比特信息的传输。
而并行呢,是在指定的时刻,会有若干个比特被发送。
我们现在的通信,大多数都是建立在串行通信的基础上。
比方说,像光纤通信。


卫星也是,微波也是。
为什么我们在真实的通信系统里面,大多都用串行通信?

其实理由很简单,一,有一个成本的问题。并行打印机,如果就在我们边上,我们用一个并行电缆就行了。
但是光缆不同了,像海底光缆,一走几百公里,它一个信道就是一个成本。
这是一个理由。
还有,像卫星通信,在指定的频道上,特定的时刻,只有一个比特的加载。
如果要想同时加载多个比特的话,你会用多个频道来传输,这样的话,卫星的收发器的成本就要提升。
限于成本,卫星的收发器限制在单一的频道上发送数据,那么指定的时刻,只可能是一个比特。

所以说卫星通信只可能是串行通信。


微波通信也是如此。
这些通信都涉及到,在单位时间,只有一个比特的加载,就是串行通信。
另外呢,我们说有第二个理由,更重要的理由,因为现在通信的速度是越来越高,越来越快。
并行通信看起来很快,一个比特可以有多个信号的加载,但是它有一个非常严峻的问题,就是窗口问题,当我们的并行总线有16根线的时候,在一个时钟节拍下面,16根线都会翻转。
必然有的翻转快,有的翻转慢。
这16根线必须要全部翻转完了以后,这才得到有效的数据,下一拍也是如此。
这样的话呢,就会形成一个窗口。
最后一个比特,构成了有效窗口的左边界,以及窗口的第一个比特,构成了这个窗口的右边界。


窗口的左边界和窗口的右边界,构成了窗口的宽度。
有效窗口的宽度,就一定会小于时钟周期。使得并行的高速传输受限。
在其它一些高端课程,我们也会体验到窗口效应。
正是由于这些原因,大多数的通信都是串行通信。
说到通信,我们就不可避免地要提到一个人。
现代通信,都是数字通信。在没有电子设备之前,人类的通信主要靠喊。
还有信鸽、烽火、狼烟等等。
但是有了电子管以后,马可尼的第一次跨洋通信,电报通信。
用摩尔斯码来传送。
它仍然是模拟的。
再后来,爱迪生发明了电话之后,仍然是用模拟的方法来传输。


是模拟的信道。
这类通信仍然是称之为模拟通信。
到了二战快结束的时候,美国贝尔实验室的通信也得到了长足的发展。
格雷码的发明就是在跟日本人的岛屿之争的时候,用于通信的加密。
它是做成一个像示波器的加密体系。
一个示波管里面就是一个加密的芯片。
格雷码的示波管发明出来以后,被日本人俘虏之前,赶紧把示波管给摘了。


这个呢,我们就必须要说到,数据通信的创始人、奠基人,就是美国贝尔实验室的工作者,其中最著名的就是香农。

大家都知道香农定理。

打开文档。
这是原文。
这是1948年发表的,在贝尔实验室。
它仍然有它的意义。
这篇论文里面,香农第一次用数学的方法来解释了数据通信。

FPGA

标题是通信的数学原理。
其中提到著名的香农定理。
一般通信系统的架构图。
它有一个信息源,然后变为消息,变成了电信号了,就是把原始的信息变成数字信号了。

FPGA

FPGA

然后通过一个发送器,变成了signal,物理的信号。
或者是高电平,或者是低电平。
中间小框是信道,channel。
信道必然会受到噪声源的干扰,变成接收端的signal。
接收端的signal,和发送端的signal相比,就是有加噪。

接收器要将被噪声干扰的信号,还原成原始的message,message就是已经变成数字量了。
回到最终的目标。
这个架构到今天还在用。

还有一些相关的文档,都很经典。
用数学模型来解释信道的速度,信道的特征,信道的带宽。

我们的通信课程分为两个部分,第一是基本的原理。第二部分是扩频。


发送器的内部,和接收器的内部,它们不必要串行,它们可以并行。
在发送前,将并行数据转化成串行数据,称之为串化器。
对接收器而言,把串行数据组装成并行数据的过程,称之为并化器。
串化器和并化器是现代高速通信的核心,或者说IP、专利。
缩写为SERDES,串行收发器。

FPGA

现代的通信,可以做到好几个G。
我们现在内核的逻辑,在cyclone IV下面可以到400、500、600M。
但是它高速通信的时候,可以到1个G以上,2、3个G。
这种程度怎么实现的呢?
内核逻辑能够跑到500M、600M,就是通过这个SERDES,跑到1个G以上。
串行收发器,这是专用电路。

我们给大家解释串行通信的基本规律。
第一,在串行通道上,必然有串化器、并化器。
第二,如果是一个并行的数据,没有问题。
我们是通过物理的位置来组织。
哪个比特高,哪个比特低。
可是这是一个串行的。
一个串行的过程在信道上,一定是一个比特连着一个比特。

FPGA

并转串和串转并的时候,都有这个问题。

现在我们要把B0、B1、B2、B3,转成串行。

FPGA

依次是D0、D1、D-1,按顺序发过来的。
串行通信就必然会有这个问题。
如果我们看一些手册,大量的IP核,它的一些篇幅都是用于对齐的。

FPGA

单位时间在指定时刻只有一个比特被加载。
看起来就像一个冰糖葫芦串。

我们要知道比特的边界。
还有一个更严峻的问题。

我们知道,串行通信有两个特点。
第一个,串行通信要有串化器,要有解串器。
第二个,边界的问题。
有找边界,称之为对齐的问题。
这个问题更严峻,或者说更现代化。
在发送端,串行信息是以串行的形式发出来的。

那么,必然会有时钟驱动。发送端会有发送端的时钟。
这是发送的时钟。
我们学过同步电路,知道这个signal一定会踩着沿翻转。

FPGA

到接收端。
发送和接收都是同步电路。

FPGA

Tclk和Rclk可能是相同时钟,可能是相关时钟。
但是对一个正常的通信系统而言,它做不到。
如果是卫星通信,一个在天上,一个在地上。
如果是远洋通信,一个在亚洲,一个在欧洲。
怎么可能再做一条时钟线呢?

一般来说,如果是无线通信,我们的手机,跟基站之间不会有时钟的连线。
都是无线的。那么Tclk和Rclk存在各种各样的关系。
无论是什么关系,对接收器而言,时钟都要能有效地捕获signal。
怎样捕获呢?
如果在上升沿之前和上升沿之后,所需要的稳定时间段得不到保证的话,就会发生亚稳态,就有可能导致这次传输的失败。

一定要保证,在接收端的时候,在时钟上升沿,建立时间之前,保持时间之后,这个signal没有反转。

时钟的频率要一致。
不一致,这个signal就没法还原了。
所以说,两个频率要相同。
还要保证接收端的时钟能够正确地捕获signal。
这就带来一个问题,这两个时钟怎么做?
比方说,像我们RS232的通信。
那个通信,并没有给出时钟信号,通信的时候,在发送端和接收端之间并不需要发送时钟的通道。
它只是用一个单端信号发送。

FPGA

它只要约定时钟即可,我约定时钟9600,接收时钟9600。
我们记不记得,使用16倍的波特率,在捕获的时候,这个中心点偏差1/16,问题不大。
这是在低速情况之下。所以说在低速的情况之下,发送和接收时钟,这两者是用的约定的方式来进行时钟的捕获。


由于内容较多,接下来的分享会在评论区更新,谢谢。










打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
晓灰灰 2019-07-15
0 回复 举报
第一种方法是找到比特边界。一种方法是约定时钟。 约定收发器的时钟,也能找到它的边界,16倍的波特率。 但是这个只能用于低速。 速度高了以后,这两者之间的建立保持关系变得严峻起来。当你仍然用16倍的波特率来捕获,比方说我们要做到800M,很可能这个建立和保持,就比它的1/16还要宽。 所以说这个时候用约定的时钟,高速做不了,只能用于非常低的速度。 用约定时钟的方法,来解决比特边界的问题。 这个速度再进一步提高,比方说我们提高到4、500M。 这个时候发送器、接收器约定不行了,就必须有一根时钟线。 接收器它必须知道,发送器的时钟边界在什么地方? signal的比特的边界在什么地方? 如果在高速的情况之下,必须要有伴随的一个时钟信号。 历史上,在源同步出现之前,接收器要加大一个信道,专门发送时钟。 哪怕成本高,也要加送一路时钟信号。 收起回复
晓灰灰 2019-07-15
0 回复 举报
这一点,实际上也说到时钟的同步。 这是串行通信的第三个特点。 我们说,第一个特点,串行通信要有并化器、串化器。 第二个特点,冰糖葫芦,有找边界的问题。 第三个特点,还有时钟同步的问题。 实际上有文献指出,时钟同步的问题,也就是一个边界问题。 刚刚是帧边界,字边界,而这个是比特边界。 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分