STM32
登录
直播中
哈哈哈
10年用户
794经验值
擅长:可编程逻辑
私信
关注
[问答]
通信协议是指什么?串行通信和并行通信的优缺点分别有哪些
开启该帖子的消息推送
通信
并行通信
串行通信
通信
协议是指什么?
串行通信和并行通信的优缺点分别有哪些?串行通信的通信方式有哪几种?
回帖
(1)
褚溢稚
2021-12-10 16:08:33
一、通信协议的定义
通信是指通信双方的一种约定,包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式等问题作出统一规定。也称通信控制规程。
二、串行通信和并行通信的优缺点
并行通信:
传输原理:数据各个位同时传输。
优点:速度快
缺点:占用引脚资源多
串行通信:
传输原理:数据按位顺序传输。
优点:占用引脚资源少
缺点:速度相对较慢
三、串行通信的通信方式
同步通信:带时钟同步信号传输。(SPI、IIC通信接口)
异步通信:不带时钟同步信号。(USART(通用异步收发器),单总线)
异步串行通信的特点:以字符为信息单位传送。即:传送同一字符的每一位时是同步的,而字符与字符之间是异步的。
同步串行通信的特点:以数据块为信息单位传送。即:字符内部位与位之间传送是同步的,字符与字符之间传送也是同步的。
四、USART帧格式
在异步通信中数据一般以一个字符为单位进行传送。用一帧来表示一个字符,一帧信息由
起始位
(为0信号,占1位)、
数据位
(传输时低位在先,高位在后)、
奇偶较验位
(可要可不要)和
停止位
(为1信号,可1位、1.5位或2位)组成。
五、波特率及其设置
在串行通信中,数据是按位进行传送的,因此传送速率用
每秒钟传送格式位
的数目来表示,称之为
波特率
(band rate)。每秒传送一个格式位就是1波特。
1波特=1bps(位/秒)
常用的有: 1200、2400、4800、9600、19200、115200波特。
接收器和发送器的波特率在USARTDIV的整数和小数寄存器中的值应设置成相同的。波特率通过USART_BRR寄存器来设置,包括12位整数部分和4位小数部分。
发送和接收的波特率计算公式为:
波特率 = fPCLKx / (16 × USARTDIV) 其中,fPCLKx(x=1、2)是给外设的时钟,PCLK1用于USART2、3、4、5,PCLK2用于USART1。
USARTDIV是一个无符号的定点数。USARTDIV的计算见下例。
例1: 如果 DIV_Mantissa = 27,DIV_Fraction = 12 (USART_BRR=0x1BC), 则:Mantissa (USARTDIV) = 27;Fraction (USARTDIV) = 12/16 = 0.75, 所以USARTDIV = 27.75。 例2: 要求 USARTDIV = 25.62, 则:DIV_Fraction = 16×0.62 = 9.92。取最接近的整数是:10 = 0x0A。DIV_Mantissa = mantissa (25.620) = 25 = 0x19 。 于是,USART_BRR = 0x19A 。 例3: 要求 USARTDIV = 50.99, 则:DIV_Fraction = 16×0.99 = 15.84。最接近的整数是:16 = 0x10 => DIV_frac[3:0]溢出 => 进位必须加到小数部分。 DIV_Mantissa = mantissa (50.990 + 进位) = 51 = 0x33。 于是,USART_BRR = 0x330,USARTDIV=51。
六、USART初始化(需要设置哪些参数)
初始化步骤:
1、GPIO口初始化;(PA9,PA10)
2、串口时钟设置;打开串口时钟
3、串口初始化;波特率,帧格式
4、串口使能;
5、发送字符;
6、发送字符串;
一、通信协议的定义
通信是指通信双方的一种约定,包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式等问题作出统一规定。也称通信控制规程。
二、串行通信和并行通信的优缺点
并行通信:
传输原理:数据各个位同时传输。
优点:速度快
缺点:占用引脚资源多
串行通信:
传输原理:数据按位顺序传输。
优点:占用引脚资源少
缺点:速度相对较慢
三、串行通信的通信方式
同步通信:带时钟同步信号传输。(SPI、IIC通信接口)
异步通信:不带时钟同步信号。(USART(通用异步收发器),单总线)
异步串行通信的特点:以字符为信息单位传送。即:传送同一字符的每一位时是同步的,而字符与字符之间是异步的。
同步串行通信的特点:以数据块为信息单位传送。即:字符内部位与位之间传送是同步的,字符与字符之间传送也是同步的。
四、USART帧格式
在异步通信中数据一般以一个字符为单位进行传送。用一帧来表示一个字符,一帧信息由
起始位
(为0信号,占1位)、
数据位
(传输时低位在先,高位在后)、
奇偶较验位
(可要可不要)和
停止位
(为1信号,可1位、1.5位或2位)组成。
五、波特率及其设置
在串行通信中,数据是按位进行传送的,因此传送速率用
每秒钟传送格式位
的数目来表示,称之为
波特率
(band rate)。每秒传送一个格式位就是1波特。
1波特=1bps(位/秒)
常用的有: 1200、2400、4800、9600、19200、115200波特。
接收器和发送器的波特率在USARTDIV的整数和小数寄存器中的值应设置成相同的。波特率通过USART_BRR寄存器来设置,包括12位整数部分和4位小数部分。
发送和接收的波特率计算公式为:
波特率 = fPCLKx / (16 × USARTDIV) 其中,fPCLKx(x=1、2)是给外设的时钟,PCLK1用于USART2、3、4、5,PCLK2用于USART1。
USARTDIV是一个无符号的定点数。USARTDIV的计算见下例。
例1: 如果 DIV_Mantissa = 27,DIV_Fraction = 12 (USART_BRR=0x1BC), 则:Mantissa (USARTDIV) = 27;Fraction (USARTDIV) = 12/16 = 0.75, 所以USARTDIV = 27.75。 例2: 要求 USARTDIV = 25.62, 则:DIV_Fraction = 16×0.62 = 9.92。取最接近的整数是:10 = 0x0A。DIV_Mantissa = mantissa (25.620) = 25 = 0x19 。 于是,USART_BRR = 0x19A 。 例3: 要求 USARTDIV = 50.99, 则:DIV_Fraction = 16×0.99 = 15.84。最接近的整数是:16 = 0x10 => DIV_frac[3:0]溢出 => 进位必须加到小数部分。 DIV_Mantissa = mantissa (50.990 + 进位) = 51 = 0x33。 于是,USART_BRR = 0x330,USARTDIV=51。
六、USART初始化(需要设置哪些参数)
初始化步骤:
1、GPIO口初始化;(PA9,PA10)
2、串口时钟设置;打开串口时钟
3、串口初始化;波特率,帧格式
4、串口使能;
5、发送字符;
6、发送字符串;
举报
更多回帖
rotate(-90deg);
回复
相关问答
通信
并行通信
串行通信
串口
通信
有哪几种方式?
串行
通信
与
并行
通信
分别有
哪些优点以及
缺点
?
2021-07-06
3895
并行
通信
和
串行
通信
的
优缺点
是什么?
2021-12-09
5521
谈一谈异步串口
通信
UART基础知识
2022-02-16
865
串行
通信
数据的传送方向是怎样的?具体的
通信协议
有哪几种呢
2022-02-16
2705
STM32串口
通信
过程和数据格式是怎样的
2021-12-06
1436
串行
通信
的过程是怎样的
2021-11-18
1192
怎样去区分STM32中的
通信
接口和
通信协议
呢
2021-12-06
1730
有关
通信协议
时一些问题?
2024-01-14
8115
串行
通信协议
的带宽是
指
什么?
2024-02-08
11367
RS-485
通信协议
是怎样工作的
2021-11-10
1480
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分