日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

基于LPC2134和UCOSII的自動售貨機狀態(tài)機的研究與實現(xiàn)

出處:mms 發(fā)布于:2012-09-13 10:14:19

  摘 要: 由于售貨機的功能不斷增多,售貨機控制系統(tǒng)也相應(yīng)得不斷變得龐大,這就使原來的面向過程的開發(fā)方法變得越來難以擴展和維護,根據(jù)自動狀態(tài)機的理論,提出一種在售貨機上的狀態(tài)機模型,該模型對系統(tǒng)狀態(tài)進行抽象和分離,建立了系統(tǒng)狀態(tài)表和狀態(tài)轉(zhuǎn)換表,是一種網(wǎng)狀的狀態(tài)機模型。根據(jù)系統(tǒng)事件和當前狀態(tài)來查找系統(tǒng)狀態(tài)轉(zhuǎn)換表,如果有匹配項,則進行狀態(tài)轉(zhuǎn)換。經(jīng)過實驗表明,該模型能解決系統(tǒng)的代碼龐大問題,并且使系統(tǒng)開發(fā)變得易于維護。

  1 概述

  自動售貨機是一種全新的商業(yè)零售形式,20世紀70 年代自日本和歐美發(fā)展起來?,F(xiàn)在,自動售貨機產(chǎn)業(yè)正在走向信息化并進一步實現(xiàn)合理化。例如實行聯(lián)機方式,通過GPRS 將自動售貨機內(nèi)的庫存信息及時地傳送各營業(yè)點的電腦中,從而確保 了商品的發(fā)送、補充以及商品選定的順利進行。并且,為防止地球暖化,自動售貨機的開發(fā)致力于能源的節(jié)省,節(jié)能型清涼飲料自動售貨機成為該行業(yè)的主流。在夏季電力消費高峰時,這種機型的自動售貨機即使在關(guān)掉冷卻器的狀況下也能保持低溫,與以往的自動售貨機相比,它能夠節(jié)約10-15%的電力。進入21 世紀 時,自動售貨機也將進一步向節(jié)省資源和能源以及高功能化的方向發(fā)展。這就導致了售貨機的控制系統(tǒng)(VenclingMachine Controller,VMC)的復雜度大大增加。先前的基于匯編程序的VMC控制系統(tǒng)雖然效率高,但是存在著可擴展性差,程序結(jié)構(gòu)性差,不易維護等缺點。因此本文提出了一種基于ARM7的新型VMC主板的有限狀態(tài)機的結(jié)構(gòu),對VMC 進行改進。本文所用的硬件環(huán)境為使能LPC2134 的ARM7 主板,有一個RS232 串口接GPRS 模塊,一個MDB 總線模塊,一個電機驅(qū)動模塊,外接一個顯示和按鍵模塊。

  軟件方面采用的操作系統(tǒng)是ucosII操作系統(tǒng),這是一種開源的實時多任務(wù)操作系統(tǒng),在數(shù)據(jù)同步和互斥上提供了信號量,消息隊列,消息郵箱等功能,本文主要采用的是信號量和消息隊列。

  總的來說,有限狀態(tài)機系統(tǒng),是指在不同階段會呈現(xiàn)出不同的運行狀態(tài)的系統(tǒng),這些狀態(tài)是有限的、不重疊的。這樣的系統(tǒng)在某一時刻一定會處于其所有狀態(tài)中的一個狀態(tài),此時它接收一部分允許的輸入,產(chǎn)生一部分可能的響應(yīng),并且遷移到一部分可能的狀態(tài)。 一個有限狀態(tài)機(FSM)是一個五元組,M=(S,G,E,A,T)。

  State(狀態(tài)),就是一個系統(tǒng)在其生命周期中某一時刻的運行情況,此時,系統(tǒng)會執(zhí)行一些動作,或者等待一些外部輸入。

  Guard(條件),狀態(tài)機對外部消息進行響應(yīng)的時候,除了需要判斷當前的狀態(tài),還要判斷跟這個狀態(tài)相關(guān)的一些條件是否成立。這種判斷稱為guard("條件")。guard 通過允許或者禁止某些操作來影響狀態(tài)機的行為。

  Event(事件),就是在一定的時間和空間上發(fā)生的對系統(tǒng)有意義的事情。

  Action(動作), 當一個Event 被狀態(tài)機系統(tǒng)分發(fā)的時候,狀態(tài)機用Action("動作")來進行響應(yīng),比如修改一下變量的值、進行輸入輸出、產(chǎn)生另外一個Event或者遷移到另外一個狀態(tài)等等。

  Transition(遷移), 從一個狀態(tài)切換到另一個狀態(tài)被稱為Transition("遷移")。引起狀態(tài)遷移的事件被稱為triggering event ("觸發(fā)事件"),或者被簡稱為trigger(觸發(fā))。

  有限狀態(tài)機一般有2 種表示方式:狀態(tài)轉(zhuǎn)移表和狀態(tài)轉(zhuǎn)移圖。通常用有向圖來表示有限狀態(tài)機,其節(jié)點代表狀態(tài)。如圖1 所示,售貨機售貨流程一共分5 個狀態(tài),每個狀態(tài)都是根據(jù)消息的不同來進行轉(zhuǎn)換。

