国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

淺談基于以太網(wǎng)的地鐵門系統(tǒng)軟件通信模塊設(shè)計(jì)

2019-10-21 05:33:56姚茂軍
市場周刊·市場版 2019年38期
關(guān)鍵詞:線程IP地址調(diào)用

摘 要:隨著工業(yè)以太網(wǎng)應(yīng)用的日趨成熟和不斷推廣,地鐵門系統(tǒng)的通信網(wǎng)絡(luò)也逐漸從RS485、HDLC、MVB及CANopen等轉(zhuǎn)換為以太網(wǎng),以太網(wǎng)通信以其帶寬大、速度快,將成為未來地鐵通信網(wǎng)絡(luò)的發(fā)展趨勢。本文探討了圍繞以太網(wǎng)通信的地鐵門系統(tǒng)軟件通信模塊設(shè)計(jì)。

關(guān)鍵詞:地鐵門系統(tǒng);以太網(wǎng)通信;維護(hù)

一、 地鐵門系統(tǒng)通信網(wǎng)絡(luò)簡介

目前,地鐵門系統(tǒng)比較常見的MVB+CAN的主從通信方式逐步轉(zhuǎn)變?yōu)橐蕴W(wǎng)+CAN的主從通信方式和純以太網(wǎng)通信方式。之前的軟件無操作系統(tǒng),現(xiàn)在要運(yùn)行在linux系統(tǒng)上。門系統(tǒng)軟件維護(hù)由之前主要用串口逐步轉(zhuǎn)變?yōu)榇?以太網(wǎng)口或純以太網(wǎng)口。以太網(wǎng)通信是大勢所趨,有必要對通信模塊的設(shè)計(jì)進(jìn)行探討。目前的以太網(wǎng)協(xié)議以TRDP協(xié)議為主,分為過程數(shù)據(jù)PD(Process Data)和消息數(shù)據(jù)MD(Message Data),與CANopen協(xié)議以及MVB協(xié)議中的過程數(shù)據(jù)和消息數(shù)據(jù)類似。過程數(shù)據(jù)主要傳輸實(shí)時(shí)性要求較高的數(shù)據(jù),周期性傳輸,數(shù)據(jù)長度固定;消息數(shù)據(jù)長度不固定,根據(jù)需要傳輸。門系統(tǒng)與車輛的TRDP協(xié)議中,使用過程數(shù)據(jù),在自身維護(hù)時(shí),使用消息數(shù)據(jù)。

二、 以太網(wǎng)通信模塊設(shè)計(jì)

(一)以太網(wǎng)通信模塊總體設(shè)計(jì)

通信模塊軟件采用多線程設(shè)計(jì):(1)線程1為主線程負(fù)責(zé)TRDP報(bào)文收發(fā);(2)線程2負(fù)責(zé)定時(shí)更新TRDP報(bào)文以及對接收到的報(bào)文進(jìn)行解析響應(yīng);(3)線程3負(fù)責(zé)響應(yīng)維護(hù)接口。難點(diǎn)主要有兩個方面:(1)以往采用MVB或CANopen通信時(shí)無操作系統(tǒng),現(xiàn)在要移植TRDP協(xié)議棧并在linux系統(tǒng)上運(yùn)行;(2)以往門系統(tǒng)軟件維護(hù)通過串口完成,現(xiàn)在要通過以太網(wǎng)口完成,要進(jìn)行多線程的任務(wù)設(shè)計(jì)。

TRDP協(xié)議棧要進(jìn)行正常通信,必須先完成一系列配置工作,包括配置TRDP協(xié)議分配內(nèi)存空間,PD發(fā)送數(shù)據(jù)的周期、端口號以及目標(biāo)IP地址等。要完成這一系列的配置,有兩種方法,第一,通過修改源代碼實(shí)現(xiàn),第二,通過XML配置文件實(shí)現(xiàn)。后者對于項(xiàng)目移植較為方便,便于提高開發(fā)效率及開發(fā)質(zhì)量,所以選擇XML配置文件實(shí)現(xiàn)TRDP協(xié)議棧的配置。

