当前位置: 首页 > news >正文

计算机组成原理—— 总线系统(十二)

不要害怕失败,因为每一次跌倒都是站起来的前奏;不要畏惧未知,因为在探索的过程中你会发现未曾预见的美好。你的每一步努力都在为未来的成功铺路,即使现在看不到成果,但请相信积累的力量。那些看似平凡的努力,终将在某一刻绽放出惊人的光芒。

记住,你是独一无二的存在,拥有着别人无法复制的独特价值。你的思想、你的创造力以及你的热情都是这个世界所需要的光亮。在这个广阔的世界里,总有属于你的一席之地,一个你可以尽情展现自我、实现梦想的舞台。

所以,请勇敢地追求你的梦想,无惧任何阻碍。让内心的火焰持续燃烧,照亮前行的道路。当你感到迷茫或疲惫时,不妨停下来回顾一下走过的路程,你会发现自己已经走了那么远,已经克服了那么多的困难。这份认知将成为你继续前进的动力。

未来是属于那些为之准备的人,而你已经在路上。每一天都是一个新的开始,每一刻都充满了无限可能。带着勇气和决心,去迎接每一个挑战,去拥抱每一个机遇。因为你值得拥有最好的一切,并且有能力将梦想变为现实。继续前行吧,你的光辉未来正在前方等待着你。

计算机组成原理资源网

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 总线数据传送模式

总线支持多种数据传送方式,具体模式取决于应用需求:

  1. 按传输方向分类

    • 单工(Simplex):单向传输(如广播)。

    • 半双工(Half-Duplex):双向交替传输(如I2C总线)。

    • 全双工(Full-Duplex):双向同时传输(如PCI Express)。

  2. 按传输规模分类

    • 单次传输:每次操作传输一个字(如CPU读取内存单个指令)。

    • 突发传输(Burst):连续传输多个数据块(如内存读取缓存行)。

  3. 按操作类型分类

    • 读操作:主设备从从设备读取数据。

    • 写操作:主设备向从设备写入数据。

    • 原子操作:不可中断的传输(如总线锁定)。

  4. 高级传输模式

    • 流水线传输:重叠多个传输周期以提高效率(如现代内存控制器)。

    • DMA(直接内存访问):外设直接与内存交换数据,无需CPU介入。

详细对比与案例

  1. 传输方向分类

    模式描述案例
    单工单向传输(仅发送/接收)温度传感器→显示器
    半双工双向交替传输I2C总线(主从切换)
    全双工双向同时传输电话通话、PCI Express
  2. 突发传输(Burst)案例
    DDR内存一次传输64字节的缓存行(Cache Line),减少寻址开销。

  3. 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 总线标准

总线标准定义了机械结构、电气特性、协议规范等,确保设备兼容性。以下是常见总线标准:

  1. 内部总线(系统总线)

    • PCI(Peripheral Component Interconnect)

      • 特点:并行总线,支持即插即用,带宽133 MB/s(32位@33 MHz)。

      • 应用:早期PC扩展卡(显卡、网卡)。

    • PCI Express(PCIe)

      • 特点:串行点对点传输,分通道(Lane)设计,带宽可扩展(如PCIe 4.0单通道2 GB/s)。

      • 应用:现代显卡、NVMe SSD。

  2. 外部总线(设备总线)

    • USB(Universal Serial Bus)

      • 特点:支持热插拔、树形拓扑,最新版本USB4(40 Gbps)。

      • 应用:外置存储、输入设备、手机充电。

    • SATA(Serial ATA)

      • 特点:串行传输,支持热插拔,带宽6 Gbps(SATA III)。

      • 应用:硬盘、光驱连接。

  3. 嵌入式/专用总线

    • 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)。

      • 应用:汽车电子、工业控制。

  4. 历史总线

    • 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数据传输分为四层:

  1. 物理层:定义电气特性(如USB 2.0使用差分信号)。

  2. 协议层:定义数据包格式(令牌包、数据包、握手包)。

  3. 逻辑层:处理设备枚举、端点配置。

  4. 应用层:驱动程序和设备交互。

代码示例(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);}
}

