嵌入式基础 接口协议汇总

news2024/9/23 23:22:44

在此收集整理嵌入式通信中常见的接口协议,它们具有一定的通用性,在今后的开发中会反复遇到。
包括但不限于以下类别(逐步完善中…):

  • GPIO
  • UART
  • SPI
  • I2C
  • USB
  • Ethernet
  • NAND Flash类
  • SDRAM类(ram-like)
  • LCD
  • MIPI

GPIO

1. 基本介绍

GPIO,全称General-Purpose Input/Output,即通用输入/输出接口,是嵌入式系统中一种常见的接口类型。它允许微控制器(MCU)或微处理器(MPU)与外部设备进行数字信号的交互。GPIO端口通常由一系列可配置的引脚组成,每个引脚都可以独立设置为输入或输出模式,并且可以根据需要进行编程。

  • 可配置性:
    GPIO引脚的功能可以通过软件配置,既可以作为输入接收外部信号,也可以作为输出发送信号。输出模式下,可以设定为推挽输出或开漏输出,以适应不同的负载类型。输入模式下,可以配置为上拉、下拉或浮空状态。
  • 工作模式:
    STM32等微控制器的GPIO具有多种工作模式,包括但不限于输入浮空、输入上拉、输入下拉、推挽输出、开漏输出、模拟输入等。
    某些GPIO还可以配置为复用功能,例如作为时钟信号、中断信号或与其他外设(如USART、SPI、I²C等)共享的信号线。
  • 寄存器控制:
    GPIO的操作通过一组寄存器进行,包括数据方向寄存器(设置引脚的方向)、数据输出寄存器(设置输出引脚的值)、数据输入寄存器(读取输入引脚的值)等。还可能有中断使能寄存器、配置寄存器等,用于控制中断和引脚的其他特性。
  • 应用:
    控制LED、继电器、按键等简单外设。读取传感器的状态,如光敏电阻、温度传感器等。用于设备间的基本通信,如通过GPIO实现简单的串行通信或同步脉冲信号。实现复杂的系统级功能,如通过GPIO配置产生PWM波形控制电机速度。
  • 优点:
    GPIO提供了灵活的接口,使得开发者能够根据项目需求调整硬件配置。小封装,占用空间小,易于集成。成本效益高,因为GPIO端口通常内置于微控制器中,不需要额外的外设。
  • 注意事项:
    在使用GPIO时,需要注意驱动能力,确保所连接的外设不会超过GPIO的最大电流限制。对于输入引脚,应考虑噪声抑制和保护措施,避免外部干扰导致错误的信号读取。

2. 硬件连接

GPIO

  • 单端IO引脚,上拉或者下拉

3. 软件协议

需要了解GPIO的寄存器布局和地址。通过对特定寄存器的读写配置,即可完成对GPIO引脚的配置以及数据的输入输出。

4. 参考资料

GPIO




UART

1. 基本介绍

UART,全称Universal Asynchronous Receiver/Transmitter,是一种用于串行通信的标准协议,通常用于微控制器和其他设备之间的数据传输。UART的主要功能是将并行数据转换为串行数据,以便通过单一通信线路(加上一个地线)进行传输,然后在接收端再将串行数据转换回并行数据。

  • 异步通信:UART采用异步方式工作,这意味着发送方和接收方不需要共享时钟信号。数据的传输速率(波特率)在通信开始前由双方预先设定好,从而保证数据的正确接收。
  • 数据格式:UART数据传输的格式通常包含一个起始位(start bit)、5至8位的数据位(data bits)、一个或多个停止位(stop bits)以及可选的奇偶校验位(parity bit)。起始位用于表示一个字符的开始,停止位用于表示一个字符的结束。
  • 波特率:波特率定义了数据传输的速度,单位是位每秒(bps)。常见的波特率有9600bps、19200bps、115200bps等。
  • 硬件接口:UART通信通常使用两条线路,分别是TX(发送)和RX(接收),在某些情况下,可能还会有一条用于硬件流控制的线路,如RTS(请求发送)和CTS(清除发送)。
  • 设备间通信:通常使用串口转USB连接微控制器与个人电脑,进行程序下载、调试或数据采集。在嵌入式系统中,UART可以用于连接不同类型的设备,如传感器、执行器、显示器等。

