跟李凡老师学FPGA扩频通信D01:串行通信基础(课堂笔记)
用笨笔头整理课堂笔记,用以备忘,温故而知新。
整理文稿的细节处未能一一体现李凡老师讲课精髓和独特风采,有待下一步补充完善。
感谢李凡老师博大精深的学识、孜孜不倦的教诲,并敬请李凡老师原谅本人拙劣的课堂笔记。
近期精彩课程安排如下图。
实际执行可能会有所调整,谨供参考。
从今天开始呢,我们进入通信的课程。
FPGA的应用,其中有很大一个比例,是用在通信上。
据说DSP的一些架构,就是跟FPGA的Altera的通信的用户有关。
所以说呢,FPGA非常重要的一个应用方向,和通信密不可分。
通过这门课程的讨论,我们来了解通信的一个基本的规则,基本的方法,工具,还有通信里面一个一个的技术。
我们通过像WiFi、蓝牙,以及我们的移动通信里面普遍应用的扩频,我们做个讨论。
我们虽然说的是通信,communication,但实际上呢,它的含义,不仅仅是跟信息的传输、收发直接关联,像移动通信、远程的数据通信、互联网的通信,像巡航导弹,设备和设备之间的通信。
这些通信呢,我们可以用communication来概括,没有问题。
但是呢,它也有更广义的含义。它不仅仅指的是数据收发端的通信,也指的是逻辑和逻辑之间,芯片和芯片之间,信息的交互。
我们今天要说的通信,指的是串行通信。
什么是串行的?
什么是并行的呢?
我们用过并行打印机,我们知道,一端通过并行电缆接到电脑上。
它可以在同一个时钟节拍发送总线信号。
我们现在介绍的是串行通信。
所谓串行,就是在单位时间内,只有一个比特信息的传输。
而并行呢,是在指定的时刻,会有若干个比特被发送。
我们现在的通信,大多数都是建立在串行通信的基础上。
比方说,像光纤通信。
卫星也是,微波也是。
为什么我们在真实的通信系统里面,大多都用串行通信?
其实理由很简单,一,有一个成本的问题。并行打印机,如果就在我们边上,我们用一个并行电缆就行了。
但是光缆不同了,像海底光缆,一走几百公里,它一个信道就是一个成本。
这是一个理由。
还有,像卫星通信,在指定的频道上,特定的时刻,只有一个比特的加载。
如果要想同时加载多个比特的话,你会用多个频道来传输,这样的话,卫星的收发器的成本就要提升。
限于成本,卫星的收发器限制在单一的频道上发送数据,那么指定的时刻,只可能是一个比特。
所以说卫星通信只可能是串行通信。
微波通信也是如此。
这些通信都涉及到,在单位时间,只有一个比特的加载,就是串行通信。
另外呢,我们说有第二个理由,更重要的理由,因为现在通信的速度是越来越高,越来越快。
并行通信看起来很快,一个比特可以有多个信号的加载,但是它有一个非常严峻的问题,就是窗口问题,当我们的并行总线有16根线的时候,在一个时钟节拍下面,16根线都会翻转。
必然有的翻转快,有的翻转慢。
这16根线必须要全部翻转完了以后,这才得到有效的数据,下一拍也是如此。
这样的话呢,就会形成一个窗口。
最后一个比特,构成了有效窗口的左边界,以及窗口的第一个比特,构成了这个窗口的右边界。
窗口的左边界和窗口的右边界,构成了窗口的宽度。
有效窗口的宽度,就一定会小于时钟周期。使得并行的高速传输受限。
在其它一些高端课程,我们也会体验到窗口效应。
正是由于这些原因,大多数的通信都是串行通信。
说到通信,我们就不可避免地要提到一个人。
现代通信,都是数字通信。在没有电子设备之前,人类的通信主要靠喊。
还有信鸽、烽火、狼烟等等。
但是有了电子管以后,马可尼的第一次跨洋通信,电报通信。
用摩尔斯码来传送。
它仍然是模拟的。
再后来,爱迪生发明了电话之后,仍然是用模拟的方法来传输。
是模拟的信道。
这类通信仍然是称之为模拟通信。
到了二战快结束的时候,美国贝尔实验室的通信也得到了长足的发展。
格雷码的发明就是在跟日本人的岛屿之争的时候,用于通信的加密。
它是做成一个像示波器的加密体系。
一个示波管里面就是一个加密的芯片。
格雷码的示波管发明出来以后,被日本人俘虏之前,赶紧把示波管给摘了。
这个呢,我们就必须要说到,数据通信的创始人、奠基人,就是美国贝尔实验室的工作者,其中最著名的就是香农。
大家都知道香农定理。
打开文档。
这是原文。
这是1948年发表的,在贝尔实验室。
它仍然有它的意义。
这篇论文里面,香农第一次用数学的方法来解释了数据通信。
标题是通信的数学原理。
其中提到著名的香农定理。
一般通信系统的架构图。
它有一个信息源,然后变为消息,变成了电信号了,就是把原始的信息变成数字信号了。
然后通过一个发送器,变成了signal,物理的信号。
或者是高电平,或者是低电平。
中间小框是信道,channel。
信道必然会受到噪声源的干扰,变成接收端的signal。
接收端的signal,和发送端的signal相比,就是有加噪。
接收器要将被噪声干扰的信号,还原成原始的message,message就是已经变成数字量了。
回到最终的目标。
这个架构到今天还在用。
还有一些相关的文档,都很经典。
用数学模型来解释信道的速度,信道的特征,信道的带宽。
我们的通信课程分为两个部分,第一是基本的原理。第二部分是扩频。
发送器的内部,和接收器的内部,它们不必要串行,它们可以并行。
在发送前,将并行数据转化成串行数据,称之为串化器。
对接收器而言,把串行数据组装成并行数据的过程,称之为并化器。
串化器和并化器是现代高速通信的核心,或者说IP、专利。
缩写为SERDES,串行收发器。
现代的通信,可以做到好几个G。
我们现在内核的逻辑,在cyclone IV下面可以到400、500、600M。
但是它高速通信的时候,可以到1个G以上,2、3个G。
这种程度怎么实现的呢?
内核逻辑能够跑到500M、600M,就是通过这个SERDES,跑到1个G以上。
串行收发器,这是专用电路。
我们给大家解释串行通信的基本规律。
第一,在串行通道上,必然有串化器、并化器。
第二,如果是一个并行的数据,没有问题。
我们是通过物理的位置来组织。
哪个比特高,哪个比特低。
可是这是一个串行的。
一个串行的过程在信道上,一定是一个比特连着一个比特。
并转串和串转并的时候,都有这个问题。
现在我们要把B0、B1、B2、B3,转成串行。
依次是D0、D1、D-1,按顺序发过来的。
串行通信就必然会有这个问题。
如果我们看一些手册,大量的IP核,它的一些篇幅都是用于对齐的。
单位时间在指定时刻只有一个比特被加载。
看起来就像一个冰糖葫芦串。
我们要知道比特的边界。
还有一个更严峻的问题。
我们知道,串行通信有两个特点。
第一个,串行通信要有串化器,要有解串器。
第二个,边界的问题。
有找边界,称之为对齐的问题。
这个问题更严峻,或者说更现代化。
在发送端,串行信息是以串行的形式发出来的。
那么,必然会有时钟驱动。发送端会有发送端的时钟。
这是发送的时钟。
我们学过同步电路,知道这个signal一定会踩着沿翻转。
到接收端。
发送和接收都是同步电路。
Tclk和Rclk可能是相同时钟,可能是相关时钟。
但是对一个正常的通信系统而言,它做不到。
如果是卫星通信,一个在天上,一个在地上。
如果是远洋通信,一个在亚洲,一个在欧洲。
怎么可能再做一条时钟线呢?
一般来说,如果是无线通信,我们的手机,跟基站之间不会有时钟的连线。
都是无线的。那么Tclk和Rclk存在各种各样的关系。
无论是什么关系,对接收器而言,时钟都要能有效地捕获signal。
怎样捕获呢?
如果在上升沿之前和上升沿之后,所需要的稳定时间段得不到保证的话,就会发生亚稳态,就有可能导致这次传输的失败。
一定要保证,在接收端的时候,在时钟上升沿,建立时间之前,保持时间之后,这个signal没有反转。
时钟的频率要一致。
不一致,这个signal就没法还原了。
所以说,两个频率要相同。
还要保证接收端的时钟能够正确地捕获signal。
这就带来一个问题,这两个时钟怎么做?
比方说,像我们RS232的通信。
那个通信,并没有给出时钟信号,通信的时候,在发送端和接收端之间并不需要发送时钟的通道。
它只是用一个单端信号发送。
它只要约定时钟即可,我约定时钟9600,接收时钟9600。
我们记不记得,使用16倍的波特率,在捕获的时候,这个中心点偏差1/16,问题不大。
这是在低速情况之下。所以说在低速的情况之下,发送和接收时钟,这两者是用的约定的方式来进行时钟的捕获。
由于内容较多,接下来的分享会在评论区更新,谢谢。
全部0条评论
快来发表一下你的评论吧 !