【总线接口】3.常见总线、接口GPIO、I2C、SPI、I2S、Modbus

news2024/11/17 23:30:20

 初接触硬件,五花八门的总线、接口一定会让你有些疑惑,我尝试用一系列文章来解开你的疑惑。

系列文章

【总线接口】1.以Xilinx开发板为例,直观的认识硬件接口

【总线接口】2.学习硬件这些年接触过的硬件接口、总线 · 大汇总

【总线接口】3.常见总线、接口GPIO、I2C、SPI、I2S、Modbus

【总线接口】4.一些和串口相关的概念:UART、TTL、RS232、RS485、RS422、RJ45

【总线接口】5.模拟视频和数字视频接口大汇总:CVBS、S-video、Component、BNC、VGA、RCA

【总线接口】6.显示屏相关总线、接口:DVI、HDMI、SDI、DisplayPort、Camera link

【总线接口】7.音频相关接口

【总线接口】8.SD卡和SDOI

【总线接口】9.Serdes是个“大家族”

【总线接口】10.PCI与PCI-E

【总线接口】11.RAM和ROM的一些相关概念

【总线接口】12.关于DDR你了解多少?

【总线接口】13.常见的硬盘接口与相关协议

【总线接口】14.DDR、EEPROM、SATA的关系

【总线接口】15.硬件板卡上常见的FMC接口

【总线接口】16.汽车总线:CAN、LIN、MOST

【总线接口】17.常见的JTAG是个什么协议?

【总线接口】18.航电总线你了解多少?

【总线接口】19.简单介绍USB“大家族”

【总线接口】20.常见网络接口:RJ45

【总线接口】21.硬件板卡上常见的:M12、SMA

【总线接口】22.光模块:SFP、CFP与OSFP 


几条说明

  1. 本文只罗列接口,这会是一个大系列的文章,让硬件新人系统的了解总线、协议、硬件接口;
  2. 列表里总线、接口、连接器都有,混在一起了,后续文章会根据下面这个大致的划分,去简单介绍;
  3. 有重复的列举;
  4. 划分有不严谨的地方;

目录

系列文章

几条说明

1 硬件总线和接口

1.1硬件总线

1.2硬件接口

2 GPIO

2.1概念

2.2应用实例

3 I2C

3.1概念

3.2应用实例

4 SPI

4.1概念

4.2应用实例

5 I2S

5.1概念

5.2应用实例

6 Modbus

6.1概念

6.2应用实例

6.3Modbus RTU协议

6.4Modbus TCP协议


1 硬件总线和接口

1.1硬件总线

硬件总线是连接计算机各种功能部件之间的公共通信干线,是各部件间传输信息的公用通道。它是由导线组成的传输线束,按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。硬件总线是一种内部结构,CPU、内存、输入、输出设备通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。硬件总线有一定的承载能力上限,我们把总线在单位时间内传输的数据量称为总线的带宽。硬件总线有多种分类方式,如按照信息传输的形式可分为并行总线和串行总线,按照连接的部件可分为芯片内总线和系统总线等。

1.2硬件接口

硬件接口(hardware interface)是指两个硬件设备之间的连接方式。它既包括物理上的接口,如USB接口、HDMI接口等,也包括逻辑上的数据传送协议,如IDE接口、SCSI接口等。硬件接口的作用是使不同的硬件设备能够相互协作、交换信息或提供服务,实现设备间的通信和控制。硬件接口有多种分类方式,如串行接口和并行接口等。


2 GPIO

2.1概念

GPIO的英文全称为General-Purpose Input/Output,中文含义是通用输入输出接口。GPIO是指数字信号的输入输出端口,通常用于连接外部硬件设备或传感器等,从而实现计算机与外部设备的通信和控制。GPIO可以通过软件进行配置,使其成为输入或输出模式,然后根据需要读取或写入数据。在嵌入式系统、微控制器、智能硬件等领域中,GPIO是非常常见的接口之一,它使得硬件和软件之间能够进行灵活的交互和控制。

2.2应用实例

如下图海思hi3516A对外提供GPIO接口

Hi3516A 支持 16 组 GPIO( General Purpose Input/Output),即 GPIO0~GPIO15。每组GPIO 提供 8 个可编程的输入输出管脚( GPIO15 只有 3 个)。每个管脚可以配置为输入或者输出。这些管脚用于生成特定应用的输出信号或采集特定应用的输入信号。作为输入管脚时, GPIO 可作为中断源;作为输出管脚时,每个 GPIO 都可以独立地清 0 或置 1。