2. 硬件连接

  • 示意图1
    UART1

  • 示意图2
    UART2

  • RX

  • TX

3. 软件协议

UART_DATA
UART通信双方需要约定通信COM端口、波特率、数据位、检验位、停止位数等。只能人为事先约定好。
比如:波特率115200bps、数据位8bit、无校验、停止位1bit

4. 参考资料

UART通信协议及其工作原理




I2C

1. 基本介绍

I2C,全称Inter-Integrated Circuit,是一种两线式串行总线协议,由NXP半导体公司(前身为飞利浦半导体)开发,用于连接低速的微控制器和各种外围设备,如EEPROM、A/D转换器、D/A转换器、I/O扩展卡、实时时钟、传感器等。

  • 两线制:I2C总线使用两条信号线:SDA(Serial Data Line,串行数据线)和SCL(Serial Clock Line,串行时钟线)。
  • 半双工通信:数据在SDA线上是单向的,但方向可以改变,因此被称为半双工。这意味着设备要么发送数据,要么接收数据,不能同时进行。
  • 主从架构:I2C总线允许多个设备共享同一总线,但在任何时候只能有一个主设备。主设备负责初始化数据传输并提供时钟信号。从设备响应主设备的请求。
  • 寻址机制:每个I2C设备都有一个唯一的7位或10位地址,这使得主设备能够选择特定的从设备进行通信。7位地址允许最多128个不同的设备,而10位地址可以支持更多的设备。
  • 仲裁机制:当多个主设备试图同时控制总线时,I2C总线具有内置的仲裁机制,以避免数据冲突。如果两个或更多的主设备同时启动总线,那么具有较低地址的主设备将获得总线控制权。
  • 可扩展性:理论上,I2C总线可以连接无限数量的设备,但实际中受到总线电容和电流限制的约束。
  • 低功耗:I2C总线的低信号电平和简单的布线要求使其成为低功耗应用的理想选择。
  • 标准速度:I2C总线有几种速度模式,包括标准模式(最高100 kbps)、快速模式(最高400 kbps)、高速模式(最高3.4 Mbps)和超快速模式(高于3.4 Mbps,具体取决于设备)。
  • 简单性:I2C总线的简单性和低成本使其成为许多嵌入式系统和微控制器应用中常见的通信标准。

2. 硬件连接

I2C

  • SDA:Serial Data Line,串行数据线
  • SCL:Serial Clock Line,串行时钟线

3. 软件协议

4. 参考资料

基础通信协议之 IIC (I2C) 详细讲解




SPI

1. 基本介绍

SPI,全称为Serial Peripheral Interface(串行外设接口),是一种高速、全双工、同步的串行通信总线,主要用于短距离的芯片间通信。SPI最初由Motorola(摩托罗拉)在20世纪80年代中期定义,现在已经被广泛采用,特别是在嵌入式系统中。

  • 全双工通信:SPI能够在两个方向上同时传输数据,即发送和接收可以同时进行,这使得数据交换更高效。
  • 同步串行:SPI通信是同步的,意味着数据的传输受一个共同的时钟信号控制,这个时钟信号通常由主设备提供。
  • 四线接口:SPI接口通常使用四根线,包括:
    MISO(Master In Slave Out,主设备接收数据)
    MOSI(Master Out Slave In,主设备发送数据)
    SCK(Serial Clock,串行时钟)
    SS/CS(Slave Select/Chip Select,从设备选择信号)
  • 主从架构:SPI通信总是有一个主设备和一个或多个从设备。主设备控制通信的开始和结束,以及时钟信号的生成,而从设备则响应主设备的指令。
  • 可配置的数据帧大小:SPI支持可变长度的数据帧,从8位到16位甚至更多,这取决于具体的应用需求和设备的能力。
  • 简单易用:SPI接口的简单性使得它在需要短距离、高速数据传输的应用中非常受欢迎,例如在微控制器与外围设备如ADC(模数转换器)、DAC(数模转换器)、EEPROM(电可擦除可编程只读存储器)、闪存、传感器和其他IC芯片之间的通信。
  • 扩展性:虽然SPI是基于点对点的通信,但是通过使用多个CS/SS信号,可以实现一个主设备与多个从设备之间的通信。

