【微处理器系统原理和应用设计第六讲】片上微处理器系统系统架构

一、概念辨析

首先来厘清以下概念:微处理器,微控制器,单片机,片上微处理器系统

(1)微处理器:即MPU(Microprocessor Unit),微处理器是一种计算机的中央处理单元 (CPU),通常集成在一个或多个集成电路 (IC) 中。微处理器执行指令,并处理计算机中的数据。微处理器一般不包含存储器、I/O接口等外围组件,通常需要搭配外部芯片(如RAM、ROM、I/O接口等)来构成完整的计算机系统。

(2)微控制器:即MCU(Microcontroller Unit),微控制器是一种集成了CPU、存储器 (RAM、ROM、Flash) 和各种外设(如定时器、ADC、I/O接口)于单一芯片上的小型计算机。

(3)单片机:即Single-Chip Microcontroller,单片机实际上是微控制器的另一种称呼,强调了其所有功能都集成在一个芯片上。单片机与微控制器相同,集成了CPU、存储器和外设,能够执行独立的控制任务。

(4)片上微处理器系统,即System on Chip(Soc),片上微处理器系统是一种集成度更高的芯片,除了包含微控制器所有的功能组件,还可能集成更多的高级外设、图形处理单元 (GPU)、通信模块、DSP(数字信号处理器)等,形成一个完整的系统。

用下图表示:

二、基本组成

1、存储器

存储器主要用于保存程序代码和运算数据。存储器分为只读存储器(ROM)和随机存取存储器(RAM)。ROM主要用于保存初始化数值、启动程序代码和部分系统程序代码,掉电不丢失;RAM主要用于保存运行中的数据和动态加载的程序代码,掉电会丢失。

2、输入输出设备

用于与外部交互数据,获取外界信息和向外界输出信息,也被称为外设。常用的外设有四类:

(1)人机交互类:键盘、鼠标、显示器

(2)时钟类:定时器和计数器

(3)模拟类:ADC和DAC、音频设备等

(4)通信类:SPI、IIC、USB、以太网

3、系统总线

微处理器与外设和存储器之间通过系统总线来进行数据交换。存储器和外设都是又大量的存储单元构成的,微处理器把这些存储单元进行统一编址。微处理器要访问某存储单元时,将该存储单元的地址和读写控制信号发送到总线上,存储器和外设从系统总线上接收到微处理器发出的地址和读写控制信号,根据读写控制信号哦进行数据的读取或者写存。

4、DMAC

DMAC(直接存储访问控制器)用来实现存储器存储器存储器和外设之间的批量数据传输。它在微处理器不使用总线时控制总线,实现存储器和外设的读写操作。微处理器通过系统总线对DMAC进行配置和管理。

5、中断控制器

中断控制器用来接收外设的实时处理请求并进行相应的处理。中断控制器连接所有有中断需求的外设,一旦收到外设的中断请求,就通过专用的中断线向微处理器发送请求,使微处理器进入中断处理操作。微处理器通过总线对中断控制器进行中断配置和管理。

三、系统总线

系统总线时微处理器与存储器和外设之间的数据交互通道,共分为三种:地址总线(Address Bus,AB)、数据总线(Data Bus,DB)、控制总线(Control Bus,CB)。

1、地址总线

地址总线总共有n条,从An-1~A0;

2、数据总线

数据总线总共有m条线,从Dm-1~D0;数据总线有四类,即8位总线、16位总线、32位总线和64位总线。m位总线表示微处理器一次可以通过总线读写m位数据。对于16位数据总线而言,每次可以访问两个字节(D0~D15),也可以每次访问其中的一个字节(D0~D7或者D8~D15)。因此,控制总线需要增加两个专用信号nBS0和nBS1来指明每个字节是否被选中。32位同理需要nBS0~nBS3四个信号。

3、控制总线

控制总线包括读使能线nRD(低电平有效)和写使能线nWR(低电平有效)。

微控制器访问存储单元时,首先向地址总线输出所访问的存储单元的地址,然后使能控制总线中的读或写使能线。当进行写操作时,微处理器输出数据到数据总线上;当进行读操作时,存储器或者外设输出数据到数据总线上。

四、存储器系统

一个存储器系统通常由多个存储设备(存储器和外设)组成,同一总线上的所有存储设备不能同时被访问,每次只能有一个被访问。每个存储器设备都有一组数据线Dm-1~D0、地址线An-1~A0、读写控制线nWR和nRD以及设备选择线(nCS)。

