• 深入浅出理解串口


    深入浅出理解串口



    一、什么是串口?

    传输数据的方式有两种:串行通讯和并行通讯
    串口是串行接口的简称,串口是一种物理接口!而不是通讯协议!
    顾名思义,并口就是并行接口的简称
    不管是并口还是串口,都是一种物理接口!!!
    所以,串行通讯对应的接口我们称为串口;并行通讯对应的接口我们称为并口

    在这里插入图片描述
    在这里插入图片描述串行通讯是把数据排成一队,按照排队的先后顺序传输数据
    并行通讯是每个数据自己组成一队,然后同时传输

    常用给串行通讯协议有:IIC、SPI、JTAG、UART、CAN、RS232、RS485、USB等
    嵌入式中常说的串口,其实就是值UART

    二、串行通讯

    根据使用的时钟不同(同步时钟和异步时钟),我们可以将串行通讯分为同步通讯和异步通讯;
    同步时钟:时钟频率一致;可以一对多,效率高
    常见的IIC、SPI都属于同步通讯
    异步时钟:时钟频率不一致;只能一对一,效率低
    常见的UART是属于异步通讯

    三、UART协议

    1、UART与USART

    USART(universal synchronous asynchronous receiver and transmitte): 通用同步异步收发器
    USART是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。
    UART(universal asynchronous receiver and transmitter): 通用异步收发器
    异步串行通信口(UART)就是我们在嵌入式中常说的串口,它还是一种通用的数据通信议。
    双方使用UART通讯时 ,至少需要三根线、知道对方的波特率、数据长度、开始及停止位

    2、三根线:

    TX:发送数据线
    RX:接受数据线
    GND:参考点

    3、波特率

    指的是传输每个字节的时间
    例如波特率为115200,那就代表我一秒可以传输115200个字节

    4、数据格式

    串口一个字节的格式:
    在这里插入图片描述

    没有奇偶校验位的格式:
    在这里插入图片描述以9600 8N1(9600波特率,8个数据位,没有校验位,1位停止位)为例,这是目前最常用的串口配置,现在我们传输’O’'K’两个ASCII值,'O’的ASCII为79,对应的二进制数据为01001111 ,'K’对应的二进制数据为01001011 ,传输的格式数据如下图所示:01111001010110100101

    5、奇偶校验位

    奇校验:发送一组二进制数据,如果其中位数为1的个数为奇数时,则校验位为0,否则为1。
    偶校验:发送一组二进制数据,如果其中位数为1的个数为偶数时,则校验位为0,否则为1。
    0校验:校验位固定为0。
    1校验:校验位固定为1。


    总结

    串口是物理接口!不是通讯协议

  • 相关阅读:
    手把手教你在windows上安装mysql8.0最新版本数据库,保姆级教学
    pytorch代码实现之分布偏移卷积DSConv
    SQLAlchemy学习-2.query() 查询数据
    MySQL 主从复制数据不一致,怎么办?
    济南申请ISO认证的条件和要求
    SAP,ABAP:ALV变式复制
    基于51单片交通灯控制器_紧急+行人+总开关
    lnmp环境安装ffmpeg,并在Yii2中使用
    React+TS学习和使用(二)
    一、MyBatis-Plus(未完成)
  • 原文地址:https://blog.csdn.net/qq_45025738/article/details/127678402