0 前言
随着信息化、智能化、网络化的发展,嵌入式系统技术也将获得广阔的发展空间。以信息家电为代表的互联网时代嵌入式产品,不仅为嵌入式市场展现了美好前景,注人了新的生命,同时也对嵌入式系统技术提出了新的挑战。这主要包括:支持日趋增长的功能密度、灵活的网络联接、轻便的移动应用和多媒体的信息处理。
由于因特网技术的成熟、带宽的提高,ICP和ASP在网上提供的信息内容日趋丰富、应用项目多种多样,像电话手机、电话座机及电冰箱、微波炉等嵌入式电子设备的功能不再单一,电气结构也更为复杂。为了满足应用功能的升级,设计师们一方面采用更强大的嵌入式处理器如32位、64位RISC芯片增强处理能力;同时还采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期。
ARM微处理器因其卓越的低功耗、高性能在32位嵌入式应用中已位居世界第一,是高性能、低功耗嵌入式处理器的代名词。为了顺应当今世界技术革新的潮流,了解、学习和掌握嵌入式技术,就必然要学习和掌握以ARM微处理器为核心的嵌入式开发环境和开发流程,这对于研究和开发高性能微处理器、DSP以及开发基于SOC芯片设计及应用系统是非常必要的。作为电子信息专业的本科生很有必要了解和掌握32位嵌入式应用的开发技术。所以,通过对嵌入式系统设计课程的学习和本次设计的实践,一方面使学生具有较强的综合素质,成为具有良好的实际操作能力设计能力符合社会需求的开拓性电子应用人才,另一方面也可为高年级本科生提供一个可扩展的嵌入式系统设计平台。
1 STR710FZ2TB微处理器介绍
嵌入式微处理器的基础是通用计算机中的CPU。在应用中,将微处理器装配在专门设计的电路板上,只保留和嵌入式应用有关的母板功能,这样可以大幅度减小系统体积和功耗。为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度和工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点,嵌入式处理器目前主要有Power PC, 68000, MIPS, ARM系列等。
STR710F 系列产品以工业标准的ARM7TDMI 32位RISC CPU为内核,特别适用于需要尺寸紧凑、CPU功能强大的嵌入式系统和可升级的解决方案如用户界面、工厂自动化系统和销售点(POS)应用等。该系列微控制器提供同级产品中最佳的闪存随机存取时间,直接从闪存的速率高达33MHz;由于采用突发加速技术,顺序代码零等待状态,最大存取速率50MHz,因此这个系列产品非常适合实时应用。该系列配备多达10个通信接口,包括CAN、 USB、HDLC (高级数据链路控制)、MMC (多媒体卡)和智能卡接口。灵活的封装选择包括有小型低量引脚的64引脚TQFP64和外置存储器总线的144引脚TQFP144。该系列包括内置USB 和CAN接口的低成本64k字节闪存版微控制器STR711和 STR712,以及内置128或256字节程序闪存的经典型微控制器,和对于无需USB和CAN接口的成本更低的“裸”微控制器STR715,该芯片内置 64千字节代码闪存、16字节数据闪存和16字节RAM,没有USB和CAN模块,这个成本优化型32位微控制器采用 64引脚的TQFP64封装,专门为占板尺寸小的低成本应用而设计,例如:需要多用途和高性能处理器而不需要USB和CAN接口的工业系统和消费家电。
STR710工业级微控制器以ARM7TDMI 16/32处理器为内核,内带Flash、SRAM、EMI、USB、CAN、5个定时器、12位ADC、10个通信接口。
2 uC/OS-II操作系统介绍
嵌入式系统的软件一般由嵌入式操作系统和应用软件组成, 编译过程是一起进行的。而操作系统的软件又与硬件紧密相关, 必须与具体应用相结合才能发挥其优势, 即必须结合实际系统的需求进行合理的裁剪。所以, 如果能够建立相对通用的软硬件基础, 然后在其上开发出需要的系统, 是一种比较好的发展模式。从某种程度上来说, 嵌入式系统是指能够运行操作系统的软硬件综合体。就实时嵌入式操作系统(operation system )而言, 它可大致分为商用嵌入式OS与源码开放的嵌入式OS, 前者如WindRiver公司的Vxworks、ISI公司的pSOS和Quan- tum公司的QNX 等, 后者如免费的嵌入式Linux, 以及本文中所用到的uC/OS-II。
μC/OS-II由Micrium公司提供,是一个可移植、可固化的、可裁剪的、占先式多任务实时内核,它提供信号量、带互斥机制的信号量、事件标志、消息信箱、消息队列、内存管理、时钟管理、任务管理等服务,适用于多种微处理器,微控制器和数字处理芯片(已经移植到超过100种以上的微处理器应用中),同时,该系统源代码开放、整洁、一致,注释详尽,适合系统开发。
3 嵌入式系统设计
3.1 硬件设计
该系统的硬件主要由STR710F微处理器,电源、复位、时钟电路,JTAG调试电路,基本的按键和LED显示等人机接口电路和时钟电路所组成。系统设计结构如图1所示。
在硬件上,系统包括基于STR710FZ2TB的ARM开发平台和时钟电路两大部分,其中ARM开发平台由电源部分,复位电路,时钟电路,JTAG调试电路,Boot模式配置电路,ADC接口等组成。
电源部分电路见图2所示。
其中LM1117是稳压集成电路,输入5V,输出3.3V。
复位芯片采用 IMP809S,系统主时钟为16MHz,ADC接口电路可外接模拟信号或用板上模拟电压。
3.2 软件设计
3.2.1 BootLoader设计
简单地说,BootLoader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。通常,Boot Loader 是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的 Boot Loader 几乎是不可能的。另外,由于 Boot Loader 的实现依赖于 CPU 的体系结构,因此大多数 Boot Loader 都分为 stage1 和 stage2 两大部分。依赖于 CPU 体系结构的代码,比如设备初始化代码等,通常都放在 stage1 中,而且通常都用汇编语言来实现,以达到短小精悍的目的。而 stage2 则通常用C语言来实现,这样可以实现给复杂的功能,而且代码会具有更好的可读性和可移植性。
Boot Loader 的 stage1 通常包括以下步骤(以执行的先后顺序):
硬件设备初始化。
为加载 Boot Loader 的 stage2 准备 RAM 空间。
拷贝 Boot Loader 的 stage2 到 RAM 空间中。
设置好堆栈。
跳转到 stage2 的 C 入口点。
Boot Loader 的 stage2 通常包括以下步骤(以执行的先后顺序):
初始化本阶段要使用到的硬件设备。
检测系统内存映射(memory map)。
将 kernel 映像和根文件系统映像从 flash 上读到 RAM 空间中。
为内核设置启动参数。
调用内核。
3.2.2 应用程序设计
本实例主要用FIQ来设计一个时钟,实现一小时计时,由于需要4个7段数码管,考虑到I/O口的数量,所以采用动态显示方式。要点是要掌握ARM7TDMI的快速中断原理和定时器原理,能正确地分配时钟。程序流程图如图8 所示。
图8 时钟程序流程框图
4 开发环境介绍
硬件开发主要采用Protel 99se。软件开发主要采用ADS1.2集成开发环境和EMBEST PowerICE For ARM仿真器。下面着重对ADS1.2集成开发环境进行介绍。
ADS 集成开发环境是ARM 公司推出的ARM 核微控制器集成开发工具,英文全称为ARM Developer Suite,成熟版本为ADS1.2。ADS1.2 支持ARM10 之前的所有ARM 系列微控制器,支持软件调试及JTAG 硬件仿真调试,支持汇编、C、C++源程序,具有编译效率高、系统库功能强等特点,可以在Windows98、Windows XP、Windows2000 以及RedHat Linux上运行。
ADS 1.2 由6 个部分组成,如表1 所示
表1 ADS 1.2 的组成部分
5 结束语
本次设计基本完成预期目标,时钟计时精确稳定可靠。通过本次设计实践,使嵌入式系统课程知识得到了回顾,加深了理解,基本掌握了ARM系统的软硬件开发流程,无论是;理论知识还是实际动手能力都到了较大提高。
参考文献
[1] 田泽.嵌入式系统开发和应用教程[M].北京:北京航空航天大学出版社,2005:1-9.
[2] STR71xF 参考指南(意法半导体公司);
[3] 嵌入式实时操作系统uC/OS-II(第2版) 2003.5 北京航空航天大学出版社 邵贝贝;
[4] 张锡鹤 盛鸿宇.印制电路板电路设计实训教程[M].北京:科学出版社,2005。
[5] Samuel P.Harbison III, Guy L.Steele Jr.C:A Reference Manual Fifth Edition.China Machine Press,2003.