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

?

基于X86及PCIE的MVB通信網(wǎng)卡設(shè)計

2020-04-21 07:40:59寧壽輝石小磊
關(guān)鍵詞:通信驅(qū)動

寧壽輝 石小磊

摘要:簡要介紹多功能車輛總線(MVB )總線及PCIE總線的特點(diǎn),給出了基于X86處理器、PCIE總線接口的MVB通信網(wǎng)卡的硬件架構(gòu)及設(shè)計方法,MVB網(wǎng)卡驅(qū)動軟件、通信軟件設(shè)計開發(fā)流程。

關(guān)鍵詞:MVB;PCIE;X86;通信網(wǎng)卡;驅(qū)動;通信

中圖分類號:TP334.7 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2020)01-0142-03

0 引言

目前,符合TCN標(biāo)準(zhǔn)的通信產(chǎn)品在鐵路上已經(jīng)得到廣泛應(yīng)用,該標(biāo)準(zhǔn)定義了兩種用于列車車載數(shù)據(jù)通信的現(xiàn)場總線:絞線式列車總線(WTB)和多功能車輛總線(MVB)。MVB總線將車廂內(nèi),即機(jī)車內(nèi)、客車車輛內(nèi)或貨車車輛內(nèi)的設(shè)備連在一起構(gòu)成一個局域網(wǎng)。其中,以基于PC/104架構(gòu)的MVB通信設(shè)備應(yīng)用最為廣泛。隨著PCI總線技術(shù)向工業(yè)控制領(lǐng)域滲透,以支持熱插拔操作為顯著特征的PCI總線的MVB通信設(shè)備擁有良好的應(yīng)用前景。PCI總線技術(shù)具有無法忽視的優(yōu)點(diǎn),如更高的總線頻率、獨(dú)立于處理器、支持突發(fā)讀寫傳輸、自動配置、支持自動的設(shè)備檢測與配置及低功耗等。PCI-Express (PCIE)作為最新一代的總線接口,其點(diǎn)對點(diǎn)的串行設(shè)計以及雙通道高帶寬的傳輸模式,大大提高了數(shù)據(jù)的傳輸速率,它的廣泛應(yīng)用將全面取代PCI、AGP等總線。本文設(shè)計了一種基于X86及PCIE總線的MVB通信網(wǎng)卡,并完成軟硬件設(shè)計開發(fā)。

1 MVB網(wǎng)卡硬件設(shè)計

1.1 總體硬件架構(gòu)

MVB網(wǎng)卡硬件架構(gòu)如圖1所示,MVB網(wǎng)卡由現(xiàn)場可編程邏輯陣列FPGA和MVB物理接口單元兩部分組成?,F(xiàn)場可編程邏輯陣列FPGA完成PCIE總線數(shù)據(jù)編解碼、MVB數(shù)據(jù)幀收發(fā)以及PCIE總線與MVB核之間的數(shù)據(jù)交互,MVB物理接口單元完成MVB數(shù)據(jù)的編解碼(RS485格式)和符合IEC61375-1標(biāo)準(zhǔn)的TCN網(wǎng)絡(luò)物理接入。

1.2 MVB接口單元設(shè)計

MVB接口單元完成MVB差分信號隔離、RS485信號編解碼和收發(fā)器控制,接口標(biāo)準(zhǔn)符合IEC61357-1協(xié)議。

接口單元硬件原理如圖2所示,隔離變壓器采用PULSE公司X-1729NL,RS485收發(fā)器采用MAX3088,LCDA05完成差分信號的過壓鉗位保護(hù)。

1.3 PCIE轉(zhuǎn)MVB單元設(shè)計

PCIE轉(zhuǎn)MVB單元硬件原理如圖3所示, XILINX公司FPGA完成PCIE協(xié)議轉(zhuǎn)換和MVB核設(shè)計,PCIE協(xié)議轉(zhuǎn)換完成PCIE總線控制命令解析,MVB核完成MVB數(shù)據(jù)幀解析和收發(fā)功能。

2 MVB網(wǎng)卡軟件設(shè)計