GPIO 可以根据电平或跳变值产生可屏蔽的中断。 GPIOINTR( General Purpose InputOutput Interrupt)信号给中断控制器一个指示,表示有中断发生。


3 I2C

3.1概念

I2C的英文全称为Inter-Integrated Circuit,中文含义是集成电路间总线。I2C是一种串行通信协议,用于连接微控制器和各种外围设备,如传感器、EEPROM、实时时钟等。它使用两根线:一根用于传输数据(SDA),另一根用于时钟(SCL)。I2C总线支持多设备连接,可以在总线上挂载多个设备,并通过地址码进行设备间的通信。

3.2应用实例

如下图海思hi3516A内部总线有挂接IIC总线

这里I2C 模块的作用是完成 CPU 对 I2C 总线上连接的从设备的读写。当 CPU 对从设备做写操作时, CPU 通过总线配置 I2C 模块的配置寄存器,然后发送控制信息和操作数到 I2C模块的数据通信寄存器; I2C 模块解析命令后将数据通道寄存器的数据通过 I2C 总线发给从设备,发送完毕后将最终的状态通过中断反馈给 CPU。 CPU 读取从设备数据的过程与写操作类似。


4 SPI

4.1概念

SPI的英文全称为Serial Peripheral Interface,中文含义是串行外设接口。SPI是一种同步串行通信协议,常用于微控制器和外围设备之间的通信,如闪存、传感器、RFID等。SPI使用四根线:一根用于传输时钟(SCK),一根用于主设备到从设备的数据传输(MOSI),一根用于从设备到主设备的数据传输(MISO),以及一根用于从设备的片选信号(Chip Select)。SPI通信速度快,数据传输效率高。

4.2应用实例

如下图海思hi3516A ISP控制器实现数据的串并、并串转换,可以作为 Master 与外部设备进行同步串行通信。支持 MOTOROLA 的 SPI、 TI 串行同步、 MicroWire 三种外设接口协议


5 I2S

5.1概念

I2S的英文全称为Inter-IC Sound,中文含义是集成电路间音频总线。I2S最初用于数字音频信号的传输,现已广泛应用于各种数字音频设备之间的通信。I2S使用三根线:一根用于传输时钟(SCK),一根用于数据(SD)和另一根用于声道选择(WS)。I2S支持多种采样率,可以传输左声道和右声道的数据。

I2S和I2C没有任何关系。

5.2应用实例

如下图I2S接CS4344立体声音频数模转换器 (DAC)方案

详细可参考:基于MM32F3270 I2S 使用 | MCU加油站


6 Modbus

6.1概念

Modbus的英文全称为Modicon Modbus,中文含义是莫迪康Modbus。Modbus是一种串行通信协议,常用于工业自动化领域中连接可编程逻辑控制器(PLC)和其他工业设备。Modbus使用两根线:一根用于传输数据(Serial Data),另一根用于接收时钟(Serial Clock)。Modbus支持多种数据传输模式,如ASCII码和RTU(远程终端单元)模式。

6.2应用实例

如下图一个自动化项目Modbus互联总线

在工业和楼宇自动化项目中,网络基础设施中不同现场总线设备的连接是已知的。面临的挑战是在在一个全面的IP网络中连接具有不同协议标准的不同制造商。现场总线级别的传感器和执行器通过 Modbus RTU 进行通信,必须集成到 Modbus TCP 网络中。

为了将Modbus RTU协议转换为Modbus TCP协议,需要使用Modbus网关。Modbus网关是Modbus RTU/Modbus TCP网关,主要将Modbus RTU协议转换为Modbus TCP协议(或相反)。

参考资料:METZ CONNECT | Network connection of Modbus RTU fieldbus components made easy

6.3Modbus RTU协议

Modbus RTU(Remote Terminal Unit)协议是一种串行通信协议,属于应用层的一层协议。RTU协议是一种开放的、主要用于工业自动化领域的通信协议,常用于连接可编程逻辑控制器(PLC)和其他工业设备。Modbus RTU协议使用RS-232、RS-485或RS-422等串行接口进行通信,通过主从方式实现设备间的数据传输和控制。

在Modbus RTU协议中,通信的双方被称为“主站”和“从站”。主站负责发起通信请求,从站被动地响应主站的请求。主站通过发送数据请求报文来从从站中读取数据,从站接收到请求后,根据请求的内容返回相应的数据给主站。

