首页/新闻资讯/正文详情

通信协议知识—CAN、Modbus、SPI、IIC等

发布时间:2026/11/6 1:13:15 来源:云帆数科 栏目:资讯中心
通信协议知识—CAN、Modbus、SPI、IIC等
目录目录基础知识:​编辑一、spi1、通信介绍:2、设备时钟:3、数据传输4种模式:二、UART1、RS232协议:2、RS485协议:特点 :拓扑图:电路图:三、IIC总线1、特点:2、iIC总线寻找方式:3、通信过程:四、CAN协议1、基础知识2、 CAN帧 3、CAN相关的指令4、Linux系统CAN通信开发五、modbus协议1、基础概念常见三种通讯方式:功能码:2、报文格式4、以太网传输(modbus tcp)4.1 Modbus TCP的帧格式:4.2报文举例说明:4.2 Mbs tcp软件开发:5、异步串行传输的两种方式(RTU和ASCII)5.1 RTU帧结构:(不同功能码)5.2 RTU例子基础知识:1、串行和并行:按照每次发送二进制位的个数可以分为并行通信和串行通信,总线上本质传的是电信号。串行通信:数据线只有一根线,数据有八位的话,只能一位一位逐次的传递。并行通信:线在传递数据是可以一次性把数据的多个位一次性传递。总线有八根线,每根线负责传递一位二进制信号。2、单工、双工、半双工:按照数据传输的方向分为单工通信、半双工通信和双工通信。单工:通信的信道是单向的,发送端与接收端也是固定的。广播就是一种单工通信的方式,广播站是发送端,听众是接收端。双工:在通信的任意时刻,线路上存在A到B和B到A的双向信号传输。半双工:数据可以在一个信号载体的两个方向上传输,但是不能同时传输。3、波特率、比特率:波特率-码元速率:单位时间传输的码元的个数,单位是波特Baud。(当码元大小=1,比特率=波特率。当码元大小=2,即:一个码元由2位二进制数表示。那么,传一个码元的时间是传一个比特的时间的2倍。也就是比特率=2*波特率。)比特率-比特速率:单位时间传输的比特的个数,单位是bit/s=bps(bitpersecond)。4、异步和同步:同步通信——要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信——不要求接收端和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔在发送下一个字节。 同步通信效率高,异步通信效率较低;同步通信较复杂,双方时钟的润许误差较小;异步通信简单,双方始终可允许一定误差;同步通信可用于点对多点,异步通信只适用于点对点。5、TTL电平和差分电压信号:TTL电平(晶体管逻辑电平)即单片机引脚直接提供的电平,+5V等价于逻辑“1”,0 V等价于逻辑“0”;而差分电压信号则为固定的电压值。6、名词解释:串口、COM口:物理接口形式(硬件),COM口简称是串口。TTL、RS-232和RS-485:电气标准(电信号,电气特性,不涉及接插件、电缆或协议)。TTL标准是低电平为0,高电平为1(+5V电平,一般大于2.4V都可以)。RS-232标准是正电平为0,负电平为1(±15V电平)。RS485一般为A、B及地共3针,逻辑“1”以两线间的电压差为+(2—6)V表示;逻辑“0”以两线间的电压差为-(2—6)V表示。USB(Universal Serial Bus,通用串行总线): 普遍使用的一种高速通信接口,和串口完全是两个概念。(包括物理接口、电平标准和通信时序标准;USB转串口模块,就是USB接口的UART模块)。UART 通用异步收发器: UART不是接口,是实现串口收发的逻辑电路(包括电平标准和通信时序标准),具体实物表现为独立的模块化芯片。一、spi1、通信介绍:SPI是串行外设接口(Serial Peripheral Interface),全双工、同步、串行的通信方式。使用4根信号线:SCLK(时钟线,主机产生发送给从机)、MOSI(主机发出从机接收线)、MISO(从机发出主机接收线)和CS(从机选通线,低电平选中,一次只能选一个从机)。通信速率高,最高可以达到几百Mbps。优点:无起始位和停止位,因此数据位可以连续传输而不会被中断;没有像I2C这样复杂的从设备寻址系统;数据传输速率比I2C更高(几乎快两倍);极其灵活的数据传输,不限于8位,它可以是任意大小的字;非常简单的硬件结构。从站不需要唯一地址(与I2C不同)。从机使用主机时钟,不需要精密时钟振荡器/晶振(与UART不同)。不需要收发器(CAN不同)。缺点:使用四根信号线(I2C和UART使用两根信号线);无法确认是否已成功接收数据(I2C拥有此功能);没有任何形式的错误检查,如UART中的奇偶校验位;只允许一个主设备;没有硬件从机应答信号(主机可能在不知情的情况下无处发送);没有定义硬件级别的错误检查协议;与RS-232和CAN总线相比,只能支持非常短的距离;2、设备时钟:时钟速率:主设备必须在通信开始时候配置并生成相应的时钟信号,从设备跟随。时钟极性(CKP或CPOL):指的是时钟脉冲在空闲时刻的状态。CPOL = 0,空闲时刻是低电平;CPOL = 1,空闲时刻是高电平。时钟相位(CKE或CPHA):指的是采样时刻。CPHA = 0,指在第一个跳变沿接收;CPHA = 1,指第二个跳变沿发送。3、数据传输4种模式:SPI模式CPOLCPHA空闲时SCK时钟采样时刻000低电平第1个边沿(奇)101低电平第2个边沿(偶)210高电平第1个边沿(奇)311高电平第2个边沿(偶)二、UARTUniversal Asynchronous Receiver Transmitter 即通用异步收发器,是异步、串行通信口的总称,可以实现全双工的发送和接收,在嵌入式系统中常用于主机与辅助设备之间的通信。它包括了RS232、RS499、RS423、RS422和RS485等接口标准规范和总线标准规范。编程时参数:波特率帧格式:串口直接使用存在的问题:电气接口不统一:UART只规定了信号时序,而未定义接口的电气特性;UART使用的芯片的TTL电平,但各芯片电平不统一,一般不直接使用。抗干扰能力差;通信距离极短;1、RS232协议: RS232是基于UART封装的电气层的协议,如下图,IBM简化后9条信号线,常用其中的三根线,规定逻辑“1”的电平为-5V~-15 V,逻辑“0”的电平为+5 V~+15 V。选用该电气标准的目的在于提高抗干扰能力,增大通信距离至15m。RXD:用于接收DCE发来的数据信号,即输入;TXD:用于发送DTE的信号,即输出。公头和母头的RXD和TXD应交叉连接;GND:用于平衡设备双方的地电位,即共地。通信方式:全双工、速率20kbps。缺点:通信速度低; 易产生干扰; 传输距离短;只能点对点传输。2、RS485协议:特点 :RS485是一种工业控制环境中常用的通信接口,是半双工、异步串行通信。采用

