通讯相关基础概念
通讯相关基础概念
串行与并行通信
并行通信是多位数据同时发送,需要多根数据线;而串行通信发送数据是一位一位的发送,需要一两根数据线。
如下为串行和并行通信的简单示意图:
特征 | 串行通讯 | 并行通讯 | 解释 |
---|---|---|---|
通讯距离 | 较远 | 较近 | 因为串行通讯一位一位传输,抗干扰能力强,故传输距离远 |
抗干扰能力 | 较强 | 较弱 | 因为串行通讯一位一位传输 |
传输速度 | 较慢 | 较高 | 无 |
成本 | 较低 | 较高 | 无 |
全双工、半双工和单工
根据通讯数据的传输方向,可以分为全双工、半双工和单工三种方式。
全双工:有两根不同的数据线,在同一时刻,可以同时收发数据;
半双工:只有一根数据线,这根数据线既可以作发送也可作接收,不可同时收发数据,可以分时收发数据;
半工:只有一根数据线,任何时候只能向一个方向传输数据。
同步和异步
同步与异步通讯的目的是确保在数据传输过程中,保证数据传输的准确性,防止丢包。
1 同步通讯:
发送端在发送数据时,会提供一个时钟信号,按照一定的约定将数据发送出去,接收端根据发送端提供的时钟信号,以及大家的约定,接收数据。这里的约定, 比如,在时钟信号的上升沿,发送数据。需要注意的是,发送方和接收方必须使用频率一致的时钟。发送方以一定的节奏发送数据,接收方要时刻做好准备接收数据。
2 异步通讯:
发送端发送的数据包之间的间隔不均,接收方依据数据的起始位和停止位来实现数据同步。需要注意的是,发送方只发送数据,不传输时钟,发送方和接收方必须约定相同的传输率。接收方并不知道数据什么时候会到达,收发双方有各自的时钟。
3 两者区别:
1)同步通信要求接收端时钟频率和发送端时钟频率必须一致,发送端发送连续的比特流;异步通信时不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节。
2)在同步通讯中,数据信号所传输的内容绝大部分是有效数据,而异步通讯会包含有帧的各种标识符,所以同步通讯的效率更高,但是其苛刻之处在于双方允许的时钟误差较小,而异步通讯则不需要时钟。
通信的速率
比特率:其是数字信号的传输速率,指每秒钟传输的二进制位数,单位为比特每秒(bit/s);
波特率:其指数据信号对载波的调制速率,它用单位时间内载波调制状态改变次数来表示,表示每秒传输的码元个数;
码元的意思是:若一个二进制位表示一个码元,如 0v 对应 0,3.3v 对应 1,此时波特率与比特率相等;若两个二进制位表示一个码元,0v 对应 00; 2v对应 01; 4v 对应 10; 6v 对应 11,此时,比特率为波特率的二倍。
两者之间的关系为:
比特率 = 波特率 X 单个调制状态对应的二进制位数
最后我想谈谈对时钟的理解。时钟是cpu处理的心脏,是单片机的脉搏。为什么这样认为,我们从计算机指令系统和单片机两个方面来谈。
首先 就计算机而言,一台可运行的计算机主要包含5个部分,分别为处理单元,控制单元,内存,输入和输出单元。计算机指令是在控制单元的控制下,从内存中取指令给处理单元处理的过程。一条指令的执行要经过以下6个步骤,分别是 1 从内存取指令,2 指令译码, 3 地址计算,4 取操作数,5 执行指令,6 存放结果。这些操作均是在时钟的控制下执行的。如果不停止时钟,从指令层次来讲,计算机永远在执行,至于如何停止指令的执行,最根本的办法是终止时钟。
其次,就计算机而言,任何外设均需要配置时钟。首先,所有寄存器都需要时钟才能配置,寄存器是由D触发器组成,只有送来了时钟,触发器才能改写值;其次,任何MCU指令执行均需要时钟的参与,每个时钟tick,系统都会处理一步数据,这样才能让工作不出现紊乱。通常,对每个外设的时钟都设置了开关,让用户可以精确的控制,关闭不需要的设备,达到节省供电的目的。因为在编写底层程序的时候,一定要先配置时钟,再配置功能模块。
通常时钟源主要来自时钟信号发生器,其主要部件是晶体振荡器,它是一种压电类设备,即输入“电”就能转换出“压力”(振荡)。而晶振产生的时钟频率不满足CPU内核执行速度,通常需要锁相环(FMPLL)来倍频以供CPU使用;对于有些外设并不需要频率太高的时钟信号,通常需要再次分频,以降低频率满足设备需求。