用基于ARM7的单片机实现32位系统
随着全球化工业生产的发展与深入,终端产品功能的多样化,8位或8051的工程师在设计工业控制器和模块时,越来越需要复杂的以RISC(精简指令系统)为基础的微处理器。由于有机能源的短缺和全球气候变暖,对电子设备能耗的要求越来越高。意法半导体的STR7系列单片机内置闪存存储器,寄存器以一种很简单的方式排列。STR7可以很方便地连接各种外部设备。ST提供丰富的应用笔记和例行程序,有效地降低了应用和学习的入门门槛。目前意法半导体提供三种评估板,STR710、STR720和STR730。
图1. 评估板
有效地用好用熟一款单片机,最大限度地发挥硬件的效能是每一个工程师的目标;首次接触ARM的系统,要想达到上述目标,对于一个用惯8位或16位单片机的工程师来说,最简单及最有效的方法就是以较短的时间快速地浏览和学习,然后迅速地进入一个设计项目,在工作中边干边学。STR7是一款以ARM7TDMI为核心的通用单片机,它拥有复杂的内部结构,包含丰富的外设和复用的I/O端口,所有的片上外设都有对应的寄存器控制。学好用好单片机,首先就是要熟练地掌握各种寄存器所控制的功能和它们的用法。有效地用好单片机的另个重要的问题是代码执行的效率,ARM7TDMI核心是RISC的结构,"C"语言是最常用的编程工具,因此代码的执行效率与编译器的效率密切相关,目前市面上所有支持ARM7的C语言编译器都可用于STR7系列单片机,常见的编译器有ARM公司的RealView和ADS、IAR公司的编译器、KEIL公司的编译器和在开放软件协议框架下的GCC编译器.
STR7系列单片机有三个子系列,即STR710、STR720和STR730。以下是他们的共同特性,表一和表二列出了STR710和STR720系列的主要参数。
STR7系列特性
- 操作温度范围是-40℃到80℃。所以STR7单片机适合于设计工业应用器材、需要户外使用的产品以及需要苛刻工作环境的产品。
- 尽管拥有外部存储器接口(EMI),许多单片机还内嵌了80K字节至272K字节不等的闪存存储器,每款STR710系列的单片机更另外内嵌16K字节的闪存存储器作为额外的数据存储区。闪存存储器可擦写10万次,数据可保存20年。
- STR710和STR720系列单片机工作于3至3.6伏电压,STR730系列单片机工作于4.5至5.5伏电压;内置的电压转换器产生ARM7核心所需的1.8伏电压,省却了外接的电压转换器。
- 电源供电管脚、A/D采样的参考电压和I/O管脚的供电均是独立的输入端;这一特性使得产品的电源设计更加方便和灵活,为产品设计的多样性提供了方便,也有利于有效地处理电源的干扰问题。
- 在不同的STR7产品上分别配置了USB(2.0全速)或CAN总线接口,这两种串行通信接口已经非常广泛地应用在许多工业及汽车领域。
- 与其他ARM7的产品不同,STR7单片机配备了HDLC(高级数据链路控制),这个串行通信协议广泛地应用于仪器设备的互连接口。
- STR7单片机拥有多达4个UART接口。
- 通用输入输出端口(GPIO)可由寄存器的设置配置成多种不同的电气特性:推拉输出、内置上拉输入、开路输出、TTL输入、中断触发输入、模拟输入等。
- 六种电源功耗模式提供了多种优化能耗的手段和可能,这六种电源功耗模式为:全速、慢速、等待与低功耗等待、暂停和停止。
- 所有STR7单片机都有独立的JTAG调试接口,这个接口与所有的ARM产品的JTAG接口兼容,用户可以使用任何的ARM工具调试开发任一款STR7的产品。
表 1. STR710产品和特性
STR7的应用 - 配备ARM7核心的单片机拥有相同的指令运行平台,但不同的产品间仍有很大的差别;因此,应用工程师必须详细了解具体产品的存储器映像、各种内置外设的操作与特性,更重要的是各个寄存器的构造和控制细节。在STR7中,所有的内置外设都联结在高速外设总线(APB)上,每一种外设的控制寄存器被有效地分配在一个4K字节的地址空间内,所有外设的4K字节寄存器映像空间是按照一个特定的顺序排列在制定的寻址范围中。熟悉8位或16位单片机的工程师会发现,掌握STR7的技术难度相对较低,通常一个熟练的工程师只需二至三个月的时间即可有效地使用STR7进行产品设计。
图 2. STR710的寻址空间分布
- 为简化用户的开发工作,意法半导体开发了71xLibraryR.lib和71xLibraryD.lib 程序库,它们集成了对STR710系列中各种外设的操作功能;使用STR710系列设计产品的工程师只要掌握相应的应用程序界面,即可方便地操作和使用各种STR7的外设,有效地缩短了客户的设计开发周期。上述程序库是以KEIL公司的C编译器生成,可以在常用的ADS软件环境下仿真调试。在提供编译连接好的程序库的同时,意法半导体还同时提供相应的C源程序,应用工程师可以经过略加修改,将需要的库函数包含在它自己的程序中,或使用其他的C编译器环境。
图3. 在KEIL的ARM开发环境下使用STR71x LIB
- 用STR7单片机设计固件程序,设计工程师首先需要合理地安排外设的使用和输入输出端口的分配,然后对各种配置寄存器进行编程。在确定了硬件环境的基础后,软件算法的实现将是主要的设计工作;KEIL的ARM开发环境中集成了一个STR7仿真器,可以用来有效地执行和调试STR7的软件算法。KEIL的ARM仿真器与KEIL的8051仿真器十分相似,熟悉8051开发环境的工程师可以很快地掌握ARM的开发环境。这个开发环境及其仿真器是在Windows下的软件,可以独立于硬件仿真环境之外运行,因此固件程序的开发调试工作可以与硬件目标板的开发工作同步进行,这将有效地缩短产品的开发周期。
- 将仿真和调试环境与STR7的结构和程序库紧密地结合起来,为工程师的调试尤其是初学者的学习提供了极大的便利。在KEIL的操作界面上,使用者可以清楚地看到STR7的结构,包括存储器的映像、寄存器的分配、外设的排列、外设寄存器的定义、中断的优先级管理等,涉及几乎所有STR7的内部器件。
图 4. 在KEIL的开发环境下所看到的STR7
- KEIL的开发环境是一个设计友好的图形界面,使用STR7的评估板和KEIL提供的JTAG硬件仿真器ULINK,工程师可以实时地察看外设寄存器和存储器的内容以及中断响应的情况,还能够观察输入输出端口的状态;更重要的是,在这个环境下,可以在C源程序的级别设置执行断点设置、单步执行、跳跃执行或连续执行等多种程序调试的操作。同时,KEIL开发环境可以直接执行对STR7内部闪存的烧录。
图5. STR710评估板与KEIL的ULINK硬件仿真器的连接示意
- STR720系列单片机内置存储器管理单元(MMU),为使用先进的RTOS(实时操作系统)提供了极大的便利,因此STR720适用于使用一些商用的操作系统。在没有MMU的STR710和STR730系列单片机中,可以采用KEIL的RTOS核心ARTX而不用额外支付操作系统的开发费用。KEIL还提供了以太网、PPP/SLIP、UDP和TCP/IP协议的程序库。
|