• 
    

    
    

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

      基于FPGA和PCI接口的EtherCAT從站網(wǎng)卡設(shè)計

      2018-10-23 01:50:02程天亨張舞杰
      自動化與儀表 2018年9期
      關(guān)鍵詞:狀態(tài)機(jī)工控機(jī)網(wǎng)卡

      程天亨,張舞杰

      (華南理工大學(xué) 機(jī)械與汽車工程學(xué)院,廣州 510640)

      在一些工業(yè)自動化流水線生產(chǎn)領(lǐng)域,為了滿足生產(chǎn)需求,需要使用工業(yè)相機(jī)甚至使用多臺工業(yè)相機(jī)進(jìn)行數(shù)據(jù)測量。面對成像技術(shù)不斷發(fā)展和進(jìn)步的新時期,相機(jī)分辨率高信息數(shù)據(jù)量較大,實時性和同步性需求高[1-2],多相機(jī)數(shù)據(jù)傳輸成為新時期迫切需要解決的問題。同時,隨著計算機(jī)技術(shù)和工業(yè)以太網(wǎng)技術(shù)的發(fā)展與融合,工業(yè)以太網(wǎng)由于其速度快、成本低、擴(kuò)展性好、抗干擾性強(qiáng)等特點取得了廣泛的應(yīng)用。國際上許多著名的工業(yè)自動化公司也相繼提出工業(yè)以太網(wǎng)新標(biāo)準(zhǔn)。德國Beckhoff公司提出的 EtherCAT(Ethernet for control automation technology),具有靈活的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、系統(tǒng)配置簡單、數(shù)據(jù)傳輸全雙工、高速高效、總線利用率較高等特點[3-5],可以有效地運用在多相機(jī)數(shù)據(jù)傳輸領(lǐng)域。

      然而工業(yè)相機(jī)的數(shù)據(jù)接口協(xié)議與EtherCAT協(xié)議不兼容。為解決工業(yè)相機(jī)接入EtherCAT網(wǎng)絡(luò)系統(tǒng)的問題,在此,提出一種將具有實時采集相機(jī)圖像和圖像處理功能的工控機(jī)作為從站設(shè)備與主站相連的解決方案,并設(shè)計了一款基于FPGA和PCI接口的EtherCAT從站網(wǎng)卡,將工控機(jī)接收到的圖像原始數(shù)據(jù)或圖像處理后的數(shù)據(jù)傳輸?shù)紼therCAT網(wǎng)絡(luò)中,實現(xiàn)與EtherCAT主站數(shù)據(jù)交互的功能。

      1 EtherCAT從站網(wǎng)卡組成框架

      EtherCAT從站網(wǎng)卡由微處理器、EtherCAT模塊以及網(wǎng)絡(luò)物理層模塊組成,其結(jié)構(gòu)如圖1所示。其中,EtherCAT模塊由EtherCAT協(xié)議控制器組成,用于實現(xiàn)物理層與數(shù)據(jù)鏈路層。文中選用倍福公司ET1100作為EtherCAT協(xié)議控制器;微處理器由FPGA芯片實現(xiàn),選用Altera公司Cyclone IV系列的EP4CE6F17C8;物理層網(wǎng)卡芯片采用KS8721BL。

      圖1 EtherCAT從站網(wǎng)卡設(shè)計框架Fig.1 Design framework of EtherCAT slave network card

      2 從站網(wǎng)卡硬件設(shè)計

      系統(tǒng)硬件包括FPGA與ET1100的PDI接口模塊、ET1100與以太網(wǎng)物理層PHY芯片的MII接口模塊和FPGA的PCI通信模塊。ET1100通過MII接口與以太網(wǎng)物理層芯片連接,再通過16位異步微處理的PDI接口與FPGA連接。從站網(wǎng)卡啟動后,接收到來自主站的報文數(shù)據(jù),F(xiàn)PGA通過內(nèi)部運行的狀態(tài)機(jī)與PCI和ET1100進(jìn)行通信,完成工控機(jī)和主站的數(shù)據(jù)交互。

      2.1 EtherCAT PDI接口

      過程數(shù)據(jù)接口 PDI(process data interface)是實現(xiàn)從站控制器和應(yīng)用之間的接口。ET1100支持3類過程數(shù)據(jù)接口,分別為數(shù)字量I/O,SPI從機(jī)、8/16位同步/異步微處理接口。PDI接口類型由寄存器0x0140—0x141進(jìn)行配置[6]。在此使用16位異步微處理器接口與FPGA相連。

      該總線接口使用復(fù)用的地址和數(shù)據(jù)總線,其ET1100和FPGA電路連接如圖2所示。

      圖2 ET1100與FPGA硬件接口Fig.2 Hardware interface between ET1100 and FPGA

      其工作原理為:當(dāng)片選信號CS有效時,寫或者讀訪問開始。如果處于寫訪問,地址ADR和數(shù)據(jù)DATA隨著WR信號的下降沿而被置為有效值;寫訪問能通過WR信號或CS信號被置為無效。如果當(dāng)前處于讀訪問時,地址ADR信號必須在RD信號的下降沿之前被置為有效值。讀出的數(shù)據(jù)會保持有效值直到ADR,RD或CS信號變化。

      2.2 EtherCAT MII接口

      ET1100可提供4個物理通信端口,每個端口都支持MII接口和EBUS接口。MII接口以工業(yè)以太網(wǎng)網(wǎng)線作為傳輸介質(zhì),可以與工控機(jī)直接相連,傳輸距離遠(yuǎn),可有效傳輸100 m[7]。文中采用雙MII接口,其ET1100和PHY芯片電路連接如圖3所示。

      圖3 ET1100與PHY芯片硬件接口Fig.3 Hardware interface between ET1100 and PHY chip

      2.3 PCI接口硬件設(shè)計

      外設(shè)組件互連標(biāo)準(zhǔn)PCI(peripheral component interconnection),是由Intel公司1991年推出的用于局部總線的標(biāo)準(zhǔn)。PCI總線具有即插即用、中斷共享、高速數(shù)據(jù)傳輸?shù)裙δ躘8]。其FPGA和PCI總線的電路連接如圖4所示。

      圖4 FPGA與PCI總線硬件接口Fig.4 Hardware interface between ET1100 and PCI bus

      PCI總線接口控制器設(shè)計中用到的信號,按照功能,可分為系統(tǒng)信號、地址數(shù)據(jù)信號、接口控制信號、錯誤報告信號和中斷信號[9]。系統(tǒng)信號包括CLK和RST信號,提供系統(tǒng)時鐘和系統(tǒng)復(fù)位信號。AD引腳為地址和數(shù)據(jù)的復(fù)用引腳。

      3 從站網(wǎng)卡軟件設(shè)計

      根據(jù)從站網(wǎng)卡設(shè)計框架,需要對微處理器FPGA進(jìn)行模塊化、標(biāo)準(zhǔn)化的編程,其中包括對FPGA頂層模塊框架的結(jié)構(gòu)化設(shè)計,并根據(jù)邏輯操作需求設(shè)計合理的狀態(tài)機(jī),提高設(shè)計的通用性[10]。

      3.1 FPGA頂層模塊框架

      在FPGA頂層模塊的設(shè)計中,首先設(shè)計接口模塊,使用FPGA提供的IP核構(gòu)造PCI總線,用于實現(xiàn)讀寫PCI數(shù)據(jù)的功能。

      在FPGA的程序開發(fā)中,由于PCI總線、PDI接口以及FPGA頂層狀態(tài)機(jī)處于3個不同的相互獨立的時鐘中,傳輸速率不匹配,會導(dǎo)致數(shù)據(jù)丟失的情況發(fā)生。為此引入異步FIFO技術(shù),用于存儲、緩沖多個異步時鐘之間的數(shù)據(jù)傳輸,實現(xiàn)不同時鐘系統(tǒng)之間快速準(zhǔn)確地傳輸實時數(shù)據(jù)[11-12]。使用FPGA提供的IP核,構(gòu)造2個16位256雙字節(jié)大小的雙端口DPRAM模塊用于實現(xiàn)異步FIFO,分別取名為ET_RAM和PCI_RAM。ET_RAM用于存儲通過PDI接口從ET1100讀取到的數(shù)據(jù),PCI_RAM用于存儲通過PCI總線讀取到的數(shù)據(jù)。

      由于存在多個數(shù)據(jù)組合邏輯以及寄存器邏輯,在FPGA的頂層模塊中構(gòu)建有限狀態(tài)機(jī)實現(xiàn)預(yù)期的數(shù)據(jù)交互等邏輯操作。最終設(shè)計FPGA頂層模塊框架如圖5所示。

      圖5 FPGA頂層模塊設(shè)計框架Fig.5 FPGA top-level module design framework

      通過狀態(tài)機(jī)不同狀態(tài)遷移實現(xiàn)的邏輯操作如下:讀取PCI總線數(shù)據(jù)并寫入到PCI_RAM中,從PCI_RAM中獲取數(shù)據(jù)通過PDI接口輸出;讀取PDI接口數(shù)據(jù)并寫入到ET_RAM中,從ET_RAM獲取數(shù)據(jù)通過PCI總線接口輸出。

      3.2 FPGA狀態(tài)機(jī)

      狀態(tài)機(jī)是整個軟件設(shè)計中最核心的部分,各種控制、數(shù)據(jù)交換、命令都在狀態(tài)機(jī)的管理下進(jìn)行[13]。狀態(tài)機(jī)一方面將存入FIFO數(shù)據(jù)結(jié)構(gòu)中的PCI輸入信號通過PDI接口發(fā)送出去,另一方面將讀取PDI接口的輸入信號存入FIFO,使應(yīng)用層用戶能夠順利的執(zhí)行讀寫操作,完成數(shù)據(jù)交互。狀態(tài)機(jī)通過設(shè)置數(shù)據(jù)長度,對多字節(jié)數(shù)據(jù)進(jìn)行連續(xù)的讀寫操作,極大程度地提高讀寫效率。

      該狀態(tài)機(jī)共由13個狀態(tài)組成,采用異步復(fù)位方式,所有的狀態(tài)轉(zhuǎn)移都發(fā)生在時鐘上升沿。具體的控制流程如圖6所示。

      圖6 FPGA狀態(tài)機(jī)Fig.6 FPGA state machine

      4 測試驗證

      4.1 模塊功能性測試

      Altera公司Quartus 16.1軟件中的SignalTapII在線邏輯分析儀,可以在線監(jiān)視FPGA的數(shù)據(jù)引腳。Windriver是Jungo公司推出的一套設(shè)備驅(qū)動程序開發(fā)工具,可以對PCI總線進(jìn)行配置和讀寫。Twin-CAT System Manager為倍福公司的總線配置工具,可以實現(xiàn)解析XML配置文件,管理從站狀態(tài),實現(xiàn)主從站之間數(shù)據(jù)的傳輸[14]。

      測試時,使用Windriver讀寫PCI總線數(shù)據(jù),使用TwinCAT與從站網(wǎng)卡設(shè)備進(jìn)行數(shù)據(jù)通信,使用邏輯分析儀監(jiān)測FPGA狀態(tài)機(jī)與PCI和PDI模塊通信時是否正常運行。

      首先使用Windriver工具識別PCI設(shè)備,再由TwinCAT識別從站設(shè)備并使其進(jìn)入OP狀態(tài)。使用Windriver向PCI設(shè)備的0xA00地址寫入數(shù)據(jù)0x12342345。FPGA頂層模塊獲取到PCI數(shù)據(jù)0x12342345后,根據(jù)地址寫入PCI_RAM。觀察邏輯分析儀,當(dāng)FPGA狀態(tài)機(jī)進(jìn)入PRE_WRITE1狀態(tài)后,從PCI_RAM中根據(jù)地址獲取到1個雙字節(jié)數(shù)據(jù)0x2345;接著WR和CS引腳被置低,數(shù)據(jù)0x2345通過PDI接口寫入ET1100中,WR和CS恢復(fù)高電平,寫操作結(jié)束。數(shù)據(jù)長度為16個雙字節(jié),故此處循環(huán)寫入16次。打開TwinCAT從站界面,正確讀取到從站0xA00地址輸出的數(shù)據(jù)0x12342345。

      接著使用TwinCAT工具對地址0x800輸入0x56786789。當(dāng)FPGA狀態(tài)機(jī)進(jìn)入PRE_READ1狀態(tài)時,RD和CS引腳被置低,通過PDI接口讀取到ET1100地址輸出0x800,輸出數(shù)據(jù)0x6789,將此時的數(shù)據(jù)和地址值存入ET_RAM中,接著RD和CS恢復(fù)高電平,寫操作結(jié)束。數(shù)據(jù)長度為16個雙字節(jié),此處循環(huán)讀取16次。頂層模塊會獲取ET_RAM相關(guān)數(shù)據(jù)并輸出到PCI總線中。在Windriver工具上正確讀取到0x800地址的數(shù)據(jù)值0x56786789,測試過程中FPGA狀態(tài)機(jī)邏輯分析儀讀寫階段的時序如圖7所示。觀察控制信號和數(shù)據(jù)信號變化,可以看出數(shù)據(jù)傳輸過程準(zhǔn)確且快速。

      4.2 測試平臺搭建

      圖7 FPGA狀態(tài)機(jī)讀寫階段的時序Fig.7 Timing of FPGA state machine reading and writing phase

      為測試相機(jī)和工控機(jī)作為EtherCAT從站是否能正常工作,搭建了基于EtherCAT總線網(wǎng)絡(luò)的機(jī)械手流水線抓取系統(tǒng)。工業(yè)相機(jī)將抓取到的圖像數(shù)據(jù)通過千兆網(wǎng)卡傳輸?shù)焦た貦C(jī)端,經(jīng)過圖像處理得到機(jī)器人坐標(biāo)值,再通過PCI總線傳輸?shù)綇恼揪W(wǎng)卡中,主站通過連接從站網(wǎng)卡和機(jī)器人驅(qū)動器,實現(xiàn)機(jī)器人對流水線目標(biāo)物體的抓取。經(jīng)過試驗測試,主站能正常接收到從站網(wǎng)卡發(fā)送的坐標(biāo)值并控制機(jī)器人抓取目標(biāo)物體。

      在工控機(jī)上安裝Wireshark網(wǎng)絡(luò)數(shù)據(jù)包捕獲軟件,捕獲上述主從站通信過程中收發(fā)的EtherCAT數(shù)據(jù)幀并進(jìn)行統(tǒng)計分析,數(shù)據(jù)幀發(fā)送到轉(zhuǎn)發(fā)的時間間隔為25 μs至幾μs之間。這個時間包括從站接收數(shù)據(jù)幀、從站處理數(shù)據(jù)幀、從站轉(zhuǎn)發(fā)數(shù)據(jù)幀的時間??梢钥闯鲈揈therCAT網(wǎng)絡(luò)的實時性能夠滿足設(shè)計需求。

      5 結(jié)語

      作為一種工業(yè)實時以太網(wǎng)技術(shù),EtherCAT因其高性能、高靈活性及完全開放性而引人注目。文中闡述了基于FPGA和PCI接口的EtherCAT從站網(wǎng)卡設(shè)計方案,并介紹了從站網(wǎng)卡軟硬件設(shè)計細(xì)節(jié),為開發(fā)從站設(shè)備提供了有力的參考。使用具有EtherCAT從站功能的FPGA板卡,通過PCI接口將工控機(jī)作為具有圖像采集及圖像處理功能的從站模塊接入EtherCAT總線系統(tǒng)中,構(gòu)建了一種工業(yè)相機(jī)和工控機(jī)融合的EtherCAT從站系統(tǒng)。該方案改變并拓寬了EtherCAT從站形式,通過試驗驗證了該設(shè)計從站能夠很好地工作。

      猜你喜歡
      狀態(tài)機(jī)工控機(jī)網(wǎng)卡
      在DDS 中間件上實現(xiàn)雙冗余網(wǎng)卡切換的方法
      定制工控機(jī)在老舊線路計算機(jī)聯(lián)鎖設(shè)備中的應(yīng)用
      基于有限狀態(tài)機(jī)的交會對接飛行任務(wù)規(guī)劃方法
      Server 2016網(wǎng)卡組合模式
      中壓電子束焊工控機(jī)Windows NT系統(tǒng)文件丟失故障的修復(fù)方法
      挑戰(zhàn)Killer網(wǎng)卡Realtek網(wǎng)游專用Dragon網(wǎng)卡
      中國工控機(jī)市場新Style
      自動化博覽(2014年6期)2014-02-28 22:32:09
      新漢 前插拔CoreTM-i系列無風(fēng)扇工控機(jī)
      自動化博覽(2014年4期)2014-02-28 22:31:15
      FPGA設(shè)計中狀態(tài)機(jī)安全性研究
      基于反熔絲FPGA的有限狀態(tài)機(jī)加固設(shè)計
      永川市| 济源市| 伊吾县| 宝应县| 会泽县| 三明市| 兴山县| 灵寿县| 镶黄旗| 建始县| 延庆县| 铜陵市| 桦甸市| 大丰市| 嘉峪关市| 枣阳市| 紫金县| 邵东县| 长寿区| 汝南县| 隆回县| 遵义县| 宾阳县| 兰溪市| 湖北省| 洞口县| 共和县| 自贡市| 北流市| 呈贡县| 广州市| 德州市| 芦溪县| 平邑县| 罗江县| 白河县| 乌拉特后旗| 淮北市| 四会市| 云和县| 秭归县|