APP下载

基于嵌入式操作系统的应用软件设计

2018-06-07张腾

科教导刊·电子版 2018年7期
关键词:嵌入式操作系统

张腾

摘 要 本文介绍了多任务操作系统如何进行嵌入式的应用软件设计,给出了进行多任务操作的具体方法,并对该方法如何在与热敏打印相关的软件进行应用,进行了介绍,通过多任务操作,嵌入式软件提高了应用的实时性,增强了软件的可移植性,提升了软件的开发效率,缩短了软件的开发周期。

关键词 嵌入式操作系统 热敏打印 RTOS

中图分类号:TP316.2 文献标识码:A

1嵌入式操作系统的多任务操作

嵌入式操作系统 C/OS的应用,可以解决热敏打印的设计之中,CPU如何进行多任务处理,解决加热耗时的问题。完善 C/OS系统可以提升开发效率,增强软件的实时性。实时的多任务操作系统中,很大一部分为嵌入式操作系统,该种系统与传统定义的操作系统有差异。常见的打印机数据操作系统都是多任务的操作系统,通过多任务的方法可以方便软件的设计,同时由于嵌入式系统也具备操作软件的功能,因此在软件设计的时候就可以在此基础之上进行多任务程序的应用。嵌入式操作系统可以对嵌入式系统中的全部硬件和软件资源进行调度分配,同时还可以进行并发工作,在满足系统特性的基础上,通过拆装某些模块可以提升系统的性能,与常见的操作系统相比较,嵌入式系统具有如下不同点。

第一,嵌入式操作系统的移植性强,体积小,占用硬件资源少。第二,系统具有实时性的特点,可以进行卸载和装载。第三,系统可以固化代码,因而具有很强的稳定性。虽然当前已经出现了个人开发的嵌入式操作系统,例如JEAN J. LABROSSE开发的 C/OS,但是当前大多数嵌入式系统都是商业内核的,常见的有PSOSystem、VxWorks和Nucleu等。本文所选用的嵌入式系统是 C/OS,因为该系统是完全公开的免费内核,该系统的设计人员可以在应用该系统的过程中按照自己的需求对该内核的内容进行扩展或压缩,实现不同应用软件的功能需求。 C/OS支持多功能的是实时内核,可以进行多任务操作,并且每个任务都有单独的栈。该系统的服务内容也比较多,例如内存申请和释放、消息列表、邮箱等,并且支持255层的嵌套中断。由于该系统功能强大,代码简洁,近年来已经在嵌入式操作系统当中得到了广泛应用。

2嵌入式操作系统佮进行软件设计

运用嵌入式操作系统进行系统软件设计,根据具体的操作要求设置操作步骤,可以提升软件的实时性,强化软件的可移植性,减少软件开发时间。在进行嵌入式操作系統的设计的时候,需要明确软件设计的一般流程,由于应用软件在硬件之上,因此一致性比较差。在引入了嵌入式操作系统之后,由于应用软件的任务不能建立在硬件之上,因此应用都是建立在嵌入式操作系统之上。嵌入式操作系统在应用软件之中是一个指挥者的角色,同时该系统还负责和硬件进行连通,帮助各系统的运转,尽管CPU是按照顺序进行嵌入式操作的,但设计软件的时候还是需要划分任务,根据软件设计的需求将操作系统初始化。

以 C/OS操作系统为基础,在该系统上设计应用软件首先需要根据系统的功能对任务进行划分,确定具体任务的个数,明确各任务的优先级别,选择信号和功能的时候需要注意任务之间的通讯。同时,需要根据程序的要求确认各种任务所需要的堆栈的容量,关注代码存储机和数据存储机的容量,在应用该系统,选择该系统的操作模式的时候,还需要选择储存模式。最后,在软件设计完成之后,需要根据任务程序设计代码服务和中断服务。下面介绍如何利用该系统设计热敏打印机的应用软件。

3热敏打印机的应用软件设计

3.1热敏打印机的功能