Modbus RTU协议具有简单明了、易于组网的特点,因此在工业自动化领域得到了广泛应用。由于其开放性和互操作性,许多厂商都在其产品中实现了对Modbus RTU协议的支持,使得不同厂商的设备可以方便地进行互联和通信。

Modbus RTU协议的传输方式是半双工的,即数据只能在一个方向上传输。它采用二进制格式进行数据传输,相对于ASCII码来说更加高效和可靠。此外,Modbus RTU协议还支持多种数据传输模式,如点对点、多点通信等,可以满足不同应用场景的需求。

6.4Modbus TCP协议

Modbus TCP(Transmission Control Protocol)协议是一种基于以太网的通信协议,它将Modbus协议与TCP/IP协议相结合,实现了Modbus协议在以太网中的应用。

Modbus TCP协议使用TCP/IP协议进行数据传输,因此它可以在互联网上进行通信,也可以通过路由器和交换机等网络设备进行数据传输。与Modbus RTU协议不同,Modbus TCP协议是一种全双工的通信协议,即数据可以在两个方向上进行传输。

在Modbus TCP协议中,数据帧的结构与Modbus RTU协议类似,包括地址码、功能码、数据区和校验码等部分。但是,Modbus TCP协议没有采用RTU的二进制格式,而是采用了TCP的字节流格式进行数据传输。此外,Modbus TCP协议还支持多种以太网接口,如10Base-T、100Base-TX和1000Base-T等。

由于Modbus TCP协议具有高速、可靠和灵活的特点,因此在工业自动化领域得到了广泛应用。通过将Modbus协议与TCP/IP协议相结合,Modbus TCP协议可以方便地实现不同厂商的设备之间的互联和通信,提高设备的互操作性和集成度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1419568.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网诺安全文件上传总结

一、文件上传简介 文件上传漏洞是指用户上传了一个可执行的脚本文件(木马、病毒、恶意脚本、webshell等),并通过此脚本文件获得了执行服务器端命令的能力。上传点一般出现在头像、导入数据、上传压缩包等地方,由于程序对用户上传…

【蓝桥杯冲冲冲】导弹拦截

蓝桥杯备赛 | 洛谷做题打卡day21 文章目录 蓝桥杯备赛 | 洛谷做题打卡day21题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示题目简化题解代码我的一些话 题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷…

Spring: 实体类转换工具总结

文章目录 一、MapStruct1、介绍2、原理3、使用4、问题处理(1)IDEA编译报错:NullPointerException 一、MapStruct 1、介绍 MapStruct是一个实体类属性映射工具,通过注解的方式实现将一个实体类的属性值映射到另外一个实体类中。在…

前端qrcode生成二维码详解

文章目录 前言1、浏览器支持2、优点3、缺点4、相关方法5、安装及使用示例 前言 qrcode 是一个基于JavaScript的二维码生成库,主要是通过获取 DOM 的标签,再通过 HTML5 Canvas 绘制而成,不依赖任何库。 官方文档:https://www.npm…

为什么说语言的主要作用不是交流而是思考

一般人常常以为,语言最重要的作用是帮助人们表达思想和情感。但最近偶然看到对乔姆斯基的一个采访,他认为:语言的主要作用不是交流,而是思考的工具,即语言是帮助人们组织和理解思维的过程。以下是几点说明为什么说语言…

Element ui 的组件弹窗 el-dialog点击的时候全屏变灰问题解决

最近在使用Element UI 的弹窗组件的时候发现这个组件各种的应用都没有问题,数据和元素的应用都是正确的但是在点击显示这个弹窗的时候全屏幕都会变灰。 这也不是因为增加了modal 遮挡幕的问题,在经过不断的排查代码的时候基本排除了代码的问题&#xf…

第一节 分布式架构设计理论与Zookeeper环境搭建

目录 1. 分布式架构设计理论 1. 分布式架构介绍 1.1 什么是分布式 1.2 分布式与集群的区别 1.3 分布式系统特性 1.4 分布式系统面临的问题 2. 分布式理论 2.1 数据一致性 2.1.1 什么是分布式数据一致性 2.1.2 副本一致性 2.1.3 一致性分类 2.2 CAP定理 2.2.1 CAP定…

数据结构-数组(详细讲解)