2.1 驅(qū)動軟件設(shè)計

本設(shè)計采用X86工控機(jī)及Windows7操作系統(tǒng),為了實現(xiàn)操作系統(tǒng)應(yīng)用程序?qū)τ贛VB網(wǎng)卡的控制操作,需要開發(fā)設(shè)備驅(qū)動程序。這里選用WDK7.1開發(fā)工具軟件,結(jié)合VS2013進(jìn)行PCIE驅(qū)動程序開發(fā)。WDK是微軟推出的一款完全集成的驅(qū)動程序開發(fā)工具,它包含Windows DDK,用于測試Windows驅(qū)動器的可靠性和穩(wěn)定性,是專門為開發(fā)人員推出的,支持Win7以上所有操作系統(tǒng)。

首先要進(jìn)行開發(fā)環(huán)境的搭建。在Windows7操作系統(tǒng)中,依次安裝Visual Studio 2013及WDK7.1開發(fā)工具。安裝結(jié)束后,要完成WDK7.1編譯環(huán)境的配置,選擇checked build環(huán)境編譯包含debug信息的驅(qū)動。

整個WDF驅(qū)動程序工程共包含3個源文件(Driver.c, Device.c, Queue.c)。device.c源碼文件主要包含設(shè)備創(chuàng)建、設(shè)備資源獲取和釋放的功能代碼。PortIODeviceCreate()為設(shè)備創(chuàng)建函數(shù),供PNP調(diào)用。PortIODeviceGetHw()為硬件資源獲取函數(shù),供PNP調(diào)用,順序獲取PCI/PCIE設(shè)備所使用的IO和Memeoy空間資源并對memory空間進(jìn)行映射,PortIODeviceReleaseHw()為硬件資源釋放函數(shù),供PNP調(diào)用,對已映射的memory空間進(jìn)行釋放。

driver.c源碼文件主要功能為生成驅(qū)動對象。DriverEntry DriverEntry()為驅(qū)動程序入口函數(shù);PortIOEvtDeviceAdd()為設(shè)備添加函數(shù)。

queue.c源碼文件創(chuàng)建用于與客戶應(yīng)用程序通訊的IO隊列對象,PortIOEvtIoDeviceControl()回調(diào)函數(shù)對于用戶操作進(jìn)行分發(fā)處理。

將以上源代碼通過VS2013+WDK7.1編譯就能生成相應(yīng)PCIE硬件板卡的Windows驅(qū)動程序genport.sys文件。安裝驅(qū)動程序后,應(yīng)用程序可以調(diào)用設(shè)備驅(qū)動接口與硬件設(shè)備進(jìn)行通信。

驅(qū)動程序調(diào)度流程如圖4所示,具體實現(xiàn)過程如下:

(1)首先通過Win32API函數(shù)GP_LoadDev打開設(shè)備。

(2)然后調(diào)用GP_GetIOResourceInfo函數(shù)獲取設(shè)備資源列表情況。資源列表信息保存在RESINFO結(jié)構(gòu)體中。

typedef struct {

ULONG PortBase[6];? //基地址列表

ULONG PortCount[6];? //基地址段長度列表

ULONG PortMemoryType[6];//基地址的類型,1表示是IO空間,0表示是Memory空間

ULONG PortMemoryResourceCount;//有效的基地址數(shù)量

} RESINFO, *PRESINFO;

(3)接下來調(diào)用GP_SetBusInterfaceData函數(shù)完成PCIE配置空間的配置。

(4)最后調(diào)用GP_WritePort及GP_ReadPort函數(shù)實現(xiàn)與驅(qū)動程序通信,即讀寫數(shù)據(jù),當(dāng)應(yīng)用程序退出時,調(diào)用GP_CloseDev函數(shù)關(guān)閉設(shè)備。

2.2 通信軟件設(shè)計

