嵌入式系统IO体系简述

SRIO—IP核——1.Rapid IO协议 RapidIO是由Motorola和Mercury等公司率先倡导的一种高性能、低引脚数、基于数据包交换的互联体系结构,是为满足和未来高性能嵌入式系统需求而设计的一种开放式互联技术标准。Rapid IO主要应用于嵌入式系统内部互连,支持芯片到芯片、板与板之间的通讯,可作为嵌入式设备的背板连接。可以得知Rapid IO是一种总线技术,常见的总线技术包括:传统串行总线:UART、SPI、IIC总线等;接口简单,硬件设计简单;协议较简单;传输速度慢。传统并行总线:EMIF、UPP、PCI总线等; 阅读详情

前言:
CPU的主要职责是负责运算,而计算机是需要各种外设的,否则无法和人进行交互。早期x86体系的CPU,需要使用前端总线(fsb)和北桥芯片相连,北桥再和南桥相连。南北桥是一种架构的划分,设计者的原始图架构上,在上部的称为北桥,下部的成为南桥。

典型上,北桥的功能主体是AGP控制、内存控制,南桥包括IDE、PCI、串并口多功能控制单元,集成网卡控制器、音效控制器就在南桥。而集成的图形控制单元,就是集成显卡核心了,就在北桥。 总之,CPU控制外部设备需要依赖于南北桥,而南北桥中就集中了各种外部设备的控制器。

而且会发现很多IO设备控制器都是和CPU集中在同一芯片内的。现在的x86处理器已经不是早期那个样子了。最早,AMD做的x86处理器已经将内存控制器集成到了处理器内部了,因此弱化了北桥的功能。后来,英伟达公司为AMD的处理器开发的单芯片就集中了南北桥功能。intel现在的i5、i7已经集成了内存控制器、PCI-E控制器等等。所以南北桥的IO控制器越来越多的放到了CPU内部。现在连显卡都要集成到处理器中。当然,在通用计算机中,慢速外设如串口等似乎没必要集成到cpu中。

所以CPU通过IO控制器控制外部设备;而IO控制器正越来越多的集成到CPU中去,CPU芯片的概念和功能已经超越了单纯的计算。

关于 IO

I/O 技术实现在计算机和存储设备之间的数据交换。

I/O 通路
在计算机中,主存储器(RAM:Random Access Memory)断电丢数据,价格也比较昂贵,所以一般数据都存放在存储设备上,如硬盘

通常,数据从主存储器(RAM)通过系统总线,主机I/O 总线 和 I/O 总线移动到磁盘或者磁带等存储设备。

1.1 系统总线
CPU和RAM通过 系统总线快速传递数据。 该总线使用非常高的时钟频率,使得它能够足够快的给CPU 提供数据。 并且高速传输需要短的印制导线。 因此,系统总线应该尽可能的短一些,一般连接CPU和主存储器以及一些需要高速数据处理的器件。

1.2 主机I/O 总线
因为系统总线不能挂载太多器件,并且也并不是所有器件都需要那么高的速度传递数据,所以就有了 主机I/O 总线,用于挂载对速度要求没那么高的器件设备。并且 主机I/O 总线 通过 桥接芯片 连接到系统总线,PCI(Peripheral Component Interconnection:外围互联设备)是当前最广泛使用的实现主机I/O 总线的技术。

1.3 I/O 总线
连接IO控制器和IO设备的总线,这部分的总线种类可就多啦。不同的控制器为不同的目标而设计;同一目标因不同公司设计而不同。目前主流的总线如下表所示。
在这里插入图片描述
一般来说,做嵌入式驱动,都是在驱动这些总线控制器,使其和外设正常通信。说到总线就不得不提到接口。可以这么看,总线是逻辑标准,而接口是为了实现总线上设备互联而设计物理标准。比如UART总线,可以通过RS232/RS485等接口和外设相连。另外还要提到协议,总线上传输的数据是按照一定协议来组织格式的,但是总线不关心协议。

二 X86架构 IO体系

通过x86处理器 南北桥 对比加深理解

现代计算机系统因为高速设备和低速设备的运行任务的速度差异的问题,一般会有南北桥,北桥是高速总线,就是CPU总线,内存总线等,南桥芯片负责接入一些非高速的总线,IO总线就在其中,而IO总线又有很多的具体的总线,PCI总线,PCIE总线,IDE总线,SCSI总线等等。

