一、UART

UART是一个大家族,其包括了RS232、RS499、RS423、RS422和RS485等接口标准规范和总线标准规范。它们的主要区别在于其各自的电平范围不相同。

嵌入式设备中常常使用到的是TTL、TTL转RS232的这种方式。常用的就三根引线:发送线TX、接收线RX、电平参考地线GND。

1.1 电路示意图

1.2 通信协议

将传输数据的每个字符一位接一位地传输。

https://img-blog.csdn.net/20170719232822650” alt=”串口数据传输示意图.png” title=”” />

起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。

数据位:紧接着起始位之后。数据位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。

奇偶校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。

停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。

空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。

波特率:数据传输的速率。有以下几个档位:300、600、1200、2400、4800、9600、19200、38400、43000、56000、57600、115200.当然也可以自定义。在数据传输和接收双方,需要预先统一波特率,以便正确的传输数据。

二、I2C 总线

2.1 电路示意图

I²C (Inter-Integrated Circuit)。其拥有一根数据线SDA和一根时钟线SCL。其总线通过上拉电阻与电源相连接。每个接到I2C总线上的器件都有唯一的地址。其中,主动发起操作的一方为主机,另外一方为从机。

2.2 数据传输

当没有数据传输的时候,两根总线都为高电平;当采集IIC上的数据时,其时钟线SCL必须是高电平且SDA的数据必须保持稳定不变—将SDA的电平与SCL的高电平进行“与”操作后,以便确定SDA上是1还是0;在SCL为低电平的时候,SDA上的数据可以进行跳变。

数据传输开始时,需要发送一个起始信号;数据传输结束后,需要发送一个终止信号;每8bit数据传输结束,都需要一个ACK。起止信号都有Master发出,而ACK则可能由Master或者SLAVE来发出。数据的传输采用大端传输。

开始信号:SCL为高电平,SDA的电平由高跳到低表示开始信号。

终止信号:SCL为高电平,SDA的电平由低跳到高表示终止信号。

2.3 数据协议

2.4 I2C读写流程

三、SPI总线

SPI(Serial Peripheral Interface)是一种串行串行同步通讯协议,由一个主设备和一个或多个从设备组成。其拥有四根(类)硬脚引线,分别为 SDI(串行数据输入),SDO(串行数据输出),SCK(串行移位时钟),CS(片选)。因为一个主设备可以挂多个从设备,则通过片选引脚对从设备进行选择。从设备的工作时钟则是来自于主设备的SCK线。

3.1 电路示意图

3.2 数据的传输

SPI在数据传输的时候,需要确定两件事情:其一,数据是在时钟的上升沿采集还是下降沿采集;其二,时钟的初始(空闲)状态是为高电平还是低电平。而I2C的空闲状态,时钟线为高电平;数据采集的时候,时钟线也为高电平。但SPI给出了更自由的方式。

CPOL:时钟极性, 表示 SPI 在空闲时, 时钟信号是高电平还是低电平。

CPHA:时钟相位, 表示 SPI 设备是在 SCK 管脚上的时钟信号变为上升沿时触发数据采样, 还是在时钟信号变为下降沿时触发数据采样。

那么,SPI CPOL有两种可能,CPHA有两种可能,则SPI数据传输就有四种可能—按照标准的说法,SPI数据传输就有四种模式。

3.3 SPI读写

SPI在硬件设计上采用的双数据线制,根据设计,在SPI通信过程中,主从设备之间会形成一个数据环形链路—也即是,主设备向从设备写一次数据,从设备就会回一次数据(至于该从设备回复的数据是否有效,则另当别论—如果有效,主设备就把它读入;如果无效,则丢弃即可)。

