專利名稱:Fsm軟件的構(gòu)建方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種FSM軟件的構(gòu)建方法,尤其涉及在主裝置控制下 的從屬裝置中,以軟件構(gòu)成FSM(Finite State Machine:有限狀態(tài)時序 機),實現(xiàn)通訊協(xié)議簡單化的FSM軟件的構(gòu)建方法。
背景技術(shù):
通常,能夠控制獨立動作的其它裝置的主裝置與在主裝置控制下 進行動作的從屬裝置通過特定協(xié)議(Protocol)連接。在上述各個裝置中, 需要安裝支持從屬裝置與主裝置之間通訊使用標(biāo)準(zhǔn)的設(shè)備(device), 還需要安裝能夠?qū)ο嚓P(guān)設(shè)備進行控制的設(shè)備驅(qū)動器(drive)。
驅(qū)動器作為OS(OperatingSystem:動作系統(tǒng))的一部分,指的是對 連接到計算機上的各種輔助裝置進行控制的裝置,其通過硬件
(hardware)和庫欠件(software)構(gòu)成。
現(xiàn)有技術(shù)存在如下問題由于現(xiàn)有的主裝置與從屬裝置間進行通 訊使用的協(xié)議采用按照一定的順序進行動作的控制方法,程序依次排 列進行編碼(Coding),很難進行擴展及修改。
即,依次決定主裝置(例如,個人用計算機)與從屬裝置(例如USB 裝置)各自的動作,分別執(zhí)行相應(yīng)動作,進行通訊。當(dāng)增加新動作或者 改變順序時,需要修改主裝置與從屬裝置兩方面的軟件,給使用帶來 很大不便。
發(fā)明內(nèi)容
為了解決上述問題,本發(fā)明旨在提供一種以FSM構(gòu)成從屬裝置中 使用的軟件,根據(jù)主裝置接收的指令和從屬裝置的FSM狀態(tài)決定從屬 裝置動作的FSM軟件的構(gòu)建方法。
為了實現(xiàn)上述目的,本發(fā)明FSM軟件的構(gòu)建方法就是通過 FSM(Finite State Machine:有限狀態(tài)時序才幾)軟件構(gòu)建主裝置控制下的 從屬裝置的動作的方法,其特征在于包括如下步驟讀取從主裝置接 收的動作指令的OutHandler(OutHandler)動作步驟;執(zhí)行通過上述Out Handler動作步驟讀取的指令對應(yīng)的動作,產(chǎn)生返回值(return value)的 主過程(Main Process)步驟;將在上述主過程步驟中產(chǎn)生的返回值向主 裝置傳送的InHandler(InHandler)動作步驟。
綜上所述,通過本發(fā)明,只需要通過修改主裝置的軟件,就可以 修改從屬裝置的控制方式,達到減少維護費用的目的。
而且,由于使用簡化的通訊協(xié)議,軟件編碼的擴展性增加,如果 進行這種方式的編碼,只要修改輸入輸出端,就能夠很容易地達到與 其它類似從屬裝置通訊(Porting)的效果。
附困說明
圖l為本發(fā)明的主裝置與從屬裝置的協(xié)議構(gòu)成圖。
圖2為本發(fā)明的從屬裝置的FSM軟件的構(gòu)成圖。
具體實施例方式
下面將參照附圖
對本發(fā)明的FSM軟件的構(gòu)建方法的實施例進行詳
細i兌明。
圖l為本發(fā)明的主裝置與從屬裝置的協(xié)議構(gòu)成圖。如圖所示,從屬 裝置與控制從屬裝置的動作的主裝置連接,主裝置向從屬裝置發(fā)送指
令和命令因素,從屬裝置通過用于分析所述指令的FSM執(zhí)行主裝置所 要求的動作。
這里,從屬裝置按照主裝置的命令進行動作,因此,根椐主裝置 輸入的指令不同,從屬裝置執(zhí)行的動作也不同。由于從屬裝置并不保 存本身以前執(zhí)行的動作記錄,所以只有通過主裝置的命令,才能夠決 定從屬裝置的動作。
如果在從屬裝置中通過FSM完成動作,將這個結(jié)果返回(Retum)主 裝置。在沒有主裝置命令,不能返回結(jié)果的情況下,當(dāng)主裝置執(zhí)行讀 取(Read)動作時,返回從屬裝置的結(jié)果。
從屬裝置執(zhí)行的動作規(guī)定為有限個。由于規(guī)定為有限個,如果能 夠通過FSM設(shè)計從屬裝置的軟件架構(gòu),就能夠?qū)膶傺b置執(zhí)4于的動作 分割和簡化。
圖2為本發(fā)明的從屬裝置的FSM軟件的構(gòu)成圖。如圖所示,從屬裝 置的狀態(tài)可以是O( Wait Opcode)和1 (Wait Operand)兩種。
FSM的狀態(tài)從準(zhǔn)備接收命令的O(Wait Opcode)狀態(tài)向讀取從主裝 置接收的指令(read)的l(WaitOperand)狀態(tài)轉(zhuǎn)換,根據(jù)接收的指令執(zhí)行 命令(do),并向主裝置返回(retum)結(jié)果。此時,由于從屬裝置不再保 存以前執(zhí)行的動作(clr)的記錄,主裝置根據(jù)傳送的命令決定動作,以確 保對從屬裝置的現(xiàn)有動作不產(chǎn)生影響。
因此,如果從屬裝置完成執(zhí)行命令動作,F(xiàn)SM狀態(tài)重新轉(zhuǎn)換為 O(WaitOpcode)狀態(tài),進入準(zhǔn)備接收下個命令的階段。
因此,當(dāng)每次從主裝置接收指令時,從屬裝置的FSM狀態(tài)重復(fù)由O 狀態(tài)向l狀態(tài)轉(zhuǎn)換,執(zhí)行完動作后,再向待機狀態(tài)-0狀態(tài)轉(zhuǎn)換的過程, 執(zhí)行各個指令對應(yīng)的動作。
執(zhí)行上述動作的從屬裝置的軟件FSM的程序代碼可以4姿照下面方 式構(gòu)建。
OUT Handler
switch(CURRENT—FSM—STATE){ case STATUS—WAIT—OPCODE: read一opcode();
CURRENT—FSM—STATE=STATE—WAIT—OPERAND; break;
case STATUS—WAIT—OPERAND;
switch(OPCODE){
C8S6 opl:
read—operand—op 1 ();break; case op2:
read—operand一op2();break;
CURRENT_FSM—STATE=STATE—WAIT—OPCODE; breaks
} 、 Main Process
while(l){
switch(CURRENT一FSM一STA卿 case STATUS—WAIT—OPCODE:
while(CURRENT一FSM—STATE==STATUS_WAIT_OPCODE); break;
case STATUS—WAIT—OPERAND:
switch(OPCODE)(
case opl:
do一op(); break;
case op2:
do一op2(); break;
breaks
像這樣,利用軟件FSM的程序編碼,在OUTHandler(HancUer)動作 步驟中,根據(jù)當(dāng)前的FSM狀態(tài)進行動作,如果是WaitOpcode狀態(tài),讀 取指令(read—opcode),將當(dāng)前的FSM狀態(tài)轉(zhuǎn)換為Wait Operand狀態(tài)。 (CURRENT—FSM—STATE-STATE—WAIT—OPERAND)。如果是Wait Operand狀態(tài),根據(jù)指令(OPCODE)進行動作,是第l指令(opl)時,讀 取運算值opl (read—operand—opl);當(dāng)是第2指令(op2)時,讀取運算值 op2(read—operand—op2),按照這種方式執(zhí)行動作后,將當(dāng)前的FSM狀態(tài) 設(shè)定為WaitOPCODE。
(CURRENT—FSM—STATE=STATE—WAIT一OPCODE)。
根據(jù)當(dāng)前的FSM狀態(tài)(CURRENT一FSlVLSTATE)選擇與上述OUT Handler的動作連動的主過程(MainProcess),第一,當(dāng)是WaitOPCODE 狀態(tài)時(case STATUS—WAIT—OPCODE),如果當(dāng)前的FSM狀態(tài)是Wait OPCODE,繼續(xù)等待從OUTHandler接收指令(OPCODE),如果不是, 結(jié)束動作。第二,如果是Wait OPERAND狀態(tài),根據(jù)指令(OTCODE) 進行動作,執(zhí)行相關(guān)指令對應(yīng)的動作。
通過i述的說明內(nèi)容,相關(guān)工作人員完全可以在不偏離本項發(fā)明 技術(shù)思想的范圍內(nèi),進行多樣的改變以及修改。因此,本項發(fā)明的技術(shù)范圍并不局限于說明書上的內(nèi)容,必須要 根據(jù)權(quán)利范圍來確定其技術(shù)范圍。
權(quán)利要求
1、一種通過FSM軟件構(gòu)建主裝置控制下的從屬裝置的方法,其特征在于,包括如下步驟讀取從主裝置接收的指令運算值的Out Handler動作步驟;執(zhí)行通過上述Out Handler動作步驟讀取的指令對應(yīng)的動作,產(chǎn)生返回值的主過程步驟;將在上述主過程步驟中產(chǎn)生的返回值向主裝置傳送的In Handler動作步驟。
2、 根據(jù)權(quán)利要求項1所述的FSM軟件構(gòu)建方法,其特征在于 所述Out Handler動作步驟包括在上述FSM軟件中,當(dāng)FSM狀態(tài)具有準(zhǔn)備接收命令的Wait Opcode狀態(tài)和準(zhǔn)備執(zhí)行命令的Wait Operand狀態(tài)時,根據(jù)FSM狀態(tài) 進行動作,當(dāng)FSM狀態(tài)是Wait Opcode狀態(tài)時,讀取指令后,將當(dāng)前 的FSM狀態(tài)轉(zhuǎn)換為Wait Operand狀態(tài);當(dāng)是Wait Operand狀態(tài)時, 執(zhí)行讀取相關(guān)指令的運算值的步驟。
3、 根據(jù)權(quán)利要求項1所述的FSM軟件構(gòu)建方法,其特征在于 所述的主過程步驟包括在所述的FSM軟件中,當(dāng)FSM狀態(tài)具有準(zhǔn)備接收命令的Wait Opcode狀態(tài)和準(zhǔn)備執(zhí)行命令的Wait Operand狀態(tài)時,根椐FSM狀態(tài)進行 動作,當(dāng)FSM狀態(tài)是WaitOpcode狀態(tài)時,通過上述OutHandler^Ht 步驟,讀取指令,并持續(xù)保持這個狀態(tài);當(dāng)是WaitOperand狀態(tài)時, 執(zhí)行相關(guān)指令,產(chǎn)生返回值。
4、 根據(jù)權(quán)利要求項1所述的FSM軟件構(gòu)建方法,其特征在于所述主過程步驟包括執(zhí)行通過上述Out Handler動作步驟讀取 的指令對應(yīng)的動作,產(chǎn)生返回值后,為了確保對以前動作不產(chǎn)生影響, 刪除以前指令對應(yīng)的動作記錄。
5、 根據(jù)權(quán)利要求項1所述的FSM軟件構(gòu)建方法,其特征在于上迷InHandler步驟是,在沒有主裝置的命令,上述從屬裝置不能 向主裝置傳送返回值的情況下,主裝置執(zhí)行讀取動作時,傳送返回值。
全文摘要
本發(fā)明涉及一種FSM(Finite State Machine有限狀態(tài)時序機)軟件的構(gòu)建方法。為了解決現(xiàn)有技術(shù)中主裝置和從屬裝置的程序很難擴展及修改的問題,本發(fā)明公開的FSM軟件的構(gòu)建方法是通過FSM軟件構(gòu)建主裝置控制下的從屬裝置的方法,其特征在于包括以下步驟讀取主裝置接收的指令運算值的Out Handler動作步驟;執(zhí)行通過上述Out Handler動作步驟讀取的指令對應(yīng)的動作,產(chǎn)生返回值的主過程步驟;將在上述主過程步驟中產(chǎn)生的返回值向主裝置傳送的In Handler動作步驟。通過本發(fā)明,只需要通過修改主裝置的軟件,就可以修改從屬裝置的控制方式,達到減少維護費用的目的。
文檔編號G06F9/44GK101192140SQ20061009791
公開日2008年6月4日 申請日期2006年11月22日 優(yōu)先權(quán)日2006年11月22日
發(fā)明者姜斗鎮(zhèn) 申請人:樂金電子(昆山)電腦有限公司