预备知识
1.并行和串行
并行和串行都是通讯中数据传输的方式,二者有着本质的不同。
1.并行通讯:同一时刻,可以传输多个bit位的信号,有多少个信号位就需要多少根信号线。
2.串行通讯:同一时刻,只能传输一个bit位的信号,只需要一根信号线。
比如,当需要传输1字节信息时,并行通讯需要8根信号线,实现同时传输,假如耗时为1T,而串行是在一根信号线上传输,需要传8次,因此耗时为8T。
因此可总结出二者的特性:
1.并行通讯的效率高,但是对信号线路要求也很高(信号线数多,之间会有相互干扰,布线难度大),一般应用于快速设备之间采用并行通信,譬如CPU 与存储设备、存储器与存储器、主机与打印机等都采用并行通讯。
2.串行通讯效率较低,但是对信号线路要求低,抗干扰能力强,同时成本也相对较低,一般用于与计算机与外部设备,或者长距离的数据传输。
2.单工和双工
单工:单工就是指A只能发信号,而B只能接收信号,通信是单向的。
半双工:半双工就是指A能发信号给B,B也能发信号给A,但这两个过程不能同时进行。
全双工:在A给B发信号的同时,B也可以给A发信号。
注意:一般来说,如果数据线只有一根,则多半为半双工;如果数据线有两根,则多半为全双工;
3.波特率
4.同步和异步
在串行通信中,由于是一位一位地进行数据传送。为了把每个字节区别开来,需要收发双方在传送数据的串行信息流中,加入一些标记信号位。在数据中根据所添加的标记信号位的不同方式,分成同步通信和异步通信两种。
同步通信
①双方使用频率一致的时钟
②以固定的节奏去发送数据,而接收方要时刻做好接收数据的准备,识别到前导码后马上要开始接收数据了。
③同步这种方式中因为分组相比异步则大得多,称为一个【数据帧】,很长一段数据才会有额外的辅助位负载【独特的bit串作为启停标识】,所以效率更高,更加适合对速度要求高的传输,当然这种通信对时序的要求也更高。
异步通信
①双方使用各自的时钟。
②发送的时间间隔可以不均,接收方是在数据的起始位和停止位的帮助下实现信息同步的。【接收方不知道数据何时到达】
③这种传输通常是很小的分组,比如【一个字符为一组】,为这个组配备【起始位和结束位】。所以这种传输方式的效率是比较低的,毕竟额外加入了很多的辅助位作为负载,常用在【低速】的传输中。
————————————————
版权声明:本文为CSDN博主「SXM19940913sxm」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42024067/article/details/102532842
5.校验位
在有效数据之后,有一个可选的数据校验位。由于数据通信相对更容易受到外部干扰导致传输数据出现偏差,可以在传输过程加上校验位来解决这个问题。校验方法有奇校验 (odd)、偶校验(even)、0 校验(space)、1 校验(mark)以及无校验(noparity)。
奇校验要求有效数据和校验位中“1”的个数为奇数,比如一个 8 位长的有效数据为:01101001,此时总共有 4 个“1”,为达到奇校验效果,校验位为“1”,最后传输的数据将是 8 位的有效数据加上 1 位的校验位总共 9 位。
偶校验与奇校验要求刚好相反,要求帧数据和校验位中“1”的个数为偶数,比如数据帧:11001010,此时数据帧“1”的个数为 4 个,所以偶校验位为“0”。
0 校验是不管有效数据中的内容是什么,校验位总为“0”,1 校验是校验位总为“1”。
UART简介
UART帧格式
硬件连接
注意:两个机器要共地连接。