总结与对比

  1. 同步 vs. 异步

    • 同步:时钟严格,速度快(如DDR内存)。

    • 异步:灵活,抗干扰(如工业现场总线)。

  2. 总线标准选择

    • 高速内部连接:PCIe(点对点全双工)。

    • 低速多设备:I2C(半双工多从机)。

    • 通用外设:USB(热插拔、树形拓扑)。

  3. 实际开发建议

    • 使用示波器或逻辑分析仪抓取总线信号(如SPI时钟波形)。

    • 优先选择成熟协议栈(如STM32的HAL库、Linux内核驱动)。

相关文章:

计算机组成原理—— 总线系统(十二)

不要害怕失败&#xff0c;因为每一次跌倒都是站起来的前奏&#xff1b;不要畏惧未知&#xff0c;因为在探索的过程中你会发现未曾预见的美好。你的每一步努力都在为未来的成功铺路&#xff0c;即使现在看不到成果&#xff0c;但请相信积累的力量。那些看似平凡的努力&#xff0…...

详解如何使用Pytest内置Fixture tmp_path 管理临时文件

关注开源优测不迷路 大数据测试过程、策略及挑战 测试框架原理&#xff0c;构建成功的基石 在自动化测试工作之前&#xff0c;你应该知道的10条建议 在自动化测试中&#xff0c;重要的不是工具 临时目录在测试中起着至关重要的作用&#xff0c;它为执行和验证代码提供了一个可控…...

Banana Pi OpenWRT One 官方路由器的第一印象

OpenWRT One是OpenWRT开源社区推出的首款官方开发板&#xff0c;与Banana Pi社区共同设计&#xff0c;由Banana Pi制造和发行。路由器采用蓝色铝合金外壳&#xff0c;质感极佳&#xff0c;视觉效果远超宣传图。整体设计简洁&#xff0c;呈长方形&#xff0c;虽然不是特别时尚&a…...

Golang GORM系列:GORM事务及错误处理

在数据库管理领域&#xff0c;确保数据完整性至关重要。GORM是健壮的Go对象关系映射库&#xff0c;它为开发人员提供了维护数据一致性和优雅地处理错误的基本工具。本文是掌握GORM事务和错误处理的全面指南。我们将深入研究如何使用事务来保证原子性&#xff0c;并探索有效处理…...

NLLB 与 ChatGPT 双向优化:探索翻译模型与语言模型在小语种应用的融合策略

作者&#xff1a;来自 vivo 互联网算法团队- Huang Minghui 本文探讨了 NLLB 翻译模型与 ChatGPT 在小语种应用中的双向优化策略。首先介绍了 NLLB-200 的背景、数据、分词器和模型&#xff0c;以及其与 LLM&#xff08;Large Language Model&#xff09;的异同和协同关系。接着…...

ASP.NET Core SixLabors.ImageSharp v1.0 的图像实用程序类 web示例

这个小型实用程序库需要将 NuGet SixLabors.ImageSharp包&#xff08;版本 1.0.4&#xff09;添加到.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 执行退出判断的关键…...

数据结构与算法之排序算法-归并排序

排序算法是数据结构与算法中最基本的算法之一&#xff0c;其作用就是将一些可以比较大小的数据进行有规律的排序&#xff0c;而想要实现这种排序就拥有很多种方法~ 那么我将通过几篇文章&#xff0c;将排序算法中各种算法细化的&#xff0c;详尽的为大家呈现出来&#xff1a; …...

高血压危险因素分析(项目分享)

高血压危险因素分析&#xff08;项目分享&#xff09; 高血压作为一种极为常见的慢性疾病&#xff0c;正严重威胁着大众健康。它的发病机制较为复杂&#xff0c;涉及多个方面的因素。 在一份临床采集的数据的基础上&#xff0c;我们通过数据分析手段深入观察一下 BMI&#xf…...

java集合框架之Map系列

前言 首先从最常用的HashMap开始。HashMap是基于哈希表实现的&#xff0c;使用数组和链表&#xff08;或红黑树&#xff09;的结构。在Java 8之后&#xff0c;当链表长度超过阈值时会转换为红黑树&#xff0c;以提高查询效率。哈希冲突通过链地址法解决。需要明确的是&#xff…...

android设置添加设备QR码信息

