串口通信技术基础

1.0 串口通信基础

数据通信的两种常用形式:

1:并行通信串行通信

并行方式:数据的各位使用多条数据线同时发送或同时接收

特点:传送速度快,但因需要多根传输线,曾经在近距离、高速率通信中使用


串行方式:是将数据排成一串,分成一位一位的形式在一条传输线上逐个地传送。

特点:串行通信的特点:传输线少,长距离传送时成本低,且可以利用电话线、网线等设备传输,但数据的传送控制比并行通信复杂。


2.0 通信的常见形式

同步通信异步通信

异步通信:ASYNC (asynchronous data communication)   异步通信:是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。【异步通信指没有时间线需要通信双方约定合适的采样频率,对数据进行发送和接收】

单片机的串口通信属于 “异步通信”

异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间是异步的(字符之间不一定有“位间隔”的整数倍的关系),但同一字符内的各位是同步的(各位之间的距离均为“位间隔”的整数倍)。

异步通信的特点:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要附加2~3位用于起止位,各帧之间还有间隔,因此传输效率不高。


同步通信

同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。此时,传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,即保持位同步关系,也保持字符同步关系。发送方对接收方的同步可以通过两种方法实现。【同步通信有明确的时间线,不需要约定合适的采样频率】


3.0 串行通信线路传输方式

1单工

单工:是指数据传输仅能沿一个方向,不能实现反向传输

2半双工

半双工:是指数据传输可以沿两个方向,但需要分时进行

3全双工

全双工是指数据可以同时进行双向传输

第一个表示的是单工的传输方式,第二个表示的是半双工的传输方式,第三个表示的是全双工的传输方式。


4.0 通信校验方式

1 奇偶校验

在发送数据时,数据位尾随的1位为奇偶校验位(1 或 0)。

奇校验时,数据中1的个数与校验位1的个数之和应为奇数;偶校验时,数据中1的个数与校验位1的个数之和应为偶数。接收字符时,对1的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。

2 代码和校验

代码和校验是发送方将所发数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块末尾。接收方接收数据同时对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的“校验和”进行比较,相符则无差错,否则即认为传送过程中出现了差错。

...

3 循环冗余校验(Cyclic Redundancy Check, CRC)

这种校验是通过某种数学运算实现有效信息与校验位之间的循环校验,常用于对磁盘信息的传输、存储区的完整性校验等。这种校验方法纠错能力强,广泛应用于同步通信中。【需要加强学习】

信号的调制与解调(也就是我们俗称的光猫)


5.0 串行通信接口标准

功能特性接口标准:

过程特性:

5:采用RS-232C接口存在的问题

  • 1  传输距离短,传输速率低

  RS-232C:总线标准受电容允许值的约束,使用时传输距离一般不要超过15米(线路条件好时也不超过几十米),最高传送速率有限。

  • 2 有电平偏移

RS-232C:总线标准要求收发双方共地。通信距离较大时,收发双方的地电位差别较大,在信号地上将有比较大的地电流并产生压降。

  • 3抗干扰能力差

RS-232C:在电平转换时采用单端输入输出,在传输过程中当干扰和噪声混在正常的信号中。为了提高信噪比,RS-232C总线标准不得不采用比较大的电压摆幅。

RS-422A接口


6.0 单片机串口(USART)结构

通信的目的:将一个设备的数据传输到另外一个设备,拓展硬件系统

通信协议:   制定通信规则,通信双方按照协议规定进行数据收发

常见的通信协议

UART: Universal Asynchronous Receiver Transmitter,通用异步串行通信接口,为全双工通信,即在发送数据的同时也能够接收数据,因此,UART至少需要两根数据线用于通信双方进行数据双向同时传输,最简单的UART接口由IxD、RxD、GND共3根线组成。其中,TxD用于发送数据,RxD用于接收数据,GND为信号地线,通过交叉连接实现两个芯片间的串口通信。

通信协议的数据帧格式

刚开始:还没有进行数据发送的时候串口处于空闲的状态,也就是高电平

数据的起始位:也就是当要进行数据收发的时候给一个下降沿,相当于是一个信号,告诉CPU我即将进行数据帧的发送

这个时候:数据帧开始发送过来 1 1 1 1 1 1 1 【校验位】

发送完毕之后要给单片机一个信号,告诉单片机这一个字符帧发送结束,也及时电平拉高
为下一个字符帧发送做准备

起始位:位于数据帧开头,占1位,始终为低电平,用于向接收设备表示发送端开始发送1帧数据

数据位:要传输的数据信息,可以是字符或数据,一般为5~8位,由低位到高位依次传送。

校验位:位于数据位之后,占1位,用于发送数据的校验,或传送多机串行通信的联络信息。

停止位:位于数据位末尾,占1位,始终为高电平,用于向接收端表示1帧数据已发送完毕。

注 : 数据发送的间隔是由我们发送的波特率一致的


单片机的串型口结构

有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H;接收器是双缓冲结构;发送时cpu是主动的,不会产生重叠错误.写SBUF时,操作的是发送缓冲器;读SBUF时,就是读接收缓冲器的内容.


7.0 USART发送数据工作原理

发送控制器:

在门电路和定时器T11的配合下,将SBUE发中的并行数据转为串行数据,并自动添加起始位、可编程位、停止位。

这一过程结束后自动使发送中断请求标志位TI置1表示数据发送完毕】,表明已将SBUE发中的数据输出到工XD引脚,即SBUE发为空。

接收控制器:

注:RI 标志位等于1表示数据接收完毕


8.0 串口控制器SCON

