51单片机多任务机制的实现策略研究

时间:2022-08-13 01:44:45

51单片机多任务机制的实现策略研究

摘 要:本文针对51单片机实现多任务处理这一问题,首先对该系列单片机多任务机制实现的原理和存在的主要问题进行了研究,然后提出了两种实现多任务机制的策略,最后对两种策略的优缺点进行了对比,对该型单片机的多任务机制研究有一定的借鉴意义。

关键词:51单片机;多任务机制;实现策略

DOI:10.16640/ki.37-1222/t.2016.14.224

1 多任务机制的实现原理和存在问题

多任务机制就是在同一时间内能够执行多个任务的机制,在多个处理器的系统内,这样的机制不难实现,但在只有一个处理器的控制系统内,就势必要求多个任务在时间域内进行快速的切换,所以这种情况下的多任务并不是真正意义上的同一时间内处理多个任务,而是通过快速切换任务造成的错觉。多任务系统任务的切换策略可分为协同式和抢占式。协同式多任务系统,是指每个任务程序都可以释放对CPU的控制权,也即可将对CPU的使用权切换给其它程序,通常分为显式和隐式。在抢占式多任务系统是指各程序不能自主的释放CPU的控制权,而是由操作系统统一行使CPU的控制权,操作系统能够从任何正在运行的程序上取走控制权,并将控制权赋予另一个程序[1]。

51单片机只有一个执行单元,这就意味着所有的程序只能按照执行单元的流程顺序执行,除中断外,其它的程序必须逐一完成,所以中断是进行多任务机制设计的关键切入点,只有通过中断的方式才能实现多任务的切换,应该重点考虑解决以下几个问题:一是并行任务的数量问题。51单片机的8个工作寄存器的地址可映射到0-3区的工作区内,单片机可设置状态寄存器的数值进行工作区域的切换,所以多任务处理时的并行任务数量最大值不能超过4,这样可以保证任务切换的时效性。二是任务切换的时间片分配方式。在多任务处理时对时间的分配方式是需要重点考虑的问题。可将时间的长度进行固定和量化,需要运行的各个任务含有不同时间长度的时间片段,每运行一个任务的时间片段,其状态寄存器中的时间片数相应的减少1,直至所有的时间片数减少为0,在时间片内任务不切换,在时间片段之间按照任务的优先级进行排序完成,全部任务完成后重新赋值。三是不同任务性质对应的处理方式。针对不同的任务对时效性和重要性的要求,对时间敏感的任务或者等级较高的中断赋予较高的优先级,反之赋予较低的优先级。

2 51单片机多任务机制的实现策略

本文重点对两种51单片机的多任务实现策略进行研究,并对两种策略的优劣进行对比分析,具体如下:

(1)通过定时器分配时间片实现多任务。51单片机内有两个定时器,用来进行单片机的基准授时,通过将两个定时器轮流开启和关闭,可以实现更长时间的定时,按照两个定时器的位数均为16位来计算,在不增加外部计数器的情况下,可以实现1μs-4.29s的定时[2],去除中断和初始化占用的时间,实际可供使用的时间要比理论值稍小。但对于51单片机的多任务设置来说时间已经足够。将单片机的输入输出端口连接任务设备,通过将每个任务分配一定的时间片段,在该时间片内占用使用权,对外设进行控制,多个任务通过这样的方式实现轮换执行。程序的主流程图如图1所示。

(2)通过外部中断扫描端口实现多任务。在实际的应用中,如果单片机的输入输出端口连接较多的外部设备,比如传感器等,这时需要根据传感器的状态来进行任务的切换,中断响应是比较合适的切换信号[3]。51系列的单片机只有两个中断端口,在实际的使用中经常面临不够用的情况,所以需要增加外部的扩展接口,常用的中断扩展芯片有很多,比较有代表性的型号是8259A,该型芯片的可编程性和扩展性都很强,可将多个外部中断连接至单片机的中断请求引脚,这种扩展中断的方法带来的问题是成本较高,设计比较复杂,相应的故障率可能提高。在实际应用中可以考虑另外一种方法,将单片机的空闲I\O端口进行改造利用,作为传感器的中断请求引脚使用,单片机通过对端口的扫描,确定哪一个相应的外设请求中断,从而进行任务的切换。当没有中断请求时,控制系统按正常顺序执行。

在通过扫描中断状态进行多任务切换时,需要解决两个问题:一是当单片机闲置的I/O端口不能满足中断需求时,怎样进行处理。这时可以对外设的中断需求进行编码,采用不同的编码规则,对中断信号进行编码后,每一个码值对应一个中断信号,将不同的编码值输入同一个端口就能解决这一问题。二是外部中断的优先级如何评判。这个问题在实际的应用中,可以通过对单片机的数据存储区进行赋值,不同的值表示不同的外部设备中断的优先级,中断发生后通过对比中断值和存储区的预设值,就可以判断中断的优先级,因为单片机连接的外部设备比较固定,外部设备的中断优先级比较稳定,所以可以使用这种优先级表法进行优先级的判定。

(3)二种策略特点的比较。上文所述的第一种策略是对每个任务分配固定的时间片段,各任务在控制系统的执行单元的统一调度下执行任务,每个任务在给定的时间片段内完全占有CPU的使用权,其它程序不能中断该任务的执行,这种策略的优点是程序的执行可靠性高、系统稳定,但缺点是系统的效率不高,可能造成CPU的大量闲置,比较适合处理既定任务和批处理任务,不适合中断较多的情况。第二种策略是扩展性比较好、系统可以方便的与外设进行交互,同时时效性比较高。这种策略可以应用在对时效性要求高、外设中断较多、情况比较复杂的控制系统中,其缺点是造价较高,设计复杂,系统的稳定性和可靠性不如第一种策略。

3 结束语

单片机的多任务机制实现的途径有很多,既可以从单片机固有的功能进行拓展来实现,也可以通过增加外设来实现,本文介绍的两种实现方法各有其优缺点,希望对单片机的多任务机制研究有一定的参考价值。

参考文献:

[1]吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用[M].北京:清华大学出版社,2002:58.

[2]王辉堂,颜自勇,陈文芗.一种基于C51的多任务机制及应用[J].电子设计应用,2006(06):45-48.

上一篇:房地产行业税收征收管理研究 下一篇:电能计量技术在供用电稽查工作中的综合应用