前言

  许多像我一样的STM32初学者,都往往忽视了STM32系统架构的学习。这对于实际应用并没有啥大的影响,但是总感觉怎么学也无法看清STM32的全貌,所以本文我将带领大家一起厘清STM32F103的总线结构和各部分外设之间的关系。在《三体》小说中,作者曾用军队阵列的方法模拟了冯诺依曼架构的计算机,读来画面感十足,且易于理解,本文也力求解释的形象与生动。

系统全貌

  在罗列各个方阵前,我们有必要先登上高山,一览军队全貌,如官方手册里的框图所示,相比51单片机,STM32F103系统还是相当复杂的,但是其阵列也必将威武雄壮。

系统剖析

Cortex-M3内核

  它是STM32F103的内核,也就是CPU,相当于元帅。除掉他,其他部件都是片上外设,注意是片上的,也就是那块我们肉眼所见的芯片里的外设。这位元帅足不出户,便可操纵队列,依靠的是自己强大的数字运算能力和强大的总线设计。在阵列中,数据的运算都呈报给元帅来做。

ICode总线

  阵列的运行需要有人下达指令,元帅Cortex-M3是命令的下发者,却并非命令的产生者。那么命令从何而来?在《三体》中,冯诺依曼在布阵前早已想好了指令。同样,各位STM32的热爱者才是聪慧的命令发起者——我们写好的程序被译成机器指令存储于Flash中。ICode总线就是一队骑兵,将指令一条条送达给元帅Cortex-M3。

Bus-Matrix

  Bus-Matrix的功能是总线仲裁。类似于现在的快递站,假如没有快递站作为中转,一家快递公司的送货路线规划就变成了14亿条。在阵列中,方阵Bus-Matrix作为中介,减少了骑兵队的数量开销,增加了系统的简洁有序性,降低了信息传输的错误率。在图中,Bus-Matrix右侧安排了四支骑兵,他们送来的信息都被加以分类,而左侧的四支骑兵则可以从属于自己的类别中拿走信件,避免了错拿的情况。这就是Bus-Matrix的作用之处。

DCode总线

  人如其名,骑兵队DCode被用来传送数据,这里的数据指程序中的常量和变量。常量存储在Flash,变量和堆栈则存储在SRAM。元帅Cortex-M3需要这些数据来作运算,中途还会让骑兵队DCode送些数据回去存储。

System总线

  这个总线是被用来配置和访问片上外设寄存器的。元帅Cortex-M3要调度众多的外设方阵,所以专门设立了这样一支骑兵队。我们常说配啥啥寄存器,其实就是间接在给骑兵队System发号施令呢!

DMA与DMA总线

  前面提到的三个骑兵队都通向元帅的大营,Cortex-M喜欢用他们送来的数据做运算。但如果要有很多骑兵前来告诉他这份数据要送到某某处,那他会心力交瘁的,DMA的设立则缓解了元帅的这个压力。STM32F103共有12个DMA通道,也就是12支机动部队,它们活动的路线并非像前三支骑兵队一样固定。在图中可以看到,外设方阵可以向机动部队发送请求,DMA搬运数据时也不会去打扰元帅,这样的部队真是元帅的得力助手啊。而且DMA可以轻轻松松搬运大批量的数据,从不会耐烦,堪称数据的搬运工。

FLASH

  冯诺依曼是个聪明人,早知道阵列模拟不会一次性成功。为了不用自己一次次重新颁布指令,就安排了名为Flash的将军来记载指令和常量。Flash将军是军中记忆力最好的(我们知道程序下载到Flash里后是掉电不失去的)。

SRAM

  变量和堆栈记录,为啥不能交给Flash一并做呢?这是因为Flash将军虽然记忆好,但是手脚慢,而变量更改比较频繁,让他干这个不合适。代替他的就是SRAM方阵(我们都知道SRAM是掉电丢失的,但是数据读写真的很快)。

APB1和APB2总线:

  由骑兵队AHB分出的两队骑兵APB1和APB2都是用来与片上外设进行交流的。之所以分成两组,是因为他们发现所有的外设方阵中,有的方阵动作快,有的方阵慢手慢脚,于是将慢的一组交给马速较慢的APB1,快的交给马速较快的APB2。其中APB1最快的行军速度为36MHz,APB2最快为72Mhz。

RCC:

  众多的外设方阵,不用像元帅一样每时每刻都得工作着。不工作的时候就得让他们休息着,所以就出现了RCC校尉,用于管理外设方阵的作息(在32里,我们要使用某个片上外设,都得先开RCC使能)。

SDIO:

  Flash和SRAM的能力是有限的,而SD卡的容量很大,SDIO就是专门用来与SD卡沟通的接口。

