《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > Linux與DOS環境下的MVB網絡通信研究
Linux與DOS環境下的MVB網絡通信研究
2014年微型機與應用第19期
錢存元,施招東,孔博偉
同濟大學 鐵道與城市軌道交通研究院,上海 201804
摘要: 介紹了列車通信網絡(TCN)和多功能車輛總線(MVB),著重分析介紹了MVB網卡的硬件接口及軟件接口,并將DOS系統下的MVB通信成功地移植到了Linux系統環境下,在實驗室條件下,實現了Linux與DOS環境下的MVB網絡互連,為開展不同環境下的MVB通信可行性試驗提供了依據。
Abstract:
Key words :

  摘 要: 介紹了列車通信網絡(TCN)和多功能車輛總線(MVB),著重分析介紹了MVB網卡的硬件接口及軟件接口,并將DOS系統下的MVB通信成功地移植到了Linux系統環境下,在實驗室條件下,實現了Linux與DOS環境下的MVB網絡互連,為開展不同環境下的MVB通信可行性試驗提供了依據。

  關鍵詞: DOS;Linux;MVB;過程數據;PC/104總線

0 引言

  隨著嵌入式微機控制技術以及現場總線技術的快速發展,現代列車的過程控制已從集中型的直接數字控制系統朝著基于網絡的分布式系統發展。應用多種總線技術,列車分布式控制系統把分布于各車廂內部、獨立完成特定功能的計算機互連為工業局域網,從而達到資源共享、協同工作、分散監測和集中操作等目的[1]。

  列車通信網絡(TCN)就是一種建立在分布式系統基礎上的列車控制、診斷信息數據通信網絡。多功能車輛總線(MVB)作為TCN網絡的重要組成,其作用在于聯接車輛內部的設備和控制單元,實現車輛內部的通信控制。但是,由于傳統的MVB通信網絡建立在DOS系統環境下,面對惡劣的列車運行環境,越來越難以滿足實際運行的需要。Linux以其出色的系統穩定性及快速響應性能,在軌道交通領域獲得青睞。嵌入式技術的迅猛發展,使得在Linux系統下建立MVB通信網絡的需求變得愈加迫切。

  本文以實現Linux與DOS系統下的MVB網絡通信為目的,對RVS系列MVB網卡的硬件接口及軟件接口進行了應用研究,并將DOS系統下的MVB網絡通信成功移植到了Linux環境下,最終實現了Linux與DOS環境下的MVB網絡互連。

1 MVB網絡簡介

  列車通信網絡(TCN)集列車控制系統、故障檢測與診斷系統以及旅客信息服務系統于一體,以車載微機為主要設備,通過網絡實現列車各個系統之間的信息交換,最終達到對車載設備的集散式監視、控制和管理等目的,是一種面向控制、連接車載設備的數據通信系統,是分布式列車控制系統的核心[2]。

  TCN由絞式列車總線WTB和多功能車輛總線MVB組成,如圖1所示。WTB用于聯接各個車輛,用于列車級的通信控制;MVB用于有互操作性和互換性要求的互連設備之間的串行數據通信。WTB與MVB之間通過網關來實現數據的傳遞。其中,MVB能提供最佳的響應速度,適合用作車輛總線。對于固定編組的列車,MVB 也可以用作列車總線。此外,MVB屬于總線仲裁型網絡,采用主幀/從幀應答方式,可以實現設備和介質冗余,完全滿足列車對于運行控制和安全性的要求。

  根據實際應用的需要,MVB網絡的通信數據類型分為過程數據、消息數據和監督數據。其中,過程數據用于反映列車的狀態、速度、加速度、司機指令等;消息數據是偶發數據,不頻繁發送且長度不定,如診斷、旅客信息等;監督數據是總線上主設備對于從設備的狀態校驗、主權轉移、列車初運行等所使用的數據[1]。由于過程數據是列車運行控制中最基本和最重要的通信數據,因此本文只針對過程數據的收發進行研究。

001.jpg

