常用的嵌入式硬件通信接口协议(UART、IIC、SPI、RS-232、RS-485、RS-422、CAN、USB、IRDA)(一)
一、概述
通信协议是两个(或多个)设备之间进行通信,必须要遵循的一种协议。通讯协议分为物理层和协议层。
- 物理层:规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输;
- 协议层:规定通讯逻辑,统一收发双方的数据打包、解包标准。
二、定义
UART: 通用异步收发传输器。
USART: 通用同步/异步串行接收/发送器。USART可以理解为UART和USRT二合一的通信接口,一个是同步通信,一个是异步通信。
IIC: 集成电路总线,是一种串行通信总线。
SPI: 串行外设接口,是一种高速的,全双工,同步的通信总线。
QSPI: 是SPI接口的扩展,比SPI应用更加广泛。QSPI是在SPI协议的基础上,对其增加了队列传输机制,传输过程不需要CPU干预,极大的提高了传输效率。
RS-232: 全双工点对点式的异步串行通信协议接口。
RS-485: 串行通信总线,采用两线制,差分传输,半双工模式。
RS-422: 采用四线制,全双工,差分传输,多点通信的数据传输协议。
USB: 通用串行总线 。USB是一个外部总线标准,用于规范电脑与外部设备的连接和通讯,是应用在PC领域的接口技术。
CAN: 控制器局域网络。 CAN 总线是一种应用广泛的现场总线 ,在工业测控和工业自动化等领域有很大的应用前景。
IRDA: 是一种利用红外线进行通信的,点对点通信的技术。
三、通信协议
1、UART
(1)基本概念
UART——通用异步收发传输器。UART作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。
基于UART的数据传输是异步形式的串行数据传输。基于UART的串行数据传输不需要使用时钟信号来同步传输的发送端和接收端,而是依赖于发送设备和接收设备之间预定义的配置。
对于发送设备和接收设备来说,两者的串行通信配置(波特率、单位字的位数、奇偶校验、起始位数与结束位、流量控制)应该设置为完全相同。通过在数据流中插入特定的比特序列,可以指示通信的开始与结束。当发送一个字节数据的时候,需要在比特流的开头加上起始位,并在比特流的末尾加上结束位。数据字节的最低位紧接在起始位之后。
UART 串口的特点是将数据一位一位地顺序传送,只要2根传输线就可以实现双向通信,一根线发送数据的同时用另一根线接收数据。
UART 串口通信有几个重要的参数,分别是波特率、起始位、数据位、停止位和奇偶检验位,对于两个使用UART串口通信的端口,这些参数必须匹配,否则通信出错。
UART通信数据格式:
起始位:表示数据传输的开始,电平逻辑为“0” ,位数为1位。
数据位:可以是5~8位的数据,先发低位,再发高位,一般取值为8,因为一个ASCII 字符值为8位。
奇偶校验位:用于接收方对接收到的数据进行校验,“1”的位数为偶数(偶校验) 或奇数(奇校验),以此来校验数据传送的正确性,使用时不需要此位也可以。
停止位:表示一帧数据的结束,电平逻辑为“1”,位数可以是1/1.5/2位。
波特率:串口通信时的速率,它用单位时间内传输的二进制代码的有效位(bit) 数来表示,其单位为每秒比特数bit/s(bps)。常见的波特率值有4800、9600、115200 等,数值越大数据传输的越快,波特率为115200 表示每秒钟传输115200 位数据。
(2)硬件连接
(3)UART存在的问题
- UART只是对信号的时序进行了定义,而未定义接口的电气特性;
- UART通信时一般直接使用处理器使用的电平,即TTL电平,但不同的处理器使用的电平存在差异,所以不同的处理器使用UART通信时一般不能直接相连;
- UART没有规定不同器件连接时连接器的标准,所以不同器件之间通过UART通信时连接不方便。
- UART一般直接使用TTL信号来表示0和1,但TTL信号的抗干扰能力较差,数据在传输过程中很容易出错。
- 由于TTL信号的抗干扰能力较差,所以其通信距离很短,一般只能用于一个电路板上的两个不同芯片之间的通信。
温馨提示: 下一章节将讲叙I2C通信协议。
常用的嵌入式硬件通信接口协议(UART、IIC、SPI、RS-232、RS-485、RS-422、CAN、USB、IRDA)(一)相关推荐
- 嵌入式硬件通信接口协议-UART(四)设计起止式的应用层协议
文章首发于同名微信公众号:DigCore 欢迎关注同名微信公众号:DigCore,及时获取最新技术博文. 原文链接:https://mp.weixin.qq.com/s/amO7rGkqFJtCzuy ...
- 常用的嵌入式硬件通信接口协议(UART、IIC、SPI、RS-232、RS-485、RS-422、CAN、USB、IRDA)(二)
2.IIC (1)基本概念 IIC总线是一种串行.半双工总线,同步通信.主要用于近距离.低速的芯片之间的通信. IIC串行总线一般有两根信号线,一根是双向的数据线SDA收发数据,另一根是时钟线SCL双 ...
- 硬件基础:理解串口通信以及232,485,422常见问题
这里并不对串口的编程作讲解,主要是从应用的角度去讲一讲.因为更多的时候,都是产品做好了,比如触摸屏需要和控制器,PLC通信.理想的情况下,一般只要一上电,不需要太多的操作和配置,就可以通信上. 在这里 ...
- 单片机-硬件接口(UART/IIC/SPI/RS232/USB/CAN)异同
1.中文名 USART:通用同步异步收发器 UART(Universal Asynchronous Receiver Transmitter:通用异步收发器) I2C(INTER IC BUS ...
- 串口及串口通信硬件详解UART,I2C,SPI,USB
1.计算机与计算机或计算机与终端之间的数据传送串行通讯和并行通讯二种方式 1.1.串行通信 和 并行通信 并行通讯通常可以一次传送8bit.16bit.32bit甚至更高的位数,相应地就需要8根.16 ...
- 嵌入式四大通信接口的解释
UART / IIC / SPI / WIRE 1. 裘千丈轻功水上漂之UART 射雕英雄传中的裘千丈说,UART就是我的轻功水上漂过河.想从河上过(通信),提前布暗桩,行走时步伐按桩距固定(波特率提 ...
- 【硬件通讯协议】SIP总线协议以及模拟(软件)SPI
参考资料 NXP 官方网站提供的 SPI 总线规范 S12SPIV4.pdfhttps://www.nxp.com/files-static/microcontrollers/doc/ref_manu ...
- 【回眸】牛客网刷刷刷!嵌入式软件中也会遇到的嵌入式硬件,通讯,通讯协议专题(一)
前言 最近继续刷题,看看嵌入式软件还需要了解一些嵌入式硬件中的通讯协议和常用接口协议 比如说SPI CAN I2C 通讯协议专题 1.波特率 波特率= 每秒传送的字符数 * 字符位数.串口的工作模式为 ...
- 嵌入式硬件入门——Flash Memory(W25Q64+SPI协议)
Flash存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失. 文章目录 Flash Fla ...
最新文章
- 孙正义:未来30年投资趋势【附PPT】
- Linux 将文件打包、压缩并分割成指定大小
- JDK 8的Calendar.Builder
- 2015腾讯暑期实习笔试题目
- 如何显示内存中的 HTML 网页
- Flink批处理练习
- 查看php 加载.dll,无法加载PHP_OCI8.DLL的解决
- Java 数组转字符串
- 震惊!Spring Boot 内存又泄露,排查太难了!
- MySql的基本操作以及以后开发经常使用的常用指令
- iOS SDK:预览和打开文档
- 定点补码加减法运算_定点加减法运算与溢出判断处理
- openstack私有云搭建
- “菜鸟”程序员和“大神”程序员差距在哪里
- Apache ShenYu ModifyResponse插件使用
- 电子商务网站建设策划书_竞赛解析 | 全国大学生电子商务“创新、创意及创业”挑战赛...
- 超强 Python 数据可视化库,一文全解析
- 倒计时!「一起学」大会线下分享与社群内部直播!
- android 图片空白,图片显示上下有空白的解决办法
- ISP概述、工作原理及架构
热门文章
- 【unity】 untiy中如何导出FBX
- AMiner论文推荐
- 数字滤波器设计(高通低通)
- BIOS功能调用表格
- Windows fatal exception: access violation / Process finished with exit code -1073741819 (0xC0000005)
- sql盲注二分法注入脚本
- 【你好,windows】Win10 x64 1709 X64企业G纯净版2019.7.28
- 如何批量将 Word 文档转为 ePub 格式
- bilibili视频爬取报错
- qt保存文件的默认路径_Qt Quick QSettings 配置信息保存位置