当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于凌阳SPCE061A的嵌入式应用系统设计

引言

  SPCE061A是凌阳科技新推出的u課SP内核的十六位单片机,内嵌32K字 Flash的SPCE061A时是适用于数字语音识别应用领域的一种经济的选择。它支持精简指令系统,片内具有丰富的硬件资源。只需设计少量的片外扩展电路即可实现应用系统的硬件功能要求。μC/OS-II是一个源代码公开的精简的实时性很强的操作系统内核,移植性强,基于μC/OS-II来设计系统可以提高系统软件开发的效率。将μC/OS-II移植到SPCE061A上,在μC/OS-II的平台上设计软件对于提高相关嵌入式应用系统产品的质量,减少开发周期和降低成本方面有着重要的意义。

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

  SPCE061A的系统结构

  SPCE061A具有丰富的片上系统资源,结构如图1所示,其片内包括:

  ·16位的高性能u課sp内核单片机

  ·CPU时钟范围:0.32MHz~ 49MHz

  ·片内32k字的Flash程序存储器、2k字的SRAM数据存储器

  ·2个16位I/O端口

  ·14个中断源

  ·1通道专用音频A/D转换通道

  ·7通道A/D转换通道

  ·内置MIC放大电路和自动增益(AGC)放大电路

  ·2路电流输出型的D/A转换通道

  ·2个16位通用定时器/计数器

  ·实时实钟(RTC)

  ·低电压复位、低电压监测

  ·内置在线仿真接口(ICE)

  ·具有保密功能

  ·具有WatchDog功能

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

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

  μC/OS-II 在SPCE061A上的移植

  μC/OS-II内核移植的主要内容

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

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

  移植中的关键问题

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

  语音识别系统实例

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

  //建语音识别初始化任务

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

  //建立语音训练任务

  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上显示出来。

  结语

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

  参考文献:

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

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

  3.  任哲. 嵌入式实时操作系统uC/OS-II原理及应用[M]. 北京:北京航空航天大学出版社, 2005
  
  4.  刘海成,秦近平,韩喜春. MCU-DSP型单片机原理及应用[M]. 北京:北京航空航天大学出版社, 2006

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

摘 要:介绍了一种基于ZigBee和GPRS技术的无线远程医疗健康监护系统的总体架构,该系统将无线传感技术、GPRS技术和Internet技术相结合,设计了以SPCE061A微控制器 、CC2520射频芯片为核心器件,对...

关键字: GPRS SPCE061A 无线传感网络 医疗监护

嵌入式是目前比较火的行业之一,学习它的可要注意了,如果之前你知道嵌入式还好,如果还没有接触过的话,那么可要从嵌入式系统开始去了解了,下面一起来看看嵌入式系统的分层与专业的分类吧。

关键字: 嵌入式 嵌入式应用

Synopsys发表公告,表示将推出新的64位ARC处理器IP,可将高端嵌入式应用的性能提高3倍。新的64位ARCv3 ISA支持52位物理和64位虚拟地址空间,以实现对更大内存的有效访问;ARC HS5x(32位)和H...

关键字: arc hs处理器 嵌入式应用 16纳米制程技术

不是所有便携式系统都像图1(参见本系列文章的第二部分)所示的系统这么简单。图3给出了可穿戴电子设备的典型方框图。由于存在大量功能块和子系统,设计复杂性进一步提高。

关键字: 电源技术解析 超低功耗 嵌入式应用

考虑到我们今天所生活的时代,嵌入式系统的便携性是十分关键的设计考虑因素。便携式系统通常用电池供电,而电池使用寿命取决于系统的功耗。在提倡“绿色环保”计划的今天,

关键字: 嵌入式应用 电源技术解析 超低功耗

市场上涌现各种价格亲民的经济型微控制器,助力新一代开发者创造令人兴奋的新型嵌入式应用。如今的开发工具非常好用,软硬件均呈现模块化趋势,插接安装简单容易,使得产品设计评估和原型开发周期大幅缩短。

关键字: STM32 嵌入式应用 嵌入式开发 微控制器

嵌入式应用包括信号处理算法与控制算法,在多种实时嵌入式系统中,这两种算法共同执行必需的功能,因此我们应了解控制算法与数字信号处理器 (DSP) 算法是如何实现互操作性的。

关键字: DSP 嵌入式处理器 嵌入式应用 微处理器

横跨多重电子应用领域、全球领先的半导体供应商意法半导体扩大其业界领先的32位微控制器开发生态系统范围,新增STM32Cube底层应用程序编程接口(LL API)软件,让STM32ARM? Cortex?-M微控制器专家级...

关键字: STM32 嵌入式应用 意法半导体 技术前沿

考虑到我们今天所生活的时代,嵌入式系统的便携性是十分关键的设计考虑因素。便携式系统通常用电池供电,而电池使用寿命取决于系统的功耗。在提倡“绿色环保”计

关键字: 低功耗 嵌入式应用 嵌入式开发

会话初始协议(SIP协议) 是一种用于IP网络多媒体通信的应用层控制协议,可建立、修改、和终止多媒体会话。SIP具有良好的互操作性和开放性,支持多种服务且具有多媒体协商能

关键字: arm9平台 Linux 嵌入式应用 驱动开发 sip协议

嵌入式教程

6897 篇文章

关注

发布文章

编辑精选

技术子站

关闭