(二)面向車輛網(wǎng)絡(luò)的通信設(shè)計(jì)

將與車輛網(wǎng)絡(luò)之間的TRDP通信協(xié)議,存儲為XML配置文件,其信息包括通信com-id、通信數(shù)據(jù)集id、通信端口周期、通信默認(rèn)超時(shí)時(shí)間、目標(biāo)地址或組播地址以及數(shù)據(jù)集等。

軟件通過讀取存儲器中的XML配置文件,解析出通信參數(shù),并根據(jù)預(yù)設(shè)在軟件中的外部編碼地址與IP地址的映射關(guān)系,計(jì)算出本設(shè)備的IP地址。軟件啟動后,會調(diào)用配置模塊,對TRDP協(xié)議棧進(jìn)行配置,配置完成后即可進(jìn)行PD和MD通信。配置過程如下圖1(a)所示。

(1)tlc_init()函數(shù),對TRDP協(xié)議棧進(jìn)行初始化,包含對線程、套接字、內(nèi)存等子模塊的初始化工作。

(2)initMarshalling()函數(shù),對TRDP輔助組件Marshall初始化工作。讀取XML文件的應(yīng)用數(shù)據(jù)部分,并完成字節(jié)對齊工作。

(3)tlc_openSession()函數(shù),為網(wǎng)絡(luò)接口創(chuàng)建TRDP會話,創(chuàng)建成功后會返回會話句柄。

(4)tlp_subscribe()函數(shù),訂閱PD報(bào)文,為接收PD報(bào)文做準(zhǔn)備,通過訂閱指定的ComId和IP地址。

(5)tlp_publish()函數(shù),發(fā)布PD報(bào)文,為發(fā)布PD報(bào)文做準(zhǔn)備,完成配置后,協(xié)議棧往指定的IP地址發(fā)布攜帶特定ComId的PD報(bào)文。

(6)tlm_addListener()函數(shù),訂閱MD報(bào)文,用于監(jiān)聽TRDP協(xié)議棧接收MD報(bào)文。

(7)vos_semaCreate()函數(shù),創(chuàng)建信號量,用于線程間交換信息。

(8)vos_mutexCreate()函數(shù),創(chuàng)建互斥量,保護(hù)共享資源的數(shù)據(jù)完整性。

(9)配置模塊完成所有配置工作后,配置完成標(biāo)志finishTauInit置位。

進(jìn)入主循環(huán)流程后,通過調(diào)用tlc_getInterval()函數(shù)獲取過程數(shù)據(jù)端口之間的最大延時(shí),將返回值以timeval結(jié)構(gòu)體類型變量tv返回,并與通信協(xié)議允許的最大延時(shí)做比較,避免數(shù)據(jù)異常產(chǎn)生的數(shù)據(jù)超范。調(diào)用select()函數(shù)并在tv時(shí)間內(nèi)阻塞線程,直到阻塞時(shí)間到或監(jiān)控到相應(yīng)的文件描述符滿足條件。調(diào)用tlc_process()函數(shù),該函數(shù)會通過調(diào)用trdp_pdSendQueued()函數(shù)和trdp_pdHandleTimeOuts()函數(shù)對過程數(shù)據(jù)的發(fā)送和接收超時(shí)的隊(duì)列進(jìn)行響應(yīng)處理。待發(fā)送的TRDP數(shù)據(jù)通過其他線程調(diào)用tlp_put()函數(shù)更新到相應(yīng)的發(fā)送隊(duì)列中,并在tlc_process()函數(shù)中發(fā)送出去。如下圖1(b)所示。

(三)面向門系統(tǒng)維護(hù)軟件的通信設(shè)計(jì)

