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

?

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

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

程天亨,張舞杰

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

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

然而工業(yè)相機的數(shù)據(jù)接口協(xié)議與EtherCAT協(xié)議不兼容。為解決工業(yè)相機接入EtherCAT網(wǎng)絡(luò)系統(tǒng)的問題,在此,提出一種將具有實時采集相機圖像和圖像處理功能的工控機作為從站設(shè)備與主站相連的解決方案,并設(shè)計了一款基于FPGA和PCI接口的EtherCAT從站網(wǎng)卡,將工控機接收到的圖像原始數(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)機與PCI和ET1100進行通信,完成工控機和主站的數(shù)據(jù)交互。

2.1 EtherCAT PDI接口

過程數(shù)據(jù)接口 PDI(process data interface)是實現(xiàn)從站控制器和應(yīng)用之間的接口。ET1100支持3類過程數(shù)據(jù)接口,分別為數(shù)字量I/O,SPI從機、8/16位同步/異步微處理接口。PDI接口類型由寄存器0x0140—0x141進行配置[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ì),可以與工控機直接相連,傳輸距離遠,可有效傳輸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進行模塊化、標(biāo)準(zhǔn)化的編程,其中包括對FPGA頂層模塊框架的結(jié)構(gòu)化設(shè)計,并根據(jù)邏輯操作需求設(shè)計合理的狀態(tài)機,提高設(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)機處于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)機實現(xiàn)預(yù)期的數(shù)據(jù)交互等邏輯操作。最終設(shè)計FPGA頂層模塊框架如圖5所示。

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

通過狀態(tài)機不同狀態(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)機

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

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

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

4 測試驗證

4.1 模塊功能性測試

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

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

首先使用Windriver工具識別PCI設(shè)備,再由TwinCAT識別從站設(shè)備并使其進入OP狀態(tài)。使用Windriver向PCI設(shè)備的0xA00地址寫入數(shù)據(jù)0x12342345。FPGA頂層模塊獲取到PCI數(shù)據(jù)0x12342345后,根據(jù)地址寫入PCI_RAM。觀察邏輯分析儀,當(dāng)FPGA狀態(tài)機進入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)機進入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)機邏輯分析儀讀寫階段的時序如圖7所示。觀察控制信號和數(shù)據(jù)信號變化,可以看出數(shù)據(jù)傳輸過程準(zhǔn)確且快速。

4.2 測試平臺搭建

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

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

在工控機上安裝Wireshark網(wǎng)絡(luò)數(shù)據(jù)包捕獲軟件,捕獲上述主從站通信過程中收發(fā)的EtherCAT數(shù)據(jù)幀并進行統(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è)計細節(jié),為開發(fā)從站設(shè)備提供了有力的參考。使用具有EtherCAT從站功能的FPGA板卡,通過PCI接口將工控機作為具有圖像采集及圖像處理功能的從站模塊接入EtherCAT總線系統(tǒng)中,構(gòu)建了一種工業(yè)相機和工控機融合的EtherCAT從站系統(tǒng)。該方案改變并拓寬了EtherCAT從站形式,通過試驗驗證了該設(shè)計從站能夠很好地工作。

猜你喜歡
狀態(tài)機工控機網(wǎng)卡
在DDS 中間件上實現(xiàn)雙冗余網(wǎng)卡切換的方法
定制工控機在老舊線路計算機聯(lián)鎖設(shè)備中的應(yīng)用
基于有限狀態(tài)機的交會對接飛行任務(wù)規(guī)劃方法
Server 2016網(wǎng)卡組合模式
中壓電子束焊工控機Windows NT系統(tǒng)文件丟失故障的修復(fù)方法
挑戰(zhàn)Killer網(wǎng)卡Realtek網(wǎng)游專用Dragon網(wǎng)卡
中國工控機市場新Style
自動化博覽(2014年6期)2014-02-28 22:32:09
新漢 前插拔CoreTM-i系列無風(fēng)扇工控機
自動化博覽(2014年4期)2014-02-28 22:31:15
FPGA設(shè)計中狀態(tài)機安全性研究
基于反熔絲FPGA的有限狀態(tài)機加固設(shè)計
天全县| 尚义县| 长丰县| 都昌县| 舞钢市| 呼玛县| 湄潭县| 多伦县| 青川县| 玉屏| 丹阳市| 宜良县| 海门市| 许昌市| 谷城县| 黑水县| 兴仁县| 梁平县| 华蓥市| 康定县| 涪陵区| 台东市| 昌平区| 井陉县| 班戈县| 临朐县| 务川| 温泉县| 南澳县| 读书| 峡江县| 比如县| 高安市| 甘谷县| 句容市| 仁怀市| 商南县| 涞水县| 黑河市| 建昌县| 榆树市|