基于uC/OS-II和SPCE061A的应用系统的设计

时间:2022-08-04 09:34:31

基于uC/OS-II和SPCE061A的应用系统的设计

摘要:本文介绍了基于uC/OS-II和SPCE061A的应用系统的设计,硬件上采用SPCE061A的最小系统硬件结构为基础,在软件体系上移植了嵌入式实时操作系统uC/OS-II,并通过对凌阳公司SPCE061A的体系结构的分析,分析了移植过程中的涉及的主要内容和关键问题。并在此基础上通过一个语音识别实例介绍了的应用程序的设计。

关键词:嵌入式系统;uC/OS-II;SPCE061A;应用系统设计

中图分类号:TP316文献标识码:A文章编号:1009-3044(2008)19-30075-02

The Design of Application System Based on uC/OS-II & SPCE061A

GUAN Xiao-chun

(College of Physics & Electronics, Wenzhou University, Wenzhou 325027, China)

Abstract: The paper introduces the design of application system based on uC/OS-II & SPCE061A. It's hardware is based on SPCE061A's minal system, the software adoptes the transplant of uC/OS-II RTOS on it. The main points and important questions related with uC/OS-II RTOS's transplant on SPCE061A was discussed.A voice recognising programme was introduces based on these things.

Key words: embedded system; uC/OS-II; SPCE061A; application system design

1 引言

随着单片机功能集成化的发展,其应用领域由传统的控制扩展为控制处理、数据处理以及数字信号处理等领域。uC/OS-II是一个源代码公开的精简的实时性很强的操作系统内核,移植性强,基于uC/OS-II设计应用程序比较简单。SPCE061A是凌阳科技新推出的u'nSP内核的高集成度,高性能十六位单片机,内嵌32K字 Flash的SPCE061A时是适用于数字余音识别应用领域的一种最经济的选择。它支持精简指令系统,片内具有丰富的硬件资源。只需设计少量的片外扩展电路即可实现应用系统的硬件功能要求。而将uC/OS-II移植到SPCE061A上,对于提高相关嵌入式应用系统产品的质量,减少开发周期和降低成本方面有着重要的意义。

2 基于SPCE061A的硬件最小系统的设计

2.1 SPCE061A的系统结构

SPCE061A具有丰富的片上系统资源,结构如图1所示,其片内包括:16位的高性能u'nsp内核单片机;CPU时钟范围:0.32MHz~49Mz;片内32k字的Flash程序存储器、2k字的SRAM数据存储器;2个16位I/O端口;14个中断源;1通道专用音频AD转换通道;7通道AD转换通道;内置MIC放大电路和自动增益(AGC)放大电路;2路电流输出型的DA转换通道;2个16位通用定时器/计数器;实时实钟(RTC);低电压复位、低电压监测;内置在线仿真接口(ICE);具有保密功能;具有WatchDog功能。

图1 SPCE061A的结构

2.2 基于SPCE061A的最小应用系统的构建

基于SPCE061A丰富的片内资源,在它的OSCO、OSCI端接上32768Hz晶体振荡器及谐振电容,在锁相环压控振荡器的阻容输入VCP端接上相应的电容、电阻后,再加上复位电路即可构成一个最小系统。如图2所示。电路接口可扩展LCD液晶显示器用于对有关数据的实时显示。

图2 SPCE061A的最小应用系统框图结构

3 uC/OS-II 在SPCE061A上的移植

3.1 uC/OS-II实时操作系统简介

uC/OS-II是为微控制器和应用软件开发而设计的抢占式实时多任务操作系统,其内核主要实现任务调度、任务间的通信、内存管理和时间管理。它是一段微控制器启动后首先执行的后台程序,作为整个系统的框架贯穿系统运行的始终。实时应用系统软件的设计采用uCOS可以使设计过程简化,因为Ucos可以将一项工作划分为多个相互独立的任务,并根据任务的重要性来分配任务的优先级。每个任务完成简单的功能,有自己的栈空间,在运行状态时认为自己独占CPU,任务的调度完全由后台的uC/OS-II来完成。

3.2 uC/OS-II内核移植的主要内容

uC/OS-II的软件体系结构以及与硬件的关系如图3所示。多任务应用程序位于最上层,通过调用内核的API函数来实现任务的调度和切换、存储管理和任务进程的通讯。uC/OS-II的大部分代码是用C语言编写,而与硬件相关的三个源程序文件0S_CPU.H,OS_CPU_A.A,OS_CPU_C.C含有与硬件处理器相关的汇编语言代码,来实现对处理器寄存器的访问以及堆栈的操作。因而uC/OS-II操作系统在SPCE061A上的移植主要是对0S_CPU.H,OS_CPU_A.A,OS_CPU_C.C三个源程序的编写。