在这里插入图片描述
上图所示,和IO设备打交道必须经过主机IO总线,这里的主机IO总线是一个统称,实际的技术方案不止一个,例如PCI总线。IDE总线,USB总线,不同的总线协议不同。

北桥芯片:
北桥芯片(NorthBridge)是主板芯片组中起主导作用的组成部分,也称为主桥。北桥是个人电脑主板芯片组两枚大规模芯片中的一枚。北桥被用来处理高速信号,通常处理CPU(处理器),RAM(内存)和南桥芯片之间的通信。

北桥芯片就是主板上离CPU最近的芯片,这主要是考虑到北桥芯片与处理器之间的通信最密切,为了提高通信性能而缩短传输距离。保证数据在CPU和主存储器之间进行快速的传递。 系统总线必须使用非常高的时钟频率,使得它能够足够快的给CPU 提供数据。 该总线的实现采用在主电路板上印制导线的形式。 出于物理性能的原因,高的系统速度需要短的印制导线。 因此,系统总线应该尽可能的短一些

因为北桥芯片的数据处理量非常大,发热量也越来越大,所以现在的北桥芯片都覆盖着散热片用来加强北桥芯片的散热,有些主板的北桥芯片还会配合风扇进行散热。因为北桥芯片的主要功能是控制内存,而内存标准与处理器一样变化比较频繁,所以不同芯片组中北桥芯片是肯定不同的,当然这并不是说所采用的内存技术就完全不一样,而是不同的芯片组北桥芯片间肯定在一些地方有差别。

南桥芯片:
南桥芯片(SouthBridge)是主板芯片组的重要组成部分,一般位于主板上离CPU插槽较远的下方,PCI插槽的附近,这种布局是考虑到它所连接的I/O总线较多,离处理器远一点有利于布线。相对于北桥芯片来说,其数据处理量并不算大,所以南桥芯片一般都没有覆盖散热片。南桥芯片不与处理器直接相连,而是通过一定的方式与北桥芯片相连。

南桥芯片负责I/O总线之间的通信,如PCI总线、USB、LAN、ATA、SATA等。

三 SOC 架构 总线

先介绍一下AMBA(Advanced Micro-Controller Bus Architecture)是由ARM Limited公司推出的On-Chip Bus片上总线规范,是目前芯片总线的主流标准。共定义了3组总线:
高性能总线(AdvancedHigh Performance Bus,AHB)
系统总线(AdvancedSystem Bus,ASB)
外设总线(Advanced PeripheralBus,APB)。

典型的基于AMBA总线的系统:

在这里插入图片描述

AHB主要用于高性能模块(如CPU、DMA和DSP等)之间的连接。AHB 系统由主模块、从模块和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。

APB,是Advanced Peripheral Bus的缩写,这是一种外围总线。APB主要用于低带宽的周边外设之间的连接,例如UART、1284等。

可以把 AHB 总线理解为 北桥总线。APB 理解为南桥总线。南桥总线上挂接的都是鼠标、键盘这些慢速的设备,北桥上挂接显卡等高速设备。南桥频率低,北桥频率高。另外,南桥最后也要接到北桥上。这些感觉都类似于APB和AHB。

以 S3X2440芯片为例,S3C2440结构框图:
在这里插入图片描述

可知AHB总线上挂载了LCD控制器、中断控制器、USB Host控制器、电源管理、NAND控制器、Camera控制器、存储器控制器以及AHB to APB桥和DMA控制器。

APB总线上挂载了UART控制器、I2C控制器、USB Device控制器、I3S控制器SDI/MMC控制器、GPIO、Watchdog/定时器、RTC、ADC、SPI、AC97。

四 SOC 与 IO 控制器件的关系

SOC 控制 IO 控制器
在上面,仅仅是从总线连接的角度上来看SOC与IO控制器之间的联系,但是如何控制,很明显,SOC通过设置IO控制器的寄存器 完成对他的控制,如控制UART控制器。SOC可以直接访问IO控制器的寄存器,就像访问内存一样。因为这些寄存器和内存一样,都在4GB物理地址空间上占有一席之地。

IO 控制器向内存传递数据
那么IO控制器是怎么将自己从外部收到的数据送到内存呢?如UART控制器,是怎么做的,答案是使用其自身的DMA控制器直接访问内存。

