嵌入式
对于嵌入式软硬件开发的一点看法:
- 硬件开发作为IT人的就业研究方向,也是不少发烧友、DIY爱好者的兴趣所向
- 物联网、人工智能、AIOT也是科技社会发展的必定趋势
- 学好嵌入式开发即可作为未来的就业选择,也可以作为兴趣爱好发展自身技能
开发板芯片选择
目前主流的一些芯片、开发板都可作为我们学习嵌入式的选择
- stm32
- esp32
- esp8266
- 51单片机
以及树莓派、香橙派、Arduino等
目前我的专业也开设嵌入式开发与传感器(基于stm32)课程,所以准备选择学习stm32F103C8T6芯片
1 STM32微控制器结构
1.1 STM32系统结构
系统结构图:
STM32主系统主要由四个驱动单元和四个被动单元
四个驱动单元:①内核DCode总线 ②系统总线 ③通用DMA1 ④通用DMA2
四个被动单元:①AHB到APB的桥:连接所有的APB设备 ②内部flash闪存 ③内部SRAM ④FSMC
端口及外设:
①Cortex-M3内核:它是STM32F103的内核,也就是CPU。除掉这个部件,其他部件都是片上外设,注意是片上的,也就是那块我们肉眼所见的芯片里的外设。这个部件可以操纵队列,依靠的是强大的数字运算能力和强大的总线设计。在阵列中,数据的运算都它给来做。
②Bus-Matrix:Bus-Matrix的功能是管理总线。在阵列中,方阵Bus-Matrix作为中建管理,减少了资源的浪费,增加了系统的简洁有序性,降低了信息传输的错误率。
③FLASH:来记载指令和常量。(我们都知道程序下载到Flash里后是掉电不失去的。)
④SRAM:处理变量和堆栈记录,且变量更改方便快速。(我们都知道SRAM是掉电丢失的,但是数据读写真的很快。)
⑤RCC:用于管理外设方阵的作息(在STM32里,我们要使用某个片上外设,都得先开RCC。)
⑥SDIO:Flash和SRAM的能力有限,而SD卡的容量很大,SDIO就是专门用来与SD卡沟通的接口。
1.2 总线结构
嵌入式系统中常见的总线由IIC总线、SPI总线、CAN总线、ISA总线、PCI总线
本芯片中总线系统包括
①ICode总线:该总线将M3内核指令总线和闪存指令接口相连,指令的预取在该总线上面完成。
②DCode总线:该总线将M3内核的DCode总线与闪存存储器的数据接口相连接,常量加载和调试访问在该总线上面完成。
③系统(System)总线:该总线连接M3内核的系统总线到总线矩阵,总线矩阵协调内核和DMA间访问。
④DMA总线:该总线将DMA的AHB主控接口与总线矩阵相连,总线矩阵协调CPU的DCode和DMA到SRAM,闪存和外设的访问。
⑤总线矩阵:总线矩阵协调内核系统总线和DMA主控总线之间的访问仲裁,仲裁利用轮换算法。
⑥AHB/APB桥:这两个桥在AHB和2个APB总线间提供同步连接,APB1操作速度限于36MHz,APB2操作速度全速(72MHz)。