图3 uC/OS-II软硬件体系结构

其中OS_CPU.H中包括了用#define定义的与处理器相关的常量,宏和类型定义。这样与uC0S-II所定义的变量类型相一致。OS_CPU_A.A中要求用户编写四个简单的汇编函数:(1)OSStartHighRdy()函数的作用是用于运行最高优先级的就绪任务;(2)OSCtxSw()是实现CPU在正常运行时任务间的切换,即对当前任务堆栈的保存和对高优先级任务堆栈的弹出,使最高优先级任务获取CPU的控制权;(3)OSIntCtxSw()是在中断服务程序中执行任务切换功能的函数;(4)OSTickISR()是系统时钟的中断服务程序。该程序执行频率为1O~100Hz,主要功能是检查是否有由于延时而被挂起的任务成为就绪任务,如果有就调用OSIntCtxSw()进行任务切换,从而运行高优先级的任务。OS_CPU_C.C中主要是编写任务堆栈初始化函数OSTaskStklnit()。

3.3 移植中的关键问题

多任务系统在运行时,任一当前正在运行的任务好像独占CPU一样,需要为每个任务开辟一段内存空间作为该任务的任务堆栈,该堆栈的作用是保存任务被切换前时CPU各寄存器的值以及系统堆栈的数据。由于不同的处理器其内部的寄存器分配不一样,有时堆栈的增长方式也不一样,因而移植的关键问题就是要针对不同的处理器如何在任务切换时做好寄存器的状态的保护,以及系统堆栈和任务堆栈的切换,从而编写好介于底层硬件和操作系统之间的软件层。凌阳SPCE061A单片机有R1~R5五个通用寄存器,以及段寄存器SR,程序计数器PC,共有7个CPU内部寄存器在任务切换前需要保存。uC/OS-II系统通过调用OSCtxSw()来实现任务的切换。

4 语音识别系统实例

本系统通过设计一个语音识别系统来验证uC/OS-II在SPCE061A上的移植成功,系统共创建4个实时任务,硬件实现上只需在最小系统上增加相应的音频电路。

//O1建语音识别初始化任务(下转第81页)

(上接第76页)

OSTaskCreate(Task1,(void *)0,(void*) tackl[-TASK-STK-SIZE-1],1);

//O1建立语音训练任务

OSTaskCreate(Task2,(void *)0,(void*) tack2[-TASK-STK-SIZE-1],2);

//建立语音识别任务

OSTaskCreate(Task3,(void *)0,(void*) tack3[-TASK-STK-SIZE-1],3);

//LCD显示的任务

OSTaskCreate(Task4,(void *)1,(void*) tack4[-TASK-STK-SIZE-1],4);

并使用信号量来实现语音识别任务和LCD显示的任务之间的通讯,使得系统在成功识别语音后同时控制LCD输出识别的正确与否的信息。系统运行结果:系统初始化,调用训练函数进行语音识别训练;训练成功后,进入语音识别循环,并将语音识别的结果在LCD上显示出来。

5 结论

uC/OS-II操作系统具有较强的实时性,而且代码量较小(总计8K多),现已被移植到许多处理器上。 而将uC/OS-II移植到SPCE061A芯片上,具有一定的应用价值,使得基于SPCE061A的应用系统的设计可以更加灵活。同时uC/OS-II实时操作系统的在SPCE061A移植,不但可以提高系统的实时性、可靠性和稳定性,还提高了应用软件的可移植性。降低了研发周期。

参考文献:

[1] JEAN J,LABROSSE.uC/OS-II源码公开的实时嵌入式操作系统[M]. 邵贝贝,译. 北京:中国电力出版社,2001.

[2] 邵贝贝. 单片机嵌入式的在线开发方法[M]. 北京:清华大学出版社,2004.

[3] 任哲. 嵌入式实时操作系统uC/OS-II原理及应用[M]. 北京:北京航空航天大学出版社,2005.

[4] 刘海成,秦,韩喜春. MCU-DSP型单片机原理及应用[M]. 北京:北京航空航天大学出版社,2006.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:神经网络的应用研究 下一篇:校园网防护ARP欺骗案例应用