2 MVB網絡接口單元

  為了實現MVB設備之間的互聯,各個與MVB相連的設備都必須具有統一的硬件接口和軟件接口。硬件接口主要由各個設備中的MVB網絡接口單元(網卡)實現,網卡用于實現物理層信號的轉換,執行數據鏈路層的通信規程,其基本任務有:⑴將主機或其他網絡設備發送的數據送入網絡;⑵從網絡中接收其他網絡設備發送的數據送入網絡;⑶從網絡中接收其他設備發來的數據并送給主機。軟件接口在于實現MVB數據鏈路層的服務功能,一方面為高層提供服務及服務訪問接口;另一方面屏蔽底層協議,提供透明的、可靠的鏈路通路,方便用戶使用[3]。

  2.1 硬件接口

  MVB網絡通信性能的好壞在很大程度上取決于MVB網絡接口單元的品質。本次通信研究采用的是RVS系列MVB網卡。該網卡除了支持MVB三種通信數據的傳遞外,還支持總線管理器(BA),并具備用戶可編程功能,通信速率高達1.5 Mb/s,支持4 096個設備狀態掃描紀錄,并具有介質冗余能力,是專為MVB-1類設備使用的接口卡。

002.jpg

  MVB-1型接口單元的硬件結構框圖如圖2所示。物理層通過譯碼器將MVB上的信號轉換為數字電平,解碼器將來自于MVB的信號移至PC/104并行總線上,檢查數據的有效性并將其傳送至雙端口通信存儲器(Traffic Memory),同時上位機可通過PC/104總線對雙端口通信存儲器進行讀寫。

  圖2中,PC/104并行總線接口為網絡接口單元和主機之間的數據通信提供了并行通道,由于RVS系列MVB網卡采用的是標準PC/104接口,用戶可以將多塊網卡層疊使用,在實際應用中較為方便。板上的控制邏輯(Control Logic)采用可編程邏輯器件PLD(Programmable Logic Device),為了適應不同的總線接口需求,用戶可以通過邏輯設計方便地動態改變硬件設置。

  2.2 軟件接口

  軟件接口的核心功能是屏蔽MVB網卡的底層協議,并為上層應用提供接口。

  MVB網卡的驅動是實現通信必不可少的核心部分,它描述了MVB網卡通信的底層協議,并對硬件進行了配置,為上層應用的操作提供接口。MVB網卡的驅動主要包括MVB初始化、配置設備地址、配置過程數據端口、獲取過程數據等。用戶在使用MVB網卡設計上層應用時,無需對MVB的通信協議有太過深入的了解,只需調用MVB底層的接口函數,即可實現基于MVB網卡的數據傳輸操作。

  在實現數據傳輸的過程中,采用了UART仿真方式,即以連續方式發送和接收數據。在網絡接口單元與主機通信之前,首先必須對UART仿真寄存器進行配置,包括接收數據寄存器RBR(Receiver Buffer Register)、發送器保持寄存器THR(Transmitter Holding Register)、通信線狀態寄存器LSR(Line Status Register)。主機和接口單元之間需要通過傳輸特定的字符命令來實現對接口單元的軟件配置,分別為‘C’、‘S’、‘H’、‘I’、‘P’、‘G’或是用其相對應的十六進制數43H、53H、48H、49H、50H、47H來表示,只有這樣,才能識別所要執行的操作[3]。

 ?、拧瓹’命令用于將與接口單元有關的控制信息寫入網絡接口單元;

 ?、啤甋’命令用于讀取接口單元的狀態信息,一般用于調試時的自測;

 ?、恰瓾’命令用于寫入與過程數據端口相關的控制信息,包括邏輯地址、端口長度及端口源宿性質;

 ?、取甀’命令用于讀取與過程數據相關的狀態信息,與‘S’類似,一般只用于自測試;

 ?、伞甈’命令用于將待發送的數據寫入網絡接口單元;

 ?、省瓽’命令用于讀取接收到的數據。

  具體的配置流程如圖3所示。在通信過程中,首先需要對MVB接口執行初始化操作,包括以下3個步驟:⑴通過清除UART仿真之前的內容來確保UART進入到正常的工作狀態;⑵停止MVB通信,以保證不再發送錯誤信息;⑶關閉MVB數據端口,使其保持為失效狀態。接著,對MVB的過程數據端口及MVB設備物理地址及輸入線路(分為A線和B線)進行配置。配置完成之后,通過對過程數據端口執行寫入或讀取操作來實現數據的通信。

