资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,IMUST B&E LAB ,1,.,一、课程结构及特点,介绍及实践当前微机应用的热点内容:,单片机技术及典型应用,EDA技术与可,编程逻辑器件(CPLD/FPGA,VHDL),嵌入式系统(ARM,RTOS),其特点:,没有深奥的理论,只有新观念和新方法。实践性较强,软硬件结合。,IMUST B&E LAB ,2,.,通过课程及实验需要掌握:,1、单片机(以STM32为例)的典型技术及应用。,2、EDA新技术(Quartus|使用、在FPGA/CPLD上构建时序逻辑和建立Nios系统)。,3、嵌入式基础及应用(WinCE、uc,Linux),为研究课题奠定一定的基础。,二、课程目的,3,.,形式:,讲授+综合实验(,每2人一组,各实验内容讨论确定)。,时间安排:,讲授:1012次课(含各部分软硬件环境及方法介绍),综合实验810次课(,各实验24次,不足时可利用业余时间),。,考核:,综合实验(4个)50%、报告(4部分)50%,综合实验要求,:,根据综合实验装置提供的硬件环境,结合自己的研究方向,查找资料,选择一、二单元内容设计实验,应用各部分新技术和手段实现。,具体要求:,1、方案说明文档(项目的目的、意义、原理、功能等)。,(背景:工艺流程,技术发展情况论述.),(方案:系统框图,功能描述.),2、电路原理图及所选器件主要参数,3、软件流程图及部分程序清单。,IMUST B&E LAB ,三、课程形式及考核办法,4,.,参考书目,1、微机控制新技术 姚燕南 西交大,2、STM32F10 x参考手册_cn.pdf 电子版,3、FPGA设计及应用 诸振勇 西电大,4、CPLD技术及其应用 宋万杰 西电大,5、基于FPGA的嵌入式系统设计 任爱锋等 西电大,6、DSP应用系统设计朱铭锆 电子,7、电动机的DSP控制王晓明 北航,8、TMS320LF240 xDSP结构、原理及应用 刘和平 北航,9、嵌入式系统设计与实例开发王田苗 清华,10、基于ARM的嵌入式系统开发与应用吴明晖 邮电,11、SOPC技术实用教程 潘松等 清华,B&E LAB ,5,.,STM32,单片机原理及应用,第一部分,6,.,需要掌握,掌握单片机的一般设计方法。,目前典型接口电路原理及应用。,开发,环境Keil 及编程工具的使用。,能够设计建立基于单片机的系统。,设计完成一个基于STM32单片机的应用系统。完成:系统描述,软硬件设计,调试结果并写出报告。,7,.,了解-,背景:工艺流程,技术发展情况论述.,掌握-原理论述、同类方案比较。,设计-,方案:系统框图,功能描述.,实现-软件流程、功能实现。,实际工程应用的一般步骤,8,.,实际工程应用的一般步骤,9,.,一、,STM32微控制器系列_cn.pdf,STM32,的主要优点,使用ARM最新的、先进架构的Cortex-M3内核,优异的实时性能,杰出的功耗控制,出众及创新的外设,最大程度的集成整合,易于开发,可使产品,快速进入市场,10,.,设计模式,基础型:做好需要专业的软硬件知识,智能型:在搭建的程序框架下设计,高级型:在操作系统管理下,专注应用。,介绍特色、扩展内容,比较学习。需要大家课下认真消化资料,掌握基础内容。,STM32F10 x参考手册_cn.pdf,11,.,二、硬件,特色接口,I/O,低功耗模式、定时器/计数器、输入捕获,PWM(,脉宽调变(Pulse-Width Modulation,),A/D,DMA,(直接存储器存取(direct memory access)),、RTC,USART、SPI,(,单个程序启动(Single Program Initiation)),BOOT,(计算机】,引导;自引;自展;启动,引导程序,自展程序(=bootstrap),12,.,13,.,14,.,15,.,通用输入输出(General Purpose Input/Output,),16,.,17,.,通用同步异步收发机(Universal Synchronous Asynchronous Receiver Transmitter),18,.,19,.,举例:初始化I/O口,void GPIO_Configuration(void),/*在GPIO_Configuration中配置PD.1,2为输出模式*/,GPIO_InitStructure.GPIO_Pin=,GPIO_Pin_1|GPIO_Pin_2,;,GPIO_InitStructure.GPIO_Speed=,GPIO_Speed_2MHz,;,GPIO_InitStructure.GPIO_Mode=,GPIO_Mode_Out_PP,;,GPIO_Init(,GPIOD,/按键F和+使用的GPIOB 的 Pin8 Pin9 端口,GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9;,/GPIO口的速度 作为按键 10MHz 对于一般的用途 足以 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;,/按键端口设置为 上拉输入,GPIO_InitStructure.GPIO_Mode=,GPIO_Mode_IPU,;,GPIO_Init(GPIOB,#define,GPIO_Pin_1,(u16)0 x0002)/*Pin 1 selected*/,#define,GPIO_Pin_2,(u16)0 x0004)/*Pin 2 selected*/,GPIO_Mode_Out_PP=0 x10,/置模式寄存器某位,GPIO_Mode_IPU=0 x48,20,.,使用:,#define LED1_ON (GPIO_WriteBit(GPIOD,GPIO_Pin_1,Bit_SET),#define LED1_OFF(GPIO_WriteBit(GPIOD,GPIO_Pin_1,Bit_RESET),#define LED2_ON (GPIO_WriteBit(GPIOD,GPIO_Pin_2,Bit_SET),#define LED2_OFF(GPIO_WriteBit(GPIOD,GPIO_Pin_2,Bit_RESET),F=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8);,J=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9);,21,.,22,.,23,.,24,.,25,.,26,.,27,.,28,.,29,.,30,.,31,.,32,.,33,.,34,.,35,.,36,.,37,.,38,.,39,.,40,.,41,.,42,.,43,.,44,.,PWM技术,PWM(Pulse Width Modulation)控制脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)。,PWM控制技术在逆变电路中应用最广,应用的逆变电路绝大部分是PWM型,PWM控制技术正是有赖于在逆变电路中的应用,才确定了它在电力电子技术中的重要地位。,45,.,PWM相关概念,占空比:就是输出的PWM中,高电平保持的时间 与 该PWM的时钟周期的时间 之比。如,一个PWM的频率是1000Hz,那么它的时钟周期就是1000us,如果高电平出现的时间是200us,那么低电平的时间肯定是800us,占空比就是200:1000,也就是说PWM的占空比就是1:5。,46,.,PWM相关概念,分辨率:也就是占空比最小能达到多少,如8位的PWM,理论的分辨率就是1:255(单斜率),16位的的PWM理论就是1:65535(单斜率)。如16位的PWM,它的分辨率达到了1:65535,要达到这个分辨率,T/C就必须从0计数到65535才能达到,如果计数从0计到80之后又从0开始计到80.,那么它的分辨率最小就是1:80了,但是,它也快了,也就是说PWM的输出频率高了。,47,.,PWM相关概念,双斜率/单斜率:,假设一个PWM从0计数到80,之后又从0计数到80.这个就是单斜率。,假设一个PWM从0计数到80,之后是从80计数到0.这个就是双斜率。,可见,双斜率的计数时间多了一倍,所以输出的PWM频率就慢了一半,但是分辨率却是1:(80+80)1:160,就是提高了一倍。,48,.,PWM相关概念,假设PWM是单斜率,设定最高计数是80,我们再设定一个比较值是10,那么T/C从0计数到10时(这时计数器还是一直往上计数,直到计数到设定值80),单片机就会根据你的设定,控制某个IO口在这个时候是输出1还是输出0还是端口取反,这样,就是PWM的最基本的原理了。,根据控制器件特性的需要,研究了各种形式的PWM(SPWM,SVPWM等),49,.,50,.,51,.,52,.,53,.,54,.,55,.,56,.,57,.,58,.,三、集成开发环境,MDK,开发套件源自德国,Keil,公司,被全球超过,10,万的嵌入式开发工程师验证和使用,是,ARM,公司目前最新推出的针对各种嵌入式处理器的软件开发工具。,RealView MDK,集成了业内最领先的技术,融合了中国多数软件开发工程师所需的特点和功能。包括,Vision3,集成开发环境与,RealView,编译器,支持,ARM7,、,ARM9,和最新的,Cortex-M3,核处理器,自动配置启动代码,集成,Flash,烧写模块,强大的,Simulation,设备模拟,性能分析等功能,与,ARM,之前的工具包,ADS,等相比,,RealView,编译器的最新版本可将性能改善超过,20,。,61,.,特色,菜鸟的阿拉伯飞毯,启动代码生成向导,自动引导,一日千里 启动代码和系统硬件结合紧密,必须用汇编语言编写,因而成为许多工程师难以跨越的门槛。,RealView MDK,开发工具可以帮您自动生成完善的启动代码,并提供图形化的窗口,随您轻松修改。无论对于初学者还是有经验的开发工程师,都能大大节省时间,提高开发效率。,62,.,特色,高手的无剑胜有剑,软件模拟器,完全脱离硬件的软件开发过程,RealView MDK,的设备模拟器可以仿真整个目标硬件,包括快速指令集仿真、外部信号和,I/O,仿真、中断过程仿真、片内所有外围设备仿真等。开发工程师在无硬件的情况下即可开始软件开发和调试,使软硬件开发同步进行,大大缩短开发周期。而一般的,ARM,开发工具仅提供指令集模拟器,只能支持,ARM,内核模拟调试。,63,.,专家的哈雷望远镜,性能分析器,看得更远、看得更细、看得更清,RealView MDK,的性能分析器好比哈雷望远镜,让您看得更远和更准,它辅助您查看代码覆盖情况,程序运行时间,函数调用次数等高端控制功能,指导您轻松的进行代码优化,成为嵌入式开发高手。通常这些功能只有价值数千美元的昂贵的,Trace,工具才能提供。,特色,64,.,未来战士的激光剑,Cortex-M3,支持,RealView MDK,支持的,Cortex-M3,核是,ARM,公司最新推出的针对微控制器应用的内核,它提供业界,领先的高性能和低成本的解决方案,未来几年将成为,MCU,应用的热点和主流。目前国内只有,ARM,公司的,MDK,和,RVDS,开发工具可以支持,Cortex,M3,芯片的应用开发。,特色,65,.,特色,业界最优秀的编译器,RealView,编译器,代码更小,性能更高,RealView MDK,的,RealView,编译器与,ADS 1.2,比较:,代码密度:比,ADS 1.2,编译的代码尺寸小,10%,;,代码性能:比,ADS 1.2,编译的代码性能高,20%,。,66,.,特色,配备,ULINK2,仿真器,+Flash,编程模块,轻松实现,Flash,烧写,RealView MDK,无需寻求第三方编程软件与硬件支持,通过配套的,ULINK2,仿真器与,Flash,编程工具,轻松实现,CPU,片内,FLASH,、外扩,FLASH,烧写,并支持用户自行添加,FLASH,编程算法;而且能支持,FLASH,整片删除、扇区删除、编程前自动删除以及编程后自动校验等功能,轻松方便。,67,.,特色,绝对的高性价比-国际品质,本土价格:,RealView MDK中国版保留了RealView MDK国际版的所有卓越性能,而产品价格也是针对国内大多数用户预算而专门定制的,力求给国内开发工程师提供最高性价比的开发工具解决方案。,更贴身的服务-专业的本地化的技术支持和服务,RealView MDK中国版用户将享受到专业的本地化的技术支持和服务,包括电话、Email、论坛、中文技术文档等,这将有助于国内工程师们开发出更有竞争力的产品。,68,.,Vision3 IDE,Vision IDE,在全球拥有庞大的用户群,超过,10,万开发工程师在使用,Keil,开发工具。国内大多数单片机工程师都接触和使用过,Vision,开发环境,,RealView MDK,可以帮助国内,8,位、,16,位,MCU,开发工程师平滑过度到,32,位,ARM,的应用开发。,Vision IDE,简单易用,能让您立马上手。,69,.,70,.,安装,Vision3 IDE,运行,解密:,1.1、拷贝BIN文件夹到keil的安装目录下(例如c:KeilARM);,1.2、将windows文件夹拷贝到系统安装目录(例如c:此步其实是安装ULINK1的驱动);,1.3、打开KEIL,选择File菜单下的License Management,拷贝CID;,1.4、用Keil_lic_v3.2生成License并添加到KEIL里,最好别用Keil_lic_v3.4,,1.5、请注意区分内核(在DEBUG介面设置)ULINK Cortex Debugger用于Cortex核;ULINK ARM Debugger是用于ARM7/9的调试;,71,.,驱动Jlink,插上Jlink,72,.,建立工程,1.选择器件,2.配置路径,3.编制(加载)头文件,四、编程要点,73,.,使用,Vision3 IDE,新建工程,设备库中选择目标芯片。,74,.,使用,Vision3 IDE,配置编译环境。,75,.,使用,Vision3 IDE,配置启动代码:根据目标板资源修改相关内容(如CPU/PLL、总线系统等),达到匹配。,76,.,使用,Vision3 IDE,配置硬件选项,单击,77,.,使用,Vision3 IDE,创建源文件及文件组,加入工程,78,.,编译链接工程,调试程序,建立HEX文件,下载HEX文件,79,.,编程,初始化,1.选择I/O端口:方向、上拉。,2.外设配置:定时器、A/D、PWM等。,3.启动方式、中断等。,4.初始化变量、端口等。,80,.,配置系统不同的时钟源,配置中断系统,1.嘀嗒,(SysTick),校准时钟,每1ms产生一次中断,2.外部中断线,I/O性能配置,AD、定时器,81,.,四、编程要点,主流程 子程序(函数),1.输入信号检测处理 1.位置说明,2.键盘处理 2.参数声明,3.控制逻辑及运算 3.控制逻辑及运算,4.输出控制 4.返回,5.显示处理,中断及服务,1.向量入口,2.中断服务逻辑,82,.,五、例程,通用,I/O端口,例程,嵌套向量中断控制器NVIC例程,外部中断/事件控制器(EXIT)例程,串行通信接口 例程,实时钟RTC例程,通用计时器TIMx例程,高级控制定时器TIM1例程,DMA控制器 例程,ADC转换器 例程,IIC接口 例程,SPI接口 例程,RTX_Blinky例程,83,.,
展开阅读全文