基于Cortex的MCU设计

基于Cortex的MCU设计

今日更新的存货文档,发现日更文章还是很花时间的。保证一周更新三篇文章就行啦,本篇文章的内容起始主要取自于《Cortex-M3 权威指南》和知网下载的论文。写的不详细,想进一步了解的就去看这篇文档或网上找别的资料,有错误的地方评论区留言或者私信我,我再更改。书本网盘链接如下,永久有效链接。
链接:https://pan.baidu.com/s/1Zp0L1rAnCJi8brKHjc766Q
提取码:5v92


文章目录

  • 基于Cortex的MCU设计
  • 一、概述
  • 二、什么是Cortex-M3内核?
    • 2.1 指令集
    • 2.2 寄存器
    • 2.3 异常和中断
    • 2.4 存储器映射
    • 2.5 总线接口
  • 三、芯片内部数据怎么传输?(AMBA总线)
    • 3.1 AHB总线特性和构成
    • 3.2 APB总线
    • 3.APB桥
  • 三、MCU外围设备


一、概述

如下表所示,MCU大致可以分为5个发展阶段,MCU的位数表示微处理器核每次处理数据的位数或者总线系统的位宽。目前电子市场的主流芯片是16位和32位处理器。
在这里插入图片描述
MCU按照指令集可以分为复杂指令集计算机(Complex Instruction Set Computer,CISC)和精简指令集计算机(Reduced Instruction Set Computer,RISC)。现在市面上常用的MCU采用的ARM架构是RISC指令集,该指令集的计算机处理速度更快、功耗更低。
根据MCU中才采用的存储结构不同可以分为冯诺依曼结构和哈佛结构,前者程序指令和数据指令共用同一个存储空间,后者程序指令和数据指令放在不同的空间。目前常用的MCU基本都是采用哈佛结构,比如ARM公司推出的ARM架构大多也是采用的哈佛结构,部分对内核要求很高的SOC系列芯片,采用的是冯诺依曼结构。本文主要讲解以下基于Cortex-M3内核的MCU设计时需要具备什么硬件功能。主要是从处理器内核、系统片上总线和片上外设三部分去讲解。


二、什么是Cortex-M3内核?

基于ARM的MCU控制器的制作流程如下图所示,各大芯片厂商得到了ARM微处理器授权后,根据自身需求再处理器的基础上添加存储器、系统总线和外设等部件。
在这里插入图片描述
ARM公司设计了多系列的微处理器内核,其部分Cortex-M系列的产品如下所示,Cortex-M3系列的处理器是ARM公司为高性能、低成本的平台开发而设计。
在这里插入图片描述
Cortex-M3具备一个完整的微控制器架构,如下图所示,下文将会根据该内核的简化视图依次从指令集、寄存器、异常和中断、存储器映射和总线接口五大点讲解内核的核心知识点。
在这里插入图片描述

2.1 指令集

ARM处理器目前可支持两种相互独立的指令集,分别是32位的ARM指令集和16位的Thumb指令集,两而cortex-M3可支持这两个指令集,三者之间的关系如下所示。
在这里插入图片描述

2.2 寄存器

Cortex-M3包括16个32bit的寄存器和多个特殊寄存器。特殊寄存器包括程序号状态寄存器、中断屏蔽寄存器和控制寄存器,其分类如下所示。
在这里插入图片描述

2.3 异常和中断

Cortex-M3支持11种类型的系统异常以及240个外部中断,通过内核中搭载的嵌套向量中断控制器(Nested Vectored Interrupt Controller,NVIC)实现对中断和异常的响应,其系统中断如下所示。
在这里插入图片描述

2.4 存储器映射

Cortex-M3的地址空间映射如下所示。

在这里插入图片描述

2.5 总线接口

Cortex-M3处理器内核基于AHB总线协议的32位总线接口包括:I-CODE总线、D-CODE总线、系统总线和外设总线,如下所示。

在这里插入图片描述

三、芯片内部数据怎么传输?(AMBA总线)

3.1 AHB总线特性和构成

计算机不同部件之间通过什么通信呢?以及各种电子设备之间通过什么传输数据呢?我们知道UART、I2C和SPI等通信协议都是需要对应的线缆进行通信的,并且有对应的通信协议。
那么SOC内部之间各个模块之间的数据是怎么传输的呢?同样的道理啦,也是需要在芯片内部构建对应的“线缆”和“通信规则”。即,在SOC里,单个芯片内部集成了内部总线和微处理器,那么这就称为片上系统总线。一个新概念的提出,必定会有其定义和名字及相关规则吧。而ARM公司推出了面向高性能微处理器的片上通信协议,即先进微控制器总线结构(Advanced Microcontroller Bus Architecture)协议。我们现在常用的微处理器采用的就是AHB总线,该总线就是AMBA总线协议中的一种,其支持多总线主机和流水线操作,典型的AHB总线系统如下所示。
在这里插入图片描述
AHB的总线信号一般分为主机接口信号、从机接口信号和其他信号三大类,部分关键信号名称和作用如下表所示。
在这里插入图片描述
AHB采用流水线传输操作,其数据传输过程如下所示。
在这里插入图片描述

