1、基于基于ARMARM的的单片机应用及实践单片机应用及实践STM32案例式教学武奇生 白璘 惠萌 巨永峰 编著机械工业出版社第一章第一章 概述概述 计算机发展史计算机发展史1946年2月宾夕法尼亚大学的莫奇利和艾克特研制成功世界上第一台计算机电子数字积分计算机ENIAC。ENIAC预示着科学家将从奴隶般的计算中解脱出来。但是ENIACA存在两大缺点:一、没有严格意义上的存储器;二、用布线接板进行控制。如何解决这些缺点呢?我们将在以后的学习中来探讨。早期计算机,用于科研、军事等领域,主要完成数值计算任务伴随电子技术的发展,计算机成本更低,性能更强,应用范围更广,实现了通用信息处理如今,伴随科学技术
2、的发展,计算机能够像人脑一样处理数据成为智能计算机发展的终极目标计算机理论界的先驱者阿兰图灵(Alan Turing)提出了图灵机理论模型。图灵的基本思想是用机器来模拟人用纸笔进行数学运算的过程:在纸上写或擦出某个符号;把注意力从纸上的一个方向移动到另一个方向。图灵计算机模型图灵机模型的思想奠定了整个现代计算机发展的理论基础。其突出贡献突出表现在以下几个方面:他回答了计算的能力范围;符合图灵机原理的不同技术实现在理论上具有相同的计算原理。它在理论山峰规范了计算机的实现思路。计算机的发展计算机的发展计算的本质就是信息处理,而现代意义上的信息处理,主要是指基于电子计算机的信息处理。大致可以概括为以
3、下三个趋势:从人主动迈向机动的计算追求更快的计算;从科学计算迈向智能计算追求最好的计算;从集中计算迈向普适计算计算无处不在。计算机的体系结构在冯诺依曼架构模型中,完整的计算机系统被认为包含五部分存储器,运算器,控制器,输入设备和输出设备。其中,运算器是计算环节需要处理好操作数的输入和输出的整体系统的中心。早期的冯诺依曼架构为了克服运算器数据吞吐能力有限的缺点,演化出了改进型冯诺依曼架构。改进型冯诺依曼架构改进型构架的各个模块的高速数据交换中心利用存储器这个大容量中介,极大的提高了效率。现代的嵌入式计算机往往在改进型冯诺依曼架构的基础上做进一步的改进。冯诺依曼架构的扩展冯冯诺依曼架构和哈佛结构比
4、较诺依曼架构和哈佛结构比较二者的区别就是程序空间和数据空间是否是一体的。冯诺依曼结构数据空间和地址空间不分开,哈佛结构数据空间和地址空间是分开的。面向嵌入式应用的架构改进面向嵌入式应用的架构改进从冯诺依曼架构到其改进型再到哈佛结构、流水线技术、并行处理、硬件加速、之领域去和推断执行、层次设计和缓存、总线和交换式部件互连、虚拟化技术、寄存器窗口和实时技术等。以上看出,早期的架构技术更重于硬件改进,而现代则更偏向于软件和应用需求。单片机发展史单片机发展史1958年,TI公司的杰克基尔比发明了第一块集成电路;1961年,TI公司研发出第一个基于IC的计算机;1965年,高登摩尔提出了描述集成电路工业
5、发展规律的摩尔定律;同年,中国第一块集成电路诞生;1968年,Intel公司诞生,推出第一片1K字节的RAM;1981年,Intel公司推出了8位微控制器8051。单片机的发展趋势单片机的发展趋势走向集成、嵌入式走向集成、嵌入式嵌入式系统的发展主要来源于两大动力,即社会需求的拉动和先进技术的推动,需求提供了市场,带动了新技术的产生,刺激了新技术的推广。嵌入式系统的发展动力示意图ARM系列内核系列内核ARM体系结构的特点:1.体积小、低功耗、低成本、高性能。2.支持 Thumb(16 位)/ARM(32 位)双指令集,能很好的兼容8/16 位器件。3.大量使用寄存器,指令执行速度更快。大多数数据
6、操作都在寄存器中完成。4.ARM处理器共有37个寄存器,分为若干个组(BANK)。ARM处理器有7种不同的处理器模式。5.寻址方式灵活简单,指令长度固定,执行效率高。ARM7微处理器微处理器ARM7为低功耗的32位RISC处理器,采用冯诺依曼体系结构。ARM7微处理器系列具有如下特点:具有嵌入式ICERT逻辑,无论调试还是开发都很方便。能够提供0.9MIPS/MHz的三级流水线结构。代码密度高并兼容16位的Thumb指令集。支持Windows CE、Linux、Palm OS等嵌入式操作系统。指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户程序的升级和产品的更新换代。主频
7、最高可达130MIPS。ARM9微处理器微处理器ARM9内核为32位RISC处理器,采用哈佛结构。ARM9内核微处理器具有以下特点:5级整数流水线,指令执行效率更高。提供1.1MIPS/MHz的运行速率。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA总线接口。内含全性能的MMU。内含MPU,支持实时操作系统。支持数据Cache和指令Cache。ARM9E微处理器微处理器ARM9E内核为综合处理器。ARM9E内核微处理器具有以下特点:支持 DSP 指令集。5 级整数流水线,指令执行效率更高。支持32 位ARM 指令集和16 位Thumb 指令集。支持32 位的高速AMB
8、A 总线接口。支持VFP9 浮点处理协处理器。内含全性能 MMU。内含MPU,支持实时操作系统。支持数据 Cache 和指令Cache。主频最高可达300MIPS。ARM11微处理器微处理器ARM1136J-S是第一个执行ARMv6架构指令的处理器。ARM1136J-S的主要特点如下:集成了具有独立的load-sotore和算术流水线的8级流水线。ARMv6指令包含了针对媒体处理的单指令流多数据流(SIMD)扩展。采用特殊的设计,以改善视频处理性能。为了进行快速浮点运算,增加了向量浮点单元。Cortex系列内核系列内核Cortex系列内核系列内核Cortex系列内核系列内核Cortex系列内核
9、系列内核Cortex系列内核系列内核Cortex系列内核系列内核Cortex系列内核系列内核1.25 Thumb-20.74 Thumb/0.93 ARMDMIPS/MHzxPSR.2 modes.Stacked regs(1 bank)PSR.6 modes.20 Banked regs系统状态系统状态Architecture DefinedUndefined存储器印射存储器印射Three No睡眠模式睡眠模式12 Cycles (6 when Tail Chaining)24-42 Cycles(Depending on LSM)中断响应时间中断响应时间NMI,SysTick and up
10、 to 240 interrupts.Integrated NVIC Interrupt Controller up to 1-255 PrioritiesFIQ/IRQ中断中断3-Stage+Branch Speculation3-Stage流水线流水线Thumb-2(Merged 32/16-bit)ARM(32-bit)&Thumb(16-bit)指令集指令集v7Mv4T体系结构体系结构Cortex-M3ARM7TDMI-SSTM32系列微控制器系列微控制器 新的基于ARM内核的32位MCU系列 内核为ARM公司为要求高性能、低成本、低功 耗的嵌入式应 用专门设计的Cortex-M3内核
11、 超前的体系结构 高性能,低电压,低功耗,创新的内核以及外设 简单易用/自由/低风险STM32系列微控制器系列微控制器 管脚,软件和外设全线兼容 FLASH32KB,64KB,128KB RAM6KB,10KB,20KB 封装LQFP-48/LQFP-64/LQFP-100/BGA-100 电压范围2.0到3.6V I/O电压容限为5VBoth lines have up to:5 x USART2 x SPI2 x I2CRTC11+DMA2xWDG5 x 16-bit TIMERS 80%GPIO ratio 12b ADC(1s)Temp sensor 36MHz CPUUp to 48
12、KB SRAMUp to 512KB FLASH Up to 64KB SRAM CAN USB ACtimer EMI*2x12b ADC(1s)Tempsensor DAC*72MHz CPUInt 8 MHz RCInt 32 kHz RCPOR/PDR/PVD brown out“基本型”系列“增强型”系列 EMI*DAC*I2S*只有在只有在Flash大于大于256KB(包含)的芯片上才包括包含)的芯片上才包括DAC,EMI(144 pins),I2S,SDIOSDIO*STM32F10 x的两条产品线的两条产品线STM32F103“STM32F103“增强型增强型”系列系列 2 2
13、V-3.6V V-3.6V 供电电压 5V I/O 5V I/O 电压容限 出色的时钟安全模式 带有唤醒的低功耗模式 内部RCRC 嵌入的RESETRESET-40/+85-40/+85C C(工业级)CORTEXM3 CPU6kB SRAMARM Peripheral Bus 12-bit ADC16 channels/1Msps1/2x I2C0/1x SPI1/2/4x USART/LINSmartcard/IrDaModem Control32/49/80*I/OsUp to 16 Ext.ITsFlash I/F32kB-512kBFlash MemoryTemp Sensor2x
14、Watchdog(independent&window)2/3/5x 16-bit TimerJTAG/SW DebugXTAL oscillators32KHz+416MHzPower SupplyReg 1.8VPOR/PDR/PVDDMA 3 to 11*ChannelsNested vect IT Ctrl1x USART/LINSmartcard/IrDaModem-Ctrl1x SPIBridgeBridge1x Systic TimerARM Lite Hi-Speed BusMatrix/Arbiter Int.RC oscillators32KHz+8MHzPLLClock
15、ControlRTC/AWUARM Peripheral Bus(max 36MHz)20B Backup RegsSTM32F103“STM32F103“增强型增强型”系列系列6 KB RAM*6 KB RAM*Flash Size(bytes)128 K256 K512 K100 pins LQFP/BGASTM32F103Rx20 KB RAMSTM32F103Rx20 KB RAMSTM32F103Cx20 KB RAM32 K64 KSTM32F103Rx64 KB RAMSTM32F103Vx20 KB RAMSTM32F103Vx64 KB RAMSTM32F103Vx20 KB
16、 RAMSTM32F103Vx64 KB RAM3xUSART3x16-bit timer2xSPI,2XI2CUSB,CAN,PWM2xADC64 pins LQFP48 pinsLQFP2xUSART2x16-bit timer1xSPI,1xI2CUSB,CAN,PWM2xADC5xUSART5x16-bit timer2xSPI,2XI2CUSB,CAN,PWM2xADC,2xDAC,I2SEMI(144 pins only)STM32F103Rx64 KB RAM144 pins LQFP/BGASTM32F103Zx64 KB RAMSTM32F103Zx64 KB RAMSTM3
17、2R103Zx64 KB RAMSTM32F103Cx10 KB RAMSTM32F103Rx10 KB RAM*32kB devices exist w/o the CAN and USB,with 6kB of RAM0 KSamples April 07Production Oct 07Samples Dec 07Production Q2 08STM32F103“STM32F103“增强型增强型”系列特点系列特点 高性能并不等于高功耗,STM32提出3种主要的能耗方案:Run模式:高动态功效;Standby模式:极低的功耗;能够工作在由电池直接供电的低电压状态下 在Run模式下,以最高
18、的72MHz速度全速在FLASH中运行,STM32的功耗也只有36mA(0.5mA/MHz)。在Standby模式典型功耗值更是低到2uA。Battery能够提供2.0到3.6V的电源电压STM32F103“STM32F103“增强型增强型”系列特点系列特点 STM32拥有三种不同的低功耗模式和一个通用的超频方案使用户可以相对于性能优化功耗。STM32内部嵌入了一个实时时钟(RTC),它可以由一个32KHz的石英晶振或内部RC提供。实时时钟拥有自己独立的供电部分,可以由一个专门的纽扣电池或主电源相互交替供电。它的典型功耗值在3.3V时为1.5uA。且带有20B的数据备份区。从低功耗模式启动的启
19、动时间典型值比从Stop模式启动的启动时间短10us,而从Standby模式重启时间典型值为40us。计算机发展趋势计算机发展趋势计算机发展必须结合物联网,物联网体系结构大致被认为有三个层次:物联网体系结构嵌入式系统的工程设计和开发嵌入式系统的工程设计和开发1.需求分析:功能性需求;性能性需求;可靠性需求;成本。2.架构和概要设计:系统层次、剖面或模块划分;系统软硬件交互界面布局;硬件和元器件选择;软件的方案选择;系统成本和性能的平衡。3.详细设计和开发:硬件开发和软件开发。4.测试反馈:每一个环节都需要测试反馈,以减少出现重大问题、故障的可能性。小结小结应在掌握单片机系统的基础原理和技术要点的基础上,领悟和理解单片机是如何实现软硬件集成并达到应用需求的。“单片机“在本质上是一门实践课而非理论课,内容跨度大,知识点多,技能要求高,在短时间内难以充分掌握相关知识点。因此在学习本课程时,一定要理论和实践相结合,在实践中检验理论的正确性,边学习单片机课程,边实际操作单片机,在课下实践多加练习。如此长期的学习,渐渐的深入,才能慢慢学懂、学好单片机这门课程。