2. 硬件连接

  • 示意图1
    SPI1

  • 示意图2
    在这里插入图片描述

  • SCK:时钟信号,主设备发出

  • MOSI:主出从入

  • MISO:主入从出

  • SS_n:片选,使能

3. 软件协议

通过CPOL、CPHA来设置SPI工作模式
CPOL:0,SCK空闲时为低电平;1,SCK空闲时为高电平
CPHA:0,第一个跳变沿开始采样;1,第二个跳变沿开始采样
SPI_TQ

SPI_code

4. 参考资料

SPI原理超详细讲解
SPI接口通信协议详解




USB

1. 基本介绍

2. 硬件连接

3. 软件协议

4. 参考资料




Ethernet

1. 基本介绍

2. 硬件连接

3. 软件协议

4. 参考资料




NAND Flash类

1. 基本介绍

2. 硬件连接

3. 软件协议

4. 参考资料




SDRAM类(ram-like)

1. 基本介绍

2. 硬件连接

3. 软件协议

4. 参考资料




LCD

1. 基本介绍

2. 硬件连接

3. 软件协议

4. 参考资料




MIPI

1. 基本介绍

2. 硬件连接

3. 软件协议

4. 参考资料




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

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

相关文章

拉取DockerHub镜像

参考博主:http://t.csdnimg.cn/i49ET 方法一(不太行): 在daemon.json文件中添加一些国内还在服务的镜像站(可能某些镜像会没有) ([ -f /etc/docker/daemon.json ] || mkdir -p /etc/docker) && e…

Idea合并Git分支信息

#git 的笔记 ##本篇文章是通过Idea 实现git 命令操作的代码的上传与合并。 1.合并分支 点击 Git 选择Merge 这里选择合并远程的分支

火山引擎数据飞轮实践:在电商场景中,如何建设全链路数据血缘?

数据作为新型生产要素,正支撑企业的数智化转型。但企业数字化建设也存在管理成本高、数据产品使用门槛高、数据资产价值不够的问题,其原因在于业务和数据之间没有形成双向良性驱动。 结合新时代企业数字化转型需求,火山引擎基于字节跳动十余…

【HTML入门】第十课 - 表格,也就是table标签

这一小节,我们说一下HTML中的表格。比如我们常常看见的学生成绩单,比如excel一个单元格一个单元格的,这些都是表格。 表格的标签名是 table 。 目录 1 表格中的一些子标签 1.1 表头区域 1.2 表格内容区域 1.3 行和列 2 实战一小下 2.…

Matlab提取excel数据及处理的实操举例

实现目的 当excel数据量庞大的时候,如果采用人工处理数据的方法就会成为非常出力不讨好的事,既容易出错,又容易抑郁。 利用matlab处理成为既简单又高效的方式。 例如,以GD32F7xx系列的管脚复用表格为例,在169x19的e…

[Linux]对Linux中的命令的本质

上回我们讲了Linux的指令,本篇是一个短篇,主要是对命令本质的讲解。 我们知道命令一般都是直接使用的 而可执行程序需要加上当前的路径 (这个mytest是我们上上回写的,作用实际是打印Hello world!) 我们很直观的可以发…

Stable Diffusion 保姆级实战教程!学不会来打我!

前言 本教程没有难懂的理论,全是实操的截图,非常通俗易懂。 能够帮你在最短的时间里,掌握Stable Diffusion的核心操作方法。真正有效地提高工作的效率。 教程主要是讲我们在工作中高频使用的4个功能模块:文生图、图生图、后期处…

kind kubernetes(k8s虚拟环境)使用本地docker的镜像

