计算机组成原理—— 总线系统(十二)
不要害怕失败,因为每一次跌倒都是站起来的前奏;不要畏惧未知,因为在探索的过程中你会发现未曾预见的美好。你的每一步努力都在为未来的成功铺路,即使现在看不到成果,但请相信积累的力量。那些看似平凡的努力,终将在某一刻绽放出惊人的光芒。
记住,你是独一无二的存在,拥有着别人无法复制的独特价值。你的思想、你的创造力以及你的热情都是这个世界所需要的光亮。在这个广阔的世界里,总有属于你的一席之地,一个你可以尽情展现自我、实现梦想的舞台。
所以,请勇敢地追求你的梦想,无惧任何阻碍。让内心的火焰持续燃烧,照亮前行的道路。当你感到迷茫或疲惫时,不妨停下来回顾一下走过的路程,你会发现自己已经走了那么远,已经克服了那么多的困难。这份认知将成为你继续前进的动力。
未来是属于那些为之准备的人,而你已经在路上。每一天都是一个新的开始,每一刻都充满了无限可能。带着勇气和决心,去迎接每一个挑战,去拥抱每一个机遇。因为你值得拥有最好的一切,并且有能力将梦想变为现实。继续前行吧,你的光辉未来正在前方等待着你。
计算机组成原理资源网
https://www.wenjingketang.com/这里面有ppt课后习题及答案,需要的可以自行下载
目录
7.4 总线通信
7.4.1 同步通信
7.4.2 异步通信
7.4.3 总线数据传送模式
7.5 总线标准
总结与对比
7.4 总线通信
总线是计算机系统中各部件(如CPU、内存、外设)之间传输数据的公共通道。总线通信的核心是协调不同设备的数据传输,确保高效和准确。以下是总线通信的关键知识点:
7.4.1 同步通信
定义:数据传输在统一的时钟信号控制下进行,所有操作由时钟边沿(上升沿或下降沿)触发。
工作原理:
-
主设备(如CPU)生成时钟信号,所有从设备(如内存)根据此时钟同步操作。
-
数据在固定时间窗口内传输,发送方和接收方必须严格遵循时钟频率。
特点与优缺点:
-
优点:时序简单、传输速度快(适用于短距离高速传输)。
-
缺点:时钟信号需严格同步;长距离传输时时钟偏移(Skew)可能导致错误。
-
应用场景:CPU与高速缓存(Cache)、内存(DDR SDRAM)之间的通信。
示例:
-
PCI总线:早期PC中使用的同步总线,时钟频率33/66 MHz。
-
DDR内存接口:每个时钟周期传输两次数据(双倍数据速率)。
详细解析
同步通信的核心是依赖全局时钟信号协调所有操作。以下是对比表格和案例:
| 特性 | 同步通信 | 异步通信 |
|---|---|---|
| 时钟依赖 | 必须全局同步时钟 | 无全局时钟,通过握手协议 |
| 传输速率 | 高(固定频率) | 低(动态调整) |
| 适用场景 | 短距离、高速(CPU-内存) | 长距离、多设备(UART、USB) |
| 复杂度 | 简单(时序固定) | 复杂(需要握手信号) |
案例:SPI总线同步通信
SPI(Serial Peripheral Interface)是典型的同步总线协议,常用于微控制器与传感器/存储器通信。
-
引脚定义:
-
SCLK:同步时钟(主设备生成)
-
MOSI:主设备输出,从设备输入
-
MISO:主设备输入,从设备输出
-
SS:从设备片选信号
-
-
时序图:

数据在时钟上升沿或下降沿传输,由主设备控制时序。
代码示例(Arduino SPI通信)
cpp
#include <SPI.h>
void setup() {SPI.begin(); // 初始化SPIdigitalWrite(SS, HIGH); // 默认不选中从设备
}
void loop() {digitalWrite(SS, LOW); // 选中从设备byte received = SPI.transfer(0x55); // 发送0x55,同时接收数据digitalWrite(SS, HIGH); delay(1000);
}
7.4.2 异步通信
定义:数据传输无需全局时钟,而是通过握手协议(Handshaking)或控制信号协调。
工作原理:
-
发送方和接收方通过“请求”(Request)和“应答”(Acknowledge)信号交互。
-
数据传输速率可动态调整,适应不同速度的设备。
特点与优缺点:
-
优点:适应性强(支持不同速度设备)、抗干扰能力好(适合长距离传输)。
-
缺点:额外控制信号增加复杂度;传输效率较低(需多次握手)。
-
应用场景:外设连接(如UART串口)、网络通信(如以太网)。
示例:
-
UART(通用异步收发器):通过起始位、数据位、停止位实现异步通信(如RS-232)。
-
USB(低速模式):通过握手协议协调主机与设备的数据传输。
详细解析
异步通信通过握手协议(如UART的起始/停止位)协调传输,无需全局时钟。
UART数据帧结构
| 字段 | 长度 | 描述 |
|---|---|---|
| 起始位 | 1 bit | 低电平,标志传输开始 |
| 数据位 | 5-9 bits | 实际数据(通常8位) |
| 校验位 | 1 bit | 奇偶校验(可选) |
| 停止位 | 1-2 bits | 高电平,标志传输结束 |
案例:UART在GPS模块中的应用
GPS模块通过UART向微控制器发送NMEA格式数据:
$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47
-
波特率:9600 bps
-
帧格式:1起始位、8数据位、无校验、1停止位(8N1)。
代码示例(Python串口读取)
python
import serial
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1) # 打开串口
while True:data = ser.readline() # 读取一行数据if data:print(data.decode('utf-8')) # 打印GPS数据
7.4.3 总线数据传送模式
总线支持多种数据传送方式,具体模式取决于应用需求:
-
按传输方向分类:
-
单工(Simplex):单向传输(如广播)。
-
半双工(Half-Duplex):双向交替传输(如I2C总线)。
-
全双工(Full-Duplex):双向同时传输(如PCI Express)。
-
-
按传输规模分类:
-
单次传输:每次操作传输一个字(如CPU读取内存单个指令)。
-
突发传输(Burst):连续传输多个数据块(如内存读取缓存行)。
-
-
按操作类型分类:
-
读操作:主设备从从设备读取数据。
-
写操作:主设备向从设备写入数据。
-
原子操作:不可中断的传输(如总线锁定)。
-
-
高级传输模式:
-
流水线传输:重叠多个传输周期以提高效率(如现代内存控制器)。
-
DMA(直接内存访问):外设直接与内存交换数据,无需CPU介入。
-
详细对比与案例
-
传输方向分类
模式 描述 案例 单工 单向传输(仅发送/接收) 温度传感器→显示器 半双工 双向交替传输 I2C总线(主从切换) 全双工 双向同时传输 电话通话、PCI Express -
突发传输(Burst)案例
DDR内存一次传输64字节的缓存行(Cache Line),减少寻址开销。 -
DMA传输案例
硬盘通过DMA直接向内存写入数据,无需CPU参与:c
// 伪代码:启动DMA传输 dma_config.src_addr = HDD_BUFFER; dma_config.dst_addr = MEMORY_ADDR; dma_config.size = 4096; // 传输4KB数据 start_dma(&dma_config);
7.5 总线标准
总线标准定义了机械结构、电气特性、协议规范等,确保设备兼容性。以下是常见总线标准:
-
内部总线(系统总线):
-
PCI(Peripheral Component Interconnect):
-
特点:并行总线,支持即插即用,带宽133 MB/s(32位@33 MHz)。
-
应用:早期PC扩展卡(显卡、网卡)。
-
-
PCI Express(PCIe):
-
特点:串行点对点传输,分通道(Lane)设计,带宽可扩展(如PCIe 4.0单通道2 GB/s)。
-
应用:现代显卡、NVMe SSD。
-
-
-
外部总线(设备总线):
-
USB(Universal Serial Bus):
-
特点:支持热插拔、树形拓扑,最新版本USB4(40 Gbps)。
-
应用:外置存储、输入设备、手机充电。
-
-
SATA(Serial ATA):
-
特点:串行传输,支持热插拔,带宽6 Gbps(SATA III)。
-
应用:硬盘、光驱连接。
-
-
-
嵌入式/专用总线:
-
I2C(Inter-Integrated Circuit):
-
特点:两线制(SCL时钟线、SDA数据线),支持多主多从,低速(100 kHz~5 MHz)。
-
应用:传感器、EEPROM。
-
-
SPI(Serial Peripheral Interface):
-
特点:四线制(SCK、MOSI、MISO、CS),全双工,高速(可达100 MHz)。
-
应用:Flash存储器、显示屏驱动。
-
-
CAN(Controller Area Network):
-
特点:抗干扰强,支持多主通信,实时性高(1 Mbps)。
-
应用:汽车电子、工业控制。
-
-
-
历史总线:
-
ISA(Industry Standard Architecture):
-
特点:16位带宽,8 MHz,已被PCI取代。
-
-
AGP(Accelerated Graphics Port):
-
特点:专为显卡设计,带宽2.1 GB/s(AGP 8x)。
-
-
详细对比与案例
| 总线标准 | 类型 | 带宽 | 拓扑结构 | 应用场景 |
|---|---|---|---|---|
| PCIe 4.0 | 内部串行总线 | 16 GT/s per Lane | 点对点 | 显卡、NVMe SSD |
| USB 3.2 | 外部串行总线 | 20 Gbps | 树形 | 外置硬盘、高速外设 |
| I2C | 嵌入式总线 | 100 kHz-5 MHz | 多主多从 | 传感器、EEPROM |
| CAN | 工业总线 | 1 Mbps | 总线型 | 汽车电子、工业控制 |
案例:USB协议栈
USB数据传输分为四层:
-
物理层:定义电气特性(如USB 2.0使用差分信号)。
-
协议层:定义数据包格式(令牌包、数据包、握手包)。
-
逻辑层:处理设备枚举、端点配置。
-
应用层:驱动程序和设备交互。
代码示例(STM32配置USB CDC设备)
c
// 使用STM32CubeMX生成的USB CDC代码
int main(void) {HAL_Init();MX_USB_DEVICE_Init(); // 初始化USBwhile (1) {CDC_Transmit_FS((uint8_t*)"Hello World\n", 12); // 通过USB发送数据HAL_Delay(1000);}
}
总结与对比
-
同步 vs. 异步
-
同步:时钟严格,速度快(如DDR内存)。
-
异步:灵活,抗干扰(如工业现场总线)。
-
-
总线标准选择
-
高速内部连接:PCIe(点对点全双工)。
-
低速多设备:I2C(半双工多从机)。
-
通用外设:USB(热插拔、树形拓扑)。
-
-
实际开发建议
-
使用示波器或逻辑分析仪抓取总线信号(如SPI时钟波形)。
-
优先选择成熟协议栈(如STM32的HAL库、Linux内核驱动)。
-
相关文章:
计算机组成原理—— 总线系统(十二)
不要害怕失败,因为每一次跌倒都是站起来的前奏;不要畏惧未知,因为在探索的过程中你会发现未曾预见的美好。你的每一步努力都在为未来的成功铺路,即使现在看不到成果,但请相信积累的力量。那些看似平凡的努力࿰…...
详解如何使用Pytest内置Fixture tmp_path 管理临时文件
关注开源优测不迷路 大数据测试过程、策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 临时目录在测试中起着至关重要的作用,它为执行和验证代码提供了一个可控…...
Banana Pi OpenWRT One 官方路由器的第一印象
OpenWRT One是OpenWRT开源社区推出的首款官方开发板,与Banana Pi社区共同设计,由Banana Pi制造和发行。路由器采用蓝色铝合金外壳,质感极佳,视觉效果远超宣传图。整体设计简洁,呈长方形,虽然不是特别时尚&a…...
Golang GORM系列:GORM事务及错误处理
在数据库管理领域,确保数据完整性至关重要。GORM是健壮的Go对象关系映射库,它为开发人员提供了维护数据一致性和优雅地处理错误的基本工具。本文是掌握GORM事务和错误处理的全面指南。我们将深入研究如何使用事务来保证原子性,并探索有效处理…...
NLLB 与 ChatGPT 双向优化:探索翻译模型与语言模型在小语种应用的融合策略
作者:来自 vivo 互联网算法团队- Huang Minghui 本文探讨了 NLLB 翻译模型与 ChatGPT 在小语种应用中的双向优化策略。首先介绍了 NLLB-200 的背景、数据、分词器和模型,以及其与 LLM(Large Language Model)的异同和协同关系。接着…...
ASP.NET Core SixLabors.ImageSharp v1.0 的图像实用程序类 web示例
这个小型实用程序库需要将 NuGet SixLabors.ImageSharp包(版本 1.0.4)添加到.NET Core 3.1/ .NET 6 / .NET 8项目中。它与Windows、Linux和 MacOS兼容。 这已针对 ImageSharp v3.0.1 进行了重新设计。 它可以根据百万像素数或长度乘以宽度来调整图像大…...
ffmpeg configure 研究1-命令行参数的分析
author: hjjdebug date: 2025年 02月 14日 星期五 17:16:12 CST description: ffmpeg configure 研究1 ./configure 命令行参数的分析 文章目录 1 configure 对命令行参数的分析,在4019行1.1 函数名称: is_in1.2. 函数名称: enable1.3. 函数名称: set_all 2 执行退出判断的关键…...
数据结构与算法之排序算法-归并排序
排序算法是数据结构与算法中最基本的算法之一,其作用就是将一些可以比较大小的数据进行有规律的排序,而想要实现这种排序就拥有很多种方法~ 那么我将通过几篇文章,将排序算法中各种算法细化的,详尽的为大家呈现出来: …...
高血压危险因素分析(项目分享)
高血压危险因素分析(项目分享) 高血压作为一种极为常见的慢性疾病,正严重威胁着大众健康。它的发病机制较为复杂,涉及多个方面的因素。 在一份临床采集的数据的基础上,我们通过数据分析手段深入观察一下 BMI…...
java集合框架之Map系列
前言 首先从最常用的HashMap开始。HashMap是基于哈希表实现的,使用数组和链表(或红黑树)的结构。在Java 8之后,当链表长度超过阈值时会转换为红黑树,以提高查询效率。哈希冲突通过链地址法解决。需要明确的是ÿ…...
android设置添加设备QR码信息
摘要:客户衍生需求,通过扫QR码快速获取设备基础信息,并且基于POS SDK进行打印。 1. 定位至device info的xml添加相关perference Index: vendor/mediatek/proprietary/packages/apps/MtkSettings/res/xml/my_device_info.xml--- vendor/medi…...
Python实现微博关键词爬虫
1.背景介绍 随着社交媒体的广泛应用,微博上的海量数据成为了很多研究和分析的重要信息源。为了方便获取微博的相关内容,本文将介绍如何使用Python编写一个简单的爬虫脚本,从微博中抓取指定关键词的相关数据,并将这些数据保存为Ex…...
linux概念详解
用户守护进程 用户空间守护进程是一些在后台运行的长期服务程序,提供系统级服务。 下面举一些例子。 网络服务: 如sshd(SSH服务)、httpd(HTTP服务)。 sshd:sshd 守护进程会在后台运行&#x…...
【设计模式】-工厂模式(简单工厂、工厂方法、抽象工厂)
工厂模式(简单工厂、工厂方法、抽象工厂) 介绍 简单工厂模式 简单工厂模式不属于23种GoF设计模式之一,但它是一种常见的设计模式。它提供了一种创建对象的接口,但由子类决定要实例化的类是哪一个。这样,工厂方法模式让类的实例化推迟到子类…...
AMESim中批处理功能的应用
AMESim 软件的批处理功能是一项能显著提高仿真效率和灵活性的功能,以下是其介绍与应用说明: 一 功能介绍 参数扫描功能:用户可以指定模型中一个或多个参数的取值范围和步长,批处理功能会自动遍历这些参数组合,进行多…...
《Spring实战》(第6版)第1章 Spring起步
第1部分 Spring基础 第1章 Spring起步 1.1 什么是Spring Spring的核心是提供一个容器(container)。 称为Spring应用上下文(Spring application context)。 创建和管理应用的组件(bean),与上下文装配在一起。 Bean装配通过依赖注入(Dependency Injection,DI)。…...
E卷-特殊的加密算法-(200分)
专栏订阅🔗 特殊的加密算法 问题描述 有一种特殊的加密算法,明文为一段数字串,经过密码本查找转换,生成另一段密文数字串。规则如下: 明文为一段由 0-9 组成的数字串。密码本为由数字 0-9 组成的二维数组。需要按明文串的数字顺序在密码本里找到同样的数字串,密码本里…...
QT 异步编程之多线程
一、概述 1、在进行桌面应用程序开发的时候,假设应用程序在某些情况下需要处理比较复制的逻辑,如果只有一个线程去处理,就会导致窗口卡顿,无法处理用户的相关操作。这种情况下就需要使用多线程,其中一个线程处理窗口事…...
K-均值(K-means)
K-均值(K-means)是一种常用的无监督学习算法,用于将数据集中的样本分成 K 个簇。该算法的过程大致如下: 1. 随机初始化 K 个聚类中心(centroid)。 2. 将每个样本分配到与其最近的聚类中心所代表的簇。 3. …...
AI agent 未来好的趋势:AI医疗影像、智能客服、个性化推荐
AI agent 未来好的趋势:AI医疗影像、智能客服、个性化推荐 目录 AI agent 未来好的趋势:AI医疗影像、智能客服、个性化推荐比特币AI Agents稳定币扩容区块链AI基础设施AI驱动的软件应用AI赋能的行业应用AI医疗影像、智能客服、个性化推荐AI药物研发比特币 市场与机构化:2024…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...
Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...