热敏打印机属于特殊的打印机,由于我国的生产工艺落后,微型打印机生产厂商会选择国外进口热敏打印机的打印头,配上自己设计的单片机控制板组成热敏打印机。打印机的软件结构通常都是多任务的结构,通过各种不同方法可以设置不同的任务阶段,设置不同的程序,由于 C/OS系统是一种具备各种管理功能的系统,因此在程序设计的过程中可以直接在系统当中进行挑选简化。本文所要介绍的热敏打印机实现应用步骤的方法就是 C/OS系统的具体应用过程,在该系统中体现了嵌入式操作系统的优越性。在热敏打印机实现功能的操作中,首先从上位机接受信息,对数据进行处理,控制打印机的打印头进行打印。打印机的处理过程中,CPU主要有如下几个任务。

第一,接收上位机传输的信息,并存储信息至缓冲区域。第二,将缓冲的信息进行读取并处理,如果信息是命令则进行操作,如果信息是字符,则转化为点阵存储在缓冲区。第三,将打印缓冲区的数据传输到打印头,控制打印机走纸,检查打印机的状态,预热打印机。上述三个任务只是基本任务,除此之外上一级还需要根据不同任务,选择其他功能,例如检测打印头是否过热、打印压杆是否下压、检查打印机是否缺纸。

3.2热敏打印的软件功能

热敏打印机软件所要实现的功能可以粗略的概括为数据分析和打印控制,根据打印机的结构特点和作业流程,大致切换步骤主要有数据切换和信息收集两个过程。完成打印功能分析之后,需要设计软件功能,分别设计各个任务的流程。热敏打印机需要实现数据接收、数据处理和数据打印三个步骤。按照基础设计方法,需要将各流程按照顺序连接起来,但热敏打印机却不适合这样操作。由于热敏打印机需要进行加热,在加热的过程中,需要等待加热完成,因此会有时间间隔。普通的字符点行有24个,每个都需要一定时间,这样就拉长了打印速度。同时热敏打印机对于实时性的要求过高,如果系统运转缓慢则会导致调度不合理,导致打印过程出现错乱。因此简单的进行程序设计无法满足应用需求。

3.3 C/OS系统的设计方法

为了提升打印的效率,可以将打印流程拆分成几个不同的任务,目的是为了适应多任务的环境,让处理器在多任务的情况下进行调配,该设计需要设计师的技巧和经验。程序需要进行不断切换,运用何种程序需要不断进行考虑,因此软件设计过程较复杂,也会导致长期运行不稳定,因此引入 C/OS系统是一种高效的设计方法。

3.4通过 C/OS系统设计打印机软件

由于打印机软件是一种多任务的软件,因此需要应用多任务实时运行的方法设计程序。 C/OS系统提供了各种多任务管理功能,依靠该系统进行基础设计可以满足多任务的需要。如果把创建的多任务大致分为数据处理和打印,则根据打印机软件的任务和打印流程,需要在如下任务之间进行切换。

第一,从数据处理流程进入到打印流程,在该种模式下有两种任务,首先在打印区缓冲完一个字符之后,需要启动打印程序,从数据处理流程进入到打印流程,第二,在数据处理的加热过程中,如果响应停止,则需要及时终止打印流程,数据处理流程和打印流程可进行数据缓冲控制。

第二,切换到数据处理流程,该任务情况分成两种任务,首先,在打印机进行加热的过程中,需要启动定时装置,利用加热的空闲时间处理数据,当加热时间完成之后,从新进入到打印流程。其次,如果打印的缓冲还没有满足一个字符的最低要求,可以不进行打印机的加热,还是进行数据处理,从打印流程进入数据处理流程,进行数据的接受和处理。打印机处于闲置状态的时候,程序需要等待上位机的通知。同时,系统如果需要从上位机取得数据,则还需要一个中断流程,便于进行后续操作。如果外部突發紧急情况,也需要中断流程。

总之,如下三个任务是必须进行的。任务一,处理打印产生的缓冲数据,对上位机传来的任务进行解读。任务二,将缓冲区的数据传输到热敏打印头,并对电机进行控制,方便打印头随时处理数据。任务三,如果发生了异常处理任务,例如打印头过热,则需要及时运行中断任务。

