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

        ?

        POWERLINK 網(wǎng)絡(luò)管理的Verilog HDL實現(xiàn)

        2014-09-14 07:24:02趙粹臣楊志家
        沈陽理工大學(xué)學(xué)報 2014年5期
        關(guān)鍵詞:狀態(tài)機以太網(wǎng)排序

        趙粹臣,楊志家,劉 念

        (1.沈陽理工大學(xué) 信息科學(xué)與工程學(xué)院,遼寧 沈陽 110159;2.中國科學(xué)院沈陽自動化研究所 中國科學(xué)院網(wǎng)絡(luò)化控制系統(tǒng)重點實驗室,遼寧 沈陽 110016)

        POWERLINK網(wǎng)絡(luò)管理的Verilog HDL實現(xiàn)

        趙粹臣1,2,楊志家2,劉 念1

        (1.沈陽理工大學(xué) 信息科學(xué)與工程學(xué)院,遼寧 沈陽 110159;2.中國科學(xué)院沈陽自動化研究所 中國科學(xué)院網(wǎng)絡(luò)化控制系統(tǒng)重點實驗室,遼寧 沈陽 110016)

        為提高協(xié)議棧的通信實時性,利用數(shù)字電路具有的速度優(yōu)勢,設(shè)計了一系列電路結(jié)構(gòu)來實現(xiàn)數(shù)據(jù)鏈路及以下層的功能。其中決定通信功能單元運行方式的網(wǎng)絡(luò)管理(NMT)居于核心地位。采用數(shù)據(jù)存儲排序電路結(jié)構(gòu)來按順序地存儲事件。在不改變協(xié)議一致性的情況下,定義了新的主狀態(tài),用來讀取事件存儲隊列中的新事件,實現(xiàn)NMT狀態(tài)機的功能,以及在NMT狀態(tài)改變后做相關(guān)的處理。利用Verilog HDL語言設(shè)計實現(xiàn),用EDA開發(fā)軟件Modelsim SE進(jìn)行功能仿真,驗證了功能的正確性。

        POWERLINK;以太網(wǎng);Verilog;EDA

        在工業(yè)控制系統(tǒng)中,實時可定義為系統(tǒng)在一個可準(zhǔn)確預(yù)見的時間范圍內(nèi)對某事件作出反應(yīng)。反應(yīng)時間由具體的應(yīng)用場合決定。過程控制的反應(yīng)時間只需秒級,但是傳動控制的反應(yīng)時間則需要微秒級。工業(yè)控制領(lǐng)域?qū)崟r性要求很高。工業(yè)以太網(wǎng)的實時響應(yīng)時間可以達(dá)到5~10ms,但是對于響應(yīng)時間小于5ms的應(yīng)用,工業(yè)以太網(wǎng)則無法勝任。因此各大公司和組織提出了多種實時以太網(wǎng)解決方案,目前主要有EPA[1]、Ethernet/IP[2]、Modbus-IDA、PROFINET[3]、EtherCAT[4]和Ethernet POWERLINK[5]等。其中Ethernet POWERLINK的性能優(yōu)越,具有很強的競爭力。

        Ethernet POWERLINK是一種基于快速以太網(wǎng),用于數(shù)據(jù)采集及工業(yè)控制領(lǐng)域數(shù)據(jù)傳輸?shù)膶崟r以太網(wǎng)解決方案。該技術(shù)遵循OSI模型,其MAC層和PHY都是標(biāo)準(zhǔn)的以太網(wǎng),而對數(shù)據(jù)鏈路層進(jìn)行了修改。該技術(shù)提供了C語言實現(xiàn)的開源協(xié)議棧,可方便地移植到不同的目標(biāo)操作系統(tǒng)中。

        NMT(Network Management,網(wǎng)絡(luò)管理)管理網(wǎng)絡(luò)狀態(tài),在協(xié)議棧中居于核心的地位。NMT狀態(tài)機對通信功能單元的運行方式起到?jīng)Q定性作用,協(xié)議棧在某一NMT狀態(tài)下嚴(yán)格執(zhí)行某一類功能,所有的功能部分都跟隨NMT狀態(tài)有序運行。無論MN(主站)還是CN(從站)都經(jīng)由通用初始化過程來啟動狀態(tài)機,而后根據(jù)不同的NodeId(節(jié)點號)來進(jìn)入屬于MN的狀態(tài)機部分或者CN部分。在開源的POWERLINK代碼協(xié)議棧中,采用C語言實現(xiàn)NMT功能。

        Verilog HDL是一種硬件描述語言(HDL:Hardware Description Language),能夠描述數(shù)字系統(tǒng)的行為、數(shù)據(jù)流與結(jié)構(gòu)[6]。采用Verilog HDL描述的狀態(tài)機能夠?qū)崿F(xiàn)硬件算法。文中將原先由C語言實現(xiàn)的NMT功能改為由Verilog HDL描述的狀態(tài)機實現(xiàn)。

        1 NMT的總體結(jié)構(gòu)

        NMT狀態(tài)機由輸入的NMT事件來推動運行,因為有時事件并不能立即得到處理,所以必須有一個數(shù)據(jù)存儲排序結(jié)構(gòu)。因此狀態(tài)機的設(shè)計結(jié)構(gòu)應(yīng)由兩部分組成,一是狀態(tài)機主體部分,一是事件存儲排序結(jié)構(gòu)??傮w結(jié)構(gòu)框圖如圖1所示。

        數(shù)據(jù)存儲排序模塊類似于同步FIFO[7](First In First Out,先進(jìn)先出)結(jié)構(gòu),但是并不設(shè)置full信號,因為事件的數(shù)量有限,并不足以使存儲溢出。該結(jié)構(gòu)深度為32字節(jié),寬度為8bit。

        圖1 總體結(jié)構(gòu)框圖

        NMT狀態(tài)機主體模塊在處理完之前的事件,并且數(shù)據(jù)存儲排序結(jié)構(gòu)不為空的時候,讀取新的事件作為自身的輸入,推動狀態(tài)機運轉(zhuǎn)。相比原先由C語言實現(xiàn)的方式,該模塊做了較大調(diào)整,新設(shè)置若干主體狀態(tài),而原先的狀態(tài)機包含在其中一個主體狀態(tài)中。狀態(tài)機主體右側(cè)接口連接用來模擬DLL相關(guān)功能的激勵文件,當(dāng)狀態(tài)改變時,NMT主體部分通知后者,后者做出確認(rèn)后再取出新的事件。整個執(zhí)行過程如此反復(fù)。

        2 各模塊設(shè)計

        2.1 數(shù)據(jù)存儲排序模塊

        該模塊的輸入輸出信號如圖2所示。該模塊允許兩個事件端口同時輸入,同時被存儲,而來自CPU的事件存儲位置靠前。

        圖2 數(shù)據(jù)存儲排序模塊

        各信號的意義見表1。

        表1 端口各信號的意義

        該模塊深度為32字節(jié),寬度為8bit,每次寫入一個事件,內(nèi)部寫指針就加1,同時寫入則加2;而讀出一個事件,讀指針則加1。當(dāng)各指針數(shù)值等于31,再加1時則跳回到0,如此周而復(fù)始,當(dāng)讀指針等于寫指針時,則空信號有效,表示事件已經(jīng)被取空。

        2.2 NMT狀態(tài)機主體模塊

        為實現(xiàn)NMT功能,在確保協(xié)議一致性的基礎(chǔ)上,對原先C語言實現(xiàn)的方案作了較大改動,定義了8個主狀態(tài),主狀態(tài)之間的轉(zhuǎn)換如圖3所示。這8個狀態(tài)及其功能為:

        NmtReady:將上一輪的新NMT狀態(tài)寄存器的值賦給舊NMT狀態(tài)寄存器,并且發(fā)出讀信號到存儲隊列;

        eventRd:將讀信號清零;

        eventGet:將事件存儲隊列輸出的事件寄存以供NMT狀態(tài)機使用;

        NmtSm:NMT狀態(tài)機功能主體;

        staCh:寄存新的NMT狀態(tài),然后發(fā)送狀態(tài)改變信號,通知數(shù)據(jù)鏈路層(DLL)NMT狀態(tài)已經(jīng)改變了,DLL會同時寄存新舊兩個狀態(tài);

        staCh_n:狀態(tài)改變信號清零,請求DLL處理NMT狀態(tài)改變這一事件并做好相應(yīng)的一系列準(zhǔn)備工作;

        dllDeal_n:請求處理信號清零;

        dllDealwait:等待DLL處理NMT狀態(tài)改變這一事件,并且做好一系列準(zhǔn)備工作,直到得到DLL對處理請求的確認(rèn),再跳到NmtReady狀態(tài)。

        其中,必須輸出新的NMT狀態(tài)和舊的NMT狀態(tài)給數(shù)據(jù)鏈路層,并且必須準(zhǔn)確控制狀態(tài)機,使得它只有等到DLL做好準(zhǔn)備才能跳到下一狀態(tài),否則會出現(xiàn)數(shù)據(jù)流的紊亂,進(jìn)而導(dǎo)致整個系統(tǒng)的功能設(shè)計失敗,這一點尤為關(guān)鍵。

        在圖3中,當(dāng)主狀態(tài)處于NmtReady,并且事件隊列不空(有新的事件)的時候,主狀態(tài)機發(fā)出讀信號,讀取事件隊列中的事件,開始新一輪的狀態(tài)機循環(huán)。根據(jù)NmtSm狀態(tài)下包含的NMT狀態(tài)機功能主體運行的結(jié)果,即NMT狀態(tài)是否改變,可以有兩種狀態(tài)轉(zhuǎn)換方式:1)當(dāng)NMT狀態(tài)改變時,則繼續(xù)依次經(jīng)歷staCh、staCh_n、dllDeal_n、dllDealwait這幾個狀態(tài),而后跳回到NmtReady狀態(tài);2)當(dāng)NMT狀態(tài)未變時,則直接跳回到NmtReady狀態(tài),結(jié)束這一輪循環(huán)。

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

        對于NmtSm狀態(tài)下包含的NMT狀態(tài)機功能主體,可分為兩大部分,一是通用初始化部分,二是主站NMT狀態(tài)機或者從站NMT狀態(tài)機部分。各部分狀態(tài)轉(zhuǎn)換關(guān)系如圖4所示。

        GsOff為關(guān)閉狀態(tài),通用初始化部分NMT狀態(tài)與所實現(xiàn)的功能為:

        GsInitialising:完成基本的節(jié)點初始化;

        GsResetApplication:設(shè)置制造商特定行規(guī)區(qū)和標(biāo)準(zhǔn)設(shè)備行規(guī)區(qū)的參數(shù);

        GsResetCommunication:設(shè)置通信行規(guī)區(qū)的參數(shù);

        GsResetConfiguration:用對象字典中的配置參數(shù)進(jìn)行設(shè)備配置。

        圖4陰影部分中的CN狀態(tài)機的NMT狀態(tài)和功能為:

        CsNotActive:只監(jiān)視網(wǎng)絡(luò)狀態(tài);

        CsPreOperational1:接到MN的SoA幀才發(fā)送一幀;

        CsStopped:節(jié)點不參與數(shù)據(jù)幀交換,但監(jiān)視SoA幀;

        CsPreOperational2:忽略接到的PDO數(shù)據(jù),但響應(yīng)SoA幀;

        CsReadyToOperate:參與周期幀的交換;

        CsOperational:CN的正常運行狀態(tài);

        CsBasicEthernet:進(jìn)行傳統(tǒng)以太網(wǎng)通信。

        MN狀態(tài)機的狀態(tài)和功能為:

        MsNotActive:監(jiān)視網(wǎng)絡(luò)狀態(tài),確保沒有其他活動的MN;

        MsPreOperational1:開始執(zhí)行POWERLINK短周期;

        MsPreOperational2:開始執(zhí)行等時同步POWERLINK周期;

        MsReadyToOperate:執(zhí)行等時同步POWERLINK周期;

        MsOperational:POWERLINK正常運行狀態(tài);

        MsBasicEthernet:進(jìn)行傳統(tǒng)以太網(wǎng)通信。

        圖4 NMT狀態(tài)機功能主體

        如圖4所示,狀態(tài)機最初處于GsOff狀態(tài),在事件的推動下,首先經(jīng)歷一個初始化過程,即圖中的NMT_GS_INITIALISATION,而后根據(jù)具體的配置,決定站點進(jìn)入MN狀態(tài)機或者CN狀態(tài)機。

        3 仿真

        在普通的PC機平臺之上,使用仿真軟件Modelsim SE[8]進(jìn)行功能仿真。仿真模型如圖5所示。用同一個仿真模塊來完成兩個作用:事件來源,以及DLL中與NMT相關(guān)的那部分功能。

        涉眾型經(jīng)濟(jì)犯罪中,很少是單人作案的,所以大部分涉眾型經(jīng)濟(jì)犯罪都是有組織的。犯罪嫌疑人為了提升可信度,往往會通過合法公司的開設(shè)方式實施經(jīng)濟(jì)犯罪,而且在這個過程中需要多個人的分工完成,這也需要組織的嚴(yán)密性和合理性[2]。這些犯罪分子往往是通過對社會上不法分子的勾結(jié),并與金融機構(gòu)的員工串通,實施犯罪。銀行部分內(nèi)部人員在大量金錢的誘惑下,意志薄弱,難以抵抗腐敗,這也是導(dǎo)致犯罪分子得逞的重要原因。比如,中國銀行廣州分行會計組長利用職務(wù)之便與某詐騙公司勾結(jié),偽造存款單據(jù)、偽刻公章,共騙取廣州12家企事業(yè)單位超過8 000萬元。

        用Verilog HDL語言編寫激勵信號文件[9],向狀態(tài)機輸送事件,使之從GsOff狀態(tài)一直轉(zhuǎn)換到MsOperational狀態(tài),而后再關(guān)閉到GsOff狀態(tài),通過這一周而復(fù)始的過程來檢驗這兩個模塊(NMT狀態(tài)機和數(shù)據(jù)存儲排序模塊)的功能。對于其中的TimerMsPreOp1同時加上一個來自DLL功能區(qū)域的事件DllCeSoa,用來檢驗兩事件同時進(jìn)入隊列時,隊列能否正確完成排序功能。輸入的事件(只有一個來自DLL功能區(qū)域)及其十六進(jìn)制編碼按照順序如下:

        圖5 仿真模型

        SwReset(8′h10)

        EnterResetApp(8′h20)

        EnterResetCom(8′h21)

        EnterResetConfig(8′h23)

        EnterMsNotActive(8′h25)

        TimerMsPreOp1(8′h27)同時DllCeSoa(8′h0A)

        EnterResetConfig(8′h23)

        TimerMsPreOp1(8′h27)

        AllMandatoryCNIdent(8′h2A)

        TimerMsPreOp2(8′h29)

        EnterReadyToOperate(8′h2B)

        EnterMsOperational(8′h2C)

        SwitchOff(8′h2D)關(guān)閉

        若功能正確,則隨之產(chǎn)生的NMT狀態(tài)變化過程應(yīng)當(dāng)為:

        GsOff( 16′h0000)

        GsInitialising(16′h0019)

        GsResetApplication(16′h0029)

        GsResetCommunication(16′h0039)

        GsResetConfiguration(16′h0079)

        MsNotActive(16′h021C)

        MsPreOperational1(16′h021D)

        GsResetCommunication(16′h0039)

        GsResetConfiguration(16′h0079)

        MsNotActive(16′h021C)

        MsPreOperational1(16′h021D)

        MsPreOperational2(16′h025D)

        MsReadyToOperate(16′h026D)

        MsOperational(16′h02FD)

        GsOff(16′h0000)

        激勵文件部分代碼如下:

        ′timescale 1ns/1ns

        ′define timeslice 20

        module NmtTestSig;

        always#(′timeslice/2)CLK=~CLK;

        initial

        begin

        CLK=0;

        RESET=1;

        MNcn=1;

        CPU_ADDR=0;

        RX_EN=0;

        CHANGE_ACK=0;

        CPU_EVENT=NoEvent;

        RX_EVENT=NoEvent;

        #100;

        RESET=0;

        #(′timeslice+′timeslice/2);

        CPU_ADDR=1;

        CPU_EVENT=SwReset;

        #(′timeslice);

        CPU_ADDR=0;

        CPU_EVENT=NoEvent;

        …………………………以下代碼從略。

        仿真結(jié)果如圖6所示。

        圖6 仿真結(jié)果圖

        圖6中的NewNmtState表示NMT狀態(tài)發(fā)生改變后的新狀態(tài),OldNmtState則記錄了在NMT狀態(tài)發(fā)生改變后,未改變之前的舊狀態(tài)。從圖6可見,NMT狀態(tài)機最初處于GsOff( 16′h0000)狀態(tài),隨后來自CPU的事件SwReset(8′h10)使?fàn)顟B(tài)機轉(zhuǎn)換至GsInitialising(16′h0019)狀態(tài)。CPU按照這種方式,利用輸入事件的方法逐步使NMT狀態(tài)機運轉(zhuǎn),事件依次為EnterResetApp(8′h20),EnterResetCom(8′h21),EnterResetConfig(8′h23),EnterMsNotActive(8′h25);隨之變化的狀態(tài)依次為GsResetApplication(16′h0029),GsResetCommunication(16′h0039),GsResetConfiguration(16′h0079),MsNotActive(16′h021C)。在CPU輸入事件TimerMsPreOp1(8′h27)的同時,其他電路也輸入事件DllCeSoa(8′h0A),以此來檢測數(shù)據(jù)存儲排序模塊是否能夠準(zhǔn)確存儲同時輸入的事件,隨之的狀態(tài)改變?yōu)镚sResetCommunication(16′h0039),GsResetConfiguration(16′h0079)。在前述事件的依次作用下,NMT狀態(tài)最終轉(zhuǎn)換到GsOff( 16′h0000)狀態(tài),完成了一個狀態(tài)機循環(huán)。圖中顯示的狀態(tài)變化結(jié)果符合預(yù)期,所以驗證了設(shè)計功能的正確性。

        4 結(jié)論

        NMT狀態(tài)機是POWERLINK通信協(xié)議棧中的核心模塊,該模塊通常是由C語言實現(xiàn),包含在POWERLINK開源代碼之中?,F(xiàn)對原先的實現(xiàn)方式做了調(diào)整,設(shè)計了電路排序結(jié)構(gòu)代替原先的數(shù)據(jù)結(jié)構(gòu),定義了新的主狀態(tài),采用Verilog HDL語言進(jìn)行描述,經(jīng)仿真驗證,功能正確可行。

        [1]劉寧.EPA 工業(yè)以太網(wǎng)實時性分析及調(diào)度方法的研究[D].大連:大連理工大學(xué),2010.

        [2]LI W,ZHENG S,CHEN W.Research and Application of Ethernet/IP Industrial Ethernet[J].Electronic Design Engineering,2011,19(9):26-29.

        [3]Feld J.PROFINET-scalable factory communication for all applications[C].Factory Communication Systems,2004.Proceedings.2004 IEEE International Workshop on.IEEE,2004:33-38.

        [4]Jansen D,Buttner H.Real-time Ethernet:the EtherCAT solution[J].Computing and Control Engineering,2004,15(1):16-21.

        [5]Cena G,Seno L,Valenzano A,et al.Performance analysis of Ethernet Powerlink networks for distributed control and automation systems[J].Computer Standards & Interfaces,2009,31(3):566-572.

        [6]Reese R B,Thornton M A.Introduction to logic synthesis using Verilog HDL[J].Synthesis Lectures on Digital Circuits and Systems,2006,1(1):1-84.

        [7]Tsigas P,Zhang Y.A simple,fast and scalable non-blocking concurrent fifo queue for shared memory multiprocessor systems[C].Proceedings of the thirteenth annual ACM symposium on Parallel algorithms and architectures.ACM,2001:134-143.

        [8]Aparna P R,Thomas N.Design and implementation of a high performance multiplier using HDL[C].Computing,Communication and Applications(ICCCA),2012 International Conference on.IEEE,2012:1-5.

        [9]李瑛,張盛兵.Verilog Testbench 設(shè)計技巧和策略[J].計算機工程與應(yīng)用,2003,39(10):128-130.

        ImplementationofPOWERLINKNetworkManagementUsingVerilogHDL

        ZHAO Cuichen1,2,YANG Zhijia2,LIU Nian1

        (1. Shenyang Ligong University,Shenyang 110159,China;2. Key Lab. of Networked Control Systems,Shenyang Institute of Automation,Chinese Academy of Science,Shenyang 110016,China)

        In order to take advantage of the speediness of digital circuit to improve the real-time performance of protocol stack,a series of circuits are designed to implement the functions of data link layer and layer below.The network management(NMT)which determines the operational mode of communication functional unit is on the core status.A circuit for data storage and sorting is used to store the events orderly.Without changing protocol consistency,a few new main states are defined to read events from the event queue,implement the function of the NMT state machine,and do some relevant treatment after the NMT state has been changed.All of them are designed by Verilog HDL.Finally,the circuits are simulated by Modelsim SE,an EDA development software,and the correctness of the function of them is verified.

        POWERLINK;ethernet;Verilog;EDA

        2013-11-29

        國家863項目(2013AA040301)

        趙粹臣(1988—),男,碩士研究生.通訊作者: 楊志家(1968—),男,研究員,研究方向:片上系統(tǒng)設(shè)計與驗證.

        1003-1251(2014)05-0021-06

        TN495

        A

        馬金發(fā))

        猜你喜歡
        狀態(tài)機以太網(wǎng)排序
        排序不等式
        基于1500以太網(wǎng)養(yǎng)豬場的智能飼喂控制系統(tǒng)的設(shè)計與實現(xiàn)
        恐怖排序
        基于有限狀態(tài)機的交會對接飛行任務(wù)規(guī)劃方法
        節(jié)日排序
        刻舟求劍
        兒童繪本(2018年5期)2018-04-12 16:45:32
        談實時以太網(wǎng)EtherCAT技術(shù)在變電站自動化中的應(yīng)用
        電子制作(2017年24期)2017-02-02 07:14:44
        一種90W高功率以太網(wǎng)供電系統(tǒng)的設(shè)計
        淺談EPON與工業(yè)以太網(wǎng)在貴遵高速公路中的應(yīng)用
        FPGA設(shè)計中狀態(tài)機安全性研究
        在线观看91精品国产免费免费| 人妻少妇满足中文字幕| 久久久噜噜噜久久中文福利| 97夜夜澡人人爽人人喊中国片| av无码av在线a∨天堂app| 手机在线免费av网址| 久久综合精品人妻一区二区三区| 九九热线有精品视频86| 国产亚洲精品看片在线观看| 国产成人夜色在线视频观看| 日韩有码中文字幕在线观看| 免费a级作爱片免费观看美国| 日韩区在线| 免费一区二区三区av| 人妻少妇哀求别拔出来| 婷婷中文字幕综合在线| 91久久精品无码人妻系列 | 日本VA欧美VA精品发布| av一区二区不卡久久| 国产免费一区二区三区精品视频| 50岁退休熟女露脸高潮| 亚洲最大成av人网站| 免费人成网在线观看品观网| 久久久精品国产免大香伊| 性高朝久久久久久久| 国产做床爱无遮挡免费视频| 久久麻传媒亚洲av国产| 中文字幕人妻中文| 免费jjzz在线播放国产| 亚洲精品中文字幕乱码三区99| 少妇真实被内射视频三四区| 国产乱人伦av在线无码| 亚洲国产剧情一区在线观看| 女人被躁到高潮嗷嗷叫免| 亚洲欧美国产国产综合一区| 国产精品一区二区久久乐下载| 久久亚洲国产高清av一级| 摸丰满大乳奶水www免费| 99亚洲精品久久久99| 精品一区二区三区不老少妇| 精品欧美一区二区三区久久久|