物理层:规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。其实就是硬件部分。

协议层:协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。其实就是软件部分。

简单来说物理层规定我们用嘴巴还是用肢体来交流,协议层则规定我们用中文还是英文来交流。

物理层

  1. RS232标准
  2. USB转串口(TTL)
  3. 原生的串口到串口(TTL->TTL)

RS-232 与 TTL 电平区别

TTL:一般是直接从单片机或者芯片里面出来的电平,逻辑1为2.4V-5V逻辑0为0-0.5v(一般高电平位5V或者3.3V,低电平为0)

RS232: 逻辑 1-15V~-3V逻辑 0:+3V~+15V(低电平为-15V,高电平为15V峰值差别大,不以0为低电平,)

RS232标准串口通讯结构图

控制器AB可以理解为芯片,出来的是TTL电平,经过电平转换芯片(MAX3232,SP3232),转换成RS232电平.

RS232串口一般用于工业,对于防止静电....很好...

对于没有232串口的STM32板子,可以去某宝买一个232串口,一般长这个样.(RXD TXD VCC GND 黑色的小块为电平转换芯片 银色的接口为DB9接口,DB9串口先将两个DB9接口连接,将RXD TXD分别连接STM32的USTAR串口的引脚,VCC GND接好板子相应的位置(杜邦线),也可以用USB转串口线连接(电平转换芯片为CH340,PL2303,CP2102)电脑上,需要安驱动.)

USB转(RXD<->TXD TXD<->RXD)

原生的串口到串口

1、原生的串口通信主要是控制器跟串口的设备或者传感器通信,不需要经过电平转换芯片来转换电平,直接就用TTL电平通信

2、GPS模块、GSM模块、串口转WIFI模块、HC04蓝牙模块

协议层

串口数据包的基本组成

起始位:由1个逻辑 0 的数据位表示

结束位:由 0.5、 1、 1.5 或 2 个逻辑 1 的数据位表示

有效数据:在起始位后紧接着的就是有效数据,有效数据的长度常被约定为 5、 6、 7 或 8 9位长

校验位:可选,为的是数据的抗干扰性。

校验方法分为:

1-奇校验(odd)、   2-偶校验(even)

3-0 校验(space)、 4-0校验(mark)

5-无校验(noparity)

奇校验(odd) :有效数据和校验位中“ 1”的个数为奇数

比如一个 8 位长的有效数据为: 01101001,此时总共有 4 个“ 1”,为达到奇校验效果,校验位为“ 1”,最后传输的数据将是 8 位的有效数据加上 1 位的校验位总共 9 位

偶校验(even) :有效数据和校验位中“ 1”的个数为偶数

比如一个 8 位长的有效数据为: 01101001,此时总共有 4 个“ 1”,为达到偶校验效果,校验位为“ 0”,最后传输的数据将是 8 位的有效数据加上 1 位的校验位总共 9 位

0 校验是不管有效数据中的内容是什么,校验位总为“ 0”。

1 校验是校验位总为“ 1”。

无校验就是数据包中不包含校验位

