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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ES6.8.6 Java客户端发起 增删改查 query (bool)、update、delete

文章目录 环境测试数据增单个新增批量新增 删通过delete by api删除通过delete by query api删除删除索引中指定字段(script) 改单个修改update by api通过_bulk批量修改批量修改update by query api使用script脚本修改 查完全匹配(term&…

MySQL原理(一)架构组成(2)逻辑模块组成

总的来说,MySQL可以看成是二层架构,第一层我们通常叫做SQL Layer,在MySQL数据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断,sql解析,执行计划优化,query cache的处理等等&…

【web安全】文件上传漏洞

upload-labs靶场 第一关 绕过前端 先打开哥斯拉,生成木马,选择php 打开brup开浏览器,上传文件,就会发现被阻止了,还没抓到包呢 那就是被前端代码阻止了,那通常前端代码都只能防御后缀名 我们抓到包后直…

vuex store,mutations,getters,actions

文章目录 1.vuex概述2.构建vuex【多组件数据共享】环境Son1.vueSon2.vueApp.vue 3.创建一个空仓库4.如何提供&访问vuex的数据①核心概念 - state状态1.通过store直接访问2.通过辅助函数简化代码 ②核心概念 - mutations(粗略) 5.核心概念 - mutation…

前端大屏展示可视化——地图的绘制(持续更新)

一、ECharts 1、安装 npm install echarts2、引入 import * as echarts from echarts;3、渲染 3.1、前期准备,基础配置 // 地图实例 const myChart ref(null); // 地图配置 const option reactive({tooltip: {trigger: item,formatter: function (params) {re…

2024年新提出的算法:(凤头豪猪优化器)冠豪猪优化算法Crested Porcupine Optimizer(附Matlab代码)

本次介绍一种新的自然启发式元启发式算法——凤头豪猪优化器(Crested Porcupine Optimizer,CPO)。该成果于2024年1月发表在中科院1区SCI top期刊Knowledge-Based Systems(IF 8.8)上。 1、简介 受到凤头豪猪(CP)各种…

使用Hutool工具包解析、生成XML文件

说明&#xff1a;当我们在工作中需要将数据转为XML文件、或者读取解析XML文件时&#xff0c;使用Hutool工具包中的XMLUtil相关方法是最容易上手的方法&#xff0c;本文介绍如何使用Hutool工具包来解析、生成XML文件。 开始之前&#xff0c;需要导入Hutool工具包的依赖 <de…

1688平台商品详情数据的采集|Python实现接口调用【1688平台商品】数据采集

前言 1688平台是阿里巴巴集团推出的B2B电子商务平台。该平台于1999年上线&#xff0c;旨在为国内外买家提供海量优质商品和供应商资源&#xff0c;帮助企业进行采购和销售业务。1688平台主要面向中小型企业和个体工商户&#xff0c;提供了各行各业的产品和服务。 在1688平台上…

编写交互式 Shell 脚本

在日常的系统管理和自动化任务中&#xff0c;使用 Shell 脚本可以为我们节省大量时间和精力。 文章将以输入 IP 为例&#xff0c;通过几个版本逐步完善一个案例。 原始需求 编写一个交互式的 Shell 脚本&#xff0c;运行时让用户可以输入IP地址&#xff0c;并且脚本会将输入…

ASP.NET Core 过滤器 使用依赖项注入

过滤器是 ASP.NET Core 中的特殊组件&#xff0c;允许我们在请求管道的特定阶段控制请求的执行。这些过滤器在中间件执行后以及 MVC 中间件匹配路由并调用特定操作时发挥作用。 简而言之&#xff0c;过滤器提供了一种在操作级别自定义应用程序行为的方法。它们就像检查点&#…

五粮液的“活窖之美”,探寻“大国浓香”的千年奥秘

执笔 | 尼 奥 编辑 | 扬 灵 “川酒甲天下&#xff0c;精华在宜宾。”酒都宜宾已有4000余年酿酒历史&#xff0c;璀璨的白酒文化孕育了有着“大国浓香、和美五粮、中国酒王”金字招牌的传世名酒五粮液。从盛唐“重碧酒”到宋代“姚子雪曲”&#xff0c;再到“五粮液”&…

外部实体注入漏洞

当允许引用外部实体时&#xff0c;会造成外部实体注入&#xff08;XXE&#xff09;漏洞。通过构造恶意 内容&#xff0c;就可能导致任意文件读取、系统命令执行、内网端口探测、攻击内网网站 等危害。本节介绍针对XXE漏洞的检测和防御方法。 5.2.1 简介 根据回显情况&#x…