C++ IO操作流继承体系在嵌入式系统中的应用 本文将探讨C++中的IO操作流继承体系在嵌入式系统中的应用,并提供相应的源代码示例。的派生类,我们可以方便地进行数据的输入和输出操作,无论是从标准输入输出流、文件还是其他设备。开发者可以根据具体的应用场景和需求,灵活运用C++的IO操作流继承体系来实现嵌入式系统中的输入输出功能。除了基本的输入输出操作外,C++的IO操作流继承体系还提供了许多其他功能,如格式化输出、流状态检查、缓冲区控制等。总之,C++的IO操作流继承体系在嵌入式系统中提供了强大且灵活的输入输出功能。在上面的示例中,我们使用。 阅读详情

相关推荐

第一讲 嵌入式系统需求分析与体系结构设计

前面两篇文章给大家详细介绍了软考是什么,考这个有什么用,怎么备考和制订复习计划的文章,那么今天开始我们就正式进入软考中级嵌入式系统设计师的复习阶段,我们将以每篇文章为一个章节或每两篇文章为一个章节的篇幅来进行讲解,全文基本是提纲挈领式的讲述你要掌握的知识点,具体知识点的理解和原理还需要你结合书本和教材来理会。电子版教材我将链接分享如下,大家可以自行下载:嵌入式系统设计师教材,提取码:love 后期,等到大家已经跟着我把所有高频考点都过了一遍的时候,我还要会将历年的真题及解析、嵌入式软考必会英文单词、嵌入式系

Leon的博客 2092

嵌入式系统的通用IO处理模块

嵌入式系统的IO处理比较繁琐,往往要重复编程而且分散在不同文件里,修改比较麻烦,容易产生bug,本贴给出一个基于结构体的通用代码,例子用的是stm8l51x,在IAR Embedded Workbench IDE 上编译测试通过

Dingchhhong的博客 426

Mamba vs YOLO:目标检测选型指南(附实际项目对比)

本文深入对比了Mamba和YOLO在目标检测领域的性能差异与应用场景。通过实际项目数据,分析了两者在城市交通监控、工业质检等场景下的表现,提供了详细的选型指南和部署优化建议,帮助开发者根据实时性、精度等需求选择最适合的解决方案。

weixin_29062255的博客 368

Linux嵌入式驱动开发13——ioctl接口(gpio控制使用)

unlocked_ioctl就是ioctl接口,但是功能和对应的系统调用均没有发生变化。

szembed的博客 1738

Linux系统安装AutoDockTools、AutoGrid和AutoDock并实现分子对接(详细讲解)