3 Linux與DOS系統下的MVB網絡互連

  DOS系統具有良好的人機界面和豐富的系統資源,在傳統的MVB通信中應用十分廣泛。但是,由于DOS是一個單任務弱實時的操作系統,且可靠性不高,越來越難以滿足MVB網絡的愈加嚴苛的通信要求。Linux系統在具備DOS系統優勢的同時,彌補了DOS系統的不足,能夠充分滿足實際的需要。因此,在Linux系統環境下建立MVB通信對于實際的應用有一定的借鑒意義。

003.jpg

  考慮到多數的MVB通信仍建立在DOS系統環境下,因此,在實現Linux與Linux通信的同時,還要實現Linux與DOS的通信互連,這首先要求能夠將DOS環境下設計的通信程序移植到Linux系統中去。

  3.1 程序移植

  移植過程中最主要的問題在于,DOS系統下的部分內置函數及頭文件,在Linux系統下并不適用,需要對其進行適當地修改,甚至重新編寫。其中,DOS系統下的輸入輸出函數inp()和outp(),需要更改為inb()和outb()。與此同時,Linux使用端口訪問設備之前必須設置端口權限的系統調用,可選用iopl()或ioperm()進行設置。除此之外,由于Linux系統下沒有conio.h,因此需要自行編寫getch()函數和kbhit()函數,用于獲取鍵盤敲擊的字符和判斷鍵盤是否有按下,以識別通信命令和控制通信的啟停。部分代碼如下:

  int kbhit(void)

  {

  struct timeval tv;

  struct termios old_termios,new_termios;

  int error;

  int count = 0;

  tcgetattr( 0,&old_termios );

  new_termios = old_termios;

  /*raw mode*/

  new_termios.c_lflag &= ~ICANON;

  /*disable echoing the char as it is typed*/

  new_termios.c_lflag &= ~ECHO;

  /*minimum chars to wait for*/

  new_termios.c_cc[VMIN] = 1;

  /*minimum wait time, 1 * 0.10s*/

  new_termios.c_cc[VTIME]= 1;

  error=tcsetattr(0,TCSANOW, &new_termios );

  tv.tv_sec = 0;

  tv.tv_usec = 100; /*insert a minimal delay*/

  select( 1, NULL, NULL, NULL, &tv );

  error += ioctl( 0, FIONREAD, &count );

  error+=tcsetattr(0,TCSANOW,&old_termios );

  return( error == 0 ? count : -1 );

  }

  需要注意的是,在移植的過程中,要特別注意指針的使用。若不對指針賦予初值,將會引起Segmentation Fault,另外一些對于指針的誤操作也很有可能引發這個錯誤,給調試過程中的錯誤排查帶來很多麻煩。

  除了以上提到的問題外,還有許多兼容性問題需要解決,在此不再一一贅述。想要更快更精確地找到移植中存在的問題,可采用Linux提供的GDB調試工具。通過設置斷點、打印變量等手段可以更快地找到程序的問題所在,并作出相應的調整。

  最后,通過GCC編譯的方式,將驅動程序與應用程序進行聯合編譯,就能獲得Linux下的可執行文件。通過運行這一可執行文件,通信程序就能在Linux系統環境下實現數據的收發功能。

  3.2 系統測試

  在軟硬件配置完成并移植成功之后,接下來將對系統進行測試。系統測試的目的在于實現Linux與DOS系統下的MVB網絡互連。

  測試的內容主要分為兩個部分:一是以Linux下MVB節點為主節點,接收DOS下MVB發送的數據;二是以DOS下MVB節點為主節點接收Linux下MVB發送的數據。在實驗室條件下,搭建了點對點MVB網絡,通過兩個節點數據收發情況來驗證不同環境下MVB通信的可行性。實驗結果表明:DOS系統與Linux系統下的MVB網絡均能實現收發數據的功能,且誤碼率低,成功地實現了網絡互連。