几个串口通信协议的整理相关推荐

  1. 我也聊聊串口通信协议:用户层通信协议的编制

    1.闲话闲聊 最重要的写在前面:用户层通信协议就是数据包格式!!! 没有进行串口通讯实践的朋友可能会想:为什么要编制用户通信协议呢?通信过程中为什么要进行数据处理呢?在设计中编过串口通信程序的读者应该 ...

  2. stm32串口接收不定长数据_基于STM32之UART串口通信协议--接收

    一.前言 1.简介 回顾上一篇UART发送当中,已经讲解了如何实现UART的发送操作了,接下来这一篇将会继续讲解如何实现UART的接收操作. 2.UART简介 嵌入式开发中,UART串口通信协议是我们 ...

  3. c语言单片机串口通讯,单片机C语言之串口通信协议

    串口通信概述 串口通信指串口按位(bit)发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据. 常用三种串口通信协议 1.RS-232 RS ...

  4. s7300plc串口通信_西门子PLC300串口通信协议比较与分析

    西门子 PLC300 串口通信协议比较与分析 通信方式一: CP341 通信模块的通信方式 CP341 有三种不同的接口模式, 分别为: CP 341-RS 232C , CP 341-20mA TT ...

  5. 串口通信协议(基于面试),与及树莓派与电脑之间串口通信

    一.首先来说一下基于面试的串口通信协议 树莓派wiringPi库详解 (1)串口通信是基于多机的通信 主要就是两根线:RXD和TXD 举例,语音识别模块与树莓派之间进行串口通信 语音模块的T连接树莓派 ...

  6. 51单片机学习篇-- --基于51单片机的串口通信协议

    开篇先说一句废话···· 本旺名字叫萨摩耶,,Please 叫我旺财,,,哈哈,招财进宝嘛! 开篇 计算机按照下行数据通信协议,串口发送数据,地址为自己的学号(十六进制),单片机收到后(收到的是数据, ...

  7. 串口通信协议简介—学习笔记

    串口通信协议简介-学习笔记 文章目录 串口通信协议简介-学习笔记 一.串口.COM口.UART口, TTL.RS-232.RS-485区别详解 1.物理接口形式 2.电平标准 2.1 **TTL** ...

  8. 单片机中常用的串口通信协议帧

    单片机中常用的串口通信协议帧 前言 一.单片机串口简介 二.常用的通信协议类型 1.没有格式 2.帧头帧尾+数据 3.帧头帧尾+数据+附加功能码 4.帧头帧尾+数据+附加功能码+目标地址 5.帧头帧尾 ...

  9. 串口通信协议示例与分析

    串口通信协议示例与分析     作者:佚名    教程来源:不详    点击数:  变频器与个人电脑使用RS-232/RS-485 串行总线连接,如下所示: 在通讯操作中,通过个人电脑以命令方式控制仪 ...

最新文章

  1. 做图形处理Linux小型主机,8个优秀的linux图形图像工具
  2. 过桥问题c语言程序,盏灯过桥游戏
  3. lucene正向索引——正向信息,Index – Segments (segments.gen, segments_N) – Field(fnm, fdx, fdt) – Term (tvx, ...
  4. python装饰器类-基于类的python装饰器
  5. Ubuntu开启telnet服务
  6. spring集合的注入
  7. KCdoes NetUSB 严重漏洞影响多家厂商的数百万台路由器
  8. Vue-Less的自动和手动引入
  9. 【设计模式笔记】代理模式
  10. 二维数据的分形维数分析(C++实现)
  11. 技术分享的优势——写文章半年的收获
  12. 需要使用新应用以打开此mswindowsstore解决办法
  13. HTML5期末大作业:仿悦世界游戏网站设计——仿悦世界游戏官网(6页) HTML+CSS+JavaScript web网页设计实例作业
  14. java自行车怎么调档_变速的自行车如何调档
  15. u盘内存怎么测试软件,U盘下的内存检测软件
  16. 第二十一章 异步编程
  17. 计算机这一门在高考里占分吗,2018高考各科答题要点 从答题规范上“要分”
  18. PAT_乙级1010
  19. 小蛮与QQ堂的故事 ——外挂作者的缅怀
  20. 金钱不能买什么读后感_金钱的魔力读后感

热门文章

  1. jQuery ajaxForm 表单提交
  2. 简单实现基于 STM32F407+ESP8266+RFID 的物联网小项目
  3. 前端开发学习及工具网站(持续更新)
  4. 马士兵内部共享—1658页《Java面试突击核心讲》,面试神技
  5. 《Android源码设计模式解析与实战》读书笔记(十六)
  6. 共享单车创始人正在沦为资本家的傀儡?
  7. 查看JS代码中\x68等加密数据内容的解决办法
  8. 如何快速记忆C语言运算符,C语言运算符快速记忆法
  9. VMware 14 Pro 永久许可证激活密钥
  10. MySQL创建组合索引