3.2 APB总线

与AHB总线不同的是,APB总线没有流水线操作,其主要的信号描述如下所示。
在这里插入图片描述
APB总线的传输状态如下图所示,我们可以看到,APB传输数据主要分为3个状态。①外设总线的默认状态;②SETUP状态,有传输数据时候,PSEL_x信号拉高,总线保持一个SETUP周期。③ENABEL状态,该状态下PENABLE拉高保持一个周期,传输数据。如果没有数据传输了则进入到状态①,负责进入状态②。
在这里插入图片描述
根据以上的状态机,APB写传输的时序如下所示。
在这里插入图片描述
APB读传输时序如下。
在这里插入图片描述

3.APB桥

AMBA总线协议提供了APB桥实现AHB总线和APB总线之间的时序切换。APB桥在总线系统中既是AHB的从机又是APB的唯一主机。APB桥接信号如下图所示。
在这里插入图片描述


三、MCU外围设备

不同的生产厂商根据自身的需求会增加对应的外设,包括有定时器、输入输出端口、通信接口、看门狗、SPI接口、I2C接口等。
我们现在使用的32位单片机,基本都是基于ARM的内核实现的MCU。比如我们常用的STM32F103,其内核是ARM的cortex-M3内核,在内核的基础上再配置了一些外设,如GPIO、ADC、DAC、USART、SPI、I2C等外设接口。且这些芯片公司基本都有成熟的固件库,芯片公司已经写好了对应外设的API接口函数,我们在应用的时候使用固件库开发就会轻松很多,不需要再去花时间去配置对应的寄存器。但是对于一个实际的系统开发,我们需要编写MCU控制器以外芯片对应的配置代码,需要访问对应芯片内部寄存器控制芯片功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/17191.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle 序列-SEQUENCE

文章目录 序列-SEQUENCE创建序列访问序列序列的修改和删除查询序列信息 序列-SEQUENCE 创建序列 访问序列 序列的修改和删除 DROP SEQUENCE SEQ_EKPO;查询序列信息 可以通过视图 dba/all/user_sequences 查询序列的相关信息 SELECT SEQUENCE_NAME FROM DBA_SEQUENCES WHERE …

LLM提示工程的技巧

1. 从简单开始(Start Simple) 避免在一开始就增加太多的复杂性。 从简单的提示开始,然后在后续提示中添加更多信息和上下文。 这样,提示就是一个迭代过程,提示在此过程中进一步发展。 从简单的开始,就有足…

HTML静态网页成品作业(HTML+CSS)——川西旅游介绍网页(2个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有2个页面。 二、作品演示 三、代…

【408精华知识】时钟周期、机器周期、总线周期、指令周期、存取周期还傻傻分不清?

在做题时,我们经常能遇到关于“周期”的表述,比如时钟周期、机器周期、总线周期、指令周期、存取周期,类似的表述让我们很容易迷茫,那么接下来我们就看看它们到底是什么、有什么区别? 周期特点时钟周期也称为CPU时钟周…

图片数据增强-resize(不同插值)、各种模糊

各种不同的模糊处理 import os import cv2def apply_blur_to_images(input_folder_path, output_folder_path):# 遍历文件夹下的所有文件for filename in os.listdir(input_folder_path):# 检查文件类型是否为图片if filename.endswith(.jpg) or filename.endswith(.jpeg) or …

每天五分钟深度学习框架pytorch:tensor张量的维度转换大全

本文重点 在深度学习中比较让人头疼的一点就是矩阵的维度,我们必须构建出符合神经网络维度的矩阵,只有将符合要求的矩阵放到神经网络中才可以运行神经网络,本节课程我们将学习以下tensor中维度的变化。 view和shape View和shape,这两个方法可以完成维度的变换操作,而且使…

[STM32-HAL库]ADC采集-DMA中断采集-平均值滤波-STM32CUBEMX开发-HAL库开发系列-主控STM32F103C8T6

目录 一、前言 二、实现步骤 1.STM32CUBEMX配置 2.Keil工程程序设计 三、结语 一、前言 本文通过STM32CUBEMX实现对ADC的数据采集和滤波操作,帮助各位开发者完成与模拟量输入的采集工作。 二、实现步骤 1.STM32CUBEMX配置 以STM32F103C8T6为例,打开S…

3D 生成重建015-nerf2mesh从神经辐射场中提取mesh和纹理!

3D 生成重建015-nerf2mesh从神经辐射场中提取mesh和纹理! 文章目录 0 论文工作1 论文方法2 效果 0 论文工作 NeRF2Mesh 提出了一种从多视角 RGB 图像重建纹理表面网格的新方法。它克服了传统 NeRF 模型的局限性,由于其隐式表示,传统 NeRF 模…

基于 Pre-commit 的 Python项目代码风格统一实践

背景信息 统一代码风格首先需要定义参照的规范,每个团队可能会有自己的规范,我们选择的规范是 yapf mypy isort,如果保证所有的研发人员都遵循相关规范呢? 鼓励 IDE 中对应的插件的安装,通过直接对应的插件&#x…

bootstrap实现天平效果

之前提到了,最近,孩子的幼儿园让家长体验“半日助教活动”,每个家长需要讲授15-20分钟的课程。作为一名程序员,实在没有能教的课程,只能做了一个小游戏,带着小朋友们熟悉数字。 在上一章博客中&#xff0c…

【读书】读书笔记——理科生的视角:底层逻辑+数学之美

1,底层逻辑1(看清这个世界的底牌) 刘润 著 0)什么是底层逻辑? 底层逻辑是:事物之间共同点、变化背后不变的东西事;看清事物的本质,才能在复杂变化中从根本上解决问题。 1&#x…

