您的位置 首页 主动

分时操作系统思想在单片机编程中的完成

摘要:提出基于分时系统思想的单片机系统设计方案,给出一具体应用的实例以及详细的实现方法。 关键词:分时操作系统 单片机系统 作业调度 指针 前言 作为嵌入式系统主控单元—&mdash

摘要:提出依据分时体系思维的单片机体系规划方案,给出一详细运用的实例以及详细的完结办法。 关键词:分时操作体系 单片机体系 作业调度 指针 前语   作为嵌入式体系主控单元——单片机,其软件往往是一个微观的实时操作体系,且大部分是为某种运用而专门规划的。体系程序有实时进程操控或实时信息处理的才能,要求能够及时呼应随机产生的外部事情并对该事情做出快速处理。而分时操作体系却是把CPU的时刻区分红长短根本相同的时刻区间,即“时刻片”,经过操作体系的办理,把这些时刻片顺次轮番地分配给各个用户运用。假如某个作业在时刻片结束之前,整个使命还没有完结,那么该作业就被暂停下来,抛弃 CPU,等候下一轮循环再持续做。此刻CPU又分配给另一个作业去运用。由于核算机的处理速度很快,只需时刻片的距离取得恰当,那么一个用户作业从用完分配给它的一个时刻片到取得下一个CPU时刻片,中心有所“中止”;但用户发觉不出来,如同整个体系全由它“独占”似的。分时操作体系首要具有以下3个特色:① 多路性。用户经过各自的终端,能够一起运用一个体系。② 及时性。用户提出的各种要求,能在较短或可忍受的时刻内得到呼应和处理。③ 独占性。在分时体系中,尽管答应多个用户一起运用一个CPU,但用户之间操作独立,互不干涉。   分时操作体系首要是针对小型机以上的核算机提出的。一般来说,微处理器(MPU)驱动的通用核算机,体系规划人员对每一台的终究详细运用都是不得而知的,因而,在价格答应的情况下,硬件规划必定CPU时钟尽或许的快;核算及办理才能尽或许的强;程序和数据存储器的容量尽或许的大;各种核算机外设的配接尽或许的翔实等等,特别是选用分时操作体系的机器,由于是一机多用户的办理体系,它的要求就更高了。相对而言,微操控器(MCU)俗称单片机,是一个单片集成体系,它将这些或那些核算机所需的外设,比如程序和数据存储器、端口以及有关的子体系集成到一片芯片上。从硬件上,单片机体系与选用分时操作体系的核算机体系是无法比拟的。可是,在单片机体系的规划中,规划人员对其终究详细运用是一览无余的,它的运用环境相对是单一固定的。所操控的进程的可预见性为分时体系思维的完结供给了或许性。详细一点便是:尽管单片机的CPU速度较低,但其使命是可预见的,这样作业调度将变得简略而无须占用许多的CPU时刻,一起“时刻片”的规划是详细而有针对性的,因而可变得很有用。 一、单片机分时体系的规划   单片机体系往往是一个嵌入式的操控体系,因而现在绝大部分的单片机体系仍是一实时体系。能够真实表现分时体系的规划思维的往往是那些多路重复检测操控体系。即便是在这些多路重复检测操控体系中,它的实时性也是非常重要的。也便是说,在单片机体系中运用了分时体系规划思维,但其及时性应首要进行考虑。 1.对单片机分时体系硬件规划的主张   跟着单片机功用的进步,单片机体系规划中的一些硬件功用软件化是大势所趋。但一起,日新月异的芯片技能也为低本钱的硬件完结高功用的功用供给或许。让一种功用究竟是经过硬件完结仍是经过软件来完结不能混为一谈,只能是经过体系规划让整个体系的功用价格比最高才是每个单片机体系规划者孜孜寻求的方针。   在单片机分时体系的硬件规划中,由于对体系的及时性的要求不能下降,而大多数单片机的处理速度相对而言是较慢的。因而,在接口硬件的规划上应选用一些能将信息量坚持的器材,如触发器、锁存器。一起要求这些器材应该是三态门输出,由于是多路分时体系,当CPU没有拜访届时,器材输出出现高阻,以利于总线对其他器材的拜访。还有,一些用软件比较费时的操作应转给硬件完结。如LED动态显现,没有必要必定用intel 8155或intel 8255硬件接口让软件不时为显现数字而煞费苦心,彻底能够用intel 8279或MAX7218及MAX7219这些可编程外围器材来完结,使显现既美丽又简略。当然,究竟哪些功用留给硬件完结,哪些功用留给软件完结,应依据体系的不同而详细规划。总归,应整体考虑,寻求最高的功用价格比。 2.单片机分时体系的软件规划   为了合理完结单片机分时体系,还须有完善的调度机制。完善的调度机制首要由调度指针和调度表组成。体系的调度分红两级,一是“路”的调度,相当于指示程序横向进行:从榜首路的某一作业到第二路的某一作业,从第二路的某一作业再到第三路的某一作业……从最终一路回到榜首路,循环往复。“路”调度的调度指针改变规则是固定不变的,算法简略,即递加一或递减一,循环到头后,再回来到开始。相对应的“路”调度指针还应结构“路”调度表。“路”调度表每一项表明各“路”程序进口地址及跳转指令。以MCS-51单片机为例,选用AJMP addr11作为每一项的内容,则调度表的每一表项占2个字节;当程序较长超越2K字节,则选用LJMP addr16作为每一项内容,占3个字节。所规划的单片机体系共有多少“路”,该调度表就有多少项数。二是作业调度,即相当于指示程序纵向进行:从某一路的榜首作业指向该路第二作业,第二作业指向第四作业……也有从第六作业指回第三作业的等等。因稍杂乱使命的流向都不或许是单独向性的,从上一作业流到下一作业都要依据体系的检测或运算成果来决议,因而作业调度指针的改变是随机决议的。作业调度表的构成方式与“路”调度表相同,每一项表明各作业模块的程序进口地址及跳转指令。作业调度表指示出各作业履行的一般先后次第,表项数等于一路使命的最大作业数。为了辨明每路的使命进程,单片机体系要操控多少路就必须有多少个作业调度指针及相应作业调度表。以上两级指针都为1个字节的整数变量。调度指针与调度表的联络是经过指令JMP @A+DPTR完结的。DPTR中是调度表的首地址。累加器A中的内容是调度指针的整数倍,若表项内容是AJMP addr11,则A的值为调度指针乘2;若表项内容是LJMP addr16,则A的值为调度指针乘3。   除了以上主程序的调度规划外,各个作业中一起的功用应放在中止中完结,首要是放在守时器中止。如计时功用应放在守时器守时中止中完结,守时参数的挑选应考虑到体系各个作业中各种计时的要求,守时频率一般为最小计时频率的整数倍。任何软件延时都是不答应的。 完结分时操控的关键是在于合理地将体系的功用分解成各个作业模块。作业模块分得越细体系的实时性就越好。尽管单片机的时钟频率较低,在实践运用中当各个作业模块被细分红各个“动作”及简略的运算后,分时体系的实时性是能得到确保的。缺陷便是各“路”的操控处理程序被分割得四分五裂,模块化得不到确保。 二、运用实例 1.体系硬件及作业原理   宾馆用的视频点播体系VOD(Video On Demand)中,从各个机定盒送出的上行信号用DTMF码经过电话线传输到机房的主操控柜中的上行信号采集卡中。为了能一起承受多个用户的点播操作,上行信号采集卡必须有承受多路电话传输信息的功用,为此,笔者规划了8路电话采集卡,可一起承受8路用户的点播操作,体系硬件框图如图1所示。

