EDN China > 设计实例 > 嵌入式系统 > 操作系统 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

基于us/OS-II操作系统的断路器控制器研制

2009年06月05日 ?? 收藏0

  0. 引言

  断路器的智能操作是断路器智能化发展过程中的一个全新的概念。智能控制器是实现智能操作的核心部件[1],其基本任务是通过对电网参数的采集和处理,给出相应的控制信息。此外,智能控制器通过现场总线可以和计算机连接,进行远程监控管理。智能控制器的核心部分是软件设计。目前,我国的大多数控制器的软件设计都是采用主循环程序和中断服务程序相配合的设计方法。而近年来嵌入式系统的使用越来越成熟,其中us/OS-II嵌入式操作系统由于源代码公开化,内核体积小,可移植性好等原因,受到广泛的应用。本文采用了TI公司的DSP芯片TMS320LF2407A作为嵌入式系统硬件,将us/OS-II嵌入式操作系统移植到DSP芯片中,提高了系统的运行效率和可靠性。

  1. us/OS-II嵌入式操作系统

  嵌入式系统是执行专用功能并被内部计算机控制的设备或系统,操作系统以及应用软件集成于计算机硬件系统之中,即系统的应用软件和系统的硬件一体化,嵌入式系统具有软件代码少,高度自动化,响应速度快等特点,特别是适合于要求实时和多任务处理的情况。

  us/OS-II嵌入式操作系统是一个完整的、源代码公开的、可移植的、固化的、可裁剪的占先式实时多任务内核,它是一种不可剥夺型内核,所以在任务调度是必须先设定任务的优先级。us/OS-II包括以下几个部分:内核管理、任务管理、时间管理、事件控制块、信号量管理、邮箱管理等。

  us/OS-II中创建的任务有5种状态[2],分别是:睡眠态、等待态、就绪态、运行态、中断服务态。us/OS-II是占先式内核,每个任务都要设置优先级,优先级最高的任务可以先进入CPU运行,其它任务只能先在就绪状态中等待。us/OS-II最多可以创建多达64个任务(实际可以使用的是56个,因为前4个和后4个任务优先级被保留做系统升级用)。

  2. 嵌入式系统的硬件设计

  2.1 智能控制器总体结构及工作原理

  智能控制器硬件系统的总体结构如图1所示。该控制器的主要任务是采集电网上的电流和电压信号,经过信号处理电路的调理后,使信号变换成DSP的输入标准电压0到3.3V,DSP控制器通过对采集来的信号进行分析,正确的发出动作指令,并通过CAN总线向监控计算机发送相关数据,实现远程监控管理。系统构成主要包括DSP及其外围电路所构成的最小系统、A/D信号采集与处理电路,液晶显示电路,电源,脱扣电路等部分。DSP的外围电路包括晶振、滤波回路和片外RAM连接选择存储空间时使用的一些门电路。

智能控制器硬件系统的总体结构

  2.2 TMS320LF2407A芯片及其开发环境CCS2.2简介

  TMS320LF2407A是专为基于控制的应用而设计的,它将高性能的DSP内核和丰富的微控制器的外设集成于单片中,从而成为传统的微控制器的理想替代。TMS320LF2407A DSP控制器的外设包括[3]:①事件管理器②CAN接口③A/D通道模数转换④SPI串行外设接口⑤SCI串行通信接口⑥通用双向I/O引脚。CCS2.2是CCS系列中的最新版本,有很多既方便又强大的功能。主要包括:①支持同时载入多个工程文件②增加了单步调试命令③编译器有所加强,对语法的检查更加严格④通过建立库工程,支持编译函数文件成为库文件

  3. 嵌入式系统的软件设计

  3.1 us/OS-II在2407上的移植

  us/OS-II在2407上的实现移植是嵌入式系统软件设计的关键所在,主要工作是对移植相关的OS_CPU.H,OS_CPU_A.ASM,OS_CPU_C.C三个文件的编写以及对OS_CFG.H配置的正确设定。

  在对OS_CFG.H配置中根据嵌入式实时系统的实际需要,对最低优先级OS_LOWEST_PRIO、最多任务控制块OS_MAX_EVENTS、最多任务数OS_MAX_TASKS进行设置,对需要使用的功能进行选择置位。

  对OS_CPU.H文件的编写主要包括对以下4个宏进行设置:

  ① OS_ENTER_CRITICAL()

  ② OS_EXIT_ CRITICAL()

  ③ OS_STK_GROWTH

  ④ OS_TASK_SW()

  其中,OS_ENTER_CRITICAL()和OS_EXIT_ CRITICAL()是关于关中断和开中断的设置,由于在TMS320LF2407A中C编译器可以嵌入汇编语言,所以本文设置:

  #define OS_ENTER_CRITICAL() asm(" SETC INTM") //关中断

  #define OS_EXIT_CRITICAL() asm(" CLRC INTM") //开中断

  OS_STK_GROWTH是关于堆栈的使用方式,由于TMS320LF2407A中堆栈是从低地址向高地址递增的,所以本文设置:

  #define OS_STK_GROWTH 0


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

操作系统? 断路器? 控制器? DSP?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