999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于HDLC協議的列車網絡接口單元設計與實現

2013-09-17 10:31:24賀竹林王東響朱琴躍
微型電腦應用 2013年9期
關鍵詞:設計

賀竹林,王東響,朱琴躍

0 引言

HDLC(High-Level Data Link Control)協議是一種面向比特的高級數據鏈路控制規程,由于其通信速率高、差錯檢測能力強、支持透明傳輸等優點,廣泛應用于包括列車控制網絡在內的諸多現場總線通信領域[1]。目前,國內應用于列車通信網絡中的HDLC設備大多從國外引進,而國內部分研發機構也基于FPGA對HDLC協議控制器進行了設計[2-5]。隨著國內列車通信網絡中HDLC通信接口設備應用的日益廣泛,對相關產品的國產化研究就顯得尤為必要。為此,本文在深入研究HDLC協議標準的基礎上,對基于該協議的列車網絡接口單元的設計和實現進行了研究,以期為該產品下一步真正應用于列車通信網絡系統打下基礎。

1 HDLC網絡通信原理

1.1 HDLC協議鏈路結構

根據ISO13239國際標準,HDLC協議主要有NRM(Normal Response Mode)、ARM(Asynchronous Response Mode)、ABM(Asynchronous Balanced Mode)3種工作模式,它們分別針對非平衡鏈路結構和平衡鏈路結構的網絡工作情況[6]。

本設計主要針對HDLC網絡工作在NRM方式下進行研究。在該方式中,整個網絡由一個主站和多個從站組成。主站主要功能是發送命令(包括數據信息)幀、接收響應幀,并負責對整個鏈路控制系統的初啟、流程的控制、差錯檢測或恢復等;從站主要功能是接收由主站發來的命令幀,向主站發送響應幀,并且配合主站參與差錯恢復等鏈路控制。主站與從站之間采用RS485通信,一個主站最多可以掛載31個從站,在半雙工模式下通信速率最高可達10Mbit/s。HDLC協議的網絡拓撲結構,如圖1所示:

圖1 HDLC網絡拓撲圖

1.2 HDLC基本幀格式

HDLC協議是一種面向比特的數據鏈路規程,在通信過程中報文的收發以HDLC幀的形式進行。根據ISO13239國際標準,HDLC報文幀由起始段、地址段、控制段、信息段、校驗段、終止段構成,其基本幀格式,如表1所示:

表1 HDLC基本幀格式

在HDLC基本幀格式中,起始段和終止段均為0x7E;地址段存放發送站或接收站的地址;控制段包含對整個鏈路的控制信息;信息段存放的則是用戶待發送的數據;校驗段的內容是從地址段到信息段的校驗和,根據實際需求可選用CRC-8、CRC-16、CRC-32 3種校驗方式。從地址段到校驗段的比特位均參與透明傳輸,即在數據幀收發過程中,發送端進行 5 連‘1’插‘0’操作,接收端進行 5 連‘1’刪‘0’操作。

1.3 HDLC幀類型及功能

根據數據幀中控制字段的比特指派不同,可以將HDLC幀分成I幀、S幀和U幀3種類型。I幀主要用于信息的傳輸;S幀負責數據幀傳輸過程中的流控制;而U幀用于數據鏈路的建立和拆除。HDLC幀控制段的比特指派與幀類型的對應關系,如表2所示:

表2 幀類型與控制段編碼

其中,在數據幀收發過程中,具體可以通過RR幀、RNR幀、REJ幀、SREJ幀4種S幀來實現流控制,這4種幀的具體功能如下。

RR幀——接收準備好,準備接收N(R)幀,前N(R)-1幀已正確接收。

RNR幀——接收未準備好,暫停接收N(R)幀,前N(R)-1幀已正確接收。

REJ幀——拒絕接收,重新發送N(R)及其以后各幀,前N(R)-1幀已正確接收。

SREJ幀——選擇拒絕接收,只要求重新發送第N(R)幀,其它幀均已正確接收。

2 網絡接口單元硬件設計

2.1 硬件總體結構設計