4 結論

  隨著信息化和網絡技術的發展,列車控制技術不斷更新完善。在實驗室條件下,根據TCN協議的要求,對MVB網絡接口單元進行了軟硬件的配置,將DOS系統下的MVB網絡通信程序移植到了Linux環境下。通過建立由Linux環境下MVB節點與DOS環境下MVB節點組成的點對點MVB通信網絡,成功地實現了MVB網絡在Linux和DOS環境下的網絡互連,并實現了MVB過程數據通信。通過本次實驗,使得MVB通信網絡在可靠性和實時性方面的網絡性能得到了提高,有一定的應用前景和現實意義。除此之外,還為將MVB通信網絡移植到不同的操作系統環境下的應用研究提供了依據。

參考文獻

  [1] 劉建偉. 軌道交通車輛MVB通信網絡的研究與設計實現[D].北京:北京交通大學,2006.

  [2] 王磊,何正友. 高速列車通信網絡技術特點及其應用[J]. 城市軌道交通研究,2008,11(2):57-64.

  [3] 劉海新,謝維達,徐曉松. MVB網絡接口單元的應用研究[J]. 工業控制計算機,2002,15(9):13-15.


此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          樱桃视频在线观看一区| 久久精品成人一区二区三区蜜臀| 国产一区二区三区四区hd| 一本久道久久久| 午夜精品成人在线| 中文av一区二区| 狠狠色综合网站久久久久久久| 午夜精品一区二区在线观看| 一区二区欧美日韩视频| 亚洲免费观看高清完整版在线观看| 欧美丰满高潮xxxx喷水动漫| 欧美一区二区黄| 亚洲欧美经典视频| 国产午夜亚洲精品羞羞网站| 国产精品久久久久久久久果冻传媒| 久久久久久自在自线| 在线视频中文亚洲| 国产精品久久久91| 久久精品中文字幕免费mv| 国产精品视频久久一区| 亚洲综合视频一区| 韩国一区二区三区在线观看| 欧美日韩国产在线| 欧美日韩国产成人在线观看| 一区二区动漫| 欧美日韩亚洲另类| 美女主播视频一区| 黄色精品一二区| 亚洲国产老妈| 国产欧美视频一区二区三区| 国产精品午夜视频| 亚洲国产综合在线| 亚洲在线成人精品| 美女脱光内衣内裤视频久久影院| 香港成人在线视频| 久久精品色图| 国产综合色产在线精品| 欧美视频日韩| 尤妮丝一区二区裸体视频| 久久av最新网址| 亚洲综合日韩| 亚洲一区日韩| 久久爱另类一区二区小说| 美女啪啪无遮挡免费久久网站| 亚洲综合日韩中文字幕v在线| 在线免费日韩片| 欧美暴力喷水在线| 久久久噜噜噜久噜久久| 欧美日韩国产成人| 欧美日韩免费一区二区三区| 国产婷婷成人久久av免费高清| 亚洲精品一品区二品区三品区| 久久免费国产精品1| 国产精品自在线| 老司机精品视频一区二区三区| 久久久久国产精品一区三寸| 日韩一级大片在线| 免费短视频成人日韩| 夜夜嗨av一区二区三区网站四季av| 一区二区三区四区蜜桃| 亚洲一区999| 最近中文字幕日韩精品| 亚洲国产裸拍裸体视频在线观看乱了中文| 欧美日韩免费区域视频在线观看| 国产一区白浆| 久久成人免费| 日韩视频一区二区三区在线播放免费观看| 一区在线观看视频| 久久精品视频99| 欧美日韩国产成人在线91| 欧美在线视频免费播放| 日韩午夜中文字幕| 亚洲一区免费在线观看| 国产精品高精视频免费| 欧美不卡高清| 国产精品日韩在线观看| 欧美专区在线观看| 欧美区亚洲区| 欧美日韩在线播放一区| 中文精品在线| 欧美日韩a区| 久久久久久久网站| 国产精品一区二区男女羞羞无遮挡| 欧美日韩精品在线播放| 国内成人自拍视频| 在线欧美一区| 亚洲精品日日夜夜| 久久精品在线免费观看| 久久久国产91| 在线观看精品| 久久超碰97中文字幕| 欧美亚洲一区在线| 欧美一区二区三区免费大片| 欧美伦理影院| 亚洲欧美视频在线观看视频| 亚洲视频欧美视频| 另类酷文…触手系列精品集v1小说| 欧美一区二区三区视频在线观看| 亚洲成在人线av| 欧美伊人久久久久久午夜久久久久| 亚洲电影中文字幕| 国产精品久久久久久久久动漫| 久久久久久免费| 亚洲三级电影全部在线观看高清| 亚洲一二区在线| 亚洲欧美日韩在线观看a三区| 国产精品九九| 久久精品国产在热久久| 国产精品成人aaaaa网站| 国产精品视频xxx| 日韩亚洲成人av在线| 久久久亚洲高清| 欧美一区高清| 欧美激情第三页| 美女91精品| 国产精品久久久亚洲一区| 亚洲女人天堂av| 亚洲美女区一区| 久久精品亚洲乱码伦伦中文| 激情久久久久久久| 久久亚洲一区二区三区四区| 国产九区一区在线| 欧美在线观看视频一区二区三区| 欧美一区二区三区在线播放| 久久亚洲影音av资源网| 欧美区一区二区三区| 国产欧美一区二区精品忘忧草| 狠狠色综合色区| 国产精品成人久久久久| 亚洲天堂av在线免费| 免费不卡在线视频| 欧美精品日韩一区| 欧美激情黄色片| 国产日韩精品一区二区三区| 欧美成人激情在线| 亚洲免费婷婷| 亚洲第一页中文字幕| 国产一区二区三区av电影| 午夜国产不卡在线观看视频| 激情一区二区三区| 欧美精品在线视频| 国产精品久久久久久超碰| 欧美日韩国产一中文字不卡| 国产精品久久影院| 国产欧美三级| 国产免费亚洲高清| 国产精品免费一区豆花| 一区二区三区蜜桃网| 99这里只有精品| 国内外成人免费激情在线视频网站| 香蕉成人啪国产精品视频综合网| 久久久久久久综合色一本| 亚洲视频一区在线| 久久精品人人做人人综合| 欧美顶级艳妇交换群宴| 亚洲精品综合久久中文字幕| 亚洲欧美第一页| 在线观看日韩av先锋影音电影院| 欧美日韩午夜激情| 在线日韩日本国产亚洲| 日韩午夜在线播放| 91久久亚洲| 狠狠爱www人成狠狠爱综合网| 国产精品丝袜xxxxxxx| 日韩写真视频在线观看| 欧美日韩成人综合天天影院| 伊人色综合久久天天| 国产精品久久久久久一区二区三区| 亚洲欧美在线aaa| 午夜视频一区在线观看| 欧美日韩一区二区在线视频| 亚洲国产美国国产综合一区二区| 欧美国产日韩a欧美在线观看| 18成人免费观看视频| 久久精品一区二区| 国产精品视频专区| 国产亚洲精品高潮| 亚洲一区二区三区四区五区黄| 黄页网站一区| 欧美人与性动交α欧美精品济南到| 亚洲福利在线观看| 欧美乱人伦中文字幕在线| 亚洲剧情一区二区| 久久久99精品免费观看不卡| 亚洲大片免费看| 亚洲欧美日韩综合一区| 欧美亚男人的天堂| 欧美日韩午夜视频在线观看| 国产热re99久久6国产精品| 免费成人av资源网| 国产一区深夜福利| 亚洲综合色在线| 国产麻豆一精品一av一免费| 麻豆av福利av久久av| 狠狠色狠狠色综合日日91app| 欧美日韩国产综合新一区| 国产精品久久久久久久久久免费| 亚洲精品国产品国语在线app| 国产精品v日韩精品v欧美精品网站| 久久精品国产一区二区三区免费看| 99re6这里只有精品视频在线观看| 欧美日韩一区二区在线观看| 亚洲欧美日韩视频二区| 亚洲激情校园春色| 一区二区三区欧美激情| 亚洲影院色无极综合| 国内外成人免费激情在线视频| 久久精品一区蜜桃臀影院| 国产精品亚洲片夜色在线| 这里只有精品视频在线| 欧美日韩国产精品专区| 欧美日韩美女在线| 韩国一区二区在线观看| 一区精品久久| 亚洲午夜精品一区二区三区他趣| 久久免费视频一区| 欧美激情一区二区三区不卡| 亚洲欧洲精品一区二区三区不卡| 久久gogo国模啪啪人体图| 在线视频日本亚洲性| 国产精品v欧美精品v日韩精品| 老牛嫩草一区二区三区日本| 国产精品久久久久久久久免费樱桃| 欧美www视频在线观看| 一区二区三区四区五区视频| 久久久久久久久久久久久女国产乱| 亚洲免费在线观看| 国内自拍亚洲| 国产精品久久久久久超碰| 欧美精彩视频一区二区三区| 欧美成人a∨高清免费观看| 久久精品水蜜桃av综合天堂| 一本久久知道综合久久| 国产精品一区久久| 国产一区视频在线看| 亚洲午夜电影| 欧美日本在线播放| 亚洲国产aⅴ天堂久久| 欧美一级大片在线观看| 美女在线一区二区| 欧美成人小视频| 亚洲社区在线观看| 国产日韩欧美精品综合| 精品福利电影| 91久久精品日日躁夜夜躁国产| 国产手机视频一区二区| 国产精品免费小视频| 亚洲毛片在线| 欧美国产一区二区| 亚洲九九精品| 亚洲日本电影| 欧美激情综合在线| 国产欧美一区二区三区视频| 亚洲一区欧美| 欧美在线视频导航| 国产伦精品一区二区三区照片91| 国产亚洲成年网址在线观看| 亚洲国产成人精品久久久国产成人一区| 亚洲视频电影在线| 久久黄色级2电影| 夜夜嗨av一区二区三区中文字幕| 妖精视频成人观看www| 国产精品一区二区黑丝| 亚洲激情在线视频| 国产精品久久久久999| 亚洲国产mv| 欧美日韩成人网| 亚洲免费视频在线观看| 亚洲自拍都市欧美小说| 国产亚洲a∨片在线观看| 欧美国产在线视频| 午夜精品久久久久久| 在线观看日韩www视频免费| 久久国产天堂福利天堂| 欧美激情综合色| 国产一二三精品| 久久五月天婷婷| 欧美亚洲一区二区三区| 欧美一区二区三区婷婷月色| 在线免费观看一区二区三区| 欧美日本国产| 国产欧美一区二区三区沐欲| 国产亚洲成av人在线观看导航| 久久激情五月激情| 欧美一区二区三区四区在线观看地址| 欧美新色视频| 性欧美暴力猛交69hd| 国产精品亚洲不卡a| 久久久蜜臀国产一区二区| 国产精品一区久久久久| 国产色综合网| 亚洲青涩在线| 久久久精品国产免大香伊| 一区二区三区精品视频在线观看| 亚洲欧洲在线看| 精品99一区二区三区| 亚洲国产精品第一区二区| 欧美日韩中文| 亚洲第一精品福利| 欧美自拍丝袜亚洲| 另类成人小视频在线| 久久久久久69| 伊人久久综合97精品| 欧美在线看片a免费观看| 在线成人av网站| 亚洲精品影院| 久久女同互慰一区二区三区| 尤物yw午夜国产精品视频| 免费观看不卡av| 欧美性色aⅴ视频一区日韩精品| 欧美一区二区视频观看视频| 娇妻被交换粗又大又硬视频欧美| 亚洲免费网址| 久久gogo国模啪啪人体图| 宅男66日本亚洲欧美视频| 亚洲第一网站免费视频| 久久国产精品99国产| 蜜桃av噜噜一区| 国产综合亚洲精品一区二| 亚洲天堂免费在线观看视频| 国产欧美日韩专区发布| 国产精品videosex极品| 欧美一区二区成人6969| 欧美亚洲在线| 久久精品水蜜桃av综合天堂| 欧美日韩亚洲一区| 亚洲娇小video精品| 国产精品高潮呻吟久久|