每个存储器都有一个特定的访问地址范围。当系统总线上的地址在该存储设备的地址范围内nCS才有效,这时存储设备才能被访问。用来产生nCS的电路称为地址译码器。

从数据存储的角度来看,存储设备是一张由若干行和列组成的存储表,每一行由若干列组成,每列存储一个字节,行数是存储单元的数目,列数是1个存储单元存储的数据大小,通常与数据总线宽度相等。

五、外设接口

外设是完成外部数据获取、数据传输和数据显示等功能的设备。外设的结构功能各不相同,但无论何种设备,最终都需要与微处理器交互配置控制命令、工作状态和输入输出数据。

在微处理器系统中,每个外设都有单独的地址空间(编号),并且都有自己的内部寄存器用来保存控制信号、状态信号、发送数据、接收数据和配置参数。因此,外设接口通常由控制寄存器、状态寄存器、数据输出寄存器和数据输入寄存器构成。

外设接口与系统总线相连,主要有地址线、数据线和读写控制线。每个外设接口都有一个允许使能信号,即片选信号(nCS)。当且仅当该信号为低电平时,接口所含有的寄存器才能被微处理器访问。

为了方便操控设备,每个外设接口都有专用的地址,并采用专用的译码电路产生片选信号。

六、中断系统

中断通常用于处理发送结束、接收完成、定时结束、设备操作错误、外部电平发生变化等不可预知的突发事件。

中断系统是由微处理器、中断控制器和外设组成的。

支持中断的外设外设都有专用的中断控制寄存器(ICR)和中断状态寄存器(ISR),同时有一条信号线作为中断请求线。中断控制寄存器用来规定哪些事件可以产生中断请求,而中断状态寄存器则指明当前哪些时间产生了中断请求。微处理器可以清除中断状态寄存器的相应位来取消中断请求。

七、直接存储访问器

系统的许多处理都是需要进行大批量的数据传输,比如内存数据拷贝和外设数据流传输等。批量传输占用了处理器大量的时间,影像处理器的处理效率。如果将处理器与大批量数据传输的操作分离,那么可以大大提高处理器的处理效率。

微处理器中直接存储访问器(DMAC)可以模仿微处理器对总线进行读写操作,不经过微处理器,故称为直接存储访问(DMA)。

DMAC的主要作用是将微处理器从大批量数据中解脱出来,同时DMAC可以自动对外设进行收发处理。从而减少外设收发中断的使用。


http://www.ppmy.cn/news/1520925.html

相关文章

【Next】5. 全局权限管理

以下笔记来源:编程导航 需求 能够灵活配置每个页面所需要的用户权限,由全局权限管理系统自动校验和拦截路由,而不需要在每个页面中编写权限校验代码,提高开发效率。(路由权限)还要能够根据权限控制导航菜单…

生活因科技而美好:一键解锁PDF处理的无限可能

前言 “科技,是时代的诗篇,书写着人类不断超越自我、追求卓越的壮丽篇章。”这一理念深刻地影响着每一位开发者,他们不断探索、创新,旨在为用户带来更加便捷、高效的生活体验。正是在这样的背景下,一款旨在提升PDF处理…

MySQL case when【用法详解】

MySQL case when【用法详解】 语法1. 简单CASE表达式2. 搜索CASE表达式 示例示例1:使用简单CASE表达式示例2:使用搜索CASE表达式示例3:在UPDATE语句中使用CASE示例4:在DELETE语句中使用CASE注意事项 总结 在MySQL中,CA…

【技术解析】工厂内部导航系统:高精度定位与智能路径规划的技术实现

一、工厂内部导航系统概述 工厂内部导航系统集成了最新的GPS室内定位技术、蓝牙定位技术,实现了对工厂内部环境的无缝覆盖与高精度定位。无论是繁忙的生产线、错综复杂的仓库还是广阔的厂区,都能轻松应对。 二、工厂内部导航系统核心功能 实时定位&…

深度学习的发展历程

深度学习的起源 在机器学习中,我们经常使用两种方式来表示特征:局部表示(Local Representation)和分布式表示(Distributed Representation)。以颜色表示为例,见下图: 要学习到一种好…

电信500M宽带+AX210无线网卡测速

500M电信宽带,PC的Wifi模块是AX210 一、PC测速 2.4G Wifi 5G Wifi 有线网口 二、 手机端,小翼管家App测速 2.4G Wifi 5G Wifi 结论: 手机上网要快的话,还是要选择5G wifi