網絡接口單元主要由嵌入式CPU模塊、HDLC通信網卡以及電源三大部分組成。其中CPU模塊主要負責對HDLC通信網卡的調度與數據收發控制;HDLC通信網卡負責HDLC幀的封裝和解析,以及對整個數據鏈路的控制;電源模塊用于對CPU模塊和HDLC通信網卡供電。網絡接口單元內部的CPU模塊與HDLC通信網卡之間基于CPCI總線進行連接,該網絡接口單元采用RS485通信接口與其它單元進行通信,具體硬件總體結構,如圖2所示:

圖2 網絡接口單元硬件框圖

2.2 HDLC通信網卡設計

本通信網卡主要基于協議控制器SAB82532進行設計。SAB82532是西門子公司開發的一款增強型高級多協議串行通信控制器(ESCC),它能夠實現高級鏈路控制協議的同步或異步串行通信,最高傳輸速率可達到10Mbit/s[7]。

在本文設計的HDLC通信網卡中,協議控制器SAB82532向上通過CPCI總線與嵌入式主控CPU相連,向下通過RS485總線收發器與其他網絡接口單元的HDLC網卡進行通信,相應網卡的硬件框圖,如圖3所示:

圖3 HDLC網卡硬件框圖

本網卡硬件設計中主控CPU采用存儲器映射方式對外圍器件進行尋址。系統中CPU通過CPCI總線為SAB82532分配的地址空間為0x83002000~0x830021FF,并采用譯碼器進行地址選擇。SDRAM選用MT48LC2M32B2-7,它是一款具有2M*32bit存儲容量的隨機存儲器,最高工作頻率可達143MHz,能夠滿足系統對存儲深度和存儲速度的要求。RS485總線收發器采用MAX485,網絡節點之間的通信采用半雙工方式,通過協議控制器的/RTS信號來控制RS485收發器的數據接收和發送。由于SAB82532是雙通道,故每個接口單元都連接兩個MAX485芯片。

3 網絡接口單元軟件設計與實現

在上述硬件設計的基礎上,本網絡接口單元的軟件主要從HDLC通信網卡板級通道驅動軟件和應用層通信軟件兩方面進行設計。

3.1 HDLC通信網卡板級驅動軟件設計

3.1.1 SAB82532初始化設置

SAB82532協議控制器支持HDLC、ASYNC、BISYNC 3種通信協議,該器件還擁有兩個獨立的通道,每個通道在HDLC通信協議下都有4種不同的工作模式,通過配置寄存器參數可以實現通信協議和工作模式的選擇,并且還可以設定通信波特率、CRC校驗方式、地址字段大小等參數。其中,SAB82532在HDLC協議下的4種工作模式分別為:

(1)自動模式:自動識別地址字段,地址字段為8位或16位,窗口尺寸為1,報文長度不限,能夠自動處理S幀和I幀。

(2)非自動模式:自動識別地址字段,地址字段為8位或16位,窗口尺寸不限。

(3)透明模式:自動識別地址字段,地址字段為8位或16位。

(4)擴展的透明模式:全透明傳輸,FLAG、CRC、Info字段以及位填充可以自己定義,靈活性大。

表3為HDLC通信采用透明模式進行信息輸時協議控制器相關寄存器參數配置情況,如表3所示:

表3 SAB82532寄存器參數配置

其中,SAB82532的波特率設置有標準型和增強型,標準型中N=(BR9~BR0)D,XTAL時鐘分頻因數為k=(N+1)*2,分 頻 范 圍 為 2~2048; 增 強 型 中 N=(BR5~BR0)D,M=(BR9~BR6)D,XTAL時鐘分頻因數為k=(N+1)*2^M,分頻范圍為1~2097152。本文為了達到高速通信的目的,采用20MHz晶振,工作在標準波特率生成方式下,因此通信速率范圍為10Kbit/s~10Mbit/s,用戶可以通過人機界面靈活設定。

另外,HDLC網絡工作在NRM時,通信節點地址的設置如下:本節點地址應寫在RAL1和RAL2寄存器中,并且RAL1=RAL2;主站發送幀的目標地址根據命令幀和響應幀不同分別寫在XAD1和XAD2中;從站發送響應幀的目標地址只能是主站,故從站XAD1=主站RAL1=主站RAL2;從站無需發送命令幀,故從站的XAD1無需設定。

3.1.2 HDLC通道數據收發軟件設計