文章目录 数组数组的概述数组的图示一维数组二维数组 数组的定义一维数组的定义二维数组的定义 数组的取值赋值一维数组二维数组 数组的操作一维数组的操作索引实现指针实现 二位数组的操作矩阵转三元组矩阵的乘法 数组 数组的概述 概述:数组是一种线性数据结构&a…

SQL Server ISO镜像文件安装

参考:Sql Server ISO镜像文件安装指南_sqlserveriso文件怎么安装-CSDN博客 参考文件中的步骤基本相同,注意两点 1、尽量安装在D盘,有些组件默认必须安装在C盘,有些会报没有目录的情况 需要在D盘创建目录。 2、我没有windows本地…

交叉编译opencv运行平台rk3588

opencv版本:4.8.0 opencv_contrib版本:4.8.0 在源码目录下建build目录,进入该目录配置编译选项生成makefile cmake 配置参数: cmake -DCMAKE_MAKE_PROGRAM:PATH/usr/bin/make -DCMAKE_INSTALL_PREFIX/home/rog/my_file/other_L…

开发通用模板设计

文章目录 需求摘要1 模板描述2 模板内容介绍2.1 模块间依赖关系2.2 模板目前集成2.2.1 swaggerKnife4j2.2.1 nacosSpringBootSpringCloudAlibaba 3 项目地址4 FAQ 需求 目前在开发中,使用的非本人搭建的项目架子,存在如下问题: 依赖无法统一…

MyBatis 的XML实现方法

MyBatis 的XML实现方法 MyBatis 的XML实现方法前情提示创建mapper接口添加配置创建xml文件操作数据库insert标签delete标签select标签resultMap标签 update标签sql标签,include标签 MyBatis 的XML实现方法 前情提示 关于mybatis的重要准备工作,请看MyBatis 的注解实现方法 创…

机器学习系列 16:使用 scikit-learn 的 Pipeline

在机器学习项目中,我们经常需要进行大量的数据预处理步骤,最后用处理干净的数据集来拟合机器学习算法得到一个合适的机器学习模型。 scikit-learn 提供了一个强大的 Pipeline 类来帮助我们将所有的数据预处理步骤和训练模型的步骤串起来。就像流水线一样…

【UE 材质】闪电材质

效果 步骤 1. 新建一个材质这里命名为“M_Lighting” 打开“M_Lighting”,设置混合模式为半透明,着色模型为无光照 在材质图表中添加如下节点 其中,纹理采样节点的纹理是一个线条 此时预览窗口中效果如文章开头所示。

LINUX基础培训十九之常见服务dns介绍

前言、本章学习目标 了解dns服务用途掌握dns服务器的配置掌握dns服务的使用 一、DNS服务概述 DNS是域名系统(Domain Name System)的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的个分布式数据库,能够使人更方便的访问…

计数排序(六)——计数排序及排序总结

目录 一.前言 二.归并小补充 三.计数排序 操作步骤: 代码部分: 四.稳定性的概念: 五.排序大总结: ​六.结语 一.前言 我们已经进入排序的尾篇了,本篇主要讲述计数排序以及汇总各类排序的特点。码字不易&#x…

Nuget包缓存存放位置迁移

一、背景 默认情况下,NuGet会将项目中使用的包缓存到C盘,随着项目开发积累nuget包越来越多,这会逐渐挤占大量C盘空间,所以我们可以将nuget包缓存位置指定到其他盘中存放。 二、软件环境 win10、vs2022 三、查看当前缓存存放位…

realsence 455 查看左右摄像头

前言 我打算使用realsence的左右连个摄像头去自己标定配准、然后计算距离的,就需要找s、下载包。 没成想,这个455的左右摄像头是红外的 步骤 安装sdk: Intel RealSense SDK 2.0 – Intel RealSense Depth and Tracking cameras 尽量在w…

为什么要用云手机养tiktok账号

在拓展海外电商市场的过程中,许多用户选择采用tiktok短视频平台引流的策略,以提升在电商平台上的流量,吸引更多消费者。而要进行tiktok引流,养号是必不可少的一个环节。tiktok云手机成为实现国内跨境养号的一种有效方式&#xff0…

【新书推荐】3.2节 位运算之加减乘除

本节内容:二进制移位运算,以及逻辑运算与算术运算之间的转换。任何进制的位运算本质都是一样的。 ■二进制数移位运算:二进制数向左移位运算相当于做2的幂乘法运算,二进制数向右移位运算,相当于做2的幂除法运算。 ■十…