• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于FPGA的高速冗余I/O總線設(shè)計(jì)與實(shí)現(xiàn)

      2019-04-28 10:18:04牛洪海
      自動(dòng)化儀表 2019年4期
      關(guān)鍵詞:鏈路層報(bào)文鏈路

      劉 鎏,臧 峰,牛洪海

      (南京南瑞繼保電氣有限公司,江蘇 南京 211102)

      0 引言

      控制系統(tǒng),如分布式控制系統(tǒng)(distributed control system,DCS)、可編程邏輯控制器(programmable logic controller,PLC)等,是計(jì)算機(jī)技術(shù)不斷發(fā)展與自動(dòng)化控制技術(shù)相結(jié)合的產(chǎn)物,在電力、石化、冶金、化工等大型工業(yè)中有著廣泛的應(yīng)用[1]。與蓬勃發(fā)展的現(xiàn)場(chǎng)總線(如Profibus、FF、CAN、LonWorks等[2-3])相比,控制系統(tǒng)本地總線的發(fā)展顯得相對(duì)緩慢。究其原因,主要是控制系統(tǒng)與本地輸入/輸出(input/output,I/O)模塊通信相對(duì)比較封閉,涉及到控制系統(tǒng)架構(gòu)和所有I/O模塊,因此各個(gè)廠家都對(duì)協(xié)議保密,令其他廠家無(wú)法獲取其通信信息。文獻(xiàn)[4]提出了一種基于面向通用對(duì)象的變電站事件(general object oriented substatI/on event,GOOSE)的控制器與I/O之間的通信協(xié)議,但由于其使用網(wǎng)絡(luò)通信,限制了其使用范圍。文獻(xiàn)[5]提出了一種基于PCI Express的通信線,但由于計(jì)算機(jī)串行總線(如PCI Express、USB、IEEE 1394)兼容性、可靠性和可擴(kuò)展性等方面的原因,無(wú)法很好地滿足控制系統(tǒng)應(yīng)用的需求[6-9]。

      針對(duì)上述總線所存在的問題,本文提出了一種基于現(xiàn)場(chǎng)可編程門陣列(field programmable gate array,FPGA)的高速、可靠的冗余I/O通信總線。物理層采用多點(diǎn)低壓差分信號(hào)[10](multi-point-low-voltage differential signaling,M-LVDS)標(biāo)準(zhǔn),實(shí)現(xiàn)了數(shù)據(jù)鏈路層實(shí)時(shí)數(shù)據(jù)的傳輸和通道鏈路狀態(tài)的監(jiān)視,保證了數(shù)據(jù)傳輸?shù)目煽啃院蛯?shí)時(shí)性。I/O模塊采用直接內(nèi)存存取(direct memory access,DMA)的方式進(jìn)行通用異步收發(fā)器(universal asynchronous receiver transmitter,UART)的通信報(bào)文解析,詳細(xì)設(shè)計(jì)參考文獻(xiàn)[10]。

      1 系統(tǒng)總體方案

      系統(tǒng)結(jié)構(gòu)如圖1所示。

      圖1 系統(tǒng)結(jié)構(gòu)圖

      目前,主流控制系統(tǒng)的體系架構(gòu)一般可分為4個(gè)層次:企業(yè)管理層、工廠(車間)層、控制裝置單元層和現(xiàn)場(chǎng)儀表層[11]。其中,控制單元層包括控制器和I/O模塊??刂破髋cI/O模塊的互聯(lián)互通是整個(gè)系統(tǒng)數(shù)據(jù)傳輸?shù)臉屑~,在實(shí)時(shí)性、可靠性和可擴(kuò)展性等方面有著非常高的要求,總線的通信效率直接影響了整個(gè)控制系統(tǒng)的性能[1]。本文設(shè)計(jì)的控制器采用主備冗余的方案,I/O單元采用A/B冗余I/O總線方案。主備控制器通A/B冗余總線與I/O模塊進(jìn)行通信,但僅主控制器通過A/B冗余總線交替對(duì)I/O模塊發(fā)送查詢數(shù)據(jù)和控制報(bào)文,備控制器通過A/B冗余總線監(jiān)聽I(yíng)/O模塊的響應(yīng)數(shù)據(jù)以判斷鏈路的通斷。當(dāng)備控制器升級(jí)為主控制器后,原主控制器不再發(fā)送查詢數(shù)據(jù)和控制報(bào)文,而新晉控制器主要發(fā)送查詢數(shù)據(jù)和控制報(bào)文。

      其中,I/O模塊可以是模擬量輸入(analog input,AI)、模擬量輸出(analog output,AO)、開關(guān)量輸入(digital input, DI)、開關(guān)量輸出(digital output,DO)或其他一些特殊的I/O模塊。一對(duì)控制器下可以帶6條冗余I/O總線,每條I/O冗余總線可以掛載10個(gè)I/O模塊。因此,本文設(shè)計(jì)的控制器一共可以掛載60個(gè)本地I/O模塊。

      2 協(xié)議設(shè)計(jì)與實(shí)現(xiàn)

      控制器與I/O模塊之間通信的實(shí)時(shí)性和可靠性,主要取決于物理層通信速率和數(shù)據(jù)鏈路層調(diào)度策略。本文設(shè)計(jì)的通信協(xié)議規(guī)定了控制器與I/O模塊之間的信息交換模式。此協(xié)議遵守開發(fā)系統(tǒng)互連參考模型(open system interconnect / on reference model,OSI/RM),使用了應(yīng)用層、數(shù)據(jù)鏈路層和物理層。應(yīng)用層實(shí)現(xiàn)了I/O模塊實(shí)時(shí)數(shù)據(jù)或非實(shí)時(shí)數(shù)據(jù)的解析,數(shù)據(jù)鏈路層實(shí)現(xiàn)了數(shù)據(jù)的循環(huán)冗余校驗(yàn)(cyclic redundant check,CRC),物理層實(shí)現(xiàn)了串口數(shù)據(jù)的編解碼功能。

      本文設(shè)計(jì)的每個(gè)I/O模塊均具有相同的通信接口和幀結(jié)構(gòu)。I/O模塊包括一個(gè)微控制器(micro control unit,MCU),通過DMA實(shí)現(xiàn)了數(shù)據(jù)的采集和分析,詳細(xì)設(shè)計(jì)參考文獻(xiàn)[11]。控制器使用了Xilinx公司的Zynq芯片。此芯片具有2個(gè)ARM芯片和1個(gè)FPGA。ARM芯片運(yùn)行QNX實(shí)時(shí)操作系統(tǒng),并通過FPGA擴(kuò)展6路冗余I/O總線。每路總線實(shí)現(xiàn)了5 Mbit/s的高速串口通信,主要包括M-LVDS發(fā)送/接收模塊、10 bit編解碼模塊、CRC校驗(yàn)?zāi)K。QNX實(shí)時(shí)操作系統(tǒng)通過配置寄存器和DMA實(shí)現(xiàn)與FPGA的數(shù)據(jù)交互。

      2.1 物理層協(xié)議

      物理層規(guī)定了控制器與I/O模塊之間通信的機(jī)械、電氣、功能和過程方面的特性。此通信協(xié)議采用M-LVDS標(biāo)準(zhǔn),實(shí)現(xiàn)了一主多從的通信模式。M-LVDS具有高速傳輸、低電壓擺幅、抗干擾、低功耗、多點(diǎn)通信和故障安全隔離等特點(diǎn)[1]。由于M-LVDS具有上述特點(diǎn),I/O模塊可以實(shí)現(xiàn)在線熱插拔以實(shí)時(shí)建立或斷開與控制器的通信,而不會(huì)干擾I/O總線上其他I/O模塊的通信功能??偩€的熱插拔功能提高了整個(gè)系統(tǒng)的可靠性和可擴(kuò)展性。

      2.2 數(shù)據(jù)鏈路層協(xié)議

      數(shù)據(jù)鏈路層負(fù)責(zé)在鏈路上進(jìn)行控制器與I/O模塊之間鏈路層協(xié)議數(shù)據(jù)單元(protocol data unit,PDU)的交互。數(shù)據(jù)鏈路層詳細(xì)定義了協(xié)議數(shù)據(jù)單元,如表1所示。其中:?jiǎn)?dòng)字符0x7e7e的幀格式按照幀頭幀尾判斷,幀長(zhǎng)度是從啟動(dòng)字符1到結(jié)束字符的長(zhǎng)度。

      表1 協(xié)議數(shù)據(jù)單元

      2.3 應(yīng)用層協(xié)議

      應(yīng)用層協(xié)議主要包括3個(gè)部分:①控制器根據(jù)I/O模塊的配置文件,對(duì)下發(fā)給I/O模塊的查詢或控制報(bào)文進(jìn)行組包;②解析I/O模塊上送的實(shí)時(shí)數(shù)據(jù),并把數(shù)據(jù)填入I/O接收緩沖區(qū);③對(duì)非實(shí)時(shí)報(bào)文進(jìn)行組包或解析。

      由于QNX實(shí)時(shí)操作系統(tǒng)通過DMA把下發(fā)給I/O模塊的報(bào)文傳輸給FPGA,因此需要對(duì)下發(fā)的報(bào)文格式進(jìn)行設(shè)計(jì),以保證FPGA接收數(shù)據(jù)的正確性。定義ARM傳輸給FPGA的數(shù)據(jù)格式如表2所示。

      表2 ARM傳輸給FPGA的數(shù)據(jù)格式

      Tab.2 Data format of ARM to FPGA

      info字段使用6 bit作為掩碼,每個(gè)bit位代表6條總線的各個(gè)分支,如0x1表示在第一條總線上發(fā)送,0x10代表在第五條總線上發(fā)送,0x3f代表六個(gè)分支都發(fā)送。len_byte代表這幀數(shù)據(jù)報(bào)文的總長(zhǎng)度,content即數(shù)據(jù)鏈路層協(xié)議數(shù)據(jù)單元PDU,但沒有CRC校驗(yàn)和幀尾標(biāo)志。這2項(xiàng)內(nèi)容FPGA會(huì)自動(dòng)加入,以減輕ARM芯片的負(fù)載。

      由于采用DMA發(fā)送數(shù)據(jù)會(huì)產(chǎn)生DMA中斷,因此在FPGA接收到數(shù)據(jù)后,并不是通過DMA的方式把數(shù)據(jù)傳輸給QNX實(shí)時(shí)操作系統(tǒng),而是通過循環(huán)緩沖區(qū)的方式把數(shù)據(jù)存儲(chǔ)在全局?jǐn)?shù)據(jù)區(qū)。此設(shè)計(jì)有兩方面的優(yōu)勢(shì):①減少DMA中斷產(chǎn)生的次數(shù),QNX實(shí)時(shí)操作系統(tǒng)不需要在FPGA接收到每個(gè)I/O模塊數(shù)據(jù)后都產(chǎn)生一次中斷去處理數(shù)據(jù);②6條總線下的I/O模塊可以統(tǒng)一處理,I/O模塊的數(shù)據(jù)可以形成一個(gè)斷面,有利于算法頁(yè)處理。

      3 軟件設(shè)計(jì)

      軟件程序主要包括:①I/O模塊配置文件解析;②串口寄存器配置;③串口驅(qū)動(dòng)配置;④FPGA寄存器配置;⑤實(shí)時(shí)報(bào)文傳輸;⑥非實(shí)時(shí)報(bào)文傳輸??刂破鏖_機(jī)后,首先進(jìn)行參數(shù)配置設(shè)置。設(shè)置完后,F(xiàn)PGA定周期產(chǎn)生5 ms脈沖信號(hào),QNX實(shí)時(shí)操作系統(tǒng)捕獲此脈沖信號(hào)后,進(jìn)行實(shí)時(shí)報(bào)文和非實(shí)時(shí)報(bào)文的組包和解析。

      3.1 實(shí)時(shí)報(bào)文傳輸

      實(shí)時(shí)傳輸流程如圖2所示。

      圖2 實(shí)時(shí)傳輸流程圖

      當(dāng)QNX實(shí)時(shí)操作系統(tǒng)捕獲FPGA產(chǎn)生的定時(shí)中斷后,首先,F(xiàn)PGA通過循環(huán)緩沖區(qū)傳輸給應(yīng)用層的報(bào)文解析,根據(jù)解析結(jié)果把I/O模塊的實(shí)時(shí)采集數(shù)填入I/O模塊的內(nèi)存區(qū);然后控制器根據(jù)I/O模塊配置信息,對(duì)下發(fā)給I/O模塊的控制或查詢報(bào)文進(jìn)行組包;最后,當(dāng)掃描完60個(gè)I/O模塊后,把形成的下發(fā)報(bào)文通過DMA傳輸給FPGA。FPGA接收到報(bào)文后,通過表2格式進(jìn)行解析,并在鏈路協(xié)議數(shù)據(jù)單元PDU的末尾填入CRC校驗(yàn)和幀尾標(biāo)志。

      3.2 非實(shí)時(shí)報(bào)文傳輸

      由于FPGA定周期產(chǎn)生5 ms的脈沖信號(hào)進(jìn)行實(shí)時(shí)報(bào)文的接收和下發(fā),因此需要考慮在實(shí)時(shí)報(bào)文中加入非實(shí)時(shí)報(bào)文,以適應(yīng)一些非周期性數(shù)據(jù)的請(qǐng)求。本文的設(shè)計(jì)方案是:如果分支有非實(shí)時(shí)數(shù)據(jù),那么在此分支實(shí)時(shí)報(bào)文傳輸周期的最末加了一幀非實(shí)時(shí)報(bào)文;如果沒有,則忽略此分支的非實(shí)時(shí)時(shí)隙。利用這種方案,可以有效解決實(shí)時(shí)報(bào)文傳輸和非實(shí)時(shí)報(bào)文傳輸?shù)臎_突。

      3.3 性能分析

      通過如圖3所示的總線時(shí)隙圖,可以更好地理解控制器與I/O模塊如何通過A/B冗余總線進(jìn)行通信。

      圖3 總線時(shí)隙圖

      圖3中:T1為QNX實(shí)時(shí)操作系統(tǒng)解析I/O模塊上送數(shù)據(jù)的時(shí)間,T2為QNX實(shí)時(shí)操作系統(tǒng)根據(jù)I/O模塊配置文件進(jìn)行下發(fā)查詢或控制報(bào)文的組包時(shí)間,T3為通過DMA把數(shù)據(jù)從ARM芯片傳輸給FPGA的時(shí)間。經(jīng)過實(shí)測(cè),T1、T2、T3的處理時(shí)間量級(jí)都在ms級(jí)。

      當(dāng)達(dá)到T3后,F(xiàn)PGA根據(jù)表2格式進(jìn)行下發(fā)數(shù)據(jù)報(bào)文解析,并自動(dòng)加入CRC校驗(yàn)和幀尾標(biāo)志下發(fā)查詢或控制報(bào)文。理論上,因?yàn)門1、T2、T3并不占用總線帶寬時(shí)間,通信時(shí)間可以達(dá)到5 ms。如果此周期是A總線下發(fā)報(bào)文,那么下個(gè)周期切換到B總線下發(fā)報(bào)文。

      這樣切換發(fā)送既可以減輕I/O模塊的通信負(fù)載,也可以監(jiān)視A/B總線的通信鏈路狀態(tài)。但是這樣操作的缺陷就是處理I/O模塊反饋的數(shù)據(jù),需等待2個(gè)查詢周期,即10 ms的時(shí)間。如果A總線或B總線通信鏈路斷開,那么會(huì)導(dǎo)致整個(gè)分支查詢周期擴(kuò)大一倍。但是控制器和I/O模塊在一個(gè)屏柜組屏,而且通信鏈路斷開控制器會(huì)報(bào)警,因此可以很好地避免這種情況的發(fā)生。

      4 結(jié)束語(yǔ)

      本文設(shè)計(jì)并實(shí)現(xiàn)了一種基于FPGA的高速冗余I/O總線。系統(tǒng)很好地結(jié)合了嵌入式ARM芯片與FPGA的優(yōu)點(diǎn),實(shí)現(xiàn)了FPGA與ARM芯片相結(jié)合的嵌入式平臺(tái)開發(fā),提高了系統(tǒng)的實(shí)時(shí)性、可靠性和穩(wěn)定性。該設(shè)計(jì)可以保證6路I/O模塊總線實(shí)時(shí)并發(fā)處理,而且不占用ARM芯片的處理時(shí)間,因此具有很高的使用價(jià)值和推廣意義。

      猜你喜歡
      鏈路層報(bào)文鏈路
      網(wǎng)絡(luò)傳輸融合及網(wǎng)絡(luò)安全防控技術(shù)研究
      家紡“全鏈路”升級(jí)
      基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
      汽車電器(2022年9期)2022-11-07 02:16:24
      天空地一體化網(wǎng)絡(luò)多中繼鏈路自適應(yīng)調(diào)度技術(shù)
      基于多空間內(nèi)存共享的數(shù)據(jù)鏈路層網(wǎng)絡(luò)包捕獲方法
      CTCS-2級(jí)報(bào)文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
      淺析反駁類報(bào)文要點(diǎn)
      ATS與列車通信報(bào)文分析
      數(shù)據(jù)鏈路層的選擇重傳協(xié)議的優(yōu)化改進(jìn)
      IEEE 1394事務(wù)層接口的設(shè)計(jì)與實(shí)現(xiàn)
      湾仔区| 雷州市| 昌都县| 遂宁市| 临武县| 武陟县| 陵川县| 宁都县| 海林市| 富民县| 淮南市| 石河子市| 旌德县| 博乐市| 樟树市| 德钦县| 马山县| 长岭县| 凤凰县| 丘北县| 仪征市| 小金县| 屏边| 长丰县| 汉川市| 河源市| 玛沁县| 孙吴县| 莆田市| 峡江县| 四川省| 柳江县| 东安县| 乐昌市| 江津市| 普宁市| 六盘水市| 远安县| 白城市| 南安市| 临武县|