SAB82532協議控制器在通信過程中均通過發送緩存器XFIFO和接收緩存器RFIFO分別進行數據幀的發送和接收,其每個通道的數據發送和接收流程分別,如圖4、圖5所示:

圖4 HDLC數據發送流程

圖5 HDLC數據接收流程4.2網絡接口單元通信軟件的設計與實現

由圖4、圖5可知,當發送HDLC數據幀時,首先需要讀入超時定時器t1的時間間隔和超時重傳次數n1,并使能發送寄存器XFIFO,而后產生一個中斷,并判斷上次啟動的定時器是否超時,若超時則重傳,直至超過重傳次數n1;而接收HDLC數據幀時,首先需使能接收寄存器RFIFO,而后讀出RFIFO中的數據幀,判斷該幀格式和幀編號是否錯誤,若錯誤則丟棄,否則將該幀中信息解析后上交,并清空RFIFO寄存器。

網絡接口單元應用層的通信軟件基于VC++開發平臺進行設計。通過調用Windows系統底層提供的一些API函數以及HDLC通信網卡所提供的板級驅動函數,用戶可以很方便地設計友好的人機界面實現通信節點的參數配置和數據的收發功能。一般地,網絡接口單元應用層的數據通信軟件流程,如圖6所示:

圖6 網絡接口單元通信流程

3.2.1 基本API函數設計

由圖6可知,網絡接口單元在上電后需對協議控制器進行各個寄存器的復位、通道檢測以及寄存器相應參數的配置工作。為了使用戶能在應用層對多達幾十個寄存器直接進行訪問操作,而屏蔽掉每個寄存器底層不同硬件地址的差異,本軟件中采用DeviceIoControl()函數實現對各個寄存器的直接訪問,該函數的原型如下:

其中,設備句柄用來標識所訪問的設備,通過設置不同的控制碼,可以調用設備驅動程序的不同類型的功能。本函數設定的參數以結構體的形式放在輸入緩沖區中,該結構體將SAB82532用到的32個寄存器定義為無符號整型。

類似地,為了便于在應用層對協議控制器的XFIFO和RFIFO進行直接訪問從而實現數據的發送和接收功能,軟件中采用WriteFile()函數來實現將待發數據寫入SAB82532的XFIFO寄存器,并由協議控制器負責將數據封裝成幀發送出去,其中XFIFO大小為32字節。同理,數據接收功能則采用ReadFile()函數予以實現,具體實現時,采用單獨的讀線程實時檢測RFIFO的狀態,當RFIFO非空時就讀取其中的數據,RFIFO寄存器的大小也為32字節。WirteFile()函數和ReadFile()函數的原型分別如下:

3.3 其它API函數封裝設計

為了方便用戶進行通信過程軟件的二次編程開發,本設計在原API函數基礎上封裝設計了一些常用的輸入輸出函數分別如下:

int OpenPort(int PortNumber); //端口打開函數,PortNumber取值為0或1,端口打開成功返回1,失敗返回0,PortNumber設置錯誤時返回-1。

int ClosePort(int PortNumber); //端口打開函數,PortNumber取值為0或1,端口關閉成功返回1,失敗返回0,PortNumber設置錯誤時返回-1。

BOOL InitSet(int PortNumber, int BaudRate, int CheckSum,BYTE LocalAddress);//板卡初始化函數,初始化成功返回TRUE,失敗返回FALSE。

BOOL TransmitData(int PortNumber,Byte TargetAddress,CString Data);//發送數據函數,TargetAddress為發送數據的目標節點地址,大小為一個字節,Data為所要發送的字符串數據,大小不限。數據發送成功返回TRUE,失敗返回FALSE。

根據上述封裝設計后的函數,用戶可以很方便地對HDLC網絡接口單元應用層的通信軟件進行設計。基于上述函數設計并實現的HDLC通信測試軟件運行截圖,實際通信測試表明上述驅動API函數的設計和封裝是可行的,如圖7所示:

圖7 通信測試軟件運行截圖

4 結論

基于上述原理設計并完成的列車通信網絡接口單元,實現了HDLC協議所規定的基本通信功能。通過實驗室環境下通信性能的長期運行和測試,表明該通信接口單元在各方面的性能均達到了預期的目標,這為下一步真正應用到實際列車通信網絡打下了基礎。

