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

2024-09-05 07:12

本文主要是介绍【微处理器系统原理和应用设计第六讲】片上微处理器系统系统架构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、概念辨析

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

(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.chinasem.cn/article/1138297

相关文章

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

MySQL 缓存机制与架构解析(最新推荐)

《MySQL缓存机制与架构解析(最新推荐)》本文详细介绍了MySQL的缓存机制和整体架构,包括一级缓存(InnoDBBufferPool)和二级缓存(QueryCache),文章还探讨了SQL... 目录一、mysql缓存机制概述二、MySQL整体架构三、SQL查询执行全流程四、MySQL 8.0为何移除查

MySQL中的MVCC底层原理解读

《MySQL中的MVCC底层原理解读》本文详细介绍了MySQL中的多版本并发控制(MVCC)机制,包括版本链、ReadView以及在不同事务隔离级别下MVCC的工作原理,通过一个具体的示例演示了在可重... 目录简介ReadView版本链演示过程总结简介MVCC(Multi-Version Concurr

微服务架构之使用RabbitMQ进行异步处理方式

《微服务架构之使用RabbitMQ进行异步处理方式》本文介绍了RabbitMQ的基本概念、异步调用处理逻辑、RabbitMQ的基本使用方法以及在SpringBoot项目中使用RabbitMQ解决高并发... 目录一.什么是RabbitMQ?二.异步调用处理逻辑:三.RabbitMQ的基本使用1.安装2.架构

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

JavaScript中的isTrusted属性及其应用场景详解

《JavaScript中的isTrusted属性及其应用场景详解》在现代Web开发中,JavaScript是构建交互式应用的核心语言,随着前端技术的不断发展,开发者需要处理越来越多的复杂场景,例如事件... 目录引言一、问题背景二、isTrusted 属性的来源与作用1. isTrusted 的定义2. 为

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