哈喽哈喽大家好,我是阿飞的小蝴蝶,大家可以叫我阿飞或者小飞,我终于又回来啦
首先这么长时间没更新先给大家说声抱歉,主要是因为串口以及后边的部分涉及的内容比较多,怕我讲不好,再加上“懒癌”犯了,才一直没有更新,但是后来想想,做什么事情都应该有始有终才对,我就用我觉得比较好理解的方式来给大家讲一下吧,有讲得不好的地方欢迎大家批评指正
前几节给大家讲了一下中断和定时计数器的使用,我们都知道,中断系统和定时计数器在单片机中是非常重要的,一个复杂的系统是离不开中断系统与定时器的,好的,今天来给大家讲解一下单片机中另外一个非常重要的功能:串口通信。
本节内容大家了解一下即可,与51单片机串口有关的结构、寄存器等下节再详细讲解。
通信简单的来说就是计算机与设备、设备与设备之间或者集成电路之间等常常需要进行的数据传输的信息交换。
通信的方式主要分为两大类:并行通信和串行通信。我来举个例子,假如说我要发送8位数据,用8根数据线同时发送,每根发送一位数据,这种方式就是并行通信。相对的,只用一根数据线,按照顺序逐个发送8位数据,这种就是串行通信,通过这两个概念我们不难看出两种通信的特性:
但是由于成本、抗干扰能力等因素的影响,串行通信的方式使用的更为普遍,也越来越成熟,串行通信不管是在速度还是质量来看都不亚于并行通信。
我们的串口通信又叫做串行口通信,使用的就是串行通信的方式。
串行通信又分为同步通信和异步通信两种方式。
同步通信时,发送端要在发送数据的同时提供一个时钟信号,并按照约定(比如说时钟信号上升沿)发送数据,接收端要根据发送端提供的时钟信号和约定(上升沿)来接收数据,传输的数据不允许有间隙。
异步通信时,发送端和接收端使用各自的时钟信号控制数据传输,为了使双发收发协调,要求双方的时钟尽可能一致,发送端可以在任意时刻开始发送数据,因此需要在数据发送开始和结束的地方加上标志,也就是起始位和停止位,传输的数据都以字节为单位,每个字节直接可以有间隙。
串行通信的传输方向:
单工:单向的(接收或者发送)
半双工:接收/发送不可以同时进行
全双工:接收/发送可以同时进行
串行通信中常见的错误校验:
1、奇偶校验
在发送数据时,数据位尾随的1位为奇偶校验位(1或0)。奇校验时,数据中“1”的个数与校验位“1”的个数之和应为奇数;偶校验时,数据中“1”的个数与校验位“1”的个数之和应为偶数。接收字符时,对“1”的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。
2、代码和校验
代码和校验是发送方将所发数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块末尾。接收方接收数据同时对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的“校验和”进行比较,相符则无差错,否则即认为传送过程中出现了差错。
3、循环冗余校验
这种校验是通过某种数学运算实现有效信息与校验位之间的循环校验,常用于对磁盘信息的传输、存储区的完整性校验等。这种校验方法纠错能力强,广泛应用于同步通信中。
传输速率:
比特率:每秒传输的二进制位数,单位为bit/s
波特率:每秒传输的码元个数(在一个二进制位表示一个码元时与比特率相等)
串行通信接口标准:
1、RS-232接口标准
RS-232标准中定义了其电气特性:高电平“1”信号电压范围为-15V ~ -3V,低电平“0”信号电压范围为3V ~ 15V。
RS232标准串口主要用于工业设备直接通信;电平转换芯片一般有MAX3232,SP3232!因为高低电平用相反的电压表示,至少有6V的电压差,非常好的提高了数据传输的可靠性,在工业复杂的环境中,保障数据传输的准确性!
常用的DB9接口:
2、USB转串口:
USB转串口主要用于设备跟电脑通信;电平转换芯片一般有CH340、PL2303、CP2102、FT232;使用的时候电脑端需要安装电平转换芯片对应的驱动!
3、原生串口转串口:
原生的串口通信主要是控制器跟串口的设备或者传感器通信,不需要经过电平转换芯片来转换电平,直接就用TTL电平通信;GPS模块、GSM模块、串口转WIFI模块、HC04蓝牙模块便可以直接与单片机串口直接通信。
今天的内容就先到这里啦,晚安~