門系統(tǒng)維護(hù)軟件發(fā)起的請求包括門狀態(tài)顯示、參數(shù)配置、故障下載、故障清除及軟件下載等。這部分功能用私有接口協(xié)議。由于門系統(tǒng)維護(hù)軟件發(fā)起的請求是非周期性的請求,請求類型也不確定,這主要取決于使用者何時(shí)操作了維護(hù)軟件以及操作了維護(hù)軟件上哪一個按鈕,因此維護(hù)軟件接口采用TRDP的消息數(shù)據(jù)協(xié)議。

當(dāng)以太網(wǎng)應(yīng)用軟件接收到維護(hù)軟件的消息數(shù)據(jù)后,激活MD回調(diào)函數(shù),回調(diào)函數(shù)會判斷消息類型,并根據(jù)消息類型進(jìn)行相應(yīng)的處理,同時(shí)調(diào)用VOS模塊中的信號量函數(shù)vos_semaGive(),激活被掛起的維護(hù)接口響應(yīng)線程。當(dāng)維護(hù)接口響應(yīng)線程接收到回調(diào)函數(shù)的信號量重新恢復(fù)運(yùn)行;調(diào)用vos_mutexLock()函數(shù)對共享資源上互斥鎖,處理結(jié)束后解除對共享資源的互斥鎖,釋放共享資源。軟件流程圖如圖1(b)所示。

三、 實(shí)驗(yàn)驗(yàn)證

在實(shí)驗(yàn)室將安裝有車輛網(wǎng)絡(luò)模擬軟件的筆記本電腦與門系統(tǒng)控制器用以太網(wǎng)線連接起來,將門系統(tǒng)控制器接上外部地址編碼線后,接通110V直流電源,同時(shí)啟動車輛網(wǎng)絡(luò)模擬軟件。通過安裝在筆記本電腦上的wireshark軟件,抓取以太網(wǎng)數(shù)據(jù)包如下圖所示。IP地址為10.0.1.18的網(wǎng)絡(luò)設(shè)備發(fā)送的TRDP PD數(shù)據(jù)的組播地址為239.255.0.1,IP地址為 10.0.1.60 的門系統(tǒng)發(fā)送的TRDP PD數(shù)據(jù)的組播地址為 239.255.1.60。二者之間可以建立有效的TRDP通信。

四、 結(jié)語

本文實(shí)現(xiàn)了基于以太網(wǎng)通信的軟件通信模塊設(shè)計(jì)并用實(shí)驗(yàn)進(jìn)行了驗(yàn)證。隨著以太網(wǎng)應(yīng)用的普及推廣,門系統(tǒng)的一些軟件維護(hù)工作會逐步地全部轉(zhuǎn)移到以太網(wǎng)接口上實(shí)現(xiàn),并借助5G網(wǎng)絡(luò)或車地網(wǎng)絡(luò),更輕松地開展維護(hù)工作。

作者簡介:

姚茂軍,南京康尼電子科技有限公司。

猜你喜歡
線程IP地址調(diào)用
鐵路遠(yuǎn)動系統(tǒng)幾種組網(wǎng)方式IP地址的申請和設(shè)置
核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
基于SNMP的IP地址管理系統(tǒng)開發(fā)與應(yīng)用
黑龍江電力(2017年1期)2017-05-17 04:25:16
淺談linux多線程協(xié)作
基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
Linux線程實(shí)現(xiàn)技術(shù)研究
么移動中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
JAVA多線程同步解決生產(chǎn)者—消費(fèi)者問題
永昌县| 鹤庆县| 通渭县| 玉门市| 达孜县| 沂源县| 樟树市| 沁源县| 宜兰县| 南充市| 吉木乃县| 富阳市| 林州市| 新竹县| 项城市| 色达县| 吉木乃县| 房产| 桦南县| 宁都县| 江阴市| 军事| 阳朔县| 社旗县| 普陀区| 武山县| 渭南市| 柘荣县| 定结县| 青冈县| 谢通门县| 连州市| 开鲁县| 泸定县| 凌源市| 扶绥县| 神池县| 友谊县| 嘉兴市| 宿州市| 巴彦淖尔市|