1. 单片机简介
1.1 单片机是什么
- 单片机:Single-Chip Microcomputer,单片微型计算机,是一种集成电路芯片
- 电脑 VS 单片机
对比项 | 电脑 | 单片机 |
---|---|---|
CPU主频 | X86,2~5 GHz | 51/ARM/RISC-V,72MHz @STM32F1 |
内存容量 | GB级,约40GB/S @DDR4 | KB级,约300MB/S @STM32F1 |
硬盘容量 | TB级,约500MB/S @SATA3 | KB级,约100MB/S @STM32F1 |
功耗 | 数百W | <0.5W |
价格 | 2000 ~ 10000 | <10元 |
- 单片机的特点
1.2 单片机发展历程
- 单片机发展历程:
- 从时间角度来看:
探索阶段(1976~1978):MCS-48
完善阶段(1978~1982):MCS-51(8051)
向微控制器发展阶段(1982~1990): MCS-96
微控制器全面发展阶段(1990~现在):ARM、RISC-V - 从产品目的来看:
SCM单片微型计算机阶段:单片形态
MCU微控制器阶段:完善控制
SoC嵌入式系统阶段:软硬件协同设计
1.3 单片机发展趋势
- CPU:主频高/64位/双CPU/流水线
- 存储器:MB级/片内ROM开始FLASH化/程序加密化
- IO:提高并行口驱动能力/增加IO功能
- 外围电路内置化(提高集成度):DMA/AD/DA/液晶驱动等内置到片内
- 品种多样化:低功耗化/微型化/低价格/专用化
1.4 CISC VS RISC
对比项 | 复杂指令集计算机(CISC) | 精简指令集计算机(RISC) |
---|---|---|
目的 | 为了便于编程和提高存储器访问效率 | 为了提高处理器运行速度 |
指令特点 | 1,指令多,模式多,格式可变 2,指令的执行需要的时钟周期差距很大 3,无流水线或流水线程度较低 4,指令由微代码翻译执行 | 1,指令少,模式少,格式固定 2,大多数指令只需1个时钟周期 3,流水线结构 4,指令直接由硬件执行 |
优点 | 1,指令丰富、功能强大 2,寻址方式灵活 | 1,指令精简,易于设计,使用率均衡 2,程序执行效率高 |
缺点 | 1,指令使用率不均衡 2,不利于采用先进结构提高性能 3,结构复杂不利于超大规模集成电路实现 | 1,指令数较少,功能不及CISC强大 2,寻址方式不够灵活 |
-
CISC 和 RISC举例
CISC:8051、X86(Intel、AMD)
RISC:ARM(华为、高通、联发科、苹果、ST)、MIPS(龙芯科技)、RISC-V(平头哥、华米、英伟达) -
冯诺依曼结构:程序指令和数据存储到两个独立的存储器中
优点:总线资源占用少
缺点:执行效率较低 -
哈佛结构:程序指令和数据被存储在同一个存储器中
优点:执行效率较高
缺点:执行效率较低
缺点:总线资源占用多
2. Cortex-M系列介绍
2.1 ARM公司
- ARM公司:只做内核设计和IP授权,不参与芯片设计
2.2 ARM架构为什么能风靡全球?
- 三大特点:
1.低功耗、低成本、高性能
2.支持16/32位双指令集
3.拥有众多合作伙伴 - Cortex内核分类及特征
2.3 Cortex-M3/4/7介绍
3.初始STM32
3.1 STM32是什么
- STM32:
ST:意法半导体
M:MCU/MPU
32:32位
- ST累计推出了:5大类、18个系列、1000多个型号的Cortex内核微控制器
3.2 STM32芯片分类
- ST中文社区网:https://www.stmcu.org.cn
- ST官网: https://www.st.com
3.3 STM32命名规则
3.4 STM32选型
- 由高到低,由大到小
4. STM32原理图设计
4.1学会查看数据手册
- 芯片数据手册获取方式:
ST官网:https://www.st.com
ST中文社区网:https://www.stmcu.org.cn/ - 数据手册内容概要
- 芯片的基本参数(STM32F103ZET6为例)
1,主频/FLASH/SRAM:72MHz / 512KB / 64KB
2,工作电压/最大电流:2.0~3.6V / 150mA
3,IO引脚接入电压范围:COMS端口:-0.3V ~ 3.6V 兼容5V端口:-0.3V ~ 5.5V
4,单个IO引脚最大电流:25mA - STM32引脚类型:
电源引脚、晶振引脚、复位引脚、
下载引脚、BOOT引脚、GPIO引脚 - 下载接口:
1,JTAG:占用5个IO
2,SWD:占用两个IO
3,串口1:占用两个IO - IO分配:
1,芯片的基本参数(STM32F103ZET6为例)
2,优先分配特定外设IO,然后分配通用IO,最后微调
5. 搭建开发环境
5.1 常用开发工具简介
5.2安装MDK
5.2.1 MDK简介
不同MDK版本的支持情况:https://www2.keil.com/mdk5/selector