kubernetes中,虽然下载镜像使用docker,但是存储在docker image里的镜像是不能被k8s直接使用的,但是kind不同,可以使用下面的方法,让kind kubernetes环境使用docker image里的镜像。 kind – Quick Start 例如&#x…

fastadmin 如何通过权限组来控制列的显示与隐藏

方法1 以版本控制(application/admin/controller/Version.php)为例子 需求 就是在有时候,有些列不想让这个权限组的人看到,只给制定的权限组的人看 1.给权限组创建一个字段 ALTER TABLE lt_auth_group ADD COLUMN isBoothView TINYINT(1) NOT NULL DEFAULT 0 AFTER statu…

安卓查看本地sqlite数据库的好用工具(亲测好用)

1.使用SQLiteStudio工具,可以很方便的查看; 2.下载SQLiteStudio。 SQLiteStudio下载链接:https://pan.baidu.com/s/1Ji6xkhYxrWP8pDk6qba_Og 3.SQLiteStudio使用。 2.将数据库文件从项目中导入本地 3.用工具打开存在本地的数据库 4.可以…

DNS的解析过程(知识点总结)

DNS的解析过程(知识点总结)_dns解析过程-CSDN博客

企业专利布局怎么弄

企业专利布局策略与实施 在当今竞争激烈的商业环境中,企业的专利布局已成为保护创新成果、提升市场竞争力的重要手段。专利布局不仅是技术创新的体现,更是企业战略布局的重要一环。 一、企业专利布局的策略 多维度布局 企业专利布局应结合市场、技术、…

旷视AI开源新突破:上传照片即可生成表情包视频!

日前,旷视科技发布了一项新的开源AI人像视频生成框架——MegActor。该框架让用户只需输入一张静态肖像图片和一段视频(如演讲、表情包、rap),便可生成一段表情丰富、动作一致的AI人像视频。生成的视频长度取决于输入的视频长度。与…

keepalived安装使用

keeepalived介绍 Keepalived的作用是检测服务器的状态, 如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作…

PostgreSQL行级安全策略探究

前言 最近和朋友讨论oracle行级安全策略(VPD)时,查看了下官方文档,看起来VPD的原理是针对应用了Oracle行级安全策略的表、视图或同义词发出的 SQL 语句动态添加where子句。通俗理解就是将行级安全策略动态添加为where 条件。那么PG中的行级安全策略是怎…

【Linux】信号量和线程池

目录 一、POSIX信号量 二、基于环形队列和信号量的生产消费模型 三、线程池 一、POSIX信号量 POSIX信号量(POSIX Semaphores)是一种进程间或线程间同步机制,它允许进程或线程以协调的方式访问共享资源或进行其他形式的同步。与System V信…

用MATLAB绘制三向应力圆

% 定义主应力值 sigma1 100; % MPa sigma2 50; % MPa sigma3 -33; % MPa sigma_m1(sigma1 sigma3)/2; sigma_m2(sigma1 sigma2)/2; sigma_m3(sigma2 sigma3)/2; % 计算半径 r1 (sigma1 - sigma3) / 2; r2 (sigma1 - sigma2) / 2; r3 (sigma2 - sigma3…

2024年16个适合现代应用程序的最佳API网关

什么是API? API是一个软件解决方案,作为中介,使两个应用程序能够相互交互。以下一些特征让API变得更加有用和有价值: 遵守REST和HTTP等易于访问、广泛理解和开发人员友好的标准。API不仅仅是几行代码;这些是为移动开…

生成式AI (Generative artificial intelligence, GenAI or GAI)

安利一个新加坡南洋理工大学的论文总结The Age of Generative AI 一、什么是生成式AI Generative AI, sometimes called gen AI, is artificial intelligence (AI) that can create original content—such as text, images, video, audio or software code—in response to a …

AIGC降痕指南:如何让AI写作不留痕迹

随着AI技术的飞速发展,AI论文工具正逐渐成为学术界的新宠。它们以高效、便捷的优势,吸引了众多学者的目光。然而,随之而来的学术诚信与原创性问题,也成为人们关注的焦点。 如何在享受AI带来的便利的同时,确保论文的原…