往而不返
1.首先需要需要说明一件事情,微型计算机 不等于 微型计算机系统。啥是微型计算机如下图:那么啥又是微型计算机系统呢,如下图至于CPU是啥,存储器分类,I/O设备分类,这些基础性的概念不再累赘,这里只聊一个问题,如上图,在微型计算机系统的组成中,为什么I/O接口和系统总线之间要存在I/O接口?原因在于外设种类繁多,这些设备与CPU之间的工作速度是不同的,不光是这个,信号电平,数据格式都有可能不同,因此为了匹配这些差异,从而出现了I/O接口。从事嵌入式软件开发的工作者,在进行驱动开发时,本质上有很大一部分工作在做I/O接口配置,试想一下,无论你使用哪个微控制器,ADC,DAC,TIM,IIC,SPI,是不是都要配置GPIO?甚至有人说过,所谓的微型计算机 = CPU + 存储器 +I/O接口。这句话虽然不严谨,但是在开发工作中,I/O的确是算得上半壁江山(工作中,CPU是不需要怎么过分的去配置的,CPU买过来已经被生产厂商搞定了,程序员只是拿过来使用)。2.总线是什么,他有故事吗?上面的图中,假如RAM ROM I/O接口 运算器 控制器等如果都代表一个地标(或者一个城市)。那么总线其实就是不同城市之间的交通。一开始是单总线结构如下图红色方框标注的即是总线。因为只有一个,所以挂接在总线上面的其他设备,要排队使用这根线。后来就出现了双总线结构如下图红色方框标注的就是双总线的两根线。再后来又出现了面向主存储器的双总线结构如下图以上是微型计算机系统的相关知识。接下来我们说一些题外话,微控制器的总线是什么样子的呢?我们已stm32F1xx系列为例。3. STM32系统架构从上图可以很明显看到,STM32也是通过总线将存储器和外设连接在一起的。另外这里多了两个DMA。来实现存储器和外设之间的直接数据传输。