在任务运转的过程中,任务的优先级别是不同的,第三个任务最优先,如果出现了异常情况,则需要将任务中断。通常,任务三一直处于等待状态。任务二比任务一有难度,如果打印缓冲区有一个字符,则需要优先执行任务二,在执行任务二进行打印机加热的过程中,需要启动定时器,中断任务二,此时任务二处于等待状态。如果任务二中断,则 C/OS系统会调整任务一进入运转,进行数据的处理和接受。如果加热过程中,服务器收到信号,表明任务二可以进行运行,则此时系统运行任务二。如果任务二运行,则是因为打印缓冲区的数据不满一个字符,如果任务一运行,则是没有异常发生,同时任务二在等待,此时任务一处理数据。

需要关注的是,如果任务二处于运行状态,则如果任务二中断,就意味着任务二和任务三同时中断,中断任务二所产生的一系列效果,意味着控制电机中断,同时控制加热时间。加热时间由于是基础加热时间,一个一定时间中断,另一个进行补偿。基准加热时间是加热的最短时间,大约三微秒,在 C/OS系统进行任务切换中完成,之后执行其他任务。基准加热完成之后,由于打印头的情况不同,会接着进行补偿加热,补偿加热的时间各有不同,因任务而异。通常补偿加热之后会进行下一点的加热,过程和程序都和之前的过程相同。加热头的加热可以设置成一个单独的任务,如果任务二执行完毕,则可以切换到其他任务,由于加热过程比较复杂,需要进行经常切换,虽然浪费时间,但是并不加重系统负担,由于两个任务和过程联系密切,因此将其加入任务二较为合理。

进行完各种程序的中断编程之后,可以建立打印作业工程的程序。第一,将出程序相关的硬件初始化,对 C/OS系统进行重新定义,接着需要对各种程序进行激活,最后启动多任务操作。需要关注的是,由于嵌入式系统控制软件的要求较高,在工程设计过程中需要根据硬件来对软件进行适当调整,如果嵌入式操作系统设计不合理会导致系统出现一定损耗,因此在设计程序的过程中就应当考虑到系统损耗的问题。在程序设计的过程中,需要利用 C/OS系统对程序实现控制,除了中断堆栈的任务之外,任何任务都有自己的堆栈,如果任务发生了中断,则各个堆栈都会保存各自的值。由于参数的传递也会产生布局堆栈,因此在进行设计的过程中需要根据任务情况,在满足实际需求之后,适当的扩大堆栈。如果资源比较紧张,则在调试的过程中,就应当尝试缩小堆栈的容量。同时考虑到热敏打印机的字库因素,适合选用大存储的方法。

4结论

嵌入式操作系统的基础是计算机技术,通过系统之中应用软件的设计,可以对系统的功能和体积进行编排。由于 C/OS系统具有可靠、成本低、体积小和功耗低的特点,因此经常被热敏电机所选用。嵌入式操作系统 C/OS的引入,可以解决热敏打印机控制软件设计当中,CPU打印头加热出现空闲的情况,提升系统的实用性能。由于使用了 C/OS系统之后,可以提供给用户完善的管理功能,同时可以节省软件开发时间,提升软件开发的效果,强化软件的可用性。同时为了实现软件的结构化,就需要提升系统的可移植性和可读性。

参考文献

[1] 屈鹏.基于ARM和Linux的嵌入式智能家居网络视频监控[D].天津:天津理工大学,2017.

[2] 张霖泽.基于嵌入式系统的视频编解码与传输技术研究[D].南京:南京理工大学,2017.

[3] 李东方.面向嵌入式系统的PUF辅助安全研究[D].武汉:华中科技大学,2015.

猜你喜欢

嵌入式操作系统
典型实时嵌入式操作系统应用分析
FATFS在嵌入式操作系统FreeRTOS中的移植与应用
基于嵌入式操作系统的工业采集板设计
应用服务型人才培养体系下的嵌入式操作系统教学改革探索
兼容多种通信方式的智能网关软件设计
计算机嵌入式操作系统研究