[1]葉星星.地鐵列車診斷系統中央控制單元的設計與實現[D].北京:北京交通大學,2011.

[2]應三從,張行.基于FPGA的HDLC協議控制器[J].四川大學學報,2008,40(3):116-120.

[3]陳金華.基于HDLC協議的RS485通信設備的研制[J].測控技術,2010,29(6):98-101.

[4]鄧鳳軍,張龍,王益忠.基于PCI總線的HDLC通信卡的設計與實現[J].電子技術應用,2012,38(8):30-32.

[5]羅文翰,張劍鋒.基于MPC860的HDLC通道驅動程序的設計與實現[J].電子技術應用,2005,31(5):66-68.

[6]ISO/IEC 13239.Information technology-Telecommu nications and information exchange between systems-High- level data link control (HDLC)procedures[S]. Switzerland International Electro-technical Commission,2002.

[7]SAB82532 User’s Manual . Enhanced Serial Communication Controller[Z].Germany:Siemens,2007.

猜你喜歡
設計
二十四節氣在平面廣告設計中的應用
河北畫報(2020年8期)2020-10-27 02:54:06
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
基于PWM的伺服控制系統設計
電子制作(2019年19期)2019-11-23 08:41:36
基于89C52的32只三色LED搖搖棒設計
電子制作(2019年15期)2019-08-27 01:11:50
基于ICL8038的波形發生器仿真設計
電子制作(2019年7期)2019-04-25 13:18:16
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
從平面設計到“設計健康”
商周刊(2017年26期)2017-04-25 08:13:04
主站蜘蛛池模板: 国产一区二区精品福利| 白浆视频在线观看| AV熟女乱| 国产va欧美va在线观看| 97久久免费视频| 波多野结衣亚洲一区| 色婷婷亚洲综合五月| 亚洲午夜天堂| av尤物免费在线观看| 欧美午夜视频| 少妇精品网站| 99在线观看视频免费| 青草视频免费在线观看| 天堂网国产| 91精品国产一区自在线拍| 99久久精品国产综合婷婷| 亚洲网综合| 亚洲人成网站在线播放2019| 一级全黄毛片| 日本一本在线视频| 亚洲欧美在线看片AI| 精品撒尿视频一区二区三区| 亚洲区视频在线观看| 国产精品v欧美| 亚洲精品无码AⅤ片青青在线观看| 亚洲伊人天堂| 国产一区二区精品福利 | 国产h视频在线观看视频| 国产毛片基地| 99精品视频在线观看免费播放| 亚洲精品午夜天堂网页| 亚洲无码精品在线播放| 国内精品久久九九国产精品| 伊人91在线| 狠狠五月天中文字幕| 制服丝袜国产精品| 精品国产毛片| 福利小视频在线播放| 免费jjzz在在线播放国产| 日韩精品视频久久| 亚洲一区无码在线| 天天色综网| 再看日本中文字幕在线观看| 又黄又湿又爽的视频| 国产精品第一区| 香蕉色综合| 狠狠色狠狠综合久久| 欧美精品1区2区| 亚洲IV视频免费在线光看| 91小视频在线观看| 欧美一级爱操视频| 欧美色综合网站| 国产人碰人摸人爱免费视频| 午夜不卡福利| 国产在线观看一区精品| 欧美国产日韩另类| 国产清纯在线一区二区WWW| 国产菊爆视频在线观看| 亚洲热线99精品视频| yjizz国产在线视频网| a免费毛片在线播放| 韩国自拍偷自拍亚洲精品| 国产爽妇精品| 国产成人精品三级| 欧美在线精品怡红院| 扒开粉嫩的小缝隙喷白浆视频| 一区二区欧美日韩高清免费| 国产jizz| 亚洲天堂自拍| 992tv国产人成在线观看| 国产亚洲视频中文字幕视频| 91九色国产在线| 一级毛片免费播放视频| 91精品人妻一区二区| 午夜免费视频网站| 99热最新网址| 女高中生自慰污污网站| 亚洲区第一页| 中文字幕av无码不卡免费| 色偷偷综合网| 天天操天天噜| 亚洲天堂色色人体|