SCON: Serial Control Register,串行控制寄存器。主要用于设置串行通信的工作方式、接收和发送控制以及串口的状态标志等,地址:98H。

注:usart 中单片机置位之后不会自动清0,需要手动清0


9.0 电源控制寄存器:PCON

PCON为89C51系列单片机的电源控制寄存器,除用于设置单片机的工作模式:掉电模式、正常模式等,该寄存器中的SMOD位用于串口设置相关的工作,地址: 87H。

SMOD可使由T1产生的波特率时钟频率加倍


10.0 中断控制位 IE

中断允许控制寄存器IE,涉及到中断允许控制位ES

注:ES为串行中断允许控制位。设置ES=0时,将禁止串行中断;设置ES=1时,允许串行中断。


11.0 串口工作方式

工作方式 0

方式0时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由RXD (P3.0)引脚输入或输出,同步移位脉冲由TXD (P3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定为fosc(晶振频率)/12。

方式0 发送数据【示意图如下所示】

方式0 接收数据【示意图如下所示】

方式 0 发送和接收电路【工作原理图如下所示】


工作方式 1

方式1是10位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚,传送一帧数据的格式如图所示。其中1位起始位,8位数据位,1位停止位。

方式 1 输入

用软件置REN为1时,接收器以所选择波特率的16倍速率采样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位。当Rl=0,且.SM2=O(或接收到的停止位为1)时,将接收到的9位数据的前8位数据装入接收SBUF,第9位(停止位)进入RB8,并置RI=1,向CPU请求中断。


方式2 与 方式 3


12.0 串口波特率计算

串行通信的传输速率---波特率(比特率)

串口的波特率--表示每秒钟传输二进制数据的位数,单位位bps,即bit per second

如果每秒钟传输240个字符,而每个字符格式包含10位(1个起始位,一个停止位,8个数据位)这个时候的波特率为:

波特率     = 10位 * 240个/秒 = 2400bps

注: 串行通信的收发双方必须采用相同的波特率


串口通信技术---串口波特率专题

传输距离与传输速率的关系

 串行接口或终端直接传送串行信息位流的最大距离与传输速率及传输线的电气特性有关,传输距离随传输速率的增加而减小。当比特率超过1000 bps 时,最大传输距离迅速下降,如9600 bps时最大距离下降到只有76m(约250英尺)

经验距离供参考:

  • TTL电平:1.5米之内
  • RS232电平:15米之内
  • 长距离传输可以使用RS485方式,可达1000米。

波特率的计算方式

注 : fosc ------------> 表示的是晶振的频率,SMOD 有0 和1 两个取值

通信时钟波特率原理

波特率计算实战

...

基于32单片机串口通信,过往文章

USART(串口通信协议)_通信协议usart-CSDN博客文章浏览阅读1.2k次,点赞18次,收藏23次。def:串口是一种应用广泛的通讯接口,串口的成本低,容易使用,通信线路简单,可以实现两个设备之间的相互通信【串口通信方式既可以同步通信也可以异步通信】def:单片机的串口可以使单片机与单片机,单片机与电脑,单片机与各式各样的模块进行通信,极大的拓展了单片机的应用范围,增强了单片机系统的硬件实力 注:注:注:图中的意思是可以有八位,第一个位是起始位,最后一位是截止位,中间的数据位数是数据位在没有进入起始位之间电平的极性【注:呈现出高电平特性】,在进入起始位后电平转换为低点平表示开始发送数据,数据呈现出8_通信协议usarthttps://blog.csdn.net/qq_45973003/article/details/138001414

注:参考郭天祥老师的51单片机教程进行撰写,仅用于学习参考

相关推荐

  1. 串口通信技术及其应用

    2024-06-11 02:12:03       39 阅读
  2. 基于单片机的数据串口通信研究

    2024-06-11 02:12:03       12 阅读
  3. Unity串口通信教程:基础知识和实践指南

    2024-06-11 02:12:03       35 阅读
  4. 基于FPGA的频率计与串口通信(二)

    2024-06-11 02:12:03       11 阅读
  5. 串口通讯串行接口通讯

    2024-06-11 02:12:03       33 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-11 02:12:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-11 02:12:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-11 02:12:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-11 02:12:03       18 阅读

热门阅读

  1. svnadmin备份和还原

    2024-06-11 02:12:03       9 阅读
  2. Perl 运算符

    2024-06-11 02:12:03       10 阅读
  3. 算法:读取redis中指令查询的键

    2024-06-11 02:12:03       8 阅读
  4. 题解web

    题解web

    2024-06-11 02:12:03      8 阅读
  5. 在 React 应用中,怎么封装一个路由权限

    2024-06-11 02:12:03       8 阅读
  6. PHP小方法

    2024-06-11 02:12:03       12 阅读
  7. 课时151:项目发布_基础知识_技术要点

    2024-06-11 02:12:03       8 阅读
  8. C++设计模式---策略模式

    2024-06-11 02:12:03       11 阅读
  9. Permissions 0644 for ‘/home/jsy/.ssh/id_rsa‘ are too open

    2024-06-11 02:12:03       12 阅读
  10. Qt Graphics View Framework 简介

    2024-06-11 02:12:03       10 阅读
  11. CentOS 7 安装配置基础DNS服务,主从域名服务器

    2024-06-11 02:12:03       11 阅读
  12. 【OS】AUTOSAR OS调度器实现原理

    2024-06-11 02:12:03       11 阅读
  13. 智能合约中外部调用漏洞

    2024-06-11 02:12:03       9 阅读
  14. ovs网络配置命令

    2024-06-11 02:12:03       8 阅读
  15. TypeScript基础教程学习

    2024-06-11 02:12:03       11 阅读