基于实时操作系统的智能仪表软件设计
2018-06-05黄思遥
黄思遥
摘 要 对于过程自动化和工厂自动化的系统应用的整个过程,有着大量的现场信号需要进行检测和控制,而这些信号都必须严格的符合安全规范的要求,例如必须严格的符合着防爆的安全要求,以及ISO机械安全要求等。目前来看,比较主流应用的一些工业仪表之间并没有存在真正的安全信号的数字化的传输。随着科技的发展、智能化工业的进一步普及,工业仪表的数字化、智能化逐渐的成为了一种大的趋势。本文主要对基于实时操作系统的智能仪表的软件设计进行了详细的介绍。
关键词 实时 操作系统 智能仪表 软件设计
中图分类号:TP332 文献标识码:A
1智能仪表优势
智能仪表和那些传统的机械式、电磁式仪表存在着很大的差异,它主要是使用微处理器通过实时的对软件进行控制来控制仪表的运行的,这使得系统能够更加的安全、可靠。传统的仪表在系统的运行过程中,如果受到了外界的因素的干扰或者自身产生了一些能够纠正的故障以后,很有可能导致自身的故障,进一步使得整个系统造成瘫痪。而智能仪表则能够很好地解决这些问题,其自身的微处理器能够对系统进行自主的干预,实时的减弱外界因素的影响并且纠正自身存在的故障,使得系统的状态回到稳态。在对仪表进行维修的时候,传统的一起不能够自动的指示故障的所在,而智能的仪表能够对故障进行自动的指示并且反映出可能存在的故障原因,这能够很好地提高维修的效率。传统的仪表往往对于测量值都是直接的显示的,当测量的对象发生了频繁并且微小的变化的时候,仪表的指示值会发生剧烈的抖动,这很容易导致仪表的不可用或者显示的不准确,而智能仪表很好地解决了这个问题,它能够通过平滑的算法很好地消除这些指示值存在的频繁的、微笑的抖动,从而使得指示值能够相对来说比较稳定、可靠。因此,对智能仪表进行研究有着很大的必要性。
2硬件系统
目前来看,ARM CortexM3/M4处理器在工业安全上应用有着很多技术性的优势,例如哈佛总线架构是32位寻址、低功耗、高性能,而且还具有OS支持、软件的可移植性等优势。
ARM CortexM3/M4 处理器在设计的最初就考虑到了OS应用的问题,因此它设计所具有的多个特性能够保证OS的实现和OS的高效运行。
ARM CortexM3/M4 处理器中存储着主堆栈指针MSP以及进程堆栈指针PSP。对于这种设计而言,所具有的有点就是如果应用遇到了一些问题有可能导致栈的破坏,OS内核中使用的栈以及正在进行其他的任务的栈不会受到影响,这样能够保证系统的可靠性得到了进一步的提高。
基于实时操作系统的智能仪表软件的硬件系统是使用ARM CortexM3/M4 处理器作为核心的,并且使用并行的数据总线、外扩的SRAM、NAND FLASH来进行对存储器资源的进一步的扩充的。外设的硬件接口中目前涵盖了工业上的主流的接口配置。
随着信息技术的发展,德国工业4.0的提出,工业以太网逐渐的兴起,网络通信接口已经逐渐的成为了智能仪表和设备互联互通的比较简单方便的一种接口标准。ST公司的几款M3/M4处理器都继承了以太网 MAC IEEE 1588,硬件上能够再通过RMII/MII接口连接一块物理芯片就能够实现了。使用的通信协议是使用的比较广的TCP/IP协议。通过将相应的软件协议栈进行移植,能够实现各种主流的现场总线。同时,硬件中还会使用一些包括工业SD卡,RTC时钟等丰富的设备作为硬件资源,这样使其能够更好地满足工业检测以及更好的控制对应用场合的需求。
3软件设计
3.1轮询模式
对于简单的系统来说,CPU可以一直处于等待的状态中,一直到有时间突然的发生的时候,再进行事件的分析和处理,在处理了以后cpu会继续的等待。而轮询模式则能够满足一些简单的应用需求。但是,当应用程序变得更加的复杂的时候,也会出现一些其他的问题,如轮询模式的程序设计和维护会变得更加的困难。除此之外,轮询模式很难对事件的优先级进行重新的定义,这会导致系统的反应相对来说比较迟钝。当有进击的事件发生的时候,cpu如果还在处理那些并不是很重要的事情,直到处理完毕以后才能够对其进行响应,这样就会导致系统的实时性能非常差。
3.2中断驱动模式
对于那些对于功耗有一定的要求的系统来说,只能选择这种驱动模式。当cpu在等待某个事件的时候,能够进入到低功耗的模式中,进而降低cpu的工作能耗。在中断驱动的模式中,不同的外设能够被设置成不同的中断优先级,这些优先级的分类是根据系统中的重要等级进行设计分配的,那些优先级比较高的中断可以打断那些优先级比较低的中断程序,这些软件流程机制的响应是非常的迅速的。在大多数的情况下,软件的设计会将轮询模式和中断驱动模式很好地结合起来,使其能够更好地满足实际的需求。在有了某个紧急的时间需要服务的时候,会使用中断驱动程序剪一个中断请求出发。当中断服务子程序处理完毕以后,它就会回到主程序中去,使用轮询的方式进行应用程序的处理。
3.3时间片轮转模式
当应用程序复杂到了一定的程度的时候,轮询模式还有中断的驱动程序都不能给满足实际的应用需求,因此需要采用基于实时操作系统的多任务系统来进行操作。当系统中的任务有的执行时间过长的时候,也需要满足系统的实时性的相应需求,因此为了满足这种需求需要将处理器的时间划分为多个时间片,并且可以将这些时间片分给这些任务。实时操作系统RTOS的内核可以处理多任务的调度。目前来看,能够用于Cortex-M处理器的实时操作系统能够达到30多种。多任务的系统能够通过高效的后台调度以及时间管理等,使得程序的结构变得更加的标准和健壮,这样能够保证应用程序的开发过程变得更加的高效。
3.4抢占式调度模型
基于时间的触发方式在嵌入式的软件领域有着十分重要的应用,这种方式更加的简单可靠,并且其预测性也会更好一些,在一些安全的关键领域有着十分广泛的应用。基于这种机制设计的实时操作系统,是一个可剥夺的多任务系统,并且其中没有任务的数量的限制,因此是 C/OS的第三代的内核。系统中支持先进的抢占式的调度方式,这种调度方式能够保证当最高优先级的任务一旦就绪,就总是能够得到CPU的控制权,也就是说优先级高的进程能够抢占式的调度内核使得优先级低的进程暂时停止任务。也就是说在实际的工作过程中,如果中断服务子程序使一个优先级比较高的任务进入就绪态,在中断完成以后,优先级高的那个任务开始运行,这种调度机制能够保证任务的调度得到快速的響应。
4关键技术
4.1中断和实时措施
响应中断是十分关键的一个技术,就是要调用5个模块中的某一个运行,如果响应中断的时候把整个模块都运行完毕之后在进行中断返回,由于在这个过程中微处理器的中断应该进行屏蔽,而计数器的中断如果很频繁的话就会导致很多次的计数器的中断难以得到响应,这样就使得系统的可靠性大大的降低了。因此可以将中断响应分为中断处理和中断服务这两个部分,响应中断的时候只作中断处理,就是说根据中断源、系统的状态以及计数值的情况通知系统需要调用5个模块中的某一个作为中断服务的程序,并且对参数进行调用,这个请求被保存到一个等候的服务队列中,然后将中断返回,返回的出口就是这个等候服务队列中优先级最高的请求的服务程序,这样能够保证中断可以及时的得到响应,同时还不会将调用的中断服务程序中的信息丢失。
而5个模块的调用级别是不同的,往往根据重要性进行排序。对于同一级别的不同调用参数的调用请求,就会按照时间的顺序对其进行调用,也就是按照先来先服务的原则将先进入队列的请求进行优先的响应。这样,能够保证等候调用的队列可以形成一个优先级维和时间维的二维队列。也就是说,模块维内的按照优先级进行响应,时间维内的按照先进先出的原则进行响应。
4.2可靠性措施
可靠性对于一个实时系统来说是十分重要的一个指标,这个系统主要采用这样的方式来进行可靠性的控制:
第一,设置一个看门狗电压。这个电压和微处理器的复位端相互连接,在系统工作比较正常的时候,会定期的进行“喂狗”。
第二,设置一个故障的显示灯,在系统产生了故障而自己又不能够修复的时候,可以对软件进行实时的控制,使用一组发光的二极管将错误的代码显示出来,这样维修的人员就能够知道故障的類型,使得系统维护的可靠性和维修的效率都会大大的提升。
第三,设置大量的冗余代码。在系统运行的期间,由于一些偶然性的因素很有可能导致程序造成异常的跳转使得系统死机,因此可以设置大量的冗余代码,将每个代码段的出口都跳转到正确的位置上去,这样就能够使得不正常的现象大大的减少。
第四,对指示值进行平滑。可以把测量值进行平滑以后再将其作为指示值,这样做能够很好地避免由于地形发生微小的频繁起伏等原因造成的指示值剧烈抖动等问题。
4.3数字模拟显示
通常来说,仪表往往只带模拟的显示,从而存在直观性较差的问题,并且当仪表的指针出现机械误差的时候很有可能造成指示值不准确的问题。因此,在智能的仪表上,在模拟显示的基础上增加了使用数码管进行数字显示。对于主机和数字显示的部分之间使用串行通信的方式进行通信。实现数字显示的关键性内容在于:
第一,数据格式。为了能够使得接收方的负担大大的降低,发送方应该将高度数据处理成合适的合适,使得接收方能够使用这样的格式进行显示,而数据又不需要被拆开。
第二,数据传输机制。发送方会定时的发送数据,这样做能够很好地保证数据的刷新频率,而接收的一方在接到数据以后会给发送方发送应答的信号ACK,如果接收方没有收到数据,或者收到的数据不正确的时候,数码管就会显示错误的标志并且对接受党的串行通信部件进行重新的初始化。而发送方如果长时间的没有收到应答的信号,就会重新的对发送的数据进行初始化,对于串行的通信部件进行重新的初始化。
5结论
随着科技的发展、社会的进步,智能化的仪表逐渐的有着越来越广泛的应用,它有着很多传统的仪表没有的优势。在这样的背景下,本文主要对于基于实时操作系统的智能仪表的设计进行了深入的分析,首先分析了智能仪表具有的优势,然后简单的介绍了其具有的硬件,最后对于软件设计进行了详细的分析。软件是智能仪表的魂所在吗,也是设计的核心基础技术,希望本文能够起到一定的参考价值,从而给相关的技术人员提供一泻嵌入式智能仪表开发的思路。
参考文献
[1] 倪敏.基于实时操作系统的智能仪表软件设计[J].自动化仪表,2017,38(08):96-99.
[2] 张倩.基于WinCE的车载智能仪表系统设计[D].西安:西安电子科技大学,2009.
[3] 童晓斌,戴瑜兴.基于实时操作系统 C/OS-II的智能控制器嵌入式软件设计[J].电气应用,2007(08):77-80.
[4] 廖远江.基于ARM嵌入式微处理器的智能仪表软件设计[D].昆明:昆明理工大学,2007.
[5] 黄琦.新一代智能仪表[D].杭州:浙江大学,2006.
[6] 黄志宏.基于RTOS的无接触小位移测量系统的设计与实现[D].武汉:武汉理工大学,2006.
[7] 刘俊.嵌入式实时操作系统在温度测量系统中的应用研究[D].武汉理工大学,2006.
[8] 王克星,欧阳森,宋政湘,陈德桂,王建华.基于实时多任务操作系统的智能脱扣器系统软件设计[J].西安交通大学学报,2002(08):789-792+797.