串口(USART)通信-串口通讯协议简介的更多相关文章

  1. MODBUS-RTU通讯协议简介

    MODBUS-RTU通讯协议简介   什么是MODBUS? MODBUS 是MODICON公司最先倡导的一种软的通讯规约,经过大多数公司 的实际应用,逐渐被认可,成为一种标准的通讯规约,只要按照这种规 ...

  2. Modbus通讯协议简介

    Modbus协议简介 Modbus协议最初由Modicon公司开发出来,此协议支持传统的RS-232.RS-422.RS-485和以太网设备,许多工业设备,包括PLC,DCS,智能仪表等都在使用Mod ...

  3. TCP/IP协议,TCP与平台通信,通讯协议压力测试(python)

    最近的项目来了一个需求,要求测试tcp网关通讯协议: 1.液压井盖通过TCP/IP TCP与平台通信: 2.硬件定期发送心跳包(10S)给平台,是平台与硬件保持长连接: 3.每台硬件有一个12字节的唯 ...

  4. STM32串口USART通信总结

    一.GPIO设置USART的初始化 /**************************实现函数******************************************** *函数原型: ...

  5. STM32F10x 学习笔记5(USART实现串口通讯 1)

    STM32F10x 系列单片机中都包含了USART 模块,所谓USART,就是通用同步异步收发器.通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间 ...

  6. 串口屏Modbus协议,串口屏的modbus协议资料,串口屏modbus通讯协议开发,串口屏之modbus协议使用技巧

    串口屏Modbus协议,串口屏的modbus协议资料,串口屏modbus通讯协议开发,串口屏之modbus协议使用技巧 本例程中用51单片机作为Modbus从机,从机的设备地址为2,从机有4个寄存器, ...

  7. 通信方案软件设计(环形动态申请内存,支持USART+IIC+SPI+CAN协议

    1 <STM32进阶之串口环形缓冲区实现>中讲得比较清楚(链接) 2 amobbs中讲的方法有点复杂,以下是链接和参考源码: 通信方案软件设计(环形动态申请内存,支持USART+IIC+S ...

  8. 直接对寄存器操作,实现usart的串口输出寄存器的配置

    就像前面提到的,我用的板子是一款stm32f107系列的板子,在这块板子上,已经开发出了一套比较成熟的库函数,这也就意味着你可以不用直接去操作存储器来实现某些功能.比方说对于USART来说可以直接通过 ...

  9. C# 串口操作系列(5)--通讯库雏形

    C# 串口操作系列(5)--通讯库雏形 标签: 通讯c#数据分析byteclassstring 2010-08-09 00:07 21378人阅读 评论(73) 收藏 举报  分类: 通讯类库设计(4 ...

随机推荐

  1. ASP.NET进行请求转发

    前言 前两天将网站的部分功能在小程序上实现,网站的后台是http,没有配置域名和安全证书,小程序的线上版本是无法访问的,因此需要从配有域名和安全证书的站点进行转发.即小程序请求A,A转发请求到B,B获 ...

  2. django post 403

    同一个地址GET方式可以正常访问 在POST 提交数据过程中报403错误, 原来是1.3版本settings.py 文件中 'django.middleware.csrf.CsrfViewMiddle ...

  3. linux下查看memcache是否正常

    1   查看memcache启动1.1      在xshell中查看memcache是否启动在xshell中输入ps -ef | grep mem,显示结果如下,说明memcache已经启动. [r ...

  4. 猎豹网校C++ Primer学习笔记2

    14.数组 数组定义时的长度必须是在编译时就能确定的值. 全局数组会自动初始化为0. size_t 15.指针 其指向类型要相同. 指针和引用: 指针可以先不初始化,可以修改指向.有指针的指针. 16 ...

  5. 双缓冲技术局部更新原理之派生自View

    package com.loaderman.customviewdemo; import android.content.Context; import android.graphics.Canvas ...

  6. 使用select和show命令查看mysql数据库系统信息

    (1).select 显示当前日期和时间 mysql> select now(); +---------------------+ | now() | +-------------------- ...

  7. linux vim基本操作

    vim 是一款功能强大的文本编辑器, 默认有三种模式: 命令模式, 插入模式, 编辑模式, 使用# vim file 打开一个文件时,默认进入命令模式, 不同模式直接的切换如下    a. 命令模式切 ...

  8. CDS视图篇 2

    核心数据服务 (CDS) 公司希望使用 SAPS/4HANA 核心数据服务 (CDS) 视图技术.需要学习 CDS 视 图的概念和结构以及语法 . ● 核心数据服务是用于业务实体的 SAP 战略建模方 ...

  9. Python - Django - 作者表多对多关联书籍表

    models.py 代码: from django.db import models # Create your models here. # 出版社 class Publisher(models.M ...

  10. LeetCode_160. Intersection of Two Linked Lists

    160. Intersection of Two Linked Lists Easy Write a program to find the node at which the intersectio ...