使用实例:xxl-job应用在spring cloud微服务下

1、首先下载,从github上下载,选择zip然后直接解压 https://github.com/xuxueli/xxl-job/releases 2、解压完后用idea启动。 启动这个启动类,然后按照路径访问 http://localhost:8080/xxl-job-admin/ 3、在你的项目里编写一个单独的微服务&a…

目标跟踪算法——ByteTrack算法原理解析

文章目录 ByteTrack1. ByteTrack算法步骤:2. 算法解释2.1 模型初始化2.2 模型更新算法流程2.2.1 检测结果划分,划分为高分和较低分段2.2.2 高分段处理手段2.2.3 最优匹配与未匹配划分2.2.4 低分框再匹配2.2.5 未确认轨迹处理2.2.6 更新状态 2.3 匈牙利匹…

ffplay源码分析(五)包缓存队列和帧缓存队列

在音视频处理流程中,ffplay的有两种队列,包缓存队列(Packet Buffer Queue)和帧缓存队列(Frame Buffer Queue)。这两个队列的存在,是为了适应音视频数据处理过程中的多线程架构——包括收包线程、…

图像白平衡

目录 效果 背景 什么是白平衡? 实现原理 将指定图色调调整为参考图色调主要流程 示例代码 效果 将图一效果转换为图二效果色调: 调整后,可实现色调对换 背景 现有两张图像,色调不一致,对于模型重建会有影响。因…

RabbitMQ 02 操作,配置信息,用户权限

01.介绍启动,关闭 02.环境 2.1 MQ是用Erlang语言写的 2.2 一个RabbitMQ 节点 一个 Erlang节点一个Erlang 程序 (RabbitMQ程序) 2.3 Erlang节点: 这个是Erlang节点集群状态下: 2.4 启动节点 2.5 查看日志信息 …

2021年大厂Java面试题(基础+框架+系统架构+分布式+实战)

Java线程的状态 进程和线程的区别,进程间如何通讯,线程间如何通讯 HashMap的数据结构是什么?如何实现的。和HashTable,ConcurrentHashMap的区别 Cookie和Session的区别 索引有什么用?如何建索引? Arra…

Elasticsearch 中,term 查询和 match 查询的区别

文章目录 前言Elasticsearch 中,term 查询和 match 查询的区别1. Term 查询2. Match 查询3. 总结 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都…

各种各样的正则表达式

一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 正…

【flask】python框架flask的hello world

创建一个py文件,写如下内容 # save this as app.py from flask import Flaskapp Flask(__name__)app.route("/") def hello():return "Hello, World!"如下图 在此py文件路径下启动cmd,输入 flask run结果如下图 在浏览器中访问…

【科普】数字化和数字化转型:是什么,为什么,怎么做?

​一、什么是数字化转型? 近年来 “数字化”、“数字化转型”概念已经渗透到各个行业,成为业界的热点议题。对于什么是“数字化转型”,众说纷纭。 有人说“数字化转型不过就是给传统的信息化穿上皇帝的新衣”,也有人说“数字化转…

策略优化:提升MySQL数据备份效率的实用指南

在当今数据驱动的商业环境中,数据备份策略的优化对于确保数据安全和业务连续性至关重要。MySQL作为广泛使用的数据库系统,其数据备份策略的优化不仅可以提高数据恢复的效率,还能降低存储成本和提高系统性能。本文将深入探讨如何在MySQL中实现…

用户管理和授权

授权 mysql> show databases; -------------------- | Database | -------------------- | information_schema | | day01db | | employees | | mysql | | mysql01 | | mysql02 | | performance_schema …

深入理解Java虚拟机的类加载机制

深入理解Java虚拟机的类加载机制 目录 深入理解Java虚拟机的类加载机制 一、类加载概念与过程 1. 类加载定义与作用 2. 类加载过程详解 二、类加载器 1. 系统提供的类加载器 2. 自定义类加载器 三、双亲委派模型 1. 双亲委派模型的概念 2. 工作过程 四、类的卸载与重…

【whisper】使用whisper实现语音转文字

whisper需要ffmpeg支持 官网下载ffmpeg https://www.gyan.dev/ffmpeg/builds/下载完毕后解压放到合适的位置 添加环境变量 在cmd中输入以下 ffmpeg -version出现下面结果代表成功 安装whisper pip install openai-whisper在vscode中运行 测试代码 import whisperif __n…