• 注册 / 登录
  • 切换到窄版
  • 查看: 1735|回复: 0

    串口通信与波特率

    [复制链接]

    668

    主题

    682

    帖子

    6599

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    6599
    发表于 2023-6-1 09:39:27 | 显示全部楼层 |阅读模式

    路线栈欢迎您!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    前言

    串口是串行接口的简称,串行接口是采用串行通信方式的接口。串行通信是一种将需要传输的数据由低位到高位一位一位地在一条传输线上逐个传输的通信方式。

    一、串行通信的数据格式

    首先来了解一下串行通信的数据格式,如下图所示,串行通信的一帧数据由起始位、数据位、校验位以及停止位组成。

    1.jpg

    起始位:低电平,标志着一帧数据的开始;

    数据位:数据内容,可选择为5、6、7、8位;

    校验位:用于确保传输数据的正确性,可分为奇校验和偶校验。奇校验时数据位和校验位中1的总数应为奇数,同理,偶校验时数据位和校验位中1的总数应为偶数;

    停止位:高电平,标志着一帧数据的结束。

    二、异步串行通信的波特率

    串行通信可以分为两种形式:同步串行通信和异步串行通信。

    同步串行通信:通信双方在同一时钟控制下同步传输数据;

    异步串行通信:通信双方使用各自的时钟控制数据传输。

    对于异步串行通信来说,虽然没有同步时钟,但是通信双方必须约定并遵循同样的设置,这就需要异步串行通信中一个重要的参数来设置,该参数即波特率。

    波特率即串口通信的速率,它表示每秒传输二进制数据的位数,单位是bps,即位/秒,常用的波特率有9600、19200、38400、57600和115200等。

    以115200的波特率为例,即一秒传输115200个二进制数据位,那么每一位的持续时间

    2.jpg

    因此,在通信双方约定波特率为115200的情况下,只要发送方发送的每位比特位的持续时间为8.68us,那么正常情况下接收方就能准确无误地解析数据。

    三、实验测试

    接下来利用实验来简单验证一下上述分析:波特率为115200,一位停止位,八位数据位,无奇偶校验位,发送数据为10110101,每组发送间隔100us。

    1、仿真测试

    仿真测试结果如下图所示,可以看出,发送的二进制数据依次为0101011011,每个比特位持续时间为8680ns,数据发送间隔为117360-2×8680=100000ns,均符合设计要求。

    3.jpg

    2、输出波形测试

    下载程序,测试对应引脚的输出波形,如下图所示,可以看出与仿真结果基本相符。

    4.jpg

    5.jpg

    3、通信测试

    通过上位机的串口调试助手接收发送的数据,通过下图所示的结果可以看出,接收到的数据为0xB5,对应的二进制数据为0b10110101,与发送端发送数据相符,通信成功。

    640.png

    作者:小小的电子之路

    相关文章:
    TX/RX通信用MOS电平转换电路设计 

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|路丝栈 ( 粤ICP备2021053448号 )

    GMT+8, 2024-11-3 21:19 , Processed in 0.044465 second(s), 21 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表