APP下载

μC/OS-II 的多任务系统在SOPC 中的硬件实现*

2010-08-27孔庆臣张广兰刘忠艳

单片机与嵌入式系统应用 2010年4期
关键词:多任务顶层嵌入式

孔庆臣,张广兰,刘忠艳

(黑龙江科技学院,哈尔滨150027)

本人在教学及科研实验中,对基于μC/OS-II 的多任务系统在SOPC 中的设计总结出了具体实现方法。经过实践验证,该方法简单、可靠,值得推广。

1 μC/OS 实时操作系统

μC/OS-II 是一个可移植、可裁剪、占先式、实时的多任务内核,主要有任务管理、时间管理、信号量管理、消息邮箱管理、列队管理、内存管理等。由于绝大部分代码都是用C 语言编写的,只有极少部分与处理器密切相关的代码是用汇编语言编写的,用户只要做很少的工作就可以把它移植到各类8 位、16 位、32 位处理器上。另外,μC/OS-II 的构思巧妙,结构简单、精炼,可读性强,有足够的稳定性和安全性,具备了实时操作系统的全部功能,在嵌入式系统领域有着广泛的应用。

2 硬件设计

基于μC/OS-II 的多任务系统在SOPC 系统中的硬件实现与普通SOPC 硬件设计相同,使用Quartus II 创建设计工程,工程创建完成之后,创建顶层实体。创建完顶层设计文件后,使用SOPC Builder 创建Nios II 嵌入式处理器,添加、配置系统的外设IP,组成Nios II 系统模块。Nios II 系统模块设计完成之后要加入到该顶层实体中,然后进行其他片上逻辑的开发。系统整体开发流程如图1所示。

图1 基于μC/OS-II 的多任务系统在SOPC 设计的流程

3 软件开发

利用Nios II IDE 开发环境,使用C/C++语言编程设计。根据多任务系统的实际情况确定任务栈大小,并定义个任务栈;依照任务轻重缓急设定优先级,创建和编写各具体任务,最后调用OSStat()启动MicroC/OS-II。具体开发流程如图2所示。

图2 在Nios II IDE编写多任务系统的软件流程

4 具体实现方法

本文涉及内容已在Nios development Board Cyclone II(EP2C35)中实现。通过在Quartus II 中使用SOPC Builder 建立一个Nios II 最小系统,然后在Nios II IDE 编写基于μC/OS-II 实时操作系统的应用程序,同时运行3个任务,分别是LED 跑马灯、步进电机运行控制、LCD16207 显示字符。具体电路如图3所示。

结 语

该方案已经在具体项目中实现。如果组成多任务的单任务能够可靠运行,只要把Nios II IDE 环境下的System Library 设置成MicroC/OS-II,在源程序里加入μC/OS-II 多任务的相关函数及必要的参数,把各个单任务程序整合到程序中,就可以在极短时间完成多任务的设计。若想开发成多任务专用集成电路(ASIC),可以保持上述开发过程不变,使用Stratix FPGA 系列芯片,在需要时,通过Altera 的HardCopy 设计中心将由FPGA 构成的系统无缝移植为低成本、功能等价、引脚兼容的HardCopy II结构化的ASIC,是一个值得推广的成熟、高效的设计方案。

图3 硬件实现电路

[1]侯建军,郭勇.SOPC 技术基础教程[M].北京:清华大学出版社,2008:175-180.

[2]李兰英.Nios II 嵌入式软核SOPC 设计原理及应用[M].北京:北京航空航天大学出版社.2006:371-384.

[3]杨宗德,张兵.μC/OS-II 标准教程[M].北京:人民邮电出版社,2009:32-37.

[4]华强电子.μC/OS-II 在应用系统中任务划分方法的研究[OL].[2009-12-10].http://www.hqew.com/File/NewsHTML/20097/200971142418294564.htm.

[5]博创科技.UP-CUP FPGA2C35 平台[OL].[2009-12-5].http://www.up-tech.com/product/detail.asp?id=115.

[6]Altera.结构化ASIC 设计流程[OL].[2009-11-20].http://www.altera.com.cn/products/software/flows/asic/qts-structured_asic.html.

猜你喜欢

多任务顶层嵌入式
汽车顶层上的乘客
基于中心化自动加权多任务学习的早期轻度认知障碍诊断
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
基于判别性局部联合稀疏模型的多任务跟踪
基于多任务异步处理的电力系统序网络拓扑分析
一类完全由内积构造的多任务核的几个性质
加快顶层设计
健康卡“卡”在顶层没联网
Altera加入嵌入式视觉联盟