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

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

系列文章

【总线接口】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协议可以方便地实现不同厂商的设备之间的互联和通信,提高设备的互操作性和集成度。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

单片机开发通用功能组件

mcu_reuse_development_module 单片机可复用、可通用开发组件,是以中间件思想开发的一套功能模块,将具有代表性或使用次数较多的功能和协议栈封装为独立的组件供开发者使用,开发者仅需通过组件提供的接口对接驱动层和应用层即可使用组件功能…

【PyTorch实战演练】Fast R-CNN中的RoI(Region of Interest)池化详解

文章目录 0. 前言1. ROI池化的提出背景2. RoI池化的结构与工作原理3. RoI池化的作用及意义4. RoI使用示例 0. 前言 按照国际惯例,首先声明:本文只是我自己学习的理解,虽然参考了他人的宝贵见解及成果,但是内容可能存在不准确的地方…

Kaggle竞赛系列_SpaceshipTitanic金牌方案分析_数据分析

文章目录 【文章系列】【前言】【比赛简介】【正文】(一)数据获取(二)数据分析1. 缺失值2. 重复值3. 属性类型分析4. 类别分析5. 分析目标数值占比 (三)属性分析1. 对年龄Age分析(1)…

Activiti工作流引擎

一、工作流介绍: 1.1 概念: 工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或…

【golang】22、functional options | 函数式编程、闭包

文章目录 一、配置 Option1.1 options1.2 funcitonal options 一、配置 Option 1.1 options https://commandcenter.blogspot.com/2014/01/self-referential-functions-and-design.html I’ve been trying on and off to find a nice way to deal with setting options in a…

Flink中StateBackend(工作状态)与Checkpoint(状态快照)的关系

State Backends 由 Flink 管理的 keyed state 是一种分片的键/值存储,每个 keyed state 的工作副本都保存在负责该键的 taskmanager 本地中。另外,Operator state 也保存在机器节点本地。Flink 定期获取所有状态的快照,并将这些快照复制到持…

Python面向对象编程:探索代码的结构之美

文章目录 一、引言二、为什么学习面向对象编程2.1 提高代码的可维护性:通过封装、继承和多态实现模块化设计2.2 提升代码的复用性:通过类和对象的创建实现代码的重用 三、类和对象的基本概念3.1 类和对象的定义和关系:类是对象的模板&#xf…

通过Nacos权重配置,实现微服务金丝雀发布效果(不停机部署)

在微服务项目迭代的过程中,不可避免需要上线;上线对应着部署,或者升级部署;部署对应着修改,修改则意味着风险。 传统的部署都需要先停止旧系统,然后部署新系统,之后需要对新系统进行全面的功能测试&#xf…

力扣hot100 n皇后 满注释版 通俗易懂

Problem: 51. N 皇后 文章目录 思路Code 思路 &#x1f468;‍&#x1f3eb; 参考地址 考虑每一行哪个位置放皇后判断是否合法递归下一行 Code class Solution {int n;char[][] board;List<List<String>> res new ArrayList<>();public List<List&l…

python_蓝桥杯刷题记录_笔记_入门2

前言 现在正式进入蓝桥杯的刷题啦&#xff0c;用python来做算法题&#xff0c;因为我之前其实都是用C来做题的&#xff0c;但是今年的话我打算换python来试试&#xff0c;很明显因为也才这学期接触python 加上之前C做题也比较菜&#xff0c;所以我打算用python重新来做题&#…

常用抓包软件集合(Fiddler、Charles)

1. Fiddler 介绍&#xff1a;Fiddler是一个免费的HTTP和HTTPS调试工具&#xff0c;支持Windows平台。它可以捕获HTTP和HTTPS流量&#xff0c;并提供了丰富的调试和分析功能。优点&#xff1a;易于安装、易于使用、支持多种扩展、可以提高开发效率。缺点&#xff1a;只支持Wind…

向上调整向下调整算法

目录 AdjustUp向上调整 AdjustDown向下调整 AdjustUp向上调整 前提是&#xff1a;插入数据之后&#xff0c;除去插入的数据其他的数据还是为堆 应用&#xff1a;插入数据。 先插入一个10到数组的尾上&#xff0c;再进行向上调整算法&#xff0c;直到满足堆。 性质&#xff1…

SD卡写保护无法格式化怎么办?

一般来说&#xff0c;写保护&#xff08;也称为只读&#xff09;是数据存储设备防止写入新数据或修改旧信息的能力。换句话说&#xff0c;您可以读取存储在磁盘上的信息&#xff0c;但是却不能删除、更改或复制它们&#xff0c;因为访问会被拒绝。那么SD卡有写保护怎么格式化呢…

Vue(十九):ElementUI 扩展实现树形结构表格组件的勾父选子、半勾选、过滤出半勾选节点功能

效果 原理分析 从后端获取数据后,判断当前节点是否勾选,从而判断是否勾选子节点勾选当前节点时,子节点均勾选全勾选与半勾选与不勾选的样式处理全勾选和全取消勾选的逻辑筛选出半勾选的节点定义变量 import {computed, nextTick, reactive, ref} from vue; import {tree} f…

解决打开页面显示源代码和乱码

用系统记事本打开 点击文件》另存为 选择编码&#xff1a;ANSI 保存》要替换它吗?》是 重新打开页面&#xff0c;显示正常&#xff0c;解决问题。

D2025——双通道音频功率放大电路,外接元件少, 通道分离性好,3V 的低压下可正常使用

D2025 为立体声音频功率放大集成电路&#xff0c;适用于各类袖珍或便携式立体声 收录机中作功率放放大器。 D2025 采用 DIP16 封装形式。 主要特点&#xff1a;  适用于立体声或 BTL 工作模式  外接元件少  通道分离性好  电源电压范围宽&#xff08;3V~12V…

Jenkins自动化打包

Jenkins自动化打包 下载安装 我们直接从官网https://www.jenkins.io/download/ 下载所需的Jenkins文件 如上图所示, 选择Windows版本,下面就是一路安装即可,需要注意的是,选择作为系统服务选项, 不要自己设置账号密码登录. Web配置 安装完根据提示在浏览器打开 http://lo…

01、全文检索 ------ 反向索引库 与 Lucene 的介绍

目录 全文检索 ------ 反向索引库 与 LuceneSQL模糊查询的问题反向索引库反向索引库的查询 Lucene&#xff08;全文检索技术&#xff09;Lucene能做什么Lucene存在的问题Solr 和 Elasticsearch 与 Lucene 的关系 全文检索 ------ 反向索引库 与 Lucene MySQL一些索引词汇解释 …

故障诊断 | 一文解决,BP神经网络的故障诊断(Matlab)

文章目录 效果一览文章概述专栏介绍模型描述源码设计参考资料效果一览 文章概述 故障诊断 | 一文解决,BP神经网络的故障诊断(Matlab) 专栏介绍 订阅【故障诊断】专栏,不定期更新机器学习和深度学习在故障诊断中的应用;订阅

52个值得收藏的无代码AI平台【2024】

“无代码”不仅仅是炒作。 这是一场革命。 在无代码之前&#xff0c;如果你想制作一个网站&#xff0c;你需要一名技术网络开发人员。 现在&#xff0c;你可以使用 Bubble、Webflow、Carrd 或无数其他可视化工具。 人工智能领域也发生了同样的情况。 在无代码之前&#xff0c;你…