关于μC/OS-II系列软件版权的说明
本文给出了在蓄电池化成工艺过程控制系统设计中,将嵌入式操作系统μC/OS-II用于系统软件设计,并将系统各功能模块划分成不同优先级的任务由系统内核进行调度,从而通过人机操作界面显示系统任务的具体方法。
工业以太网具有比现场总线更好的性能,正处于不断发展完善当中,因此研制基于工业以太网的设备具有很好的市场前景。本文设计的嵌入式控制器采用了基于ARM7TDMIS的微控制器LPC2292[12]。控制器的底层与现场总线CAN相连,向上与Ethernet/IP工业以太网相连。为提高可靠性,应用了冗余控制技术,备有一个一模一样的冗余控制器。通过LVDS接口,控制器与冗余控制器相连,并相互在线监测。同时,本文采用了嵌入式实时操作系统μC/OS-II[3]。
文章首先介绍了uC/OS-II在ARM上的移植。在此基础上,根据以太网控制器ENC28J60的特点,设计了该系统的硬件结构。阐述了如何在嵌入式实时操作系统μC/OS-II上移植实现LwIP这套TCP/IP协议栈,并详细地描述了ENC28J60网卡驱动的软件流程,给μC/OS-II加上了网络支持。
自嵌入式系统开发以来,很长时间都采用前后台系统软件设计模式:主程序为一个无限循环,单任务顺序执行。通过设置一个或多个中断 来处理异步事件。这种系统对于简单的应用是可以的,但对于实时性要求比较高的、处理任务较多的应用,就会暴露出实时性差、系统可靠性低、稳定性差等缺点。μC/OS-II 是一种基于优先级的抢占式多 任务实时操作系统, 包含了实时内核、任务管理、时间管理、任务间通信同步(信号量,邮箱,消息 队列)和内存管理等功能。它可以使各个任务独立工作,互不干涉,很容易实现准时而且无误执行,使实时应用程序的设
在μC/OS-II平台下开发程序,首先要掌握内核。通过上述移植过程,能够对任务堆栈,任务调度有深刻理解。作为一种开放源代码的操作系统,以其优越的性能在嵌入式系统应用领域占据了非常广泛的发展空间。移植结果表明,经过裁剪的μC/OS-II在S3C44B0X上的移植是成功的。
μC/OS 和μC/OS-II 是专门为计算机的嵌入式应用设计的, 绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。
μC/OS-Ⅱ是一种多任务实时源代码的公开操作系统,内核精简,移植性较强,非常适合用于一些小型控制和实验系统的开发。
软件定时器是常用于内核设计和应用程序设计的一项基础软件措施。本文对μC/OS-II V2.86中新增的用于管理软件定时器的定时器轮进行了重新规划,并对处理算法进行了重新设计,有效提高了软件定时器的到期命中率,验证表明,新改进的算法在同等负载下可降低CPU的负载率约9%左右。
如果用户任务运行在“用户级+PSP”状态下,而调用操作系统函数时运行在“特权级+MSP”状态下,再配合MPU的使用,可以使系统的安全性与稳定性得到很大的提高。
介绍了实时操作系统μC/OS-II的特点和内核结构,并首次实现了μC/OS-II在摩托罗拉处理器MPC555上的移植,介绍了移植后OS的应用方法。
针对目前RFID读写器无法随身携带,实现远程的IC卡读写操作的问题,采用GPRS无线网络作为数据传输的载体,实现了无线RFID读写器的开发。采用μC/OS-Ⅱ嵌入式实时操作系统作为读写器终端的软件平台,在ARM7系列微处理器LPC2148上实现了对IC卡的发行、加值、消费、操作记录查询与汇总、数据采集以及无线传输。采用动态密钥加密算法很好地保证了IC卡的数据安全。
为了使嵌入式操作系统μC/OS-Ⅱ更加适合数控系统的应用,对μC/OS-Ⅱ的任务分类和任务调度做了改进。将任务分为普通任务和抢占式任务。抢占式任务不通过调度器调度运行,而在中断处理中直接运行。抢占式任务对应数控系统中执行频率高,执行时间短的任务。实验证明,改进后的μC/OS-Ⅱ更适合数控系统任务的添加。
本文设计了实时系统加速RTA(Real-Time Acceleration)模块,对任务调度和系统时间管理进行硬件化,降低了任务中断时间,并对最终的测量数据进行对比,得出结论。
μc/Os-Ⅱ的就绪表设置、清除、查找算法,是高效的、跨平台的程序。它使用了两个查找数组OSMapTbl[8]和OSUnMapTbl[256],以提高查找就绪表的速度,尽快获取就绪任务的最高优先级。
多窗口显示屏控制采用μC/OS-II实时操作系统的多任务管理运行模式,各窗口视频数据由线程管理,Nios II 32位处理器作为显示屏控制器硬件系统的核心,软件系统控制多窗口任意显示。在1片FPGA上实现显示屏控制器的硬件系统,利用SOPC Builder软件定制系统所需的IP核,外扩存储设备实现视频数据的海量存储,解决了FPGA内部资源相对不足的问题。通过重构视频数据,合理组织数据的存储方式,解决视频数据的灰度控制问题,减少数据处理过程,降低了控制系统的复杂度。
本文的创新之处在于针对μC/OSII在内存管理可靠性不高、内存块分配不够灵活的特点,借鉴Buddy算法思想,对其进行改进,形成了一种基于Buddy算法思想、高可靠性的内存管理策略。实验表明,新方案一次创建内存区,即可满足内存块大小需求不均匀的场合,既提高内存分配的灵活性,避免了大量内碎片的产生,又增强了内存分配的可靠性。因此,新方案在可靠性要求高的嵌入式系统中可以得到更好的应用。
构建以FPGA为核心的通信处理模块,内置一个32位处理器,加载uCLinux操作系统,驱动两个CMOS接口、一个SPI射频接口、一个以太网接口、一块液晶显示器;硬件加速定位、图像预处理、编码等算法;开发良好人机交互接口。