<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于有限狀態(tài)機的自動(dòng)售貨機控制器

基于有限狀態(tài)機的自動(dòng)售貨機控制器

作者: 時(shí)間:2009-03-30 來(lái)源:網(wǎng)絡(luò ) 收藏
引 言
售貨機上除基本自動(dòng)售貨功能外,增加了諸多功能,如GPRS短信模塊以加強安全監控,在售貨機上播放視頻廣告以提高運營(yíng)商的經(jīng)濟效益等。這就使得存在于售貨機內部的(Vencling Machine Controller,VMC)的復雜程度也迅速增加,先前的一套用于小規模嵌入式系統的分析設計方法、應用程序結構、運行效率與易維護程度在當前的售貨機需求面前顯得有些力不從心了。機理論在計算機應用領(lǐng)域有著(zhù)廣泛的應用,機對處理一些復雜情況也大有裨益。在設計階段,開(kāi)發(fā)人員可以利用機模型來(lái)描述復雜的系統,從而大大縮短項目的開(kāi)發(fā)周期,且系統易于維護。魏先民提出了狀態(tài)機在嵌入式領(lǐng)域應用的一個(gè)基本框架,但是在這個(gè)框架中,系統中的所有狀態(tài)都是互斥的關(guān)系,盡管有些狀態(tài)之間存在著(zhù)緊密的關(guān)系。V.Ayvazyan等論述了狀態(tài)之間不僅存在互斥關(guān)系,還存在包含關(guān)系(父狀態(tài)與子狀態(tài))。本文應用狀態(tài)機的這些特性,提出一個(gè)層次型有限狀態(tài)機(Hierarchical FSM,HFSM)模型,對售貨機(VMC)進(jìn)行改進(jìn)。

1 有限狀態(tài)機
有限狀態(tài)機是一種具有離散輸入輸出系統的模型,在任何時(shí)刻都處于一個(gè)特定的狀態(tài)。對于事件驅動(dòng)的程序設計,它是非常有用的設計模型。在某一個(gè)狀態(tài)下有事件發(fā)生時(shí),根據當前狀態(tài)和輸入事件的不同,選擇如何處理該事件以及是否需要轉換到下一個(gè)狀態(tài)。一個(gè)有限狀態(tài)機(FSM)是一個(gè)五元組,M=(K,E,T,S,Z)。其中,K是一個(gè)有限的狀態(tài)集合,它的每個(gè)元素稱(chēng)為“狀態(tài)”;E表示該系統能接收的所有事件的集合,它的每個(gè)元素稱(chēng)為一個(gè)“事件”;T是狀態(tài)轉換函數,是K×E→K上的映射;S是系統的一個(gè)特殊狀態(tài),一般是系統啟動(dòng)時(shí)的初始狀態(tài);Z是K的一個(gè)子集,是一個(gè)終態(tài)集。
有限狀態(tài)機一般有2種表示方式:狀態(tài)轉移表和狀態(tài)轉移圖。通常用有向圖來(lái)表示有限狀態(tài)機,其節點(diǎn)代表狀態(tài)。如圖1所示,若在狀態(tài)SO接收到某個(gè)輸入事件e1后轉向S1狀態(tài),就在圖中畫(huà)一條從SO到Sl的帶箭頭的弧線(xiàn),并在弧線(xiàn)上標記e1。

本文引用地址:http://dyxdggzs.com/article/163889.htm

2 基本思想
2.1 必要性分析
有限狀態(tài)機是通過(guò)事件來(lái)觸發(fā)狀態(tài)的轉變的,其事件來(lái)源主要有2個(gè):其一是外部觸發(fā)事件,如響應用戶(hù)鍵盤(pán)的輸入;其二是內部觸發(fā)事件,如系統所發(fā)出來(lái)的各種命令。有限狀態(tài)機這種事件驅動(dòng)的特性具有良好的開(kāi)放性,可以根據用戶(hù)的要求方便地增加相應的狀態(tài)與事件,完成系統功能的擴展。本文所研究的配有1個(gè)5×5的管理鍵盤(pán)和1個(gè)3×7用戶(hù)鍵盤(pán),二者復用了部分的鍵盤(pán)掃描線(xiàn);另外有37個(gè)外部事件源,加上幾條內部命令,可能觸發(fā)的事件達45個(gè)。如此多的事件,當某個(gè)事件發(fā)生時(shí),如果采用if…else或switch…case語(yǔ)句進(jìn)行一一判斷,將非常復雜。而采用有限狀態(tài)機,每個(gè)狀態(tài)維護一張事件表,無(wú)需比較,大大提高了響應速度;并且就擴展需求較為頻繁的而言,有限狀態(tài)機也是便于維護的。
2.2 實(shí)現方式
根據系統中各個(gè)狀態(tài)之間是否存在包含關(guān)系,有限狀態(tài)機可以分為常規狀態(tài)機與層次型狀態(tài)機(hierarchicalstate machine)。對于前者,系統中各個(gè)狀態(tài)是獨立的、互斥的,適合應用于那些存在狀態(tài)數量不多的簡(jiǎn)單系統;而對于后者,系統中的狀態(tài)除了互斥關(guān)系以外,還存在真包含的關(guān)系。
分析這樣一個(gè)狀態(tài)機,圖2為自動(dòng)售貨機的狀態(tài)圖(不完整)。

絕對值編碼器相關(guān)文章:絕對值編碼器原理

上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>