大话STM32F103系统架构相关推荐

  1. STM32F103之系统架构

    STM32之系统架构 前言 STM32F103X芯片内部包含内核和片上外设,犹如我们使用的电脑,对应的是CPU和主板,集成显卡之类的. 一.STM32之系统架构 1.内核与外设 2.系统结构图 驱动单 ...

  2. Pixhawk系统架构介绍

    前段时间导师叫我做扑翼无人机,工程上需要实现的,能够通过程控飞起来,感觉难度挺大.先从研究PX4开始,打算一步步理解透整个PX4的框架,机型的适配.旋翼.固定翼的姿态控制,新机型的添加等等.不知道能不 ...

  3. 系统架构升级要不要上微服务?历“久”弥新微服务——你真的需要升级微服务架构吗

    在 <微服务架构设计模式> 一书中,作者总结了关于微服务的一些"重点",原文如下: 中国企业和开发者对微服务架构的热情让我印象深刻.但如同我给所有客户的忠告一样,我想对 ...

  4. 商品详细信息的代码html_电商网站的商品详情页系统架构

    小型电商网站的商品详情页系统架构 小型电商网站的页面展示采用页面全量静态化的思想.数据库中存放了所有的商品信息,页面静态化系统,将数据填充进静态模板中,形成静态化页面,推入 Nginx 服务器.用户浏 ...

  5. 大型网站采用什么系统架构保证性能稳定性

    from http://www.bobd.cn/design/web/Theory/200904/31145.html 千万级的注册用户,千万级的帖子,nTB级的附件,还有巨大的日访问量,大型网站采用 ...

  6. 系统架构的过程 浮现式设计

    系统架构如果设计之初就设计错了,那么必然是南辕北辙. 很多人做系统设计总是东一下,西一下,杂乱无章,想到那是那,然后系统的边界很大,总会有疏漏. 那么系统架构应该怎么设计呢? 首先来说分层 系统分为三 ...

  7. centos5.6 (64bit)编译安装vsftpd-2.3.4的配置(两种用户登录)[连载之电子商务系统架构]...

    centos5.6 (64bit)编译安装vsftpd-2.3.4的配置(两种用户登录) 出处:http://jimmyli.blog.51cto.com/我站在巨人肩膀上Jimmy Li 作者:Ji ...

  8. 说说大型高并发高负载网站的系统架构【转】

    我在CERNET做过拨号接入平台的搭建,而后在Yahoo&3721从事过搜索引擎前端开发,又在MOP处理过大型社区猫扑大杂烩的架构升级等工作,同时自己接触和开发过不少大中型网站的模块,因此在大 ...

  9. 型网站的架构设计问题----大型高并发高负载网站的系统架构

    随着中国大型IT企业信息化速度的加快,大部分应用的数据量和访问量都急剧增加,大型企业网站正面临性能和高数据访问量的压力,而且对存储.安全以及信息检索等等方面都提出了更高的要求-- 本文中,我想通过几个 ...

最新文章

  1. seaborn将图例放置在图像外部并使用move_legend函数将图例(legend)放置在图像的底部(bottom)、且单行展开显示
  2. 解开一个困扰自己多时的小问题
  3. python每行输出14个数_python – 计算pandas中每行的一些值的列数
  4. 虚拟环境的常用命令 virtualenv命令
  5. Elasticsearch 定制评分(自定义评分)
  6. mybatis 多表查询-多对多
  7. this super的用法
  8. Mysql数据类型TINYINT(1)与BOOLEAN踩坑记
  9. linux做伪分布时ip设置,Linux下伪分布模式的Hadoop部署
  10. 数据库实验一:创建数据库和表
  11. xp计算机找不到音量调节,XP找不到音量控制程序怎么办
  12. VTK:图形基本操作进阶——表面重建技术(等值面提取)
  13. 有哪些高质量的图片网站(社区)推荐?
  14. 计算机 玩体感游戏,Wii模拟器Dolphin完全教学 PC上也来玩体感
  15. 系统主数据管理之物料(Item)四 Item的单位(UOM)
  16. flac转换mp3格式使用什么软件好
  17. 新浪与腾讯的开放平台对比
  18. ISCC2021wp
  19. Docker使用docker-compose配合Makefile部署Nginx 挂载文件目录 实现视频图片html等静态资源的代理
  20. 外卖店优先级(模拟)

热门文章

  1. linux history命令原理,Linux 的 history 命令使用详解
  2. 上海市计算机信息技术水平考试,2020年上海市高等学校信息技术水平考试试卷...
  3. 获取手机的指南针和行进方向
  4. 2021UPC个人训练赛第47场
  5. python全栈开发 * 30知识点汇总 * 180713
  6. 交互设计师与ui设计师的区别
  7. 京东商品接口加解密算法解析
  8. vue新窗口打开路由
  9. 360安全卫士11.0史上最小版发布,去流氓,最精简,300MB内存轻松运行。完全不拖慢电脑的速度,由王宁诚意发布。...
  10. 自用推荐 !这7个电脑软件,好用到爆