根據(jù)MVB設(shè)備的分類標(biāo)準(zhǔn),MVB設(shè)備按性能可分為5類。本文設(shè)計的MVB網(wǎng)卡支持過程數(shù)據(jù)、消息數(shù)據(jù)、監(jiān)視數(shù)據(jù)的收發(fā),也具備總線管理能力,實現(xiàn)了MVB4類設(shè)備的全部功能。設(shè)計中沒有采用傳統(tǒng)的利用MVB專用通訊控制器的設(shè)計方法,而是采用了當(dāng)今流行的FPGA代替MVB專用通訊控制器的方案。

MVB網(wǎng)卡的通信采用客戶端-服務(wù)器模式,如圖5所示。主機(jī)也稱作上位機(jī),是指可以直接發(fā)出控制命令的計算機(jī)設(shè)備,可以通過界面顯示各種變化信號的狀態(tài),實現(xiàn)良好的人機(jī)交互。下位機(jī)為MVB網(wǎng)卡,將接收到的主機(jī)命令解釋成為時序信號,直接來控制相應(yīng)的硬件設(shè)備,并且實時讀取設(shè)備的狀態(tài)數(shù)據(jù),將此狀態(tài)數(shù)據(jù)轉(zhuǎn)化成數(shù)字信號反饋給主機(jī)。本論文中,主機(jī)軟件就是應(yīng)用程序,其功能是實現(xiàn)與硬件設(shè)備的驅(qū)動程序進(jìn)行通信,發(fā)送指令并接收由硬件設(shè)備傳遞來的實時數(shù)據(jù)。主機(jī)軟件采用VS2013軟件工具來進(jìn)行編程,采用面向?qū)ο蟮腃++語言,在與硬件驅(qū)動程序進(jìn)行通信的同時,將實時數(shù)據(jù)顯示在主機(jī)界面上,實現(xiàn)硬件與軟件的協(xié)同工作。服務(wù)器端的驅(qū)動程序由MVB網(wǎng)卡中的FPGA實現(xiàn)。

主機(jī)與MVB網(wǎng)卡的接口采用UART仿真(UART Emulation)模式,即利用一種類似于通用異步收發(fā)器UART16C450的基本通信模式實現(xiàn)數(shù)據(jù)通信,在這種模式下,數(shù)據(jù)“仿佛是通過一根串行線路”進(jìn)行傳輸,數(shù)據(jù)以高速連續(xù)方式發(fā)送和接收。主機(jī)對MVB鏈路層的接口訪問主要通過使用UART寄存器組的方式實現(xiàn)。主機(jī)使用發(fā)送指令的方式訪問UART寄存器組。MVB控制器將處理分析指令中的信息,從而對MVB進(jìn)行相關(guān)的操作。主機(jī)用戶應(yīng)用程序與MVB通信協(xié)議棧之間的接口由應(yīng)用程序接口API實現(xiàn),如過程數(shù)據(jù)鏈路層接口LPI、過程數(shù)據(jù)應(yīng)用層接口AVI及消息數(shù)據(jù)應(yīng)用層接口AMI等。

MVB通信軟件調(diào)度流程如下:首先讀取MVB配置文件進(jìn)行配置信息解析;然后完成MVB監(jiān)視數(shù)據(jù)接口初始化、過程數(shù)據(jù)接口初始化、通信存儲器初始化、過程數(shù)據(jù)端口配置;之后啟動MVB設(shè)備;最后就可以進(jìn)行MVB過程數(shù)據(jù)收發(fā)及處理。

MVB數(shù)據(jù)的接收指主機(jī)從MVB網(wǎng)絡(luò)上讀取數(shù)據(jù),用于相應(yīng)的應(yīng)用。MVB數(shù)據(jù)的發(fā)送指應(yīng)用通過主機(jī)將需要發(fā)送的數(shù)據(jù)發(fā)送至MVB網(wǎng)絡(luò)。主機(jī)與MVB網(wǎng)卡進(jìn)行數(shù)據(jù)交互,完成MVB數(shù)據(jù)的收發(fā),其收發(fā)流程如圖6所示。進(jìn)行數(shù)據(jù)收發(fā)之前首先讀取狀態(tài)寄存器,判斷發(fā)送緩沖區(qū)為空還是接收緩沖區(qū)為空,當(dāng)發(fā)送緩沖區(qū)為空時,先傳遞發(fā)送指令,然后將數(shù)據(jù)寫入發(fā)送緩沖區(qū),數(shù)據(jù)發(fā)送完畢,結(jié)束本次發(fā)送。接收過程與發(fā)送過程類似。

