嵌入式系统设计(STM32)第1讲.ppt_第1页
嵌入式系统设计(STM32)第1讲.ppt_第2页
嵌入式系统设计(STM32)第1讲.ppt_第3页
嵌入式系统设计(STM32)第1讲.ppt_第4页
嵌入式系统设计(STM32)第1讲.ppt_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

STM32嵌入式微控器快速上手 陈志旺等编著电子工业出版社 参考资料 喻金钱 喻斌 STM32F系列ARMCortex M3核微控制器开发与应用 M 清华大学出版社 彭刚 秦志刚 基于ARMCortex M3的STM32系列嵌入式微控制器应用实践 M 电子工业出版社 李宁 基于MDK的STM32处理器开发应用 M 北京航空航天大学出版社 考试形式 总成绩 实验40 平时10 期末50 实验时间 1 17周 双周周五上午8 00实验地点 电子楼119 主要内容 1 嵌入式系统简介2 STM32简介3 教学开发板4 工程模板的建立 1 嵌入式系统简介 1 1嵌入式系统定义1 2嵌入式系统的特点1 3嵌入式系统的分类1 4嵌入式系统的应用1 5嵌入式系统的发展1 6通用计算机与嵌入式系统对比 1 1嵌入式系统定义 嵌入式系统 Embeddedsystem 是一种 完全嵌入受控器件内部 为特定应用而设计的专用计算机系统 根据英国电器工程师协会 U K InstitutionofElectricalEngineer 的定义 嵌入式系统为 用于控制 监视或者辅助操作机器和设备的装置 与个人计算机这样的通用计算机系统不同 嵌入式系统通常执行的是带有特定要求的预先定义的任务 由于嵌入式系统只针对一项特殊的任务 设计人员能够对它进行优化 减小尺寸降低成本 嵌入式系统通常进行大量生产 所以单个的成本节约 能够随着产量进行成百上千的放大 1 1嵌入式系统定义 嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者单片机组成 与通用计算机能够运行用户选择的软件不同 嵌入式系统上的软件通常是暂时不变的 所以经常称为 固件 国内普遍认同的嵌入式系统定义为 以应用为中心 以计算机技术为基础 软硬件可裁剪 适应应用系统对功能 可靠性 成本 体积 功耗等严格要求的专用计算机系统 一般而言 嵌入式系统的构架可以分成四个部分 处理器 存储器 输入输出 I O 和软件 1 2嵌入式系统的特点 嵌入式系统的几个重要特征 1 系统内核小 由于嵌入式系统一般是应用于小型电子装置的 系统资源相对有限 所以内核较之传统的操作系统要小得多 内核 是一个操作系统的核心 是基于硬件的第一层软件扩充 提供操作系统的最基本的功能 是操作系统工作的基础 它负责管理系统的进程 内存 内核体系结构设备驱动程序 文件和网络系统 决定着系统的性能和稳定性 2 专用性强 嵌入式系统的个性化很强 其中的软件系统和硬件的结合非常紧密 一般要针对硬件进行系统的移植 即使在同一品牌 同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改 同时针对不同的任务 往往需要对系统进行较大更改 程序的编译下载要和系统相结合 这种修改和通用软件的 升级 是完全两个概念 1 2嵌入式系统的特点 3 系统精简 嵌入式系统一般没有系统软件和应用软件的明显区分 不要求其功能设计及实现上过于复杂 这样一方面利于控制系统成本 同时也利于实现系统安全 4 高实时性 高实时性的系统软件 OS 是嵌入式软件的基本要求 而且软件要求固态存储 以提高速度 软件代码要求高质量和高可靠性 5 多任务的操作系统 嵌入式软件开发要想走向标准化 就必须使用多任务的操作系统 嵌入式系统的应用程序可以没有操作系统而直接在芯片上运行 但是为了合理地调度多任务 利用系统资源 系统函数以及专家库函数接口 用户必须自行选配RTOS RealTimeOperatingSystem 开发平台 这样才能保证程序执行的实时性 可靠性 并减少开发时间 保障软件质量 1 2嵌入式系统的特点 6 专门的开发工具和环境 系统开发需要开发工具和环境 由于其本身不具备自举开发能力 即使设计完成以后用户通常也是不能对其中的程序功能进行修改的 必须有一套开发工具和环境才能进行开发 开发时往往有主机和目标机的概念 主机用于程序的开发 目标机作为最后的执行机 开发时需要交替结合进行 自举 bootstrapping 一词来自于人都是靠自身的 自举 机构站立起来的这一思想 计算机必须具备自举能力将自己所有的元件激活 以便能完成加载操作系统这一目的 然后再由操作系统承担起那些单靠自举代码无法完成的更复杂的任务 自举只有两个功能 加电自检和磁盘引导 1 3嵌入式系统的分类 1 体系结构 普林斯顿结构 冯 诺依曼结构 和哈佛结构 2 指令集 CISC 复杂指令系统 和RISC 精简指令系统 见表1 2 P4 3 嵌入式处理器种类 一般可以将嵌入式处理器分成4类 即嵌入式微处理器 MicroProcessorUnit MPU 嵌入式微控制器 MicroControllerUnit MCU单片机 嵌入式DSP处理器 DigitalSignalProcessor DSP 嵌入式片上系统 SystemOnChip SoC 见表1 3 P5 冯 诺依曼结构 单一存储 统一编址 分时复用 哈佛结构 分开存储 独立编址 两倍带宽 效率更高 CISCvsRISC 1 4嵌入式系统的应用 1 工业控制基于嵌入式芯片的工业自动化设备将获得长足的发展 目前已经有大量的8 16 32位嵌入式微控制器在应用中 网络化是提高生产效率和产品质量 减少人力资源主要途径 如工业过程控制 数字机床 电力系统 电网安全 电网设备监测 石油化工系统 就传统的工业控制产品而言 低端型采用的往往是8位单片机 但是随着技术的发展 32位 64位的处理器逐渐成为工业控制设备的核心 在未来几年内必将获得长足的发展 2 交通管理在车辆导航 流量控制 信息监测与汽车服务方面 嵌入式系统技术已经获得了广泛的应用 内嵌GPS模块 GSM模块的移动定位终端已经在各种运输行业获得了成功的使用 目前GPS设备已经从尖端产品进入了普通百姓的家庭 只需要几千元 就可以随时随地找到你的位置 1 4嵌入式系统的应用 3 信息家电这将称为嵌入式系统最大的应用领域 冰箱 空调等的网络化 智能化将引领人们的生活步入一个崭新的空间 即使你不在家里 也可以通过电话线 网络进行远程控制 在这些设备中 嵌入式系统将大有用武之地 4 家庭智能管理系统水 电 煤气表的远程自动抄表 安全防火 防盗系统 其中嵌有的专用控制芯片将代替传统的人工检查 并实现更高 更准确和更安全的性能 目前在服务领域 如远程点菜器等已经体现了嵌入式系统的优势 5 POS网络及电子商务公共交通无接触智能卡 ContactlessSmartcard CSC 发行系统 公共电话卡发行系统 自动售货机 各种智能ATM终端将全面走入人们的生活 到时手持一卡就可以行遍天下 1 4嵌入式系统的应用 6 环境工程与自然水文资料实时监测 防洪体系及水土质量监测 堤坝安全 地震监测网 实时气象信息网 水源和空气污染监测 在很多环境恶劣 地况复杂的地区 嵌入式系统将实现无人监测 7 国防与航天嵌入式芯片的发展将使机器人在微型化 高智能方面优势更加明显 同时会大幅度降低机器人的价格 使其在工业领域和服务领域获得更广泛的应用 1 5嵌入式系统的发展 纵观嵌入式系统的发展历程 大致经历了以下3个阶段 以嵌入式微处理器为基础的初级嵌入式系统以嵌入式操作系统为标志的中级嵌入式系统以Internet和实时多任务操作系统为标志的高级嵌入式系统 发展趋势 嵌入式技术与Internet技术的结合正在推动着嵌入式技术的飞速发展 为嵌入式市场展现了美好的前景 同时也对嵌入式生产厂商提出了新的挑战 未来嵌入式系统的几大发展趋势 1 嵌入式系统的开发成了一项系统工程 开发厂商不仅要提供嵌入式软硬件系统本身 同时还要提供强大的硬件开发工具和软件支持包 2 网络化 信息化的要求随着Internet技术的成熟和带宽的提高而日益突出 以往功能单一的设备如电话 手机 冰箱 微波炉等功能不再单一 结构变得更加复杂 网络互联成为必然趋势 发展趋势 3 未来的嵌入式设备为了适应网络发展的要求 必然要求硬件上提供各种网络通信接口 传统的单片机对于网络支持不足 而新一代的嵌入式处理器已经开始内嵌网络接口 除了支持TCP IP协议 还有的支持IEEE1394 USB CAN Bluetooth或IrDA通信接口中的一种或者几种 同时也需要提供相应的通信组网协议软件和物理层驱动软件 软件方面系统系统内核支持网络模块 甚至可以在设备上嵌入Web浏览器 真正实现随时随地用各种设备上网 4 精简系统内核 优化关键算法 降低功耗和软硬成本 5 提供更加友好的多媒体人机交互界面 1 6通用计算机与嵌入式系统对比 硬件平台比较 软件平台比较 返回 2 STM32简介 STM32系列基于专为要求高性能 低成本 低功耗的嵌入式应用专门设计的ARMCortex M3内核 按性能分成两个不同的系列 STM32F103 增强型 系列和STM32F101 基本型 系列 增强型系列时钟频率达到72MHz 是同类产品中性能最高的产品 基本型时钟频率为36MHz 以16位产品的价格得到比16位产品大幅提升的性能 是16位产品用户的最佳选择 两个系列都内置32K 128K的闪存 不同的是SRAM的最大容量和外设接口的组合 时钟频率72MHz时 从闪存执行代码 STM32功耗36mA 是32位市场上功耗最低的产品 相当于0 5mA MHz 2 STM32简介 2 1历史2 2产品介绍2 3Cortex M3内核2 4应用 2 1STM32历史 意法半导体 STMicroelectronics 集团于1987年6月成立 是由意大利的SGS微电子公司和法国Thomson半导体公司合并而成 1998年5月 SGS THOMSONMicroelectronics将公司名称改为意法半导体有限公司 意法半导体是世界最大的半导体公司之一 从成立之初至今 ST的增长速度超过了半导体工业的整体增长速度 自1999年起 ST始终是世界十大半导体公司之一 2007年6月ST宣布了她的第一款基于Cortex M3并内嵌32K 128K闪存的STM32微控制器系列产品 ARM公司在2004年推出了CM3内核 经过5年市场的积累 包括ST公司 TI公司等一些半导体公司推出了基于CM3内核的微控制器产品 ARM ARM AdvancedRISCMachines 是英国的一家微处理器企业 也可以认为是对一类微处理器的通称 还可以认为是一种技术的名字 见表1 5 P10 ARM体系结构定义了指令集和基于这一体系结构下处理器的编程模型 基于同样体系结构可以有多种处理器 每个处理器性能不同 所面向的应用也就不同 ARMv7有三个分支 即 A 应用分支 面向应用 如手持设备 R 实时分支 面向一般的实时控制 M 微处理机分支 面向深度嵌入系统 ARM处理器系列 2 2Cortex M3内核 Cortex M3系列微处理器的主要特点如下 1 Thumb 2指令集架构 ISA InstructionSetArchitecture 2 哈佛处理器架构 在加载 存储数据的同时能够执行指令取指 3 三级流水线 4 32位单周期乘法 5 具备硬件除法 6 Thumb状态和调试状态 7 处理模式和线程模式 8 ISR InterruptServiceRoutine 的低延迟进入和退出 9 可中断 可继续的LDM STM 批量传输数据的指令 PUSH POP 10 ARMv6类型BE8 LE支持 字节不变式大端模式big endian 小端模式little endian 11 ARMv6非对齐访问 12 分支预测功能 关于指令集 Cortex M3处理器采用ARMv7 M架构 它包括所有的16位Thumb指令集和基本的32位Thumb 2指令集架构 Cortex M3处理器不能执行ARM指令集 Thumb 2在Thumb指令集架构 ISA 上进行了大量的改进 它与Thumb相比 具有更高的代码密度并提供16 32位指令的更高性能 为兼容数据总线宽度为16位的应用系统 ARM体系结构除了支持执行效率很高的32位ARM指令集以外 同时支持16位的Thumb指令集 Thumb指令集是ARM指令集的一个子集 是针对代码密度问题而提出的 它具有16位的代码宽度 与等价的32位代码相比较 Thumb指令集在保留32位代码优势的同时 大大的节省了系统的存储空间 Cortex M3只支持最新的Thumb 2指令集 这样设计的优势在于 免去Thumb和ARM代码的互相切换 对于早期的处理器来说 这种切换会降低性能 Thumb 2指令集的设计是专门面向C语言的 切包括If Then结构 硬件除法以及本地位域操作 Thumb 2指令集允许用户在C代码层面维护修改程序 Thumb 2指令集也包含了调用汇编代码的功能 综合以上优势 新产品的开发将更易于实现 上市时间也大为缩短 三级流水线 取指 译码 执行 关于工作状态 Coretx M3处理器有2种工作状态 Thumb状态 这是16位和32位 半字对齐 的Thumb和Thumb 2指令的执行状态 调试状态 处理器停止并进行调试 进入该状态 关于工作模式 Cortex M3处理器支持2种工作模式 线程模式和处理模式 在复位时处理器进入 线程模式 异常返回时也会进入该模式 特权和用户 非特权 模式代码能够在 线程模式 下运行 出现异常模式时处理器进入 处理模式 在处理模式下 所有代码都是特权访问的 关于中断 Cortex M3的一个创新在于嵌套中断向量控制器 NVIC NestedVectoredInterruptController 是Cortex M3内部的独有集成单元 NVIC提供如下的功能 可嵌套中断支持向量中断支持动态优先级调整支持中断延迟大大缩短中断可屏蔽 ARM数据存储格式 Cortex M3处理器能够以小端格式或大端格式访问存储器中的数据字 而访问代码时始终使用小端格式 小端格式是ARM处理器默认的存储器格式 2 3产品介绍 在STM32F105和STM32F107互连型系列微控制器之前 意法半导体已经推出STM32基本型系列 增强型系列 USB基本型系列 增强型系列 新系列产品沿用增强型系列的72MHz处理频率 内存包括64KB到256KB闪存和20KB到64KB嵌入式SRAM 新系列采用LQFP64 LQFP100和LFBGA100三种封装 不同的封装保持引脚排列一致性 结合STM32平台的设计理念 开发人员通过选择产品可重新优化功能 存储器 性能和引脚数量 以最小的硬件变化来满足个性化的应用需求 LQFP也就是薄型QFP Low profileQuadFlatPackage 指封装本体厚度为1 4mm的QFP 是日本电子机械工业会制定的新QFP外形规格所用的名称 QFP封装 这种技术的中文含义叫四方扁平式封装技术 QuadFlatPackage 该技术实现的CPU芯片引脚之间距离很小 管脚很细 一般大规模或超大规模集成电路采用这种封装形式 其引脚数一般都在100以上 该技术封装CPU时操作方便 可靠性高 而且其封装外形尺寸较小 寄生参数减小 适合高频应用 该技术主要适合用SMT表面贴装技术在PCB上安装布线 LFBGA封装 也就是薄型FBGAFBGA Fine PitchBallGridArray 细间距球栅阵列 是一种在底部有焊球的面阵引脚结构 使封装所需的安装面积接近于芯片尺寸 BGA是英文BallGridArrayPackage的缩写 即球栅阵列封装 2 3产品介绍 基本型 STM32F101R6 STM32F101C8 STM32F101R8 STM32F101V8 STM32F101RB STM32F101VB增强型 STM32F103C8 STM32F103R8 STM32F103V8 STM32F103RB STM32F103VB STM32F103VE STM32F103ZE STM32型号的说明 以STM32F103RBT6这个型号的芯片为例 该型号的组成为7个部分 其命名规则如下 STM32 STM32代表ARMCortex M3内核的32位微控制器 F F代表芯片子系列 103 103代表增强型系列 R R这一项代表引脚数 其中T代表36脚 C代表48脚 R代表64脚 V代表100脚 Z代表144脚 B B这一项代表内嵌Flash容量 其中6代表32K字节Flash 8代表64K字节Flash B代表128K字节Flash C代表256K字节Flash D代表384K字节Flash E代表512K字节Flash T T这一项代表封装 其中H代表BGA封装 T代表LQFP封装 U代表VFQFPN封装 6 6这一项代表工作温度范围 其中6代表 40 85 7代表 40 105 STM32F103RBT6封装引脚图 2 4STM32F103性能 STM32F系列属于中低端的32位ARM微控制器 该系列芯片是意法半导体 ST 公司出品 其内核是Cortex M3 该系列芯片按片内Flash的大小可分为三大类 小容量 16K和32K 中容量 64K和128K 大容量 256K 384K和512K 芯片集成有USB CAN 最多8个定时器 2个ADC SPI IIC USB UART等多种功能 2 4STM32F103性能 内核 ARM32位Cortex M3CPU 最高工作频率72MHz 1 25DMIPS MHz 单周期乘法和硬件除法 存储器 片上集成32 512KB的Flash存储器 6 64KB的SRAM存储器 时钟 复位和电源管理 2 0 3 6V的电源供电和I O接口的驱动电压 上电 断电复位 4 16MHz的晶振 内嵌出厂前调校的8MHzRC振荡电路 内部40kHz的RC振荡电路 用于CPU时钟的PLL PhaseLockedLoop 锁相环 带校准用于RTC real timeclock 的32kHz的晶振 可编程电压检测 PVD 低功耗 3种低功耗模式 休眠 停止 待机模式 为RTC和备份寄存器供电的VBAT 电池引脚 调试模式 串行调试 SWD 和JTAG接口 DMA DirectMemoryAccess 12通道DMA控制器 支持的外设 定时器 ADC DAC SPI IIC和UART 2个12位的us级的A D转换器 16通道 A D测量范围 0 3 6V 双采样和保持能力 片上集成一个温度传感器 2 4STM32F103性能 2通道12位D A转换器 STM32F103xC STM32F103xD STM32F103xE独有 最多高达112个的快速I O端口 根据型号的不同 有26 37 51 80 和112的I O端口 所有的端口都可以映射到16个外部中断向量 除了模拟输入 所有的都可以接受5V以内的输入 最多多达11个定时器 4个16位定时器 每个定时器有4个IC OC PWM或者脉冲计数器 2个16位的6通道高级控制定时器 最多6个通道可用于PWM输出 2个看门狗定时器 独立看门狗和窗口看门狗 Systick定时器 24位倒计数器 2个16位基本定时器用于驱动DAC 最多多达13个通信接口 2个IIC接口 5个USART接口 3个SPI接口 两个和IIS复用 CAN接口 2 0B USB2 0全速接口 SDIO接口 ECOPACK封装 STM32F103xx系列微控制器采用ECOPACK封装形式 一种无铅的BGA封装 2 5应用 返回 3 教学开发板 返回 4工程模板的建立 4 1ARMCortex M3处理器编程环境需要准备的资料 1 STM32F10 x StdPeriph Lib V3 5 0 这是ST官网下载的固件库完整版 2 安装MDK4 70a Keil 3 注册License 破解 如果不破解只能支持32K的代码 安装成功后 桌面上Keil4显示图标 固件库是压缩文件 解压缩后 准备编程时用 4 2新建工程 输入工程名 保存 选择CPU STM32F103VB 弹出对话框 CopySTM32StartupCodetoproject 询问是否添加启动代码到我们的工程中 这里我们选择 否 因为我们使用的ST固件库文件已经包含了启动文件 接下来 在Template工程目录下面 新建3个文件夹CORE USER STM32F10 x FWLib USER用来放我们主函数文件main c 以及其他包括system stm32f10 x c等等 CORE用来存放启动文件等 STM32F10 x FWLib文件夹顾名思义用来存放ST官方提供的库函数源码文件 还可以新建一个OUTPUT文件夹 用来放 HEX等编译输出的文件 下面要将官方的固件库包里的源码文件复制到我们的工程目录文件夹下面 我们只用到arm目录下面的startup stm32f10 x md s文件 这个文件是针对中等容量芯片的启动文件 其他两个主要的为startup stm32f10 x ld s为小容量 startup stm32f10 x hs c为大容量芯片的启动文件 这里copy进来是方便其他开发者使用小容量或者大容量芯片的用户 将目录下面的src inc文件夹copy到STM32F10 x FWLib文件夹下面 src存放的是固件库的 c文件 inc存放的是对应的 h文件 每个外设对应一个 c文件和一个 h头文件 下面将这些文件加入我们的工程中去 右键点击Target1 选择ManageComponents ProjectTargets一栏 将Target名字修改为Template 然后在Groups一栏删掉一个 建立三个Groups USER CORE FWLIB 点击OK 下面我们往Group里面添加我们需要的文件 右键点击点击Tempate 选择选择ManageComponents 然后选择需要添加文件的Group 这里第一步我们选择FWLIB 然后点击右边的AddFiles 定位到我们刚才建立的目录STM32F10 x FWLib src下面 将里面所有的文件选中 Ctrl A 然后点击Add 然后Close 可以看到Files列表下面包含我们添加的文件 下面我们点击编译按钮编译工程 可以看到很多报错 因为找不到库文件 下面要告诉MDK 在哪些路径之下搜索相应的文件 回到工程主菜单 点击魔术棒 出来一个菜单 然后点击c c 选项 然后点击IncludePaths右边的按钮 弹出一个添加path的对话框 然后我们将图上面的3个目录添加进去 记住 keil只会在一级目录查找 所以如果你的目录下面还有子目录 记得path一定要定位到最后一级子目录 然后点

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论