IMUSTB&ELAB©一、课程结构及特点介绍及实践当前微机应用的热点内容:★单片机技术及典型应用★EDA技术与可编程逻辑器件(CPLD/FPGA,VHDL)★嵌入式系统(ARM,RTOS)其特点:没有深奥的理论,只有新观念和新方法。实践性较强,软硬件结合。IMUSTB&ELAB©通过课程及实验需要掌握:1、单片机(以STM32为例)的典型技术及应用。2、EDA新技术(Quartus||使用、在FPGA/CPLD上构建时序逻辑和建立Nios系统)。3、嵌入式基础及应用(WinCE、ucLinux)为研究课题奠定一定的基础。二、课程目的形式:讲授+综合实验(每2人一组,各实验内容讨论确定)。时间安排:讲授:10~12次课(含各部分软硬件环境及方法介绍),综合实验8~10次课(各实验2~4次,不足时可利用业余时间)。考核:综合实验(4个)50%、报告(4部分)50%综合实验要求:根据综合实验装置提供的硬件环境,结合自己的研究方向,查找资料,选择一、二单元内容设计实验,应用各部分新技术和手段实现。具体要求:1、方案说明文档(项目的目的、意义、原理、功能等)。(背景:工艺流程,技术发展情况论述.)(方案:系统框图,功能描述.)2、电路原理图及所选器件主要参数3、软件流程图及部分程序清单。IMUSTB&ELAB©三、课程形式及考核办法参考书目1、微机控制新技术姚燕南西交大2、STM32F10x参考手册_cn.pdf电子版3、FPGA设计及应用诸振勇西电大4、CPLD技术及其应用宋万杰西电大5、基于FPGA的嵌入式系统设计任爱锋等西电大6、DSP应用系统设计朱铭锆电子7、电动机的DSP控制王晓明北航8、TMS320LF240xDSP结构、原理及应用刘和平北航9、嵌入式系统设计与实例开发王田苗清华10、基于ARM的嵌入式系统开发与应用吴明晖邮电11、SOPC技术实用教程潘松等清华博客©STM32单片机原理及应用第一部分需要掌握掌握单片机的一般设计方法。目前典型接口电路原理及应用。开发环境Keil及编程工具的使用。能够设计建立基于单片机的系统。设计完成一个基于STM32单片机的应用系统。完成:系统描述,软硬件设计,调试结果并写出报告。了解---背景:工艺流程,技术发展情况论述.掌握---原理论述、同类方案比较。设计---方案:系统框图,功能描述.实现---软件流程、功能实现。实际工程应用的一般步骤实际工程应用的一般步骤一、STM32微控制器系列_cn.pdfSTM32的主要优点■使用ARM最新的、先进架构的Cortex-M3内核■优异的实时性能■杰出的功耗控制■出众及创新的外设■最大程度的集成整合■易于开发,可使产品■快速进入市场设计模式基础型:做好需要专业的软硬件知识智能型:在搭建的程序框架下设计高级型:在操作系统管理下,专注应用。介绍特色、扩展内容,比较学习。需要大家课下认真消化资料,掌握基础内容。STM32F10x参考手册_cn.pdf二、硬件—特色接口I/O低功耗模式、定时器/计数器、输入捕获PWM(脉宽调变(Pulse-WidthModulation)A/DDMA(直接存储器存取(directmemoryaccess))、RTCUSART、SPI(单个程序启动(SingleProgramInitiation))BOOT(计算机】引导;自引;自展;启动引导程序,自展程序(=bootstrap))通用输入输出(GeneralPurposeInput/Output)通用同步异步收发机(UniversalSynchronousAsynchronousReceiverTransmitter)举例:初始化I/O口voidGPIO_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,&GPIO_InitStructure);//按键F和+使用的GPIOB的Pin8Pin9端口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,&GPIO_InitStructure);}#defineGPIO_Pin_1((u16)0x0002)/*Pin1selected*/#defineGPIO_Pin_2((u16)0x0004)/*Pin2selected*/GPIO_Mode_Out_PP=0x10//置模式寄存器某位GPIO_Mode_IPU=0x48使用:#defineLED1_ON(GPIO_WriteBit(GPIOD,GPIO_Pin_1,Bit_SET))#defineLED1_OFF(GPIO_WriteBit(GPIOD,GPIO_Pin_1,Bit_RESET))#defineLED2_ON(GPIO_WriteBit(GPIOD,GPIO_Pin_2,Bit_SET))#defineLED2_OFF(GPIO_WriteBit(GPIOD,GPIO_Pin_2,Bit_RESET))F=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8);J=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9);PWM技术PWM(PulseWidthModulation)控制——脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)。PWM控制技术在逆变电路中应用最广,应用的逆变电路绝大部分是PWM型,PWM控制技术正是有赖于在逆变电路中的应用,才确定了它在电力电子技术中的重要地位。PWM相关概念占空比:就是输出的PWM中,高电平保持的时间与该PWM的时钟周期的时间之比。如,一个PWM的频率是1000Hz,那么它的时钟周期就是1000us,如果高电平出现的时间是200us,那么低电平的时间肯定是800us,占空比就是200:1000,也就是说PWM的占空比就是1:5。PWM相关概念分辨率:也就是占空比最小能达到多少,如8位的PWM,理论的分辨率就是1:255(单斜率),16位的的PWM理论就是1:65535(单斜率)。如16位的PWM,它的分辨率达到了1:65535,要达到这个分辨率,T/C就必须从0计数到65535才能达到,如果计数从0计到80之后又从0开始计到80.......,那么它的分辨率最小就是1:80了,但是,它也快了,也就是说PWM的输出频率高了。PWM相关概念双斜率/单斜率:假设一个PWM从0计数到80,之后又从0计数到80.......这个就是单斜率。假设一个PWM从0计数到80,之后是从80计数到0.......这个就是双斜率。可见,双斜率的计数时间多了一倍,所以输出的PWM频率就慢了一半,但是分辨率却是1:(80+80)=1:160,就是提高了一倍。PWM相关概念假设PWM是单斜率,设定最高计数是80,我们再设定一个比较值是10,那么T/C从0计数到10时(这时计数器还是一直往上计数,直到计数到设定值80),单片机就会根据你的设定,控制某个IO口在这个时候是输出1还是输出0还是端口取反,这样,就是PWM的最基本的原理了。根据控制器件特性的需要,研究了各种形式的PWM(SPWM,SVPWM等)三、集成开发环境RealViewMDK开发套件源自德国Keil公司,被全球超过10万的嵌入式开发工程师验证和使用,是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具。RealViewMDK集成了业内最领先的技术,融合了中国多数软件开发工程师所需的特点和功能。包括μVision3集成开发环境与RealView编译器,支持ARM7、ARM9和最新的Cortex-M3核处理器,自动配置启动代码,集成Flash烧写模块,强大的Simulation设备模拟,性能分析等功能,与ARM之前的工具包ADS等相比,RealView编译器的最新版本可将性能改善超过20%。特色菜鸟的阿拉伯飞毯——启动代码生成向导,自动引导,一日千里启动代码和系统硬件结合紧密,必须用汇编语言编写,因而成为许多工程师难以跨越的门槛。RealViewMDK开发工具可以帮您自动生成完善的启动代码,并提供图形化的窗口,随您轻松修改。无论对于初学者还是有经验的开发工程师,都能大大节省时间,提高开发效率。特色高手的无剑胜有剑——软件模拟器,完全脱离硬件的软件开发过程RealViewMDK的设备模拟器可以仿真整个目标硬件,包括快速指令集仿真、外部信号和I/O仿真、中断过程仿真、片内所有外围设备仿真等。开发工程师在无硬件的情况下即可开始软件开发和调试,使软硬件开发同步进行,大大缩短开发周期。而一般的ARM开发工具仅提供指令集模拟器,只能支持ARM内核模拟调试。专家的哈雷望远镜——性能分析器,看得更远、看得更细、看得更清RealViewMDK的性能分析器好比哈雷望远镜,让您看得更远和更准,它辅助您查看代码覆盖情况,程序运行时间,函数调用次数等高端控制功能,指导您轻松的进行代码优化,成为嵌入式开发高手。通常这些功能只有价值数千美元的昂贵的Trace工具才能提供。特色未来战士的激光剑——Cortex-M3支持RealViewMDK支持的Cortex-M3核是ARM公司最新推出的针对微控制器应用的内核,它提供业界领先的高性能和低成本的解决方案,未来几年将成为MCU应用的热点和主流。目前国内只有ARM公司的MDK和RVDS开发工具可以支持Cortex-M3芯片的应用开发。特色特色业界最优秀的编译器——RealView编译器,代码更小,性能更高RealViewMDK的RealView编译器与ADS1.2比较:代码密度:比ADS1.2编译的代码尺寸小10%;代码性能:比ADS1.2编译的代码性能高20%。特色配备ULINK2仿真器+Flash编程模块,轻松实现Flash烧写RealViewMDK无需寻求第三方编程软件与硬件支持,通过配套的ULINK2仿真器与Flash编程工具,轻松实现CPU片内FLASH、外扩FLASH烧写,并支持用户自行添加FLASH编程算法;而且能支持FLASH整片删除、扇区删除、编程前自动删除以及编程后自动校验等功能,轻松方便。特色绝对的高性价比-国际品质,本土价格:RealViewMDK中国版保留了RealViewMDK国际版的所有卓越性能,而产品价格也是针对国内大多数用户预算而专门定制的,力求给国内开发工程师提供最高性价比的开发工具解决方案。更贴身的服务-专业的本地化的技术支持和服务RealViewMDK中国版用户将享受到专业的本地化的技术支持和服务,包括电话、Email、论坛、中文技术文档等,这将有助于国内工程师们开发出更有竞争力的产品。μVision3ID