圖1 自動售貨機中的狀態(tài)轉(zhuǎn)換圖

圖1 自動售貨機中的狀態(tài)轉(zhuǎn)換圖:

  2 實現(xiàn)方式

  2.1 嵌套Switch方式

  即先定義一個狀態(tài)和消息的枚舉,再通過嵌套的2層switch-case結(jié)構(gòu)實現(xiàn),外層switch-case結(jié)構(gòu)判斷狀態(tài),雖然這種方法結(jié)構(gòu)簡單,便于理解,但是代碼冗長,不便維護,因此不建議在復雜雜的狀態(tài)機下運行。

  2.2 狀態(tài)表方式

  這種實現(xiàn)方法對種方法進行了改良,根據(jù)State,Event 做成二維表格,表格中的項表示Action和Transmission,狀態(tài)采用枚舉量。這種方法結(jié)構(gòu)簡單,便于理解,代碼比較簡練,效率,但是代碼結(jié)構(gòu)不是太好。

  2.3 用函數(shù)指針作為狀態(tài)

  這種方法用函數(shù)地址代替state 值,比較直觀,可以方便地增加entry/exit 操作,并且效率較高。

  3 具體實現(xiàn)

  綜合以上幾種方式,本文提出一種結(jié)合第二種和第三種方式的狀態(tài)機實現(xiàn)方式,即創(chuàng)立一個狀態(tài)表和一個狀態(tài)轉(zhuǎn)換表,其中狀態(tài)表中有exit,entry,default處理方法,當進入該狀態(tài)時,先執(zhí)行entry方法,然后在狀態(tài)運行時執(zhí)行default方法,退出狀態(tài)時執(zhí)行exit方法,狀態(tài)之間的切換是通過狀態(tài)轉(zhuǎn)換表實現(xiàn)的,即首先狀態(tài)等待一個系統(tǒng)消息,如果在狀態(tài)轉(zhuǎn)換表中對應(yīng)當前狀態(tài)和當前消息的項,則進行消息轉(zhuǎn)換,具體實現(xiàn)如下3.1 數(shù)據(jù)結(jié)構(gòu)。

  首先定義一個大小為10 的系統(tǒng)消息隊列用來接收外設(shè)和系統(tǒng)消息:

  3.2 狀態(tài)轉(zhuǎn)換算法

  先建立一個狀態(tài)轉(zhuǎn)換表, 建立一個FSM_STATE_TRAN 指針數(shù)組。即FSM_STATE_TRAN*fsm_tran[7];將每個狀態(tài)下的轉(zhuǎn)換項都存在該狀態(tài)下的鏈表中。

  在有限狀態(tài)機中,狀態(tài)是通過系統(tǒng)消息和當前狀態(tài)來查找狀態(tài)轉(zhuǎn)換表,如果有對應(yīng)的項則進行轉(zhuǎn)換,沒有則繼續(xù)當前狀態(tài):算法如下:

  4 模型分析

  4.1 擴展性

  為狀態(tài)機添加新狀態(tài),只需在狀態(tài)表中添加新狀態(tài)及其處理方法,以及在狀態(tài)轉(zhuǎn)換表中添加該狀態(tài)的轉(zhuǎn)換方式。

  4.2 查找算法分析

  設(shè)總共有n個狀態(tài),m個事件,每個狀態(tài)平均響應(yīng)的事件為k.

  由于在這里每個狀態(tài)都是互斥的,因此狀態(tài)轉(zhuǎn)換時的時間開銷主要是花費在查找狀態(tài)表上面,這里采用了基數(shù)排序查找的思想。因此主要查找開銷是每個狀態(tài)的狀態(tài)轉(zhuǎn)換個數(shù)。由于在售貨機中,每個狀態(tài)大概都只有3-4 個狀態(tài)轉(zhuǎn)換表。因此查找的時間復雜度比O(m)小。

  5 結(jié)語

  通過建立有限狀態(tài)機模型,并應(yīng)用改進的數(shù)據(jù)結(jié)構(gòu)與狀態(tài)轉(zhuǎn)換算法,自動售貨機控制器的程序結(jié)構(gòu)更為清晰。原來存在于程序中的諸多標志變量,由狀態(tài)機的各個狀態(tài)所取代,使系統(tǒng)具有更好的擴展性;并且模型很好地利用了狀態(tài)的相關(guān)性,縮短了查找所花費的時間。應(yīng)用于別的嵌入式系統(tǒng)也有較高的意義。

關(guān)鍵詞:基于LPC2134和UCOSII的自動售貨機狀態(tài)機的研究與實現(xiàn)

版權(quán)與免責聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權(quán)行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責任。

如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!