3 結(jié)語

本文在研究多功能車輛總線(MVB)的基礎(chǔ)上,提出了一種基于PCIE總線接口、FPGA通信控制器、X86處理器的MVB通信網(wǎng)卡的設(shè)計方法,并完成了最終實現(xiàn)。利用Visual Studio 2013及WDK7.1開發(fā)工具,完成了WDF模型驅(qū)動程序的開發(fā)。完成了基于客戶端-服務(wù)器模式及UART仿真技術(shù)的MVB通信軟件設(shè)計。在Windows7操作系統(tǒng)下,驅(qū)動程序和通信軟件能夠穩(wěn)定運(yùn)行。利用該類網(wǎng)卡組成的地鐵車輛網(wǎng)絡(luò)控制系統(tǒng),通過實驗室聯(lián)調(diào)試驗,驗證了系統(tǒng)信息傳遞的可靠性、準(zhǔn)確性和實時性,以及與其他產(chǎn)品的兼容性。實驗表明,所設(shè)計的基于PCIE接口的MVB網(wǎng)卡可以很好地滿足地鐵車輛控制系統(tǒng)要求。目前該網(wǎng)卡已研制成功并批量裝車使用,運(yùn)行穩(wěn)定可靠,已成為地鐵車輛控制的關(guān)鍵設(shè)備。

參考文獻(xiàn)

[1] IEC61375-1.Electric Railway Equipment-Train Bus-Part 1:Train Communication Network[S].2007.

[2] 王齊.PCI Express體系結(jié)構(gòu)導(dǎo)讀[M].北京:機(jī)械工業(yè)出版社,2010.

[3] 王曉慶,周曉波,趙強(qiáng).PCIE高速數(shù)據(jù)采集系統(tǒng)的驅(qū)動及上位機(jī)軟件開發(fā)[J].計算機(jī)應(yīng)用與軟件,2013(9):331-333.

[4] 劉娟,田澤,黎小玉.PCI-E接口驅(qū)動軟件設(shè)計與實現(xiàn)[J].計算機(jī)技術(shù)與發(fā)展,2012(8):53-55+59.

猜你喜歡
通信驅(qū)動
基于模糊PI控制的驅(qū)動防滑仿真系統(tǒng)分析
屈宏斌:未來五年,雙輪驅(qū)動,砥礪前行
軌旁ATC系統(tǒng)門控柜接收/驅(qū)動板改造
在808DA上使用WIFI進(jìn)行驅(qū)動數(shù)據(jù)同步
基于“一級調(diào)度、兩級運(yùn)維”的通信管理體系研究①
科技資訊(2016年19期)2016-11-15 10:10:38
計算機(jī)技術(shù)在通信中的應(yīng)用
簡述計算機(jī)通信網(wǎng)絡(luò)安全與防護(hù)策略
Android環(huán)境下主UI線程與子線程通信機(jī)制研究
無線自組網(wǎng)在野戰(zhàn)防空通信系統(tǒng)中的應(yīng)用
對數(shù)字微波通信技術(shù)的研究
会同县| 衡南县| 会理县| 望谟县| 兴安盟| 苍溪县| 旺苍县| 绥中县| 清水河县| 疏附县| 龙南县| 吴忠市| 蒲江县| 汉川市| 芮城县| 驻马店市| 宁夏| 彩票| 习水县| 鄂尔多斯市| 东乡族自治县| 潮州市| 东方市| 静宁县| 毕节市| 莲花县| 定兴县| 张掖市| 湄潭县| 五莲县| 昆明市| 兴城市| 望谟县| 长治县| 田林县| 芷江| 莱州市| 金塔县| 平利县| 太白县| 玉林市|