【毕业设计】stm32硬件平台搭建_第1页
【毕业设计】stm32硬件平台搭建_第2页
【毕业设计】stm32硬件平台搭建_第3页
【毕业设计】stm32硬件平台搭建_第4页
【毕业设计】stm32硬件平台搭建_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

基于STM32的硬件开发平台摘要ST公司于2007年率先推出了基于CORTEXM3内核的STM32系列处理器,它集成先进CORTEXM3内核结构,出众创新的外设,良好的功耗控制和低成本于一体。而且,STM32系列处理器具有全系列处理器互相兼容,为以后的升级提供了强有力的支持。此次开发板的设计目的是搭建起一个高性能低成本低功耗的最新技术学习平台。此次开发平台的搭建是完全独立的开发,使用PROTAL软件进行原理图和PCB板的设计。使用ARM公司旗下的KEIL子总司开发的REALVIEWMICROCONTROLLERDEVELOPMENTKIT以下简称MDK进行程序的开发。本平台具有多项创新点,例如进行了核心板和基板的可分离设计,即既可以将芯片直接焊到基板上也可以独立制作成核心板后在插在基板上,符合现代电子设计中对产品的灵活性要求以及严格的成本意识;另外在基板上集成了几乎市面上可以见到的所有外设与接口,使得开发流程变得十分便捷,符合现代电子设计中对高集成度的要求;此次平台的设计严格控制功耗,使得功耗十分低,符合现代电子设计中低功耗的要求。关键词ARM、STMICROELECTRONICS、单片机、硬件、原理图STM32BASEDHARDWAREDEVELOPMENTPLATFORMABSTRACTSTCOMPANIESIN2007,PIONEEREDTHECORTEXM3COREBASEDSTM32FAMILYOFPROCESSORS,WHICHINTEGRATEADVANCEDCORTEXM3CORESTRUCTURE,OUTSTANDINGINNOVATIVEPERIPHERALS,GOODPOWER,CONTROLANDLOWCOSTINONEMOREOVER,STM32FAMILYOFPROCESSORSARECOMPATIBLEWITHTHEFULLRANGEOFPROCESSORS,FORFUTUREUPGRADESPROVIDEDSTRONGSUPPORTTHEDEVELOPMENTBOARDSAREDESIGNEDTOBUILDAHIGHPERFORMANCELOWCOST,LOWPOWERFROMTHELATESTTECHNOLOGYLEARNINGPLATFORMTHEDEVELOPMENTPLATFORMISBUILTTOTALLYINDEPENDENTDEVELOPMENT,THEUSEPROTALSOFTWARESCHEMATICANDPCBBOARDDESIGNKEILARMCOMPANYSUSEOFTHEDIRECTORATEGENERALFORDEVELOPMENTSUBREALVIEWMICROCONTROLLERDEVELOPMENTKITHEREINAFTERREFERREDTOASMDKFORPROGRAMDEVELOPMENTTHEPLATFORMHASANUMBEROFINNOVATIONS,SUCHASCONDUCTINGACOREBOARDANDTHEBOARDOFDETACHABLEDESIGN,THATIS,EITHERDIRECTLYSOLDERTHECHIPTOTHESUBSTRATEALSOCANBEPRODUCEDINDEPENDENTLYINSERTEDAFTERTHECOREBOARDSUBSTRATE,CONSISTENTWITHMODERNELECTRONICDESIGNONPRODUCTFLEXIBILITYREQUIREMENTSANDSTRINGENTCOSTCONSCIOUSALSOINTEGRATEDINTHESUBSTRATEONTHEMARKETCANSEEALMOSTALLTHEPERIPHERALSANDINTERFACES,MAKINGTHEDEVELOPMENTPROCESSHASBECOMEVERYCONVENIENT,CONSISTENTWITHMODERNELECTRONICDESIGNREQUIREMENTSFORHIGHINTEGRATIONTHEPLATFORMISDESIGNEDSTRICTLYCONTROLLEDPOWER,SOPOWERCONSUMPTIONISVERYLOW,CONSISTENTWITHMODERNELECTRONICDESIGNLOWPOWERREQUIREMENTSKEYWORDSARM,STMICROELECTRONICS,SINGLECHIP,HARDWARE,SCHEMATICS目录第一章绪论1综述111选题的目的与意义112MCU的发展趋势113本设计主要使用的工具2131PROTELDXP20043132REALVIEWMDK6第二章STM32处理器简介8ARMCORTEXM3STM32处理器821处理器组件822CORTEXM3的层次和实现选项923处理器内核1024嵌套向量中断控制器(NVIC)1125总线矩阵1226集成调试1227可选组件1328CORTEXM3处理器应用13第三章STM32硬件平台的搭建15STM32硬件平台核心板的基本结构1531STM32硬件平台基板的基本结构15311原理图的设计153111液晶显示屏接口153112数码管接口163113LED灯接口173114矩阵键盘接口173115SD接口183116CAN总线接口183117MAX232接UART接口193118USB接口193119扬声器接口1931110电源供电模块2031111复位和滤波模块2031112JATG调试接口2132PCB的设计21第四章STM32软件平台的介绍与应用23软件设计平台介绍2341REALVIEWMDK23411REALVIEWMDK介绍23412开发过程及集成开发环境简介234121REALVIEWMDK的软件开发周期234122UVISION3集成开发环境244123ULINKUSBJTAG接口适配器254124工程管理264125新建工程264126配置工程274127OUTPUT标签页的设置284128C/C标签页的设置294129DEBUG标签页的设置3041210UTILITIES标签页的设置3242打开工程3443编写源程序3444编译程序3845调试程序40451常用的调试命令40452断点设置42453调试窗口434531寄存器窗口434532存储器窗口434533查看和调用栈窗口444534反汇编窗口444534外设窗口44结束语45致谢45参考文献45附录46第一章绪论综述11选题的目的与意义当你在进行某项新的电子设计时你是否会为项目的处理器选型而进行艰难的选择一方面抱怨16位单片机有限的指令和性能;另一方面又抱怨32位处理器的高成本和高功耗。那么,基于ARMCORTEXM3内核的STM32系列处理器也许能帮你解决这个问题。使你不必在性能、成本、功耗等因素之间做出取舍和折衷。STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用而设计的ARMCORTEXM3内核。按性能分成两个不同的系列STM32F103“增强型”系列和STM32F101“基本型”系列。增强型系列时钟频率达到72MHZ,是同类产品中性能最高的产品;基本型时钟频率为36MHZ,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品用户的最佳选择。两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率72MHZ时,从闪存执行代码,STM32功耗36MA,是32位市场上功耗最低的产品,相当于05MA/MHZ。ST公司于2007年率先推出了基于CORTEXM3内核的STM32系列处理器,它集成先进CORTEXM3内核结构,出众创新的外设,良好的功耗控制和低成本于一体。而且,STM32系列处理器具有全系列脚对脚,外设及软件的高度兼容性,可以在不必修改原始框架及软件的条件下,将应用升级到需要更多存储空间,或精简到使用更少存储空间,或改用不同的封装规格。12MCU的发展趋势随着现代电子设计的发展,MCU的发展也同样经历了一系列的过程。从最开始的51单片机一统天下逐渐发展到现今百家争鸣的局面。在低端8位机市场,51单片机仍牢牢地把握着市场;而在中端16位市场中,AVR、FREESCALE等一系列厂商也在各自努力发展;而在高端32位市场,由三星S3C2410为代表的ARM芯片一枝独秀。但是随着技术的发展和人们对工作和消费的需求。对MCU的提出的要求越来越高。现今能够占领市场的芯片往往都具有如下特点1功能强大,外设丰富,兼容性高2良好的功耗控制,优秀的电源管理能力3低廉的成本随着国内近些年电子设计的高速发展,以及大众对高性能电子产品的需求增大,我们势必要使用更多的更好的芯片进行设计和开发。现今最热门的电子应用包括了汽车电子、工业控制、医疗机械等传统方向;同时也包含了智能手机,GPS导航,电子书以及MID等一系列的新兴的消费产品。在市面上这些高端的应用几乎都被各大外国企业所垄断,而开发民族电子产品是发展中国电子的根本。所以选择一款好的芯片就能够使复杂的开发流程简化,从而达到事半功倍的效果。现在就介绍我推荐的一款芯片STM32系列将为业界带来ARM公司的高性能”CORTEXM3”内核125DMIPS/MHZ,而ARM7TDMI只有095DMIPS/MHZ一流的外设1S的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI,18MHZ的I/O翻转速度低功耗在72MHZ时消耗36MA所有外设处于工作状态,待机时下降到2A最大的集成度复位电路、低电压检测、调压器、精确的RC振荡器等简单的结构和易用的工具STM32F10X重要参数2V36V供电容忍5V的I/O管脚优异的安全时钟模式带唤醒功能的低功耗模式内部RC振荡器内嵌复位电路工作温度范围40O至85OC或105OCSTM32F101性能特点36MHZCPU多达16K字节SRAM1X12位ADC温度传感器STM32F103性能特点72MHZCPU多达20K字节SRAM2X12位ADC温度传感PWM定时器CANUSB13本设计主要使用的工具本次设计的出发点就是为了复杂电子设计而进行的基础平台搭建。在设计中使用到的软件有ALTIUM公司的PROTELDXP2004(以下简称DXP)和ARM公司的KEILMDK开发平台。131PROTELDXP2004ALTIUM公司作为EDA领域里的一个领先公司,在原来PROTEL99SE的基础上,应用最先进的软件设计方法,率先推出了一款基于WINDOWS2000和WINDOWSXP操作系统的EDA设计软件PROTELDXP。PROTELDXP在前版本的基础上增加了许多新的功能。新的可定制设计环境功能包括双显示器支持,可固定、浮动以及弹出面板,强大的过滤和对象定位功能及增强的用户界面等。PROTELDXP是第一个将所有设计工具集于一身的板级设计系统,电子设计者从最初的项目模块规划到最终形成生产数据都可以按照自己的设计方式实现。PROTELDXP运行在优化的设计浏览器平台上,并且具备当今所有先进的设计特点,能够处理各种复杂的PCB设计过程。通过设计输入仿真、PCB绘制编辑、拓扑自动布线、信号完整性分析和设计输出等技术融合,PROTELDXP提供了全面的设计解决方案。PROTELDXP2004是ALTIUM公司于2004年推出的最新版本的电路设计软件,该软件能实现从概念设计,顶层设计直到输出生产数据以及这之间的所有分析验证和设计数据的管理。当前比较流行的PROTEL98、PROTEL99SE,就是它的前期版本。PROTELDXP2004已不是单纯的PCB(印制电路板)设计工具,而是由多个模块组成的系统工具,分别是SCH(原理图)设计、SCH(原理图)仿真、PCB(印制电路板)设计、AUTOROUTER(自动布线器)和FPGA设计等,覆盖了以PCB为核心的整个物理设计。该软件将项目管理方式、原理图和PCB图的双向同步技术、多通道设计、拓朴自动布线以及电路仿真等技术结合在一起,为电路设计提供了强大的支持。与较早的版本PROTEL99相比,PROTELDXP2004不仅在外观上显得更加豪华、人性化,而且极大地强化了电路设计的同步化,同时整合了VHDL和FPGA设计系统,其功能大大加强了。PROTELDXP2004新特点1整合式的元件与元件库在PROTELDXP2004中采用整合式的元件,在一个元件里连结了元件符号SYMBOL、元件包装FOOTPRINT、SPICE元件模型电路仿真所使用的、SI元件模型电路板信号分析所使用的。2版本控制可直接由PROTEL设计管理器转换到其他设计系统,这样设计者可方便地将PROTELDXP2004中的设计与其他软件共享。如可以输入和输出DXP、DWG格式文件,实现和AUTOCAD等软件的数据交换,也可以输出格式为HYPERLYNX的文件,用于板级信号仿真。3多重组态的设计PROTELDXP2004支持单一设计多重组态。对于同一个设计文件可指定要使用其中的某些元件或不使用其中的某些元件,然后产生网络表等文件。4重复式设计PROTELDXP2004提供重复式设计,类似重复层次式电路设计,只要设计其中一部分电路图,即可以多次使用该电路图,就象有很多相同电路图一样。这项功能也支持电路板设计,包括由电路板反标注到电路图。5新的文件管理模式PROTELDXP2004提供三种文件管理模式。可将各文件存入入单一数据库文件,即PROTEL99SE的DDB,也可以存为WINDOWS文件,即一般的分离文件,而不需要数据库管理系统ODBC,就可以存取该文件,此外新增了一个混合模式,也就是在数据库外存为独立的WINDOWS文件。6多屏幕显示模式对于同一个文件,设计者可打开多个窗口在不同的屏幕上显示。7设计整合PROTELDXP2004强化了SCHEMATIC和PCB板的双向同步设计功能。8超强的比较功能PROTELDXP2004新增了超强的比较功能,能对两个相同格式的文件进行比较,以得到其版本的差异性,也可以对不同格式的文件进行比较,例如电路板文件与网络报表文件等。9强化的变更设计功能在PROTELDXP2004中,进行比较后,所产生的报表文件可作为变更设计的依据,让设计完全同步。10可定义电路板设计规则在原理图设计时,定义电路板设计规则是非常实际的。虽在先前版本的SCHEMATIC中就已提供定义电路板的功能,可是都没有实际的作用。而在PROTELDXP中落实了这项功能,让用户能在画电路图时就定义设计规则。11强化设计验证在PROTELDXP2004中强化了设计验证的功能,让电路图与电路板之间的转换更准确,同时对交互参考的操作也更容易。12设计者可定义元件与参数PROTELDXP2004提供了无限制的设计者定义元件及元件引脚参数,所定义的参数能存入元件及原理图里。13尺寸线工具PROTELDXP2004提供了一组超强的画尺寸线工具,在移动时会自动修正尺寸,这对于PCB中一些层的定义有很大的帮助。14改善加强板层分割功能PROTELDXP2004提供了加强的板层分割功能,对于板层的分割自动以不同颜色来表示,让设计者更容易辨别与管理。15加强焊点堆栈的定义PROTELDXP2004板增强了焊点堆栈的定义与管理,设计者可以存储所定义的焊点堆栈以供日后再使用。16改良焊点连接线PROTELDXP2004提供自动修剪焊点连接线的功能,使自动布线后焊点连接更恰当。17波形资料的输出与输入在PROTELDXP2004中可将仿真波形上各种资料输出为电子表格格式,以供其他程序的使用,也可以输入其他程序所产生的波形资料。18加强绘图功能PROTELDXP2004增强了波形窗口的绘图功能,例如放置标题栏、标记画线等,同时WINDOWS的编辑功能在此也可以应用。19不同波形的重叠设计者可以将不同的波形放置在一起,也可以同时使用多个不同的Y轴坐标。20直接在电路板里分析设计者可以直接在PCB编辑器里进行信号分析,这样信号分析更加方便。21强化模型整合在PROTELDXP2004中提供了高速整合的元件,元件包括信号分析的模型(SIMODEL),设计者不必再为元件问题而烦恼了。132REALVIEWMDKREALVIEWMDK开发工具源自德国KEIL公司,被全球超过10万的嵌入式开发工程师验证和使用,是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具。REALVIEWMDK集成了业内最领先的技术,包括UVISION3集成开发环境与REALVIEW编译器。支持ARM7、ARM9和最新的CORTEXM3核处理器,自动配置启动代码,集成FLASH烧写模块,强大的SIMULATION设备模拟,性能分析等功能,与ARM之前的工具包ADS等相比,REALVIEW编译器的最新版本可将性能改善超过20REALVIEWMDK的突出特性启动代码生成向导,自动引导,一日千里启动代码和系统硬件结合紧密,必须用汇编语言编写,因而成为许多工程师难以跨越多门槛。REALVIEWMDK的UVISION3工具可以自动生成完善的启动代码,并提供图形化的窗口,随时轻松修改。无论对于初学者还是有经验的开发工程师,都能大大节省时间,提高开发效率。软件模拟器,完全脱离硬件的软件开发过程REALVIEWMDK的设备模拟器可以仿真整个目标硬件,包括快速指令集仿真、外部信号和I/O仿真、中断过程仿真、片内所有外围设备仿真等。开发工程师在无硬件的情况下即可开始软件开发和调试,使软硬件开发同步进行,大大缩短开发周期。而一般的ARM开发工具仅提供指令集模拟器,只能支持ARM内核模拟调试。性能分析器,看得更远、看得更细、看得更清REALVIEWMDK的性能分析器好比哈雷望远镜,能够看得更远和更准,它能辅助查看代码覆盖情况,程序运行时间,函数调用次数等高端控制功能,指导我们轻松的进行代码优化,成为嵌入式开发高手。通常这些功能只有价值数千美元的昂贵的TRACE工具才能提供。REALVIEW编译器,代码更小,性能更高REALVIEWMDK的REALVIEW编译器与ADS12比较代码密度比ADS12编译的代码尺寸小10;代码性能比ADS12编译的代码性能高20。配备ULINK2仿真器FLASH编程模块,轻松实现FLASH烧写REALVIEWMDK无需寻求第三方编程软件与硬件支持,通过配套的ULINK2仿真器与FLASH编程工具,轻松实现CPU片内FLASH、外扩FLASH烧写,并支持用户自行添加FLASH编程算法;而且能支持FLASH整片删除、扇区删除、编程前自动删除以及编程后自动校验等功能,轻松方便。绝对的高性价比REALVIEWMDK中国版保留了REALVIEWMDK国际版的所有卓越性能,而产品价格和国内普通开发工具的价格差不多;另外还根据不同需求,专门定制了4个版本,以满足工程师们不同的需要。这绝对是选择开发工具的首选。专业的本地化的技术支持和服务REALVIEWMDK中国版用户将享受到专业的本地化的技术支持和服务,包括电话、EMAIL、论坛、中文技术文档等,这将为国内工程师们开发出更有竞争力的产品提供更多的助力第二章STM32处理器简介ARMCORTEXM3STM32处理器CORTEXM3处理器是一个低功耗的处理器,具有门数少,中断延迟小,调试容易等特点。它是为功耗和价格敏感的应用领域而专门设计的、具有较高性能的处理器,应用范围可从低端微控制器到复杂SOC。CORTEXM3处理器使用了ARMV7M体系结构,是一个可综合的、高度可配置的处理器。它包含了一个高效的哈佛结构三级流水线,可提供125DMIPS/MHZ的性能。在一个具有32个物理中断的标准处理器实现上(013UMMETRO50MHZ),达到了突出的006MW/MHZ能效比。为降低器件成本,CORTEXM3处理器采用了与系统部件紧耦合的实现方法,来缩小芯片面积,其内核面积比现有的三级流水线内核缩小了30。CORTEXM3处理器实现了THUMB2指令集架构,具有很高的代码密度,可降低存储器需求,并能达到非常接近32位ARM指令集的性能。对于系统和软件开发,CORTEXM3处理器具有以下优势。小的处理器内核、系统和存储器,可降低器件成本;。完整的电源管理,很低的功耗;。突出的处理器性能,可满足挑战性的应用需求;。快速的中断处理,满足高速、临界的控制应用;。可选的存储器保护单元(MPU),提供平台级的安全性;。增强的系统调试功能,可加快开发进程;。没有汇编代码要求,简化系统开发;。宽广的适用范围从超低成本微控制器到高性能SOC。CORTEXM3处理器在高性能内核基础上,集成了多种系统外设,可以满足不同应用对成本和性能的要求。处理器是全部可综合、高度可定制的(包括物理中断、系统调试等),CORTEXM3还有一个可选的细粒度的(FINEGRANULARITY)存储器保护单元(MPU)和一个嵌入式跟踪宏单元(ETM)21处理器组件CORTEXM3部件图图表1注意ETM和MPU是可选组件,在某些实现中可能不存在。CORTEXM3处理器主要包括处理器内核与处理器核紧密结合的嵌套向量中断控制器NVIC以实现低延迟的中断处理存储器保护单元MPU,可选部件MPU实现存储器保护。总线接口调试接口22CORTEXM3的层次和实现选项处理器组件有两个层次,这是RTL设计层次。ETM、TPIU、SW/JTAGDP和ROM表四个组件在CORTEXM3层的外部,因为这些组件要么是可选的,要么就是在实现和使用时可以灵活改变的,可能的实现选项TPIUTPIU是ITM、ETM如果存在和片外跟踪端口分析器之间传输CORTEXM3跟踪数据的桥梁。TPIU可以设置成支持低开销调试的串行引脚跟踪,或者用于更高带宽跟踪的多引脚跟踪。TPIU是与CORESIGHT兼容的。TPIU的实现选项有如果系统中有ETM组件,那么就有TPIU格式器,否则就没有。多个TPIU中的一个就可以跟踪多核的实现。ARMTPIU部件可以被特定的CORESIGHT相应TPIU替代在一个实际器件中,可能没有TPIU。注意如果没有TPIU,那么CONTEXM3就没有跟踪能力。SW/JTAGDP处理器可以设置成有SWDP或者JTAGDP调试端口,或者两者都有。调试端口提供对系统中所有的外设寄存器、存储器、处理器寄存器的调试访问。SW/JTAGDP的实现选项有在实现中可能只有SWDP或JTAGDP,也可能都有。ARMSWDP可能被合作方专用的配合CORESIGHT技术的SWDP替代。ARMJTAGDP可能被特定的CORESIGHT技术的JTAGDP替代。可能包含其他特定的测试接口,与SWDP或JTAGDP并联。ROM表如果系统中加入额外的调试组件,ROM存储器表将进行修改。23处理器内核处理器内核是ARMV7M架构的。CORTEXM3内核是建立在一个高性能哈佛结构的三级流水线基础上的,可满足事件驱动的应用需求。通过广泛采用时钟选通等技术,改进了每个时钟周期的性能,包括单周期的32X32乘法和硬件除法,获得了优异的能效比。另外,通过一个基于堆栈的异常模式的实现,显著地缩小了内核的物理尺寸。CORTEXM3内核实现了THUMB2指令集传统THUMB指令集的一个超集,既获得了传统32位代码的性能,又具有16位的高代码密度。CORTEXM3内核具有如下特点ARMV7MTHUMB2指令集架构ISA的子集,包括了所有16位和32位的THUMB2基本指令,不包含SIMD、DSP和ARM系统访问。采用哈佛处理器结构,在取指的同时可以读取/存储数据。三级流水线。单周期32位乘法。硬件除法。THUMB和DEBUG状态。HANDLER和THREAD模式。处理器状态自动保存与恢复,保证低延迟的ISR进入和退出。可打断继续LDM/STM,PUSH/POP。支持ARMV6的BE8/LE(大小端)。ARMV6不对齐访问。寄存器13个32位的通用寄存器。链接寄存器LR。程序计数器PC。程序状态寄存器XPSR。2个分段堆栈指针寄存器。存储器接口处理器采用哈佛结构,在取指的同时可以读取/存储数据。访问存储器由以下部件控制一个独立的加载和存储单元LSU,把读写操作从算术逻辑单元(ALU)中独立出来。3个字长的入口预取单元。每次取一个字长的指令,可以是两条THUMB指令、一个字对齐的THUMB2指令、或者一个半字对齐的THUMB2指令的高/低半字、或者另一个半字对齐的THUMB2指令的低/高半字。所有从内核取指的地址都是字对齐的。如果一条THUMB2指令是半字对齐的,那么取这条指令就需要两次取指。然而,有了3个入口预取缓冲器就可以保证只有在取第一条半字的THUMB2指令时,才需要一个周期的取指延迟。24嵌套向量中断控制器(NVIC)CORTEXM3处理器紧密结合一个可配置的中断控制器(NVIC),提供了工业领先的中断处理性能。标准的NVIC实现包括一个不可屏蔽中断(NMI),加上具有优先级的32个通用物理中断。通过简单的综合选择,控制器可以被配置为1244个物理中断。另外,抢占式优先级的数目,可以在综合时配置到255个。与处理器内核的紧密结合,使处理器可以更快地执行中断服务程序(ISR)。典型情况下,从中断发生到进入服务可减少70的周期数,这是通过寄存器硬件堆栈,加上退出和重启多寄存器LOADSTORE操作完成的。这种实现也意味着不需要任何汇编代码来完成寄存器数据传送,大大简化了代码。NVIC采用尾链(TAILCHAINING)技术,简化了在激活与挂起的中断之间的数据传送。它用简单的6个周期的取指,取代了传统的串行堆栈通常需要超过30个时钟周期的PUSHPOP操作。为了提高低功耗特性,NVIC设计了三种睡眠方式。其深度睡眠(DEEPSLEEP)功能可以输出信号到其他系统模块,使整个器件快速关闭。NVIC为低延迟实现异常处理提供了方便。主要有以下特征可配置1240个外部中断。可配置优先级位数38位。支持电平和脉冲(边沿)中断。可以动态重新分配中断优先级。优先级分组。支持尾链(TAILCHAINING)中断。进入中断时,处理器状态自动保存,退出中断时状态自动恢复,无额外指令开销。25总线矩阵ARMCORTEXM3处理器集成了一个AMBAAHBLITE总线来连接系统外设,并降低系统集成的复杂性。总线矩阵支持不对齐的数据访问,使不同的数据类型可以在存储器中紧密衔接(不因为数据需要对齐而留出空隙),可显著降低SRAM的需求和系统成本。总线矩阵将处理器、调试接口连接到外部总线。总线矩阵连接到以下外部总线ICODE总线。这是一条32位的AHBLITE总线,主要用于从指令空间中取指和取向量。DCODE总线。这是一条32位的AHBLITE总线,主要用于从指令空间的数据读写和调试访问。系统总线。这是一条32位的AHBLITE总线,主要用于从系统空间中取指、取向量、读写数据和调试访问。PPB。这是一条32位的APBV20总线,主要用于从PPB空间读写数据和调试访问。总线矩阵还控制不对齐访问。总线矩阵把不对齐的处理器访问转化成对齐的访问。位绑定BITBANDING。总线矩阵把位绑定的别名(ALIAS)访问转换成位绑定的区域访问。完成如下操作对位绑定的装载,提取位域。对位绑定的存储,读修改写变成原子操作。写缓冲。总线矩阵有一个写缓冲器,使总线等待脱离处理器内核。26集成调试ARMCORTEXM3实现了一个完整的硬件调试解决方案,通过一个传统的JTAG口或一个适合小封装器件的2线串行调试口(SWD),可以获得很高的处理器系统可视度。对于系统跟踪,处理器在数据观察点基础上集成了一个可选的ETM(嵌入式跟踪宏单元),它可以被配置为特定的系统事件触发。为了简化这些系统事件的处理,一个串行观测器(SERIALWIREVIEWER,SWV)可以通过一个引脚输出标准的ASCII数据流。FLASH修补技术,使器件和系统开发者在调试或运行过程中,可以修补从ROM到SRAM或FLASH的代码错误,可避免昂贵的重定制。CORTEXM3有关系统调试的几个组件FPB、DWT和ITM。FPBFPB单元实现了硬件断点和从代码空间到系统空间的修正存取。FPB有八个比较器6个指令比较器,可以各自被配置成实现把取指从指令空间重映射到系统空间,或者实现一个硬件断点。2个文字(LITERAL)比较器。可以把文字存取从指令空间重映射到系统空间。DWTDWT单元含有以下的调试功能它有四个比较器,每个都能设置成一个硬件观察点、一个ETM触发器、一个PC采样事件触发器,或者一个数据地址采样事件触发器。性能分析用的几个计数器或数据匹配事件触发器。可设置成在特定间隔发射一个PC采样值或中断事件信息。ITMITM是一个应用驱动的跟踪源,它支持应用程序事件跟踪和PRINTF风格的调试。ITM提供以下跟踪信息的来源软件跟踪。软件可以直接操作ITM有关寄存器,引发信息包发出。硬件跟踪。信息包由DWT产生,然后由ITM发出。时间戳(TIMESTAMPING)。与信息包相关的时间戳的发射。27可选组件ARMCORTEXM3有二个可选组件存储器保护单元(MPU)、嵌入式跟踪宏单元(ETM)。细粒度的MPU设计,使多任务的应用可以实现安全特权,以及分离代码、数据和堆栈。在类似汽车等许多嵌入式应用中,这类需求正变得越来越普遍。嵌入式跟踪单元(ETM)提供了一种远小于传统跟踪单元范围的指令跟踪捕获,使许多低价器件(如MCU)可以实现跟踪调试。28CORTEXM3处理器应用CORTEXM3处理器的特性,使它适合很大范围的应用,主要包括价格敏感的设备通用MCU、智能玩具、个人电子设备。小的核可以降低硅片面积。紧密结合系统外设可缩小面积、降低开发成本。THUMB2代码可减小指令存储器达30。SWD允许使用较小的引脚数和封装。在ISR、BOOT代码中无需汇编代码。单周期的READ/MODIFY/WRITE,更紧凑的数据打包。确定的中断处理。系统更新时的修补能力(ROM到FLASH、SRAM)。低功耗设备ZIGBEE、PAN(BLUETOOTH)、医疗电子设备。低功耗内核0047MW/MHZ(013UM,ARMMETROLAB,50MHZ)。高级时钟选通技术降低功耗。集成的睡眠模式。系统部件的功耗控制。高效率允许较低的时钟源。快速完成任务、增加睡眠时间,降低总的功耗。高性能设备超低价格手机、汽车应用、大容量存储设备;。性能可达125DMIPS/MHZ。执行THUMB指令时,比ARM7处理器性能高70。执行ARM指令时,比ARM7处理器性能高35。硬件除法更好的算法实现。快速中断处理。可选的MPU针对特定应用。调试与跟踪能力在搭建本次平台的过程中,充分的考虑到在实际应用中的可行性,每一项功能都进行了严格的审定。通过对现有市面上的开发平台进行实际考察,对未来将会有发展前景的功能进行了优化设计。尽量做到每一项功能都能够在现实中产品设计中找到对应的功能。第三章STM32硬件平台的搭建STM32硬件平台核心板的基本结构核心板采用独立设计方式,即可以将独立出来进工作。核心板模块包括100引脚的STM32VBT6芯片以及其I/O引脚的扩展,晶振,复位电路和电源模块以及滤波电容等。以下是原理图。图表231STM32硬件平台基板的基本结构311原理图的设计基板的设计是为核心板的拓展专门定制的。其中包含如下模块3111液晶显示屏接口液晶屏的连接图如上所示。图表33112数码管接口图表4数码管选型采用共阴极7段4级联数码管2个。可以实现8个00000000到FFFFFFFF的显示。驱动数码管的芯片为74LS47。通过这个芯片的译码我们不用在复杂的进行0F的显示代码转换,而可以直接输入对应的BCD数给74LS47,通过其就可以直接显示出来,从而简化程序设计。数码管的连接图如上所示。3113LED灯接口图表5LED模块设计了8盏贴片LED,通过上拉电阻和电源相接。另一端和单片机的I/O引脚相连。通过对I/O引脚的置低就可以实现对LED灯的控制。LED灯的连接图如上所示。3114矩阵键盘接口图表6在这里设计了44的矩阵键盘。通过一组I/O口连接。因为采用了键盘轮询的方式进行定位。所以可以有效的减少对单片机I/O口的使用。44矩阵键盘的连接图如上所示。3115SD接口图表7通过对现有的电子设备调查发现,能否进行存储拓展是衡量一款产品生命周期长短的重要标准。所以特意设计了SD卡的拓展模块。可以进行读和写的操作。SD卡的连接图如上所示。3116CAN总线接口图表8此次设计使用的芯片STM32VBT6的接口资源非常丰富,其中包含了CAN总线和2路UART。通过将芯片的CAN接口连接到SN65HVD230后就可以进行方便的CAN总线通信了。CAN总线的连接图如上所示。3117MAX232接UART接口图表9串口的设计类似于CAN总线的设计。通过将UART1和UART2连至MAX232芯片后就可以进行正常的串口通信了。3118USB接口图表10由于此次设计的核心STM32VBT6支持USB,所以特意将其如上图连接。同时整个电路的电源部分也通过USB接入。因使用的需要特别设计了D口的和平口的USB接口各一个。USB的连接图如上所示。3119扬声器接口图表11通过对芯片定时器的设置就可以使其输出PWM波形。通过扬声器接口,就可以通过声音的形式表现出来。扬声器的连接图如上所示。31110电源供电模块图表12整个电路的电源部分使用的事LM1117作电源稳压。其输入电压范围很宽,同时输出的功率稳定,能够确保这个平台的正常工作。LM1117的连接图如上所示。31111复位和滤波模块图表13因为电源是从USB口直接接入的,因为电压的不稳定所以会造成电路中有杂波的干扰。通过滤波模块的接入可以有效的遏制这种干扰的发生。单片机复位按钮的设计符合其复位电平的要求。滤波电路和复位电路的连接图如上所示。31112JATG调试接口图表14对于开发板来说,调试是一项很关键的技术。通过标准的JATG接口设计。通过仿真器就可以很方便的实现在线仿真。JATG接口的连接图如上所示。32PCB的设计PCB的设计主要来源于原理图的转换。只有建立了正确的原理图,通过生成元器件就可以将原理图上的元件都导入到PCB当中。然后就需要进行各个器件的排布和连线。因为这次设计中包含的线路较多,故使用自动布线功能。通过对自动布线的规则进行详细的设计后通过电脑直接进行自动布线操作。然后在人工检测其布线的合理性,并对其意义纠正。整体原理图和生成的PCB板图如下图表15原理图图表16PCB图第四章STM32软件平台的介绍与应用软件设计平台介绍41REALVIEWMDK411REALVIEWMDK介绍KEILFORARM是德国知名软件公司KEIL(现已并入ARM公司)开发的微控制器软件开发平台,是目前ARM内核单片机开发的主流工具。KEIL提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器在内的完整开发方案,通过一个集成开发环境(UVISION)将这些功能组合在一起。UVISION当前最高版本是UVISION4,它的界面和常用的微软VC的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。因此很多开发ARM应用的工程师,都对它十分喜欢。412开发过程及集成开发环境简介4121REALVIEWMDK的软件开发周期使用KEIL来开发嵌入式软件,开发周期和其他的平台软件开发周期是差不多的,大致有以下几个步骤1创建一个工程,选择一块目标芯片,并且做一些必要的工程配置。2编写C或者汇编源文件。3编译应用程序。4修改源程序中的错误。5联机调试。下面这种结构图完整描述了KEIL开发软件的整个过程。图表174122UVISION3集成开发环境UVISION3IDE是一款集编辑,编译和项目管理于一身的基于窗口的软件开发环境。UVISION3集成了C语言编译器,宏编译,链接/定位,以及HEX文件产生器。UVISION3具有如下特性功能齐全的源代码编辑器,用于配置开发工具的设备库,用于创建工程和维护工程的项目管理器,所有的工具配置都采用对话框进行,集成了源码级的仿真调试器,包括高速CPU和外设模拟器,用于往FLASHROM下载应用程序的FLASH编程工具,完备的开发工具帮助文档,设备数据表和用户使用向导。UVISION3具有良好的界面风格,下图是一个典型的调试时的窗口。图表18工程区用于访问文件组和文件,调试是可以查看CPU寄存器。输出窗口显示编译结果,以便快速查找错误的地方,同时还是调试命令输入输出窗口,也可以用于显示查找结果。内存窗口显示指定地址内村里的内容。查看和调用栈窗口用于查看和修改变量的值,并且现实当前函数调用树。代码窗口用于查看和编辑源文件。外设对话框检查微控制的片上外设的状态。4123ULINKUSBJTAG接口适配器ULINKUSBJTAG是一个用于连接PCUSB口和开发板JTAG口的小硬件适配器。通过ULINK你可以在真实的目标板上创建,下载和测试嵌入式应用。ULINK支持如下操作下载目标程序。检查内存和寄存器。单步运行程序。插入多个断点。实时运行程序烧写FLASH存储器图表194124工程管理在项目开发中,并不是仅有一个源程序就行了,还要为这个项目选择CPU(KEIL支持数百种CPU,而这些CPU的特性并不完全相同),确定编译、汇编、连接的参数,指定调试的方式,有一些项目还会有多个文件组成等,为管理和使用方便,KEIL使用工程(PROJECT)这一概念,将这些参数设置和所需的所有文件都加到一个工程中,只对工程而不是对单一的源程序进行编译(汇编)和连接等操作。下面我们就以一个简单的例子HELLOWORLD来讲解如何建立工程和配置工程。在这个例子里,我们将实现开发板上的LED1闪烁。4125新建工程点击菜单“PROJECT”,选择“NEWUVISIONPROJECT”,这是将会出现一个对话框,要求给将要建立的工程起一个名字。选择你要保存的路径,输入工程文件的名字,这里我们就叫HELLOWORLD,UVISION3工程文件的后缀为“UV2”,然后点击“SAVE”。这时会弹出一个对话框要求你选择目标设备的型号。图表20你可以根据你使用的处理器来选择,如果您所使用的处理器型号在列表中找不到,也可以找一款与您使用的相兼容的型号来代替。这里我们选择STM32F103C8,如图所示,右边一栏是对这个芯片的基本的说明,然后点击“OK”。图表21有些芯片会提供启动代码,我们这个时候点击“YES”,到此一个工程就建立好了。4126配置工程工程建立好了之后,还要对工程进行进一步的设置,以满足要求。首先用鼠标右键注意用右键点击左边工程窗口的“TARGET1”,会出现一个菜单,选择“OPTIONSFORTARGETTARGET1”(也可以通过点击工程窗口的TARGET1”,然后使用菜单“PROJECT”“OPTIONSFORTARGETTARGET1”),即出现工程配置的对话框,如下图所示图表22这个对话框很复杂,而且根所选择的芯片有关,这里共有10个页面,绝大多数选择默认配置即可,下面将对一些需要注意的配置简单介绍一下。4127OUTPUT标签页的设置图表23SELECTFOLDERFOROBJECTS选择编译之后的目标文件存储在哪个目录里,默认位置为工程文件的目录里。NAMEOFEXECUTABLE生成的目标文件的名字,缺省是工程的名字。CREATEEXECUTABLE生成OMF以及HEX文件。OMF文件名同工程文件名但没有带扩展名。DEBUGINFORMATION用于DEBUG版本,生成调试信息,否则的话无法进行单步调试。CREATEBATCHFILE生成用于实现整个编译过程的批处理文件,使用这个文件可以脱离IDE对省程序进行编译。CREATEHEXFILE这个选项默认情况下未被选中,如果要写片做硬件实验就必须选中该项。这一点是初学者易疏忽的,在此特别提醒注意一定要要选中,否则编译之不生成HEX文件。BIGENDIAN编码格式,与CPU相关,如果CPU采用的是BIGENDIAN编码则勾选上。BROWSEINFORMATION产生用于在源文件快速定位的信息。CREATELIBRARY生成LIB库文件,默认不选。在我们刚刚新建的HELLOWORLD工程中,更改了三个地方,在工程目录下新建了一个OUTPUT目录保存目标文件,以避免和源文件混在一起。另外选中了CREATEHEXFILE和BROWSEINFORMATION,如上图所示。4128C/C标签页的设置图表24INCLUDEPATHS指定头文件的查找路径,可以添加多个。这里我们所有的选择保持默认选择就可以了。4129DEBUG标签页的设置图表25左边是对应UVISION3的模拟环境,右边是针对仿真器,这里选择右边的ULINKCORTEXDEBUGGER仿真器为例进行说明。如果已经将ULINK仿真器连接到你的电脑,点击“SETTINGS”你将进入ARMTARGETDRIVERSETUP界面。图表26ULINKJTAG/SWDADAPTERSERIALNO列出了当前连接到主机的所有ULINK适配器的串号,你可以通过列表选择要使用的ULINK适配器。ULINKVERSION,DEVICEFAMILY以及FIRMWAREVERSION分别列出了当前选择的ULINK适配器的版本,设备家族和固件版本。SWJ,PORT根据和开发板接口的类型选择端口,有JTAG和SW两种,勾选SWJ表示支持两种方式。MAXCLOCK指定和开发板的最高通信时钟。JTAGDEVICECHAIN显示当前通过适配器连接上的开发板。AUTOMATICDETECTION自动监测,选择系统将自动检测连接上的开发板,建议使用。MANUALCONFIGURATION手动配置,通过手动设置IDCODE,DEVICENAME和IRLEN等属性来查找设备。DEBUGCACHEOPTIONSCACHECODE通知调试器已经下载的程序代码不会改变,选中的话UVISION将不会从目标系统读取程序代码。CACHEMEMORY决定调试程序期间程序停止运行的时候,是否更新存储器显示。DOWNLOADOPTIONSVERIFYCODEDOWNLOAD比较目标存储器和调试器上的应用程序的内容。DOWNLOADTOFLASH将代码下载到所有的存储器区域,如果不选中,调试器不会把代码下载到FLASHDOWNLOADSETUP中制定的存储器地址范围。MISCOPTIONSUSERESETATSTARTUP选中的时候,调试器在开始调试的时候会发起一次CPU复位。LOADAPPLICATIONATSTARTUP将OUTPUT标签中指定的可执行文件导入到调试器的起始地址。RUNTOMAIN开始调试时执行到MAIN函数入口暂停执行。INITIALIZATIONFILE指定一个包含一组调试命令的文件,这组命令是调试器开始工作或者调试函数在调试期间要使用的。RESTOREDEBUGSESSIONSETTINGS使用上一次调试过程对BREAKPOINTS,WATCHPOINTS,MEMORYDISPLAY和TOOLBOX(如果这些项被选中的话)。DRIVERDLLPARAMETER由DEVICEDATABASE设置的目标驱动DLL,不要修改。DIALOGDLLPARAMETER由DEVICEDATABAS

温馨提示

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

评论

0/150

提交评论