摘要&#xff1a;客户衍生需求&#xff0c;通过扫QR码快速获取设备基础信息&#xff0c;并且基于POS SDK进行打印。 1. 定位至device info的xml添加相关perference Index: vendor/mediatek/proprietary/packages/apps/MtkSettings/res/xml/my_device_info.xml--- vendor/medi…...

Python实现微博关键词爬虫

1.背景介绍 随着社交媒体的广泛应用&#xff0c;微博上的海量数据成为了很多研究和分析的重要信息源。为了方便获取微博的相关内容&#xff0c;本文将介绍如何使用Python编写一个简单的爬虫脚本&#xff0c;从微博中抓取指定关键词的相关数据&#xff0c;并将这些数据保存为Ex…...

linux概念详解

用户守护进程 用户空间守护进程是一些在后台运行的长期服务程序&#xff0c;提供系统级服务。 下面举一些例子。 网络服务&#xff1a; 如sshd&#xff08;SSH服务&#xff09;、httpd&#xff08;HTTP服务&#xff09;。 sshd&#xff1a;sshd 守护进程会在后台运行&#x…...

【设计模式】-工厂模式(简单工厂、工厂方法、抽象工厂)

工厂模式(简单工厂、工厂方法、抽象工厂) 介绍 简单工厂模式 简单工厂模式不属于23种GoF设计模式之一&#xff0c;但它是一种常见的设计模式。它提供了一种创建对象的接口&#xff0c;但由子类决定要实例化的类是哪一个。这样&#xff0c;工厂方法模式让类的实例化推迟到子类…...

AMESim中批处理功能的应用

AMESim 软件的批处理功能是一项能显著提高仿真效率和灵活性的功能&#xff0c;以下是其介绍与应用说明&#xff1a; 一 功能介绍 参数扫描功能&#xff1a;用户可以指定模型中一个或多个参数的取值范围和步长&#xff0c;批处理功能会自动遍历这些参数组合&#xff0c;进行多…...

《Spring实战》(第6版)第1章 Spring起步

第1部分 Spring基础 第1章 Spring起步 1.1 什么是Spring Spring的核心是提供一个容器(container)。 称为Spring应用上下文(Spring application context)。 创建和管理应用的组件(bean)&#xff0c;与上下文装配在一起。 Bean装配通过依赖注入(Dependency Injection,DI)。…...

E卷-特殊的加密算法-(200分)

专栏订阅🔗 特殊的加密算法 问题描述 有一种特殊的加密算法,明文为一段数字串,经过密码本查找转换,生成另一段密文数字串。规则如下: 明文为一段由 0-9 组成的数字串。密码本为由数字 0-9 组成的二维数组。需要按明文串的数字顺序在密码本里找到同样的数字串,密码本里…...

QT 异步编程之多线程

一、概述 1、在进行桌面应用程序开发的时候&#xff0c;假设应用程序在某些情况下需要处理比较复制的逻辑&#xff0c;如果只有一个线程去处理&#xff0c;就会导致窗口卡顿&#xff0c;无法处理用户的相关操作。这种情况下就需要使用多线程&#xff0c;其中一个线程处理窗口事…...

K-均值(K-means)

K-均值&#xff08;K-means&#xff09;是一种常用的无监督学习算法&#xff0c;用于将数据集中的样本分成 K 个簇。该算法的过程大致如下&#xff1a; 1. 随机初始化 K 个聚类中心&#xff08;centroid&#xff09;。 2. 将每个样本分配到与其最近的聚类中心所代表的簇。 3. …...

AI agent 未来好的趋势:AI医疗影像、智能客服、个性化推荐

AI agent 未来好的趋势:AI医疗影像、智能客服、个性化推荐 目录 AI agent 未来好的趋势:AI医疗影像、智能客服、个性化推荐比特币AI Agents稳定币扩容区块链AI基础设施AI驱动的软件应用AI赋能的行业应用AI医疗影像、智能客服、个性化推荐AI药物研发比特币 市场与机构化:2024…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 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配置的颜色主题&#xff0c;无需引入&#xff0c;直接可…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)

引言 工欲善其事&#xff0c;必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后&#xff0c;我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集&#xff0c;就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集&#xff0c;单周期执行&#xff1b;低功耗、CIP 独立外设&#xff1b;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel&#xff08;原始…...