linux系统为centos7.0 按照下面操作安装AutoDockTools(MGLTools) 1. 下载安装包,链接(https://ccsb.scripps.edu/mgltools/downloads/),我的linux系统是64位,下载红色标记源代码,拷贝入linux目标文件夹下。 2. shell终端进行安装: 1. 终端进入安装包所在文件夹,并获取root权限;赋予代码安装权限; cd /home/... #目标文件夹,根据目标程序文件位置进行更改 su #获

carlos_zhao的博客 1万+

MATLAB去雾算法实战:5种经典方法对比+1种改进方案(附完整源码)

本文详细对比了MATLAB中5种经典去雾算法(包括暗通道先验、多尺度Retinex等)的实现效果,并提出一种创新的自适应融合改进方案。通过完整的源码展示和性能对比,帮助开发者掌握图像去雾的核心技术,提升计算机视觉应用中的图像质量。特别针对去雾算法中的光晕效应问题,给出了工程实践中的优化技巧。

weixin_26801149的博客 412

13 计算机组成原理第七章 输入/输出系统 I/O方式 I/O接口

I/O

夜飘凌的博客 5454

深入解析EtherCAT通讯DS402协议下的伺服电机控制模式选择与配置

本文深入解析了EtherCAT通讯DS402协议下的伺服电机控制模式选择与配置,详细介绍了六种核心控制模式(如PPM、CSP、CSV、CST)的应用场景及实战技巧。通过EtherCAT和DS402协议的高效配合,实现工业自动化中伺服电机的精准控制,提升设备性能与稳定性。

h0i1j2k3l的博客 1174

组原学习笔记二:总线

计算机组成原理学习笔记 -- 第三章 -- 总线

weixin_43376075的博客 2785

手把手教你学Simulink--基于高频与高速信号处理的滤波器场景实例:毫米波雷达中匹配滤波器的多目标分辨仿真

在自动驾驶、智能交通和工业感知等领域,毫米波雷达(mmWave Radar)因其高分辨率全天候工作和抗电磁干扰能力,成为关键的感知传感器。其核心信号处理算法之一是匹配滤波器(Matched Filter),用于在强噪声背景下最大化信噪比(SNR),实现对微弱目标的检测。在调频连续波(FMCW, Frequency-Modulated Continuous Wave)雷达中,发射信号为线性调频(Chirp)信号。当信号遇到多个目标时,回波是多个延迟版本的叠加。

MHD0815的博客 134

MAC-电脑中的user文件夹在哪?

MAC-电脑中的user文件夹在哪?

兴趣是最好的老师 1万+

嵌入式(标准IO)

标准IO

afddasfa的博客 604

华为OD机试真题 新系统2026-04-01 C语言 实现【空间占用计算】

员工A的磁盘空间经常被耗尽,他需要找到占用空间最大的目录或文件,然后决定如何清理文件释放空间。给定某一目录,请编写程序帮助他统计该目录内一级子目录和文件的占用空间,并返回目标目录一级子项(文件或子目录)中占用空间最大的项。

MISAYAONE的博客 229

ARM 体系结构、处理器内核、内存及 IO

教材:嵌入式系统及应用,罗蕾、李允、陈丽蓉等,电子工业出版社 体系结构ARM 是典型的 RISC 体系,许多指令能够在单周期内执行高速缓存内核 MPU – 内存保护单元控制内存访问权限控制内存区域的属性(cacheable, bufferable) MMU – 内存管理单元具有MPU的所有特性;提供虚拟地址到物理地址的转换 Cache(高速缓存)快速的本地内存;存放最近被访问过的内存的副本 TCM

Sunlight的博客 2146

把 SAP GUI 做成可维护的应用:Module Pool 基础与 Table Control 深入实战

SAP Module Pool 与 Table Control 开发要点 摘要:Module Pool 作为 SAP GUI 交互的核心技术,由程序、屏幕(Dynpro)和流逻辑(Flow Logic)组成,通过 PBO/PAI 事件驱动数据流。Table Control 是其中处理多行数据的核心控件,其开发关键在于: 正确理解 PBO/PAI 数据流机制 掌握 CXTAB_CONTROL 结构的关键属性(LINES、TOP_LINE 等) 合理设置列控制属性(CXTAB_COLUMN) 采用 LOOP W

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 239

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

嵌入式系统简述

嵌入式系统(Embedded System),一般指非桌面计算机系统(即非PC、服务器、大中小型机等),有计算机功能且可以“嵌入”到专用设备并发挥专用功能的计算机设备或器材。它是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。简单地说,这种计算机通过和设备的电气连接,并通过在计算机上运行的专用程序对接口进行通讯和控制,使设备成为智能化的设...

taomyhome的博客 850

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

嵌入式系统IO口损坏与系统故障的真相

导读本期文章将继续深入了解电流倒灌,分析嵌入式系统中IO口损坏和系统稳定性问题的根本原因。在上期的工程笔记中,我们了解了电流倒灌并探讨了电流倒灌可能导致的一系列问题,包括IO口损坏、系统死机、系统不开机或休眠及唤醒异常。这些问题虽然听起来颇为技术性,但它们对嵌入式系统的正常运行至关重要。本期,我们将深入分析这些现象背后的原因。IO口损坏IO端口可分为高阻、三态、推挽、开漏等类型,除了功能性区别...

strongerHuang 336

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

嵌入式中IO、GPIO、专用IO

IO、GPIO与专用IO是嵌入式系统中的重要概念。IO是所有输入输出通道的统称,包括GPIO和专用IO等。GPIO是最基础的通用引脚,可灵活配置输入/输出;专用IO则被固化特定功能,如UART、SPI等。选择时,GPIO适用于简单电平控制,专用IO更适合高速传输、精准时序等专业场景。实际项目中应优先使用专用IO处理核心任务,GPIO则用于简单操作。理解三者的区别与适用场景,能更高效地进行嵌入式开发。

qq_44801116的博客 1034

揭秘嵌入式系统中的C语言IO瓶颈:如何实现毫秒级响应?

掌握嵌入式 Linux 的 C 语言 IO 优化技巧,解决系统响应延迟难题。适用于工业控制、物联网设备等低延迟场景,通过非阻塞IO、内存映射与事件驱动机制提升性能,实现毫秒级响应。值得收藏

FuncFun的博客 821

【Linux高级IO】五种IO模型

在信息技术日新月异的今天,Linux操作系统以其强大的稳定性和灵活性,成为了服务器、嵌入式系统以及众多开发者心中的首选平台。而在Linux系统的广阔天地中,I/O(输入/输出)操作无疑是连接用户与硬件、软件之间的桥梁,其性能的优化直接关系到整个系统的响应速度和数据处理能力。

EterNity_TiMe_的计算机学习之路 4482

AWS-C-IO:构建高效异步IO应用的利器

AWS-C-IO:构建高效异步IO应用的利器 项目介绍 AWS-C-IO 是 AWS SDK for C 中的一个模块,专注于处理应用程序协议的所有 IO 和 TLS 工作。作为一个事件驱动的框架,AWS-C-IO 旨在帮助开发者轻松实现应用程序协议,而无需过多关注底层平台和安全细节。通过提供跨平台的抽象层,开发者可以专注于状态机和 API 的设计,从而快速构建高性能、可移植且灵活的应用程序。 项...

gitblog_01055的博客 1050

三级嵌入式系统开发技术--嵌入式系统概论

文章系统梳理了多媒体技术核心知识点,包括:1)图像处理(数字化四步骤、数据量公式、格式特性);2)音频处理(数字化流程、码率计算、格式分类);3)嵌入式系统(定义、SoC开发流程);4)网络(以太网帧结构、接口类型);5)易错点(字符编码、格式特性等)。重点修正了量化位数公式方向、GIF格式特性等常见错误,并提供典型计算案例(如CD音质码率1411.2kb/s)。通过对比说明不同技术参数,构建了完整的多媒体技术知识框架。

