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

        ?

        基于MVB 與以太網(wǎng)冗余通信的司機顯示單元數(shù)據(jù)同步設(shè)計

        2022-09-07 07:02:12饒?zhí)熨F
        控制與信息技術(shù) 2022年4期
        關(guān)鍵詞:信號方法

        饒?zhí)熨F,王 雨,張 義

        (株洲中車時代電氣股份有限公司,湖南 株洲 412001)

        0 引言

        當(dāng)前機車網(wǎng)絡(luò)通信多采用多功能車輛總線(multifunction vehicle bus,MVB)與以太網(wǎng)冗余設(shè)計模式[1‐4],在整車控制網(wǎng)絡(luò)中,網(wǎng)絡(luò)控制模塊與輸入輸出單元、司機顯示單元(driver display unit,DDU)及事件記錄單元等均采用MVB 與以太網(wǎng)冗余連接。任意時刻,在MVB與以太網(wǎng)中傳送的數(shù)據(jù)均保持一致。一旦有網(wǎng)絡(luò)通信線路發(fā)生故障,可進行通信線路自動切換。

        動力集中列車中,網(wǎng)絡(luò)控制系統(tǒng)中兩個司機顯示單元的軟硬件完全一致,差別僅在于默認顯示主界面不同,因此兩個顯示單元在網(wǎng)絡(luò)控制系統(tǒng)中的地位完全一樣。行車過程中,一個顯示單元被默認為牽引顯示,其主界面顯示牽引狀態(tài)數(shù)據(jù);另一顯示單元被默認為制動顯示,其主界面顯示制動狀態(tài)數(shù)據(jù)。因為兩個司機顯示單元完全冗余,所以要求兩個顯示單元任意時刻發(fā)送給網(wǎng)絡(luò)控制單元的數(shù)據(jù)(包括脈沖信號、電平信號)完全一致。因此,司機在任一顯示單元中進行數(shù)據(jù)設(shè)置操作后,該顯示單元利用現(xiàn)有的通信方式通知另一顯示單元進行數(shù)據(jù)同步,從而保證兩顯示單元數(shù)據(jù)時刻保持一致。

        由于MVB 與以太網(wǎng)通信采用冗余設(shè)計且數(shù)據(jù)發(fā)送時存在各類繁雜要求(如各類型脈沖信號、電平信號數(shù)據(jù)交換),這增加了兩司機顯示單元數(shù)據(jù)同步發(fā)送的復(fù)雜性。由于設(shè)計方法采用MVB與以太網(wǎng)數(shù)據(jù)獨立處理的方式,且目前同步處理方法不完善,導(dǎo)致經(jīng)常出現(xiàn)以太網(wǎng)數(shù)據(jù)解析處理錯誤及脈沖信號同步成電平信號的情況。為此,本文提出一種新的MVB與以太網(wǎng)數(shù)據(jù)通信冗余設(shè)計方法(包括數(shù)據(jù)的接收與發(fā)送的冗余處理),其將MVB與以太網(wǎng)數(shù)據(jù)進行歸一化處理,有效防范數(shù)據(jù)解析錯誤;同時提出在數(shù)據(jù)發(fā)送時針對脈沖與電平信號采用不同的處理方法,以實現(xiàn)數(shù)據(jù)同步,該處理方法降低了數(shù)據(jù)同步難度,提升了數(shù)據(jù)同步的正確率。

        1 MVB與以太網(wǎng)數(shù)據(jù)冗余處理

        1.1 原設(shè)計方法

        MVB 數(shù)據(jù)交換與以太網(wǎng)數(shù)據(jù)交換是各自獨立處理的。MVB通信直接調(diào)用底層封裝函數(shù)實現(xiàn)數(shù)據(jù)交換,整個過程較為簡單。以太網(wǎng)數(shù)據(jù)處理方法如圖1所示。在獲取以太網(wǎng)數(shù)據(jù)后,根據(jù)協(xié)議定義數(shù)據(jù)在以太網(wǎng)數(shù)組中的偏移結(jié)構(gòu)體,然后根據(jù)具體偏移進行數(shù)據(jù)解析。既往機車整車控制網(wǎng)絡(luò)中,由于沒有建立MVB端口與以太網(wǎng)數(shù)據(jù)的一一映射關(guān)系,所以經(jīng)常會出現(xiàn)偏移計算錯誤的情況。

        圖1 以太網(wǎng)數(shù)據(jù)獨立處理方法Fig. 1 Independent processing method of Ethernet data

        1.2 新設(shè)計方法

        新的通信系統(tǒng)冗余設(shè)計方法,保證了MVB 與以太網(wǎng)中傳輸?shù)臄?shù)據(jù)完全一致。MVB 通信采用端口形式進行定義,端口根據(jù)其配置的F_CODE 值決定存儲區(qū)域大小。F_CODE 值一般配置為4,一個端口號對應(yīng)一個32 字節(jié)的存儲區(qū)域。在數(shù)據(jù)接收和發(fā)送時,只須知道當(dāng)前數(shù)據(jù)變量所在的端口號及其在32 字節(jié)中的偏移(字節(jié)變量采用字節(jié)偏移、位變量需采用字節(jié)偏移與在該字節(jié)中的位偏移),便可訪問該變量。

        以太網(wǎng)通信數(shù)據(jù)的接收與發(fā)送一般采用char型數(shù)組,并且一幀包含多個端口數(shù)據(jù)。建立端口與以太網(wǎng)通信數(shù)據(jù)的一一映射(圖2)后,只需將MVB通信函數(shù)重載,就可保證以太網(wǎng)數(shù)據(jù)的接收與發(fā)送方式與MVB的完全相同,從而防止以太網(wǎng)數(shù)據(jù)解析因煩瑣而產(chǎn)生錯誤。在函數(shù)調(diào)用時,只存在端口號的差異,其他參數(shù)(如偏移)則完全一樣,這樣可有效防止因以太網(wǎng)數(shù)據(jù)獲取方式與MVB 的不一致而導(dǎo)致的錯誤,也可為后續(xù)MVB與以太網(wǎng)數(shù)據(jù)同步做好前期預(yù)處理。

        圖2 以太網(wǎng)與MVB 數(shù)據(jù)映射關(guān)系圖Fig. 2 Mapping diagram of Ethernet data and MVB data

        將以太網(wǎng)接收的數(shù)據(jù)直接拷貝到對應(yīng)以太網(wǎng)映射端口數(shù)組指針所指向的地址中去,即可建立以太網(wǎng)與MVB 的數(shù)據(jù)映射關(guān)系,其示例代碼如圖3 所示。

        圖3 映射建立的示例代碼Fig. 3 Sample code by map building

        建立映射關(guān)系之后,MVB通信與以太網(wǎng)通信采用的通信函數(shù)示例如下:

        (1)MVB通信函數(shù),包括字節(jié)獲取函數(shù)和字節(jié)寫入函數(shù)。

        get_uchar(int port_num,int ofs_byte)//字節(jié)獲取函數(shù),其中,port_num為端口號,ofs_byte為變量在32字節(jié)中的偏移。

        put_uchar(int port_num,int ofs_byte,unsigned char value)//字節(jié)寫入函數(shù),其中,port_num 為端口號,ofs_byte 為變量在32 字節(jié)中的偏移,value 為寫入的數(shù)值。

        (2)以太網(wǎng)通信函數(shù),包括字節(jié)獲取函數(shù)和字節(jié)寫入函數(shù)。

        get_uchar(char *rdp_port,int ofs_byte)//字 節(jié) 獲取函數(shù),其中,rdp_port 為端口映射指針,ofs_byte 為變量在32字節(jié)中的偏移。

        put_uchar(char *rdp_port,int ofs_byte,unsigned char value)//字節(jié)寫入函數(shù),rdp_port 為端口映射指針,其中,ofs_byte 為變量在32 字節(jié)中的偏移,value為寫入的數(shù)值。

        為進一步優(yōu)化MVB與以太網(wǎng)數(shù)據(jù)交換函數(shù),在通信冗余時,根據(jù)網(wǎng)絡(luò)通信優(yōu)先信號進行數(shù)據(jù)選擇,對MVB函數(shù)與以太網(wǎng)函數(shù)進一步封裝。將以太網(wǎng)映射端口與MVB 端口用結(jié)構(gòu)體數(shù)組存儲,并采用宏定義為MVB與以太網(wǎng)的映射端口建立唯一的宏索引(圖4)。因此,傳遞端口信息只傳遞其宏索引,不必考慮當(dāng)前的通信方式,也無須同時調(diào)用MVB與以太網(wǎng)數(shù)據(jù)交換函數(shù),使函數(shù)調(diào)用更加簡便。

        圖4 端口映射與宏索引的對應(yīng)關(guān)系Fig. 4 Correspondence between port mapping and macro index

        端口索引配置數(shù)組結(jié)構(gòu)信息如下:

        配置宏索引的數(shù)據(jù)交換函數(shù)示例如下:

        (1)getUchar(int index,int ofs_byte,int commType)//字節(jié)獲取函數(shù),其中,index為端口索引序號,ofs_byte為變量在32 字節(jié)中的偏移,commType 為通信冗余篩選信號(MVB或以太網(wǎng))。

        (2)putUchar(int index,int ofs_byte,unsigned char value,int commType)//字節(jié)寫入函數(shù),index為端口索引序號,ofs_byte為變量在32字節(jié)中的偏移,commType 為通信冗余篩選信號(MVB或以太網(wǎng))。

        將MVB與以太網(wǎng)通信進行歸一化處理,在進行數(shù)據(jù)交換時,所需解析或者發(fā)送的數(shù)據(jù)在以太網(wǎng)接收數(shù)組中的具體偏移只需參考MVB 協(xié)議,保持與MVB 通信一致即可。

        新的設(shè)計方法在函數(shù)內(nèi)部通過通信冗余篩選信號方式自動完成對當(dāng)前信賴的通信方式的篩選(即當(dāng)前是信賴MVB還是以太網(wǎng)數(shù)據(jù)),有效避免了由于以太網(wǎng)數(shù)據(jù)數(shù)組較大而出現(xiàn)偏移計算錯誤所導(dǎo)致的數(shù)據(jù)解析錯誤。在新項目的應(yīng)用中,只需修改MVB與以太網(wǎng)映射關(guān)系所建立的部分代碼,即可完成MVB與以太網(wǎng)的一一映射配置,而其他通信部分代碼則無須更改即可直接重用,這樣提升了開發(fā)效率。

        2 脈沖信號、電平信號發(fā)送

        2.1 原設(shè)計方法

        原設(shè)計方法中,脈沖信號發(fā)送[5‐8]未進行統(tǒng)一處理。若發(fā)送脈沖信號,則定義該脈沖信號的周期計數(shù)變量,在該脈沖信號發(fā)送后(即在MVB對應(yīng)位寫入數(shù)據(jù)后)開始脈沖周期計數(shù)。當(dāng)周期計數(shù)達到該脈沖信號的周期后,再在MVB 對應(yīng)的位寫入0,自此完成脈沖信號的發(fā)送。由于對每個脈沖信號均須被單獨處理,因此,存在大量類似的代碼編寫工作,且無法直接兼容以太網(wǎng)通信條件下脈沖信號的發(fā)送。

        2.2 新設(shè)計方法

        當(dāng)司機在司機顯示單元設(shè)置數(shù)據(jù)后,所設(shè)置的數(shù)據(jù)將以脈沖或者電平形式發(fā)給網(wǎng)絡(luò)控制單元。脈沖信號類型包括位脈沖、字節(jié)脈沖和字脈沖。由于脈沖信號可能存在脈沖寬度差異,為方便后續(xù)脈沖信號發(fā)送數(shù)據(jù)的同步處理,將脈沖信號進行統(tǒng)一管理,建立相應(yīng)的脈沖發(fā)送結(jié)構(gòu)數(shù)組,并為每個脈沖建立唯一的索引號。脈沖信號發(fā)送流程如圖5所示。

        圖5 脈沖信號處理流程Fig. 5 Flow chart of pulse signal processing

        脈沖結(jié)構(gòu)信息如下:

        脈沖信號發(fā)送時采用脈沖鏈表(圖6)進行處理。每發(fā)送一個脈沖,在脈沖鏈表中加入該脈沖發(fā)送信號;一旦脈沖信號發(fā)送周期到期,則從脈沖隊列中清除該脈沖信號。采用脈沖鏈表處理脈沖,可以實時獲取本地脈沖信息,對脈沖信號進行統(tǒng)一管理。

        圖6 脈沖鏈表Fig. 6 Pulse linked list

        脈沖鏈表關(guān)鍵函數(shù)如下:

        電平信號發(fā)送比較簡單,直接調(diào)用先前定義的putUchar等相關(guān)函數(shù),即可完成數(shù)據(jù)的發(fā)送。

        脈沖發(fā)送統(tǒng)一管理方式在后續(xù)項目中可以直接應(yīng)用,對脈沖信號進行簡單配置,無須重復(fù)編碼,這樣可節(jié)省開發(fā)工作量。

        3 脈沖信號、電平信號發(fā)送同步

        3.1 原設(shè)計方法

        原設(shè)計方法中[8‐14],由于MVB與以太網(wǎng)數(shù)據(jù)交換未采用歸一化處理,將MVB與以太網(wǎng)數(shù)據(jù)同步進行獨立處理,并采用不同的處理方法,這增加了問題的復(fù)雜性。在數(shù)據(jù)同步時,原設(shè)計未將脈沖信號與電平信號同步分開處理,導(dǎo)致每次數(shù)據(jù)發(fā)送均須執(zhí)行一次同步操作,讀取對方端口所有信息,然后將讀取到的數(shù)據(jù)同步發(fā)送出去。由于端口所有數(shù)據(jù)是統(tǒng)一進行處理的,因此無法處理周期變化的脈沖信號發(fā)送。另外,當(dāng)有脈沖信號發(fā)送時,若再發(fā)送其他脈沖信號,則須等待直至前面脈沖信號發(fā)送結(jié)束,無法連續(xù)發(fā)送脈沖信號。若兩個顯示單元不斷讀取對方的發(fā)送數(shù)據(jù),程序則會陷入死循環(huán),造成自身無法正常進行數(shù)據(jù)發(fā)送,也無法區(qū)分脈沖信號與電平信號。可見,原設(shè)計方法無法滿足當(dāng)前應(yīng)用場景的需求。

        3.2 新設(shè)計方法

        為有效處理數(shù)據(jù)發(fā)送信息同步問題,新設(shè)計方法采用主動觸發(fā)方式。在兩個顯示單元分別配置信號同步端口,當(dāng)本地有數(shù)據(jù)同步發(fā)送的需求時,通過該端口發(fā)送脈沖信號通知對方讀取本顯示單元信息,另一端收到信號后讀取對方信息,完成數(shù)據(jù)發(fā)送,如圖7 所示。同步方式改為通知方式,區(qū)分處理脈沖與電平信號同步,有效解決了同步死循環(huán)問題。

        圖7 數(shù)據(jù)同步示意Fig. 7 Schematic diagram of data synchronization

        以DDU1 為例進行同步設(shè)計說明。假設(shè)DDU1 中的源端口分別為0x30,0x31,0x32(以下簡稱1、2、3 號源端口),在DDU1 中配置源端口0x33 作為同步信號發(fā)送端口,該端口的第1和第2個字節(jié)用于電平信息同步,后面30 個字節(jié)用于脈沖信號同步,每位對應(yīng)一個脈沖發(fā)送標識,該標識與脈沖索引一一對應(yīng)。同步端口信息結(jié)構(gòu)如圖8所示。

        圖8 同步端口信息結(jié)構(gòu)Fig.8 Structure of synchronization port information

        當(dāng)DDU1 通過源端口0x30 發(fā)送常量數(shù)據(jù)時,在0x33端口的第1個字節(jié)發(fā)送脈沖信號1,通知DDU2此時DDU1中1號源端口存在電平信號需要同步。DDU2在收到此脈沖信號變化的檢測后,算法邏輯如下:

        (1)從DDU1讀取1號源端口所有數(shù)據(jù)。

        (2)根據(jù)脈沖配置信息,清除該端口中包含的所有脈沖信號,即脈沖對應(yīng)位置清零。

        (3)若DDU2 中與DDU1 對應(yīng)的1 號源端口有脈沖信號正在發(fā)送(即在脈沖隊列中存在脈沖信息),則將脈沖隊列值填入DDU2中的該端口中。

        (4)DDU2完成數(shù)據(jù)同步發(fā)送。

        電平信號同步算法流程如圖9所示。

        圖9 電平信號同步算法流程Fig. 9 Flow chart of level signal synchronization algorithm

        若DDU1 發(fā)送脈沖索引為1 的脈沖,則在0x33端口bit 0 位發(fā)送脈沖信號,通知DDU2 此時DDU1發(fā)送了1 號脈沖,依次類推。此時DDU2 端算法邏輯如下:

        (1)讀取0x33 脈沖發(fā)送標志,檢測脈沖發(fā)送標志位確定是否有脈沖信號發(fā)送。

        (2)若檢測到有脈沖信號發(fā)送,則根據(jù)脈沖標識與脈沖索引的對應(yīng)關(guān)系在脈沖配置數(shù)組中獲取脈沖信息,并根據(jù)脈沖的類型(位脈沖、字節(jié)脈沖、字脈沖)進行區(qū)分處理。

        (3)若為位脈沖,則直接發(fā)送脈沖信息;若為字節(jié)脈沖或字脈沖,則根據(jù)脈沖配置信息,首先獲取在DDU1 對應(yīng)的脈沖信息發(fā)送源端口中發(fā)送的值,然后填入DDU2 的脈沖配置信息中,再將脈沖信息發(fā)送出去。

        脈沖信號同步算法流程如圖10所示。

        圖10 脈沖信號同步算法流程Fig.10 Pulse signal synchronization algorithm flow

        4 結(jié)語

        動力集中列車中,兩司機顯示單元數(shù)據(jù)同步發(fā)送時,常出現(xiàn)以太網(wǎng)數(shù)據(jù)解析錯誤及數(shù)據(jù)同步錯誤情況。對此,文章提出一種基于MVB與以太網(wǎng)冗余通信的司機顯示單元數(shù)據(jù)同步設(shè)計方法。其將MVB與以太網(wǎng)通信進行歸一化處理,針對現(xiàn)有的數(shù)據(jù)發(fā)送方法進行改進,適用于多種復(fù)雜的脈沖發(fā)送要求;同時,在改進數(shù)據(jù)交換的方法基礎(chǔ)之上,實現(xiàn)了多司機顯示單元的數(shù)據(jù)同步。該設(shè)計方法已于2022年初開始在動力集中雙源項目中進行應(yīng)用,完成了廠內(nèi)及環(huán)鐵的各種試驗調(diào)試與驗證;目前,采用該方法的司機顯示單元已隨車投入試運行。整個驗證及試運行環(huán)節(jié)中,各功能模塊無異常情況發(fā)生。結(jié)果表明,其有效地解決了網(wǎng)絡(luò)系統(tǒng)中司機顯示單元在MVB 與以太網(wǎng)冗余通信情況下的數(shù)據(jù)交互同步問題。

        后續(xù),該設(shè)計方法將被應(yīng)用到其他具備類似應(yīng)用場景的應(yīng)用項目中,且無須重復(fù)編碼,只進行簡單配置即可。

        猜你喜歡
        信號方法
        信號
        鴨綠江(2021年35期)2021-04-19 12:24:18
        完形填空二則
        學(xué)習(xí)方法
        孩子停止長個的信號
        可能是方法不對
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        基于LabVIEW的力加載信號采集與PID控制
        一種基于極大似然估計的信號盲抽取算法
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢方法
        国产无套内射久久久国产| 手机在线观看av资源| 日本免费精品免费视频| 狠狠躁天天躁无码中文字幕图| 中文字幕av一区二区三区| 韩国女主播一区二区在线观看 | 精品久久久久88久久久| 太大太粗太爽免费视频| 日韩av中文字幕一卡二卡| 亚洲熟女少妇精品久久| 一区二区三区日本伦理| 中文字幕一区二区中文| 18禁止看的免费污网站| 内射人妻少妇无码一本一道| 国产精品9999久久久久| 精品国产av 无码一区二区三区| 少妇三级欧美久久| 三级国产女主播在线观看| 日韩女优一区二区视频| 91桃色在线播放国产| 91盗摄偷拍一区二区三区| 一个色综合中文字幕人妻激情视频| 免费国产a国产片高清网站| 日韩欧美人妻一区二区三区| 黄色视频免费在线观看| 欧美整片第一页| yw193.can尤物国产在线网页| 国产精品亚洲在钱视频| 国产高清视频在线不卡一区| 成人影院yy111111在线| 免费观看黄网站在线播放| 热99精品| 男女午夜视频一区二区三区| 日本在线观看一二三区| 娜娜麻豆国产电影| 亚洲欧美在线播放| 亚洲国产福利成人一区二区 | 被三个男人绑着躁我好爽视频| 大陆极品少妇内射aaaaa| 天天插天天干天天操| 中文字幕av一区二区三区诱惑|