相关推荐

嵌入式Image小总结
嵌入式Image小总结

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:13:15

Verilog基础:强度建模与net型信号的多驱动问题(一)
Verilog基础:强度建模与net型信号的多驱动问题(一)

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 写在最前面 强度建模是Verilog HDL提供的针对仿真的特性,对于综合是没有意义的,无法通过强度建模改变综合结果中门的驱动强度。 一、强度建… · 2026/11/6 1:13:15

SystemVerilog基础:并行块fork-join、join_any、join_none(上)
SystemVerilog基础:并行块fork-join、join_any、join_none(上)

相关阅读 SystemVerilog基础https://blog.csdn.net/weixin_45791458/category_12517449.html?spm1001.2014.3001.5482 有关Verilog中顺序块和并行块的相关内容已经在之前的Verilog基础的文章讲过,如下所示。 Verilog基础:块语句https://blog.csdn.net… · 2026/11/6 1:13:15

Pillow识别极验消消乐验证码
Pillow识别极验消消乐验证码

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:18:15

CAPWAP隧道基本概念:集中转发和本地转发
CAPWAP隧道基本概念:集中转发和本地转发

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:18:15

补环境常见检测点以及瑞数补环境框架
补环境常见检测点以及瑞数补环境框架

补环境常见检测点与Node.js模拟 前言 通常我们在进行js逆向的时候,会发现js文件它通过检测大量的浏览器环境特征来区分真实浏览器和自动化脚本/模拟环境。本文将分析补环境的关键环境检测点,并探讨如何在Node.js环境中进行有效模拟。 环境检测点详解 1. … · 2026/11/6 1:18:15

初学java_继承和多态知识梳理
初学java_继承和多态知识梳理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:18:15

nmap扫描端口,netstat
nmap扫描端口,netstat

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:18:15

1553B总线常见三种组网方式
1553B总线常见三种组网方式

1553B总线(MIL-STD-1553B)是一种集中式串行总线协议,广泛应用于航空、航天、舰船及军事装备等领域。1553B总线通过统一的数字通信标准,取代了传统设备间复杂的模拟信号传输和点对点连线,大幅减少了电缆数量和系统重量。… · 2026/11/6 1:17:15

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07

三菱PLC数据采集到数据库的时序设计:Python+MC协议实战
三菱PLC数据采集到数据库的时序设计:Python+MC协议实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

ASIC主模式RTL设计:状态机与三态驱动的流片级实现
ASIC主模式RTL设计:状态机与三态驱动的流片级实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

STM32嵌入式C++开发:GDB调试与Renode仿真实战指南
STM32嵌入式C++开发:GDB调试与Renode仿真实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码