2301_81007729的博客 609

RT-Thread外设之-IO

【摘要】RT-Thread作为国产开源实时操作系统,通过完善的IO外设管理机制为嵌入式开发提供强大支持。系统将IO分为通用GPIO(可配置输入/输出)和专用IO(如UART/SPI接口),并提供统一API简化操作。输入模式支持浮空/上拉/下拉配置,输出模式具有推挽/开漏选择,配合灵活的中断机制(支持边沿/电平触发)实现实时响应。典型应用包括智能家居控制、工业设备管理和消费电子交互等场景。RT-Thread通过标准化的代码示例(如按键检测、LED控制、中断去抖等)显著降低开发难度,其模块化设计使开发者能高效构

XdaDC的博客 1126

fast_io跨平台开发完全教程:从Windows到Linux再到嵌入式系统

fast_io是一个为C++20设计的独立快速输入输出库,它提供了高效的IO操作能力,适用于从Windows桌面应用到Linux服务器,再到资源受限的嵌入式系统等多种平台。本教程将带你全面了解如何在不同平台上使用fast_io进行开发,掌握跨平台IO编程的核心技巧。 ## 快速入门:fast_io的基本使用 要开始使用fast_io,首先需要在代码中包含其主头文件。以下是一个简单的"Hello

gitblog_00128的博客 449

南邮-嵌入式系统

南邮/嵌入式系统/期末复习

Lanlan 4880

IO 端口和IO 內存的管理

Linux系统对IO端口和IO内存的 管理 Linux系统对IO端口和IO内存的管理 一、I/O端口 端口(port)是接口电路中能被CPU直接访问的寄存器的地址。几乎每一种外设都是通过读写设备上的寄存器来进行的。CPU通过这些地址即端口向接口电路中的寄存器发送命令,读取状态和传送数据。外设寄存器也称为“I/O端口”,通常包括:控制寄存器、状态寄存器和数据寄存器三大类,而且一个外设的寄存器通常被连续地编址。 二、IO内存 例如,在PC上可以插上一块图形卡,有2MB的存储空间,甚至可能还带有ROM

u012403024的博客 887
上一篇: USB客户驱动简析
下一篇: USB大容量存储设备浅析
Ma浩然
博客等级 码龄9年 1万+粉丝 462原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ma浩然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值