【Java继承】(超级详细!!!)

【Java继承】(超级详细!!!) 1、 继承的概念2 、继承的语法3、 父类成员访问3.1 子类中访问父类的成员变量3.2 子类中访问父类的成员方法 4、 super关键字5 、子类的构造方法6、 继承关系上的执行顺序7、protected 关键…

选项卡式小部件QTabWidget

文章目录 1. 详细介绍2. 常用属性3. 信号4. 常用函数5. 官方示例Tab Dialog QTabWidget提供一堆选项卡式小部件。 1. 详细介绍 选项卡式部件提供一个选项卡栏和一个用于显示与每个选项卡相关的页面的页面区域。 默认情况下,选项卡栏显示在页面区域上方,…

Vue.js - 计算属性与侦听器 【0基础向 Vue 基础学习】

文章目录 计算属性 computedcomputed 的使用方法computed 与 method 的区别计算属性完整写法 watch 侦听器(监视器)简单写法 → 简单类型数据,直接监视完整写法 → 添加额外配置项 计算属性 computed computed 的使用方法 **概念&#xff1…

web题解,基础知识巩固(qsnctf)

1.文章管理系统 1)打开题目,把它页面翻完了,没看懂它有啥用 2)看了看源码,也是一样的,没找到有用的东西 3)想着可能还是在隐藏文件里找,那我就直接用dirsearch扫扫看 4)…

初识C++ · 模拟实现vector

目录 前言: 1 部分简单函数的实现 2 push_back和pop_back 3 reserve和resize 4 Print_vector 5 insert和erase 6 拷贝构造 7 构造 8 赋值 9 memcpy的问题 10 迭代器失效 前言: 继上文模拟实现了string之后,接着就模拟实现vector&…

MyBatis复习笔记

3.Mybatis复习 3.1 xml配置 properties&#xff1a;加载配置文件 settings&#xff1a;设置驼峰映射 <settings><setting name"mapUnderscoreToCamelCase" value"true"/> </settings>typeAliases&#xff1a;类型别名设置 #这样在映射…

如何去除视频上的文字?免费无痕去水印分享!视频制作良器!

对于需要进行二次创作的视频素材&#xff0c;去除原有的文字可以提供一个更加干净的画布&#xff0c;方便创作者在其基础上进行新的创作和编辑。同时&#xff0c;去除文字后的视频也更方便分享到各种平台&#xff0c;避免因为平台对文字的限制而导致视频无法发布或传播。 要去除…

云计算期末复习(1)

云计算基础 作业&#xff08;问答题&#xff09; &#xff08;1&#xff09;总结云计算的特点。 透明的云端计算服务 “无限”多的计算资源&#xff0c;提供强大的计算能力 按需分配&#xff0c;弹性伸缩&#xff0c;取用方便&#xff0c;成本低廉资源共享&#xff0c;降低企…

Windows操作系统基本知识整理

目录 引言 一、Windows操作系统的发展历史 1.1 Windows 1.0到Windows 3.0 1.2 Windows 95到Windows Me 1.3 Windows NT到Windows 2000 1.4 Windows XP到Windows 7 1.5 Windows 8到Windows 10 二、Windows操作系统的核心组件 2.1 内核 2.2 文件系统 2.3 图形用户界面&…