亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        遠(yuǎn)程測控模塊中有限狀態(tài)機(jī)的設(shè)計*

        2018-01-15 06:18:12
        關(guān)鍵詞:狀態(tài)機(jī)測控指令

        (成都職業(yè)技術(shù)學(xué)院 軟件分院,成都 610041)

        引 言

        遠(yuǎn)程測控系統(tǒng)使人們可以通過計算機(jī)網(wǎng)絡(luò)隨時隨地查看和控制現(xiàn)場設(shè)備的運(yùn)行狀態(tài),也可以通過無線數(shù)據(jù)交換的形式把數(shù)據(jù)信息傳輸?shù)狡渌I(yè)測控儀器中。在整個控制系統(tǒng)中,上位機(jī)(也就是遠(yuǎn)程決策系統(tǒng))通過指令與數(shù)據(jù)傳輸控制遠(yuǎn)端測控裝置通信,測控模塊的響應(yīng)機(jī)制以及其控制系統(tǒng)工作狀態(tài)的穩(wěn)定性、安全性尤為重要,其控制過程可以基于軟件或硬件實現(xiàn),軟件實現(xiàn)最大的缺點是可靠性不夠高、響應(yīng)速度較慢[1],因此對實時性可靠性要求較高的系統(tǒng)更多的是采用專用芯片、高速芯片或者可編程邏輯器CPLD/FPGA來設(shè)計實施和驗證,并配合易于建立的、以描述控制特性為主的、應(yīng)用比較廣泛的有限狀態(tài)機(jī)(Finite_State_Machine,FSM)的建模方法來實施。

        有限狀態(tài)機(jī)基于數(shù)字集成電路系統(tǒng),大部分是時序電路, 時序電路可以用符號化的有限狀態(tài)機(jī)來模擬[2],不難發(fā)現(xiàn)遠(yuǎn)程測控系統(tǒng)的各種控制狀態(tài)變化和轉(zhuǎn)移也可以描述系統(tǒng)的行為,而這些狀態(tài)的變化和轉(zhuǎn)移則形成了狀態(tài)機(jī)[3]。因此,采用基于狀態(tài)機(jī)的方法來定義和實現(xiàn)遠(yuǎn)程測控是一種穩(wěn)定、可靠、簡潔的實現(xiàn)方案。本文通過基于FPGA的遠(yuǎn)程測控模塊,采用有限狀態(tài)機(jī)為測控模型,利用Verilog HDL描述,實現(xiàn)了有限狀態(tài)機(jī)在遠(yuǎn)程測控模塊及系統(tǒng)穩(wěn)定可靠地運(yùn)行。

        1 基于FPGA的遠(yuǎn)程測控系統(tǒng)的設(shè)計

        FPGA結(jié)合了微電子技術(shù)、電路技術(shù)、EDA技術(shù),使設(shè)計者可以集中精力進(jìn)行所需邏輯功能的設(shè)計,縮短設(shè)計周期,提高了設(shè)計質(zhì)量。FPGA己經(jīng)在計算機(jī)硬件、工業(yè)控制、遙感遙測、雷達(dá)聲納、數(shù)據(jù)處理、智能儀器儀表、廣播電視、醫(yī)療電子和現(xiàn)代通信等多種領(lǐng)域中得到廣泛應(yīng)用。FPGA開發(fā)技術(shù)己經(jīng)成為數(shù)字系統(tǒng)的科研試驗、樣機(jī)調(diào)試和中小批量生產(chǎn)和驗證的首選方案[4]。

        對于工作點多、通信距離遠(yuǎn)、環(huán)境惡劣且實時性和可靠性要求比較高的場合,可以利用無線電波來實現(xiàn)主控站與各個子站之間的數(shù)據(jù)通信,采用這種遠(yuǎn)程測控方式有利于實現(xiàn)復(fù)雜連線,無需鋪設(shè)電纜或光纜,降低了環(huán)境成本[5]。本項目設(shè)計中,通信距離為3 000 m,采集點較多,采用的無線模塊可以有256個節(jié)點,現(xiàn)場FPGA模塊設(shè)計有模擬和數(shù)字輸入接口,可以接收大部分經(jīng)過處理的現(xiàn)場傳感數(shù)據(jù),根據(jù)遠(yuǎn)程控制中心的要求實現(xiàn)現(xiàn)場情況的感知以及控制,模塊的輸出設(shè)計有數(shù)字驅(qū)動電路,可以直接控制繼電器、電機(jī)等現(xiàn)場設(shè)備;遠(yuǎn)程計算機(jī)通過無線數(shù)字傳輸建立與現(xiàn)場模塊的通信,采集的現(xiàn)場數(shù)據(jù)經(jīng)過基于人工智能的決策系統(tǒng)發(fā)給遠(yuǎn)端模塊執(zhí)行控制功能。系統(tǒng)框圖如圖1所示。

        圖1 系統(tǒng)框圖

        圖2 無線測控模塊中的數(shù)據(jù)流關(guān)系

        2 有限狀態(tài)機(jī)模型的建立

        2.1 無線測控模塊的數(shù)據(jù)流設(shè)計模型

        本文選擇Verilog HDL來對該邏輯設(shè)計的硬件電路進(jìn)行描述,主要包含以下電路模塊:開關(guān)量的采樣、異步通信接口、I2C總線接口、自主定義的模塊與決策端通信狀態(tài)機(jī)、串行ADC的時序接口、硬件電路信號輸出,以及相關(guān)的數(shù)據(jù)和地址控制電路。實驗階段的芯片選用XILINX SPARTAN3S 250E,其基于SRAM工藝,優(yōu)點是使用標(biāo)準(zhǔn)的CMOS工藝,不需要任何復(fù)雜工序[6]。最后通過ISE開發(fā)平臺將整個控制電路集成到一個FPGA芯片中,減少了外界對系統(tǒng)的干擾,便于以后系統(tǒng)升級,對現(xiàn)場電路連接方式的控制較靈活。整個模塊核心的時序電路可以用符號化的有限狀態(tài)機(jī)來模擬,把一個時序邏輯抽象成一個同步有限狀態(tài)機(jī)是設(shè)計Verilog HDL模塊的關(guān)鍵[2]。狀態(tài)機(jī)在本項目基于FPGA的無線測控模塊設(shè)計中的數(shù)據(jù)流關(guān)系如圖2所示。

        2.2 無線測控模塊的協(xié)議與指令

        無線測控模塊在測控系統(tǒng)的地位處于從機(jī)或執(zhí)行現(xiàn)場的地位,模塊的所有功能和動作圍繞主機(jī)及決策系統(tǒng)的要求來完成。通常情況是在周期性的間歇狀態(tài)中,接收主機(jī)的查詢、采集轉(zhuǎn)換現(xiàn)場數(shù)據(jù)、存儲現(xiàn)場數(shù)據(jù)以及向主機(jī)回傳;接收主機(jī)發(fā)送的決策控制數(shù)據(jù),更新執(zhí)行的輸出狀態(tài)以及保存當(dāng)前控制狀態(tài),在其他的時間現(xiàn)場模塊處于空閑狀態(tài)。本項目中基于FPGA的遠(yuǎn)程測控模塊的主要協(xié)議與指令如表1所列。

        表1 FPGA 遠(yuǎn)程測控模塊的主要協(xié)議與指令

        2.3 基于Verilog HDL的有限狀態(tài)機(jī)建模

        在本系統(tǒng)中,基于FPGA的遠(yuǎn)端執(zhí)行模塊以及上位決策主機(jī)屬于從主關(guān)系,主從狀態(tài)機(jī)使用層次狀態(tài)機(jī)的設(shè)計方法來設(shè)計決策系統(tǒng),包含一個主狀態(tài)機(jī)和多個從狀態(tài)機(jī)。主狀態(tài)機(jī)起到仲裁控制作用,決定當(dāng)前有哪些從狀態(tài)機(jī)可以運(yùn)行[7]。可以通過設(shè)計不同的主狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移關(guān)系達(dá)到不同的控制策略,如分時復(fù)用或基于優(yōu)先級啟動不同的從狀態(tài)機(jī)等,在本系統(tǒng)主機(jī)中除控制可以并行執(zhí)行外,其它信息的采集均可采用限時輪流詢問的方式,主機(jī)的狀態(tài)和行為描述在此不再贅述。

        作為遠(yuǎn)端模塊的從機(jī),其狀態(tài)變化來自于第2.2節(jié)所描述的協(xié)議指令,由于采用可編程邏輯器件這種靈活的硬件設(shè)計,因此用基于Verilog HDL的有限狀態(tài)機(jī)建模,應(yīng)該主要考慮以下幾點[2]:編碼方案、FSM的綜合實現(xiàn)、狀態(tài)機(jī)所有狀態(tài)的完備以及邊沿觸發(fā)器的設(shè)計,滿足速度和面積的設(shè)計要求。通過以上協(xié)議和指令分析可以基本確定在整個控制過程當(dāng)中模塊的工作狀態(tài),可以用圖形化的方式描述狀態(tài)機(jī)各個狀態(tài)之間的轉(zhuǎn)換關(guān)系,即該設(shè)計的狀態(tài)轉(zhuǎn)移圖如圖3所示(以遠(yuǎn)程查詢指令為例)。

        圖3 狀態(tài)轉(zhuǎn)移圖

        3 Verilog程序的編寫

        根據(jù)狀態(tài)轉(zhuǎn)移圖編寫有限狀態(tài)機(jī)程序,由于Verilog具有并行執(zhí)行的特點[8],一個指令的判斷模塊輸出指令下跳沿給狀態(tài)機(jī),即一個指令只執(zhí)行一次。下面的程序以主機(jī)發(fā)送查詢指令FF為例。

        //------------判斷FF指令下跳沿---------------

        reg[2:0] com_ff_neg;

        wire neg_ff_com; //采樣判斷FF指令下跳沿后的輸出

        always @ (posedge clk or negedge rst_n)

        begin

        if(!rst_n)

        com_ff_neg <= 3'b111;

        else //com_ff來自于無線模塊接收數(shù)據(jù)

        com_ff_neg <={com_ff_neg[1:0],com_ff};

        end

        assign neg_ff_com = ~com_ff_neg[1] & com_ff_neg[2];

        //-------------遠(yuǎn)程控制命令FF狀態(tài)機(jī)-------------

        //采樣本地控制模塊的轉(zhuǎn)換數(shù)據(jù),來自于4種傳感器

        //寫入本地I2C存儲區(qū)后(作為斷電或開機(jī)后的本地采樣數(shù)據(jù))

        //通過無線模塊將該原始數(shù)據(jù)發(fā)送給主機(jī)

        parameter/*WAIT_FF*/ S0 = 3'b000;

        parameter/*SAMPLE0*/ S1 = 3'b001;

        parameter/*SAMPLE1*/ S2 = 3'b010;

        parameter/*SAMPLE2*/ S3 = 3'b011;

        parameter/*TX_LOCAL*/ S4 = 3'b101;

        parameter/*TX_END*/ S5= 3'b100;

        reg[2:0] state_ff; //主機(jī)查詢指令狀態(tài)機(jī)-狀態(tài)

        always @ (posedge clk or negedge rst_n)

        begin

        if(!rst_n) //復(fù)位狀態(tài)

        begin

        write_data_loc <=8'b00000000; byte_addr_loc <=3'b000;

        state_ff <= S0;

        inquiry <= 1'b1;

        tx_bytes <= 4'b0; //uart 發(fā)送數(shù)據(jù)字節(jié)控制

        end

        else

        case(state_ff)

        S0: begin

        inquiry <=1;

        if(neg_ff_com) //inquiry 低電平啟動采樣

        begin

        state_ff <= SAMPLE0;

        inquiry <=0; //1次寫入本地采樣到I2C

        write_data_loc <= local_data[3];

        byte_addr_loc <= 3'b011; //LOCAL_ADDR0 +3;

        end

        else state_ff <=S0;

        end

        S1: if(cstate == STOP2) // 寫入數(shù)據(jù)完成

        begin

        state_ff <= S2;

        inquiry <=0; //

        write_data_loc <= local_data[4];

        byte_addr_loc <= 3'b100; //LOCAL_ADDR0 + 4 ;

        end

        else state_ff <= S1;

        S2: if(cnt_20ms==20'hffff0) //寫入數(shù)據(jù)完成

        begin

        state_ff <= S3;

        inquiry <=0; //

        write_data_loc <= local_data[5];

        byte_addr_loc <= 3'b101; //LOCAL_ADDR0 + 5 ;

        end

        else state_ff <= S2;

        S3: if(cnt_20ms==20'hffff0) //寫入數(shù)據(jù)完成

        begin

        state_ff <= S4;

        inquiry <=0; //

        write_data_loc <= local_data[6];

        byte_addr_loc <= 3'b110; //LOCAL_ADDR0 + 6 ;

        end

        else state_ff <= S3;

        S4: if(cstate == STOP2)

        begin tx_bytes <=BYTE_LENGTH; //發(fā)送長度載入

        state_ff <=S5;

        end

        else state_ff <= S4;

        S5 : begin

        if (tx_num == 4'd11) tx_bytes <= tx_bytes - 1'b1;

        if(tx_bytes == 0) state_ff <= S0;

        end

        default : state_ff <= S0;

        endcase

        end

        4 實驗結(jié)果

        主從機(jī)的通信和控制模式核心為遠(yuǎn)程模塊根據(jù)現(xiàn)場數(shù)據(jù)接收遠(yuǎn)端主機(jī)的決策控制信號。在本項目中采用的主機(jī)為臺式計算機(jī),從機(jī)或遠(yuǎn)端的執(zhí)行機(jī)構(gòu)采用本項目設(shè)計的基于FPGA的遠(yuǎn)程測控模塊。實驗對象為水產(chǎn)養(yǎng)殖環(huán)境的信息測量——溫度、溶氧量,主要執(zhí)行對象是對現(xiàn)

        場水環(huán)境進(jìn)行調(diào)節(jié)控制,控制對象為充氧機(jī)和進(jìn)出水泵,由于模塊本身的輸出電壓基本為3.3 V,因此需要在輸出端加驅(qū)動及保護(hù)控制繼電器。

        增氧泵是系統(tǒng)的主要控制對象之一,它是否正常工作直接決定了能否為魚塘充氧。增氧能力和動力效率是衡量增氧泵性能的重要指標(biāo),增氧能力是指每小時溶解到水中的氧氣的重量,動力效率是指在一定的條件下(如溫度)單位千瓦輸出功率的增氧能力。為了達(dá)到良好的增氧效果,系統(tǒng)選用葉輪式增氧泵[9]。在模塊的電路中設(shè)有兩片高耐壓、大電流復(fù)合晶體管IC——ULN2003,可以輸出14路驅(qū)動控制信號,其輸入端與FPGA-I/O口直接相連。

        系統(tǒng)初始化后,主機(jī)通過采樣指令開始接收傳感器檢測到的各項數(shù)據(jù),依次獲取溶氧量、溫度等參數(shù),將獲取值與設(shè)定值比較,根據(jù)專家決策做出相應(yīng)的動作從而實現(xiàn)自動控制。溫度傳感器采用 AD590,AD590為電流型溫度傳感器,它有非常好的線性輸出性能。當(dāng)環(huán)境溫度為0 ℃時,其輸出電流為273 μA ,流過AD590的電流與絕對溫度成正比,溫度每增加1 ℃其輸出電流增加1 μA,即電流與溫度的關(guān)系是:I=(273+T) μA[10]。本項目現(xiàn)場模塊不對傳感器數(shù)值做任何判定和描述,直接根據(jù)時序傳遞給后端主機(jī),由主機(jī)根據(jù)數(shù)據(jù)庫或?qū)<覜Q策系統(tǒng)做出相應(yīng)的顯示和控制。

        應(yīng)用測試中,將本地模塊放于浮標(biāo)桶內(nèi),采用干電池供電,在距離1000 m左右的室內(nèi)對采集數(shù)據(jù)進(jìn)行比較分析,時間跨度從早上9點到下午5點,間隔采樣時間為1小時,可以看出,該模塊對水養(yǎng)殖環(huán)境信息的檢測與標(biāo)準(zhǔn)參考值的相對誤差基本滿足使用需求。測試結(jié)果如表2所列。

        表2 無線測控模塊對水產(chǎn)養(yǎng)殖信息的測試 測試時間:2017.08.04

        結(jié) 語

        [1] 唐健隆,梁自澤,蔡麗,等.基于狀態(tài)機(jī)的巡線機(jī)器人控制系統(tǒng)設(shè)計[J].機(jī)器人技術(shù),2008,24(1-2):247-249.

        [2] 陳勇.有限狀態(tài)機(jī)的建模與優(yōu)化設(shè)計[J].重慶工學(xué)院學(xué)報:自然科學(xué)版,2007,21(5):55-58.

        [3] 熊振云,阮俊波,金惠華.嵌入式軟件中狀態(tài)機(jī)的抽象與實現(xiàn)[J].計算機(jī)應(yīng)用,2003,23(10):84-86.

        [4] 孔利東.基于FPGA的數(shù)據(jù)采集與處理技術(shù)的研究[D].武漢:武漢理工大學(xué),2007.

        [5] 孫先逵,秦嵐.遠(yuǎn)程測控技術(shù)的發(fā)展現(xiàn)狀和趨勢[J].儀器儀表學(xué)報,2004(8):562-564.

        [6] Clive Max Maxfield.The Design Warrior’s Guide to FPGAs Devices,Tools and Flows[M].杜生海,等譯.北京:人民郵電出版社,2007:221-225.

        [7] 豐平,馬曉川,陳模江.主從并行狀態(tài)機(jī)用于復(fù)雜FPGA控制系統(tǒng)設(shè)計[J].微計算機(jī)應(yīng)用,2009,30(6):1-5.

        [8] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計教程[M].北京:北京航空航天大學(xué)出版社,2003.

        [9] 劉海陸.基于 GSM 的魚塘增氧泵的遠(yuǎn)程控制研究[D].舟山:浙江海洋學(xué)院,2014.

        [10] 劉冬香.基于CPLD/FPGA的溫度測控系統(tǒng)的設(shè)計[J].機(jī)電工程技術(shù),2009,38(12):20-21.

        林永宏(高級工程師),主要研究方向為應(yīng)用電子、嵌入式系統(tǒng)設(shè)計;邱紹峰(副教授),主要研究方向為圖像處理、電子技術(shù)應(yīng)用。

        猜你喜歡
        狀態(tài)機(jī)測控指令
        聽我指令:大催眠術(shù)
        基于有限狀態(tài)機(jī)的交會對接飛行任務(wù)規(guī)劃方法
        《測控電路》實踐教學(xué)改革探討
        電子測試(2018年22期)2018-12-19 05:12:58
        ARINC661顯控指令快速驗證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        基于現(xiàn)代測控技術(shù)及其應(yīng)用分析
        向著新航程進(jìn)發(fā)——遠(yuǎn)望7號測控船首航記錄
        太空探索(2016年12期)2016-07-18 11:13:43
        基于USB2.0協(xié)議的通用測控通信接口設(shè)計
        坐標(biāo)系旋轉(zhuǎn)指令數(shù)控編程應(yīng)用
        FPGA設(shè)計中狀態(tài)機(jī)安全性研究
        超碰97人人做人人爱少妇| 久久精品国产亚洲av性瑜伽| 日本av第一区第二区| 男女18视频免费网站| 国产成人精品午夜视频| 亚洲av综合久久九九| 亚洲伊人久久一次| 精品日本一区二区视频| 少妇人妻字幕精品毛片专区| 玩弄丰满奶水的女邻居| 无遮挡又黄又刺激又爽的视频| 免费 无码 国产在线观看不卡| 日本一区二区高清在线观看| 日日碰日日摸日日澡视频播放| 成人亚洲一区二区三区在线| 日日噜噜夜夜狠狠久久无码区| 天天射色综合| 国产在线精品观看一区二区三区| 中文字幕日韩欧美一区二区三区 | 免费人成再在线观看网站| 国产亚洲精品日韩香蕉网| 日韩精品极品系列在线免费视频| 国产精品久久久久精品一区二区| 天美麻花果冻视频大全英文版| 日韩极品视频在线观看免费 | 玩弄少妇人妻中文字幕| 色噜噜狠狠色综合成人网| 国产做床爱无遮挡免费视频| av中文字幕一区人妻| 麻豆一区二区三区蜜桃免费| 国产欧美成人| 白丝美女扒开内露出内裤视频| 国产人妻鲁鲁一区二区| 欧美人与动牲交a欧美精品| 亚洲国产精品一区二区久| 久久精品国产亚洲av热九九热| 亚洲av毛片在线免费观看| 国产成人精品综合在线观看| 国产a级精精彩大片免费看| 国产另类人妖在线观看| 亚洲av永久无码一区二区三区|