串口通信协议
创始人
2024-05-04 02:41:04
0

同步通信和异步通信

同步通信:需要时钟信号的约束,在时钟信号的驱动下两方进行数据交换,一般会选择在上升沿或者下降沿进行数据的采样,以及时钟极性和时钟相位【eg.SPI,IIC】。

异步通信:不需要时钟信号的同步,通过(起始位,数据帧,奇偶检验位....)的格式进行数据的传输,但是需要设定相应的波特率,来确定相同的传输频率。

物理层:

电平转换芯片我用的是CH340、PL2303、CP2102、FT232

设备A借助串口的发送和接受引脚连接到电平转换芯片TXD和RXD,然后接借助电平转换芯片将TTL电平转化为USB电平,然后连接到给电脑端。

协议层

 串口协议的一个数据包,由起始位,数据帧,奇偶检验位,停止位组成,

1)空闲位

UART协议规定,当总线处于空闲状态‘1’为高电平,表示当前电路在数据传输。

2)起始位和停止信号

因为空闲状态是高电平,所以起始位要是一个低电平,表示数据传输的开始。

1个停止位:停止位位数的默认值。
2个停止位:可用于常规USART模式、单线模式以及调制解调器模式。
0.5个停止位:在智能卡模式下接收数据时使用。
1.5个停止位:在智能卡模式下发送和接收数据时使用。

停止位越多,数据传输的越稳定,但是当前的数据传输的速度也就越慢。

3)有效数据

有效数据传输的长度为5-9位,先发送低位,再发送高位,低电平为0,高电平为1。

4)数据的检验

奇检验:数据帧加上检验位的1个数为奇数则检验成功,反之则检验失败。

偶检验:数据帧加上检验位的1个数位偶数则检验成功,反之则检验失败。

5)波特率

每秒传输的bit,eg:9600,1秒传输9600bit,相当于传输一个bit需要1/9600=104.2us。

USART框图理解【重点!!!】

 CPU通过总线往DR寄存器写入数据,数据被并行的传入到TDR【发送数据寄存器】,然后并行的传入到移位寄存器,移位寄存器将数据串行一位一位的发送出去,接收数据也是一样的步骤,串行的发送的接收移位寄存器,然后并行的发送到接收数据寄存器【RDR】,然后并行的发送给CPU(CPU读取数据)

 

代码详解:深度理解STM32的串口实验(寄存器)【保姆级教程】_夜路难行々的博客-CSDN博客_stm32串口寄存器

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...