1.gif

  每路大致的主程序是:检测到振铃信号后(即为振铃检测脚变低并坚持8ms以上),继电器吸合,一起立刻给机定盒回一接通信号——#键(坚持 400ms)。然后等候机定盒发送点播信息:客房号、点播的节目号,共4位DTMF码;若1s内无DTMF码收到(收到表明为解码芯片的DV脚变高)表明操作有误,继电器断开,状况位恢复,作业指针回0。收齐4位DTMF码后将其收拾并带上该路的标志,转化成3字节送到串行发送缓冲区,在守时器中止服务程序中发送。等候视频服务器回送应对信息,依据应对信息不同向机定盒回送不同的信息;若超时无应对也向机定盒回送一码(发码时刻都为100ms)。最终,继电器断开,状况标志恢复,缓冲区清0,作业指针也回到0。一个进程完结。 2.作业流程   为了能完结8路分时作业,最首要的作业是将这一进程细分红一个个作业。笔者经过规划把它分红8个作业,各作业的流程如图2所示。 以上每一作业回来后,“路”指针主动加1,到8后回到0,以确保分时作业合理。

2.gif

3.几点技巧   8路电话信息采集卡的编程中,为了使程序更精练,笔者运用以下3个技巧: ① 由于这8路的作业是相同的,程序能够共用,只须再结构1“路”地址表,每一表项含有本路的输入锁存器地址、输出锁存器地址、DTMF码寄存RAM地址、计时单元地址。这样能够省掉“路”调度表,由于各路相同作业的进口地址是相同的。依据“路”指针的不同,带入该“路”的地址表项,即可用相同的程序对8路别离操控操作。 ② 守时器中止设置成4ms一次,这是由于电话振铃是25Hz,检测脚坚持低电平的时刻为10ms,它是最低的计时值。当振铃检测脚低电平坚持时刻少于8ms 时可认为是搅扰。每一路都有自己的计时单元,每次守时器中止后,在守时服务自程序中各路计时单元主动加1。在上一次作业中将计时单元请0,下一次作业读出计时单元的值,延时值即为该值乘以4ms。这样任何延时都不占用CPU机时。 ③ 串行数据的发送和接纳是8路共有的操作,选用一起的模块。数据的链接是经过拓荒缓冲区完结的,有发送缓冲区和接纳缓冲区,选用4800baud的波特率。一般程序的串行数据发送时,都需要检测TI位的改变来判别1字节数据发送是否完结,由此决议可否发下一字节数据。运用到分时体系是行不通的,这要占用 CPU机时,由于选用4800baud的波特率,则每一字节的发送时刻少于4ms。当发送缓冲区有数据时,可在守时器中止服务自程序中发送。每一次守时中止中发送1字节数据,当下一次守时中止来时,上一字节数据必定已发送结束,可发送下一字节数据。无须检测TI位,也不占用CPU机时。数据接纳选用串行中止,接纳到的数据寄存到接纳缓冲区供各路查询。 定论   将分时操作体系的思维引进单片机体系,提出了一个针对多路检测操控的单片机体系软件编程。大大减低了体系的规划本钱,进步了体系的功用价格比,并在实践运用中取得成功。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/291843.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部