串口通讯协议简介:
串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。
在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设;STM32 标准库则是在寄存器与用户代码之间的软件层。对于通讯协议,我们也以分层的方式来理解,最基本的是把它分为物理层和协议层。物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。
串行通信的分类
1、按照数据传送方向,分为:
**单工:**数据传输只支持数据在一个方向上传输;
**半双工:**允许数据在两个方向上传输。但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;它不需要独立的接收端和发送端,两者可以合并一起使用一个端口。
**全双工:**允许数据同时在两个方向上传输。因此,全双工通信是两个单工通信方式的结合,需要独立的接收端和发送端。
2、按照通信方式,分为:
**同步通信:**带时钟同步信号传输。比如:SPI,IIC通信接口。
**异步通信:**不带时钟同步信号。比如:UART(通用异步收发器),单总线。
物理层:
规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。其实就是硬件部分。
电平标准:RS232标准、USB转串口、原生的串口到串口
1.RS232标准串口主要用于工业设备直接通信
在设备内部信号是以TTL电平标准传输的,但其抗干扰能力较弱,为了增加串口的通讯距离及抗干扰能力,设备之间是通过RS-232电平标准传输的,而且TTL电平需要经过电平转换芯片才能转化为RS-232电平,经常使用MA3232与SP3232芯片对TTL电平及RS-232电平进行相互转换。
2.USB转串口主要用于设备跟电脑通信
电平转换芯片一般有CH340、PL2303、CP2102、FT232
使用的时候电脑端需要安装电平转换芯片的驱动。
3.原生的串口到串口
原生的串口通信主要是控制器跟串口的设备或者传感器通信,不需要经过电平转换芯片来转换电平,直接就用TTL电平通信。
例如:GPS模块、GSM模块、串口转WIFI模块、HC04蓝牙模块等。
协议层:
协议层主要规定通讯逻辑,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据,即软件部分。
1.数据包
串口通讯的数据包由发送设备通过自身的TXD接口传输到接收设备得RXD接口,在协议层中规定了数据包的内容,具体包括起始位、主体数据(8位或9位)、校验位以及停止位,通讯的双方必须将数据包的格式约定一致才能正常收发数据。
2.波特率
由于异步通信中没有时钟信号,所以接收双方要约定好波特率,即每秒传输的码元个数,以便对信号进行解码,常见的波特率有4800、9600、115200等。STM32中波特率的设置通过串口初始化结构体来实现。
3.起始和停止信号
数据包的首尾分别是起始位和停止位,数据包的起始信号由一个逻辑0的数据位表示,停止位信号可由0.5、1、1.5、2个逻辑1的数据位表示,双方需约定一致。STM32中起始和停止信号的设置也是通过串口初始化结构体来实现。
4.有效数据
有效数据规定了主题数据的长度,一般为8或9位,其在STM32中也是通过串口初始化结构体来实现的。
5.数据校验
在有效数据之后,有一个可选的数据校验位。由于数据通信相对更容易受到外部干扰导致传输数据出现偏差,可以在传输过程加上校验位来解决这个问题。校验方法有奇校验(odd)、偶校验(even)、 0 校验(space)、 1 校验(mark)以及无(noparity)。这些也都可以在串口初始化结构体中实现的。
USART简介
USART(通用同步异步收发器)是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。有别于 USART 还有一个UART,它是在 USART 基础上裁剪掉了同步通信功能,只有异步通信。简单区分同步和异步就是看通信时需不需要对外提供时钟输出,我们平时用的串口通信基本都是 UART。USART 在 STM32 应用最多莫过于“打印”程序信息,一般在硬件设计时都会预留一USART 通信接口连接电脑,用于在调试程序是可以把一些调试信息“打印”在电脑端的串口调试助手工具上,从而了解程序运行是否正确、如果出错哪具体哪里出错等等。
STM32中一共有5个USART,如示:
上一篇:STM32基础之IIC
下一篇:STM32进不了外部中断的一个可能原因
推荐阅读最新更新时间:2024-11-10 11:48
设计资源 培训 开发板 精华推荐
- 使用 Analog Devices 的 LT3091HT7 的参考设计
- LT6656ACDC-1.25、1.25V 2 端子电压基准电流源的典型应用
- 蓝牙4.2模块E104-BT02板
- 使用 NCP1392B、NCP1606 和 NCP1351B 演示板实现 LCD 电视电源
- LTC1879 的典型应用 - 具有 15uA 静态电流的 1.2A 同步降压型稳压器
- #第八届立创电赛#【立创电赛】基于瑞萨的桌面电子时钟项目
- #第八届立创电赛#一页书的桌面时钟-瑞萨
- LT3091IDE 简单电缆压降补偿的典型应用
- TWR-MCF51AG,适用于家电和工业应用的 MCF51AG 32 位 ColdFire V1 微控制器的开发塔式系统模块
- 使用 Analog Devices 的 AD9888KSZ-205 的参考设计
- Littelfuse 高效 • 可靠 • 精准的功率控制和电路保护方案在工业、交通、通讯、医疗及新能源中的应用
- TI工业月技术方案深度学习
- ams圣诞礼物大作战:扫码、关注、玩游戏、赢礼!
- Follow me第二季第1期来啦!与得捷一起解锁【Adafruit Circuit Playground Express】超能力!
- 激情六月!手把手教你用WEBENCH
- 艾睿电子直播:聚焦“TI FPD-Link III 汽车芯片组” ,汽车视频传输理想解决方案
- 有奖问答 | TE 互连解决方案助力智慧城市智能监控
- 是德科技有奖直播:元宇宙测试系列研讨会之VR/AR 数字接口测试的挑战
- 新年芯币竞价第三期——图书竞价