《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于F28M36的EtherNet/IP從站設(shè)計(jì)
基于F28M36的EtherNet/IP從站設(shè)計(jì)
2016年微型機(jī)與應(yīng)用第14期
劉澤1,2,熊皚1,武繼瑞1.2
(1. 中國(guó)科學(xué)院光電技術(shù)研究所,四川 成都 610209;2. 中國(guó)科學(xué)院大學(xué),北京 100190)
摘要: 分析了一種全新的工業(yè)以太網(wǎng)協(xié)議EtherNet/IP,并從源代碼的角度闡明了其基本原理?;赥I的DSP+ARM雙核芯片F(xiàn)28M36設(shè)計(jì)了一款采用以太網(wǎng)傳輸?shù)乃欧刂葡到y(tǒng)控制卡,移植了UCOSII操作系統(tǒng)、CIP協(xié)議、嵌入式TCP/IP協(xié)議和網(wǎng)絡(luò)芯片驅(qū)動(dòng),最終實(shí)現(xiàn)了工業(yè)以太網(wǎng)協(xié)議EtherNet/IP協(xié)議的成功移植。
關(guān)鍵詞: EtherNetIP F28M36 CIP 伺服控制
Abstract:
Key words :

  劉澤1,2,熊皚1,武繼瑞1.2

 ?。?. 中國(guó)科學(xué)院光電技術(shù)研究所,四川 成都 610209;2. 中國(guó)科學(xué)院大學(xué),北京 100190)

  摘要:分析了一種全新的工業(yè)以太網(wǎng)協(xié)議EtherNet/IP,并從源代碼的角度闡明了其基本原理?;赥I的DSP+ARM雙核芯片F28M36設(shè)計(jì)了一款采用以太網(wǎng)傳輸?shù)?a class="innerlink" href="http://ihrv.cn/tags/伺服控制" title="伺服控制" target="_blank">伺服控制系統(tǒng)控制卡,移植了UCOSII操作系統(tǒng)、CIP協(xié)議、嵌入式TCP/IP協(xié)議和網(wǎng)絡(luò)芯片驅(qū)動(dòng),最終實(shí)現(xiàn)了工業(yè)以太網(wǎng)協(xié)議EtherNet/IP協(xié)議的成功移植。

  關(guān)鍵詞:EtherNet/IP;F28M36;CIP ;伺服控制

0引言

  近年來(lái),隨工業(yè)控制對(duì)于組網(wǎng)和信息傳輸速率與精度的要求越來(lái)越高,傳統(tǒng)的工業(yè)現(xiàn)場(chǎng)總線技術(shù)已經(jīng)很難滿足現(xiàn)代和未來(lái)的工業(yè)控制系統(tǒng)要求?,F(xiàn)在,工業(yè)以太網(wǎng)已經(jīng)成為了一種確定性的網(wǎng)絡(luò)。通過(guò)和現(xiàn)場(chǎng)總線的對(duì)比,其在組網(wǎng)、傳輸速率、價(jià)格等方面顯示出來(lái)的優(yōu)勢(shì)越來(lái)越明顯,成為未來(lái)工業(yè)控制系統(tǒng)通信接口的發(fā)展方向。

  不同于傳統(tǒng)的工業(yè)以太網(wǎng)協(xié)議,例如最普及的EtherCAT或者是高端的SERCOSIII等協(xié)議,EtherNet/IP協(xié)議只規(guī)定了應(yīng)用層協(xié)議CIP的規(guī)范,在網(wǎng)絡(luò)層和傳輸層上使用了事實(shí)上的標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議TCP/IP協(xié)議,這使得EtherNet/IP協(xié)議在組網(wǎng)上有巨大的優(yōu)勢(shì),可以一網(wǎng)到底,靈活組網(wǎng),而不是傳統(tǒng)工業(yè)以太網(wǎng)或者現(xiàn)場(chǎng)總線技術(shù)的專網(wǎng)專用。

  目前國(guó)內(nèi)對(duì)于EtherNet/IP協(xié)議的研究還是停留在直接購(gòu)買商業(yè)代碼或者是購(gòu)買專用的ASIC模塊芯片進(jìn)行研究階段??梢哉f(shuō)國(guó)內(nèi)對(duì)應(yīng)EtherNet/IP的研究還處于起步階段。

1EtherNet/IP協(xié)議的簡(jiǎn)介

  1.1EtherNet/IP協(xié)議的模型

  相比較于傳統(tǒng)的現(xiàn)場(chǎng)總線技術(shù)等工業(yè)控制協(xié)議,EtherNet/IP在本質(zhì)上也都是基于IEEE802.3的規(guī)范以制定的標(biāo)準(zhǔn),ODVA給出的EtherNet/IP協(xié)議規(guī)范就指出,EtherNet/IP由應(yīng)用層的CIP、傳輸和網(wǎng)絡(luò)層的TCP/IP協(xié)議以及底層的電氣協(xié)議規(guī)范構(gòu)成[1], EtherNet/IP的通信模型如圖1所示。

001.jpg

  1.2EtherNet/IP的特點(diǎn)

  (1)EtherNet/IP是一種面向連接的協(xié)議,相互的設(shè)備間只用建立可靠連接才能通信。

 ?。?)EtherNet/IP能夠傳輸各種類型的報(bào)文,并且對(duì)于不同類型的數(shù)據(jù)采用不同的傳輸方式,具體分為顯示報(bào)文的傳輸、I/O數(shù)據(jù)報(bào)文的傳輸以及未連接數(shù)據(jù)報(bào)文的傳輸(UCMN)。

 ?。?)協(xié)議是基于生產(chǎn)者和消費(fèi)者的模型通信,不僅支持多播通信,還支持很多種I/O數(shù)據(jù)觸發(fā)方式,如:周期觸發(fā)方式、中斷方式等。

 ?。?)EtherNet/IP協(xié)議用幾種對(duì)象模型來(lái)描述各種動(dòng)作和參數(shù),采用面向?qū)ο蟮姆绞骄幊淌乾F(xiàn)在各種協(xié)議規(guī)范通常采用的辦法。

  1.3EtherNet/IP的結(jié)構(gòu)

  在幾種常見(jiàn)的工業(yè)以太網(wǎng)協(xié)議和現(xiàn)場(chǎng)總線技術(shù)中,EtherNet/IP和ControlNet以及DeviceNet一樣,使用的規(guī)范都是基于CIP協(xié)議,這就保證了EtherNet/IP設(shè)備在和使用了CIP作為應(yīng)用層的設(shè)備能夠很好地互聯(lián)通信,而這三種協(xié)議不同的地方在于,EtherNet/IP在網(wǎng)絡(luò)層和傳輸層協(xié)議上就使用了TCP/IP協(xié)議[2] ,如圖2所示。

002.jpg

  1.4EtherNet/IP的對(duì)象參考模型

  EtherNet/IP協(xié)議使用了一系列的對(duì)象模型用來(lái)描述EtherNet/IP網(wǎng)絡(luò)中的各種特征以及參數(shù),通過(guò)使用對(duì)象模型的方式使得在具體的通信過(guò)程中,設(shè)備之間能夠更加方便地識(shí)別和通信[1]。

  1.5EtherNet/IP的數(shù)據(jù)封裝格式

  EtherNet/IP的數(shù)據(jù)封裝格式如圖3所示。

003.jpg

2伺服驅(qū)動(dòng)器通信接口的硬件設(shè)計(jì)

  2.1伺服驅(qū)動(dòng)器設(shè)計(jì)的整體架構(gòu)

  由于設(shè)計(jì)的最終目的是實(shí)現(xiàn)通過(guò)EtherNet/IP網(wǎng)絡(luò)控制兩個(gè)電機(jī)的轉(zhuǎn)動(dòng),因此采取的設(shè)計(jì)思路就是實(shí)現(xiàn)ARM和PC主站之間的通信,DSP控制電機(jī)轉(zhuǎn)動(dòng),F(xiàn)PGA進(jìn)行編碼器數(shù)據(jù)的運(yùn)算,如圖4所示。

 

004.jpg

  2.2網(wǎng)絡(luò)通信接口的設(shè)計(jì)

  由于F28M36芯片自帶了EMAC模塊的功能,所以只需要加入一個(gè)PHY芯片就可以了。采用TI公司的TLK110芯片作為PHY芯片,RJ45接口采用普通的8pin的網(wǎng)口,采用兩組差分信號(hào)進(jìn)行傳輸,并且預(yù)留了能夠采用4組差分信號(hào)進(jìn)行傳輸?shù)慕涌?。采?.3 V進(jìn)行供電[3],如圖5所示。

005.jpg

3伺服驅(qū)動(dòng)器控制卡從站的軟件設(shè)計(jì)

  按照EtherNet/IP的協(xié)議規(guī)范,移植EtherNet/IP協(xié)議需要滿足如下的軟件條件:

 ?。?)應(yīng)用層協(xié)議CIP代碼,這里采用的是ODVA官網(wǎng)給出的示例源碼ENetIP_EC。

 ?。?)嵌入式TCP/IP協(xié)議,這里采用的是輕量級(jí)支持操作系統(tǒng)的Lwip協(xié)議。

 ?。?)實(shí)時(shí)操作系統(tǒng)采用的是UCOSII。

 ?。?)整個(gè)移植過(guò)程中采用的是免費(fèi)TCP/IP協(xié)議+示例從站應(yīng)用層代碼+RTOS的結(jié)構(gòu),具體的軟件架構(gòu)如圖6所示。

006.jpg

  3.1嵌入式操作系統(tǒng)UCOSII的移植

  UCOSII操作系統(tǒng)是一款大家比較熟悉的嵌入式操作系統(tǒng),關(guān)于UCOSII操作系統(tǒng)在ARM上的移植成功的例子很多,本文的創(chuàng)新之處在于在TI的芯片F(xiàn)28M36上成功進(jìn)行了移植,主要的工作除了將圖6EtherNet/IP的軟件架構(gòu)

  M3核移植到F28M36以外,還需要滿足CCS6.1編譯器的代碼規(guī)范。

  3.2嵌入式TCP/IP協(xié)議Lwip的移植

  Lwip采用的是分層進(jìn)行結(jié)構(gòu)設(shè)計(jì)的思想,每一個(gè)協(xié)議都采用一個(gè)模塊來(lái)進(jìn)行實(shí)現(xiàn),然后提供了與對(duì)應(yīng)模塊進(jìn)行交互的接口。Lwip協(xié)議中所有的進(jìn)程模塊都在一個(gè)進(jìn)程中,這樣就保證了應(yīng)用程序既可以是一個(gè)單獨(dú)的進(jìn)程也可以圖7lwip的在F28M36上的通信流程嵌入到TCP/IP進(jìn)程中,如果應(yīng)用程序駐留在TCP/IP內(nèi)部,那么就利用內(nèi)部回調(diào)函數(shù)和TCP/IP通信,如圖7所示。

007.jpg

  3.3CIP協(xié)議的移植

  EtherNet/IP協(xié)議的初始化過(guò)程中,必須先注冊(cè)一個(gè)CIP類,CIP類中包括了應(yīng)用對(duì)象的各種特征屬性,例如ID、實(shí)例結(jié)構(gòu)、類代碼等。整個(gè)過(guò)程是通過(guò)一個(gè)全局公共變量gUserDefined以及MR維持的路由來(lái)實(shí)現(xiàn)的。首先需要判斷CIP類注冊(cè)的個(gè)數(shù),然后給不同的注冊(cè)類分配不同的內(nèi)存空間,EtherNet/IP協(xié)議在代碼實(shí)現(xiàn)上,通過(guò)調(diào)用不同的CIP注冊(cè)類的接口函數(shù)來(lái)實(shí)現(xiàn)對(duì)于單個(gè)或多個(gè)CIP對(duì)象的操作。當(dāng)創(chuàng)建完成一個(gè)CIP類之后,通過(guò)調(diào)用函數(shù)GSPutTrrbl()向消息路由發(fā)送一個(gè)MR_RegistrationtrrblType類型的trribble消息。

  進(jìn)入傳輸層和網(wǎng)絡(luò)層連接以后,程序按照下列步驟來(lái)進(jìn)行:

 ?。?)首先協(xié)議棧進(jìn)入函數(shù)en_PassiWaitTSK()運(yùn)行,這個(gè)任務(wù)函數(shù)只有在初始連接階段才會(huì)運(yùn)行,等待任務(wù)執(zhí)行完畢后,執(zhí)行一個(gè)接收?qǐng)?bào)文的封裝任務(wù)函數(shù)en_cd_EncaRecvTASK(),它是一個(gè)中低級(jí)優(yōu)先級(jí)的任務(wù),主要的作用就是接收從底層網(wǎng)絡(luò)(傳輸層)上傳過(guò)來(lái)的報(bào)文信息并進(jìn)行CIP格式的封裝處理,然后產(chǎn)生一個(gè)伙伴任務(wù)en_cd_EncaSendTASK(),當(dāng)接收到完整消息以后,en_cd_ProcessEncaMSG()就用來(lái)解析消息,然后返回響應(yīng)。

 ?。?)未連接的消息由en _TXfpacket()來(lái)進(jìn)行解析,然后通過(guò)en模塊里面的函數(shù)en_cd_TxUnscheduledTask()來(lái)完成消息解析。針對(duì)消息的回復(fù)可以由UCMN來(lái)進(jìn)行, 3類消息的處理則是通過(guò)函數(shù)en_cd_TxClass3Packet()來(lái)完成的,一旦消息被格式化完成,它就會(huì)被送到發(fā)送隊(duì)列中等待發(fā)送,程序流程如圖8所示。

  

008.jpg

4協(xié)議移植的驗(yàn)證

  4.1驗(yàn)證方案的確定

  EtherNet/IP協(xié)議的功能十分強(qiáng)大,但是由于沒(méi)有購(gòu)買商業(yè)代碼,采用的是移植的免費(fèi)的示例代碼,所以關(guān)于移植方案只能確定移植的成功與否,而對(duì)工業(yè)以太網(wǎng)協(xié)議的眾多技術(shù)指標(biāo)并沒(méi)有要求。

  判斷協(xié)議移植成功的兩個(gè)重要的技術(shù)指標(biāo)是:

 ?。?)能夠識(shí)別從站的IP地址,表明Lwip協(xié)議移植成功.

 ?。?)能夠識(shí)別滿足ODVA給出的EtherNet/IP規(guī)范的十六進(jìn)制數(shù)據(jù)包,并返回EtherNet/IP數(shù)據(jù)包。

  4.2測(cè)試主站的選擇

  測(cè)試EtherNet/IP從站移植的正確性,需要選擇一個(gè)EtherNet/IP的主站,這里采用EtherNet/IP給出的一個(gè)簡(jiǎn)單的示例主站測(cè)試,其方法就是通過(guò)向主站發(fā)送一系列的EtherNet/IP主站數(shù)據(jù)包,看從站的反饋數(shù)據(jù)包是否是EtherNet/IP格式的數(shù)據(jù)包。

  4.3IP地址的確定

  Lwip可以使用固定IP地址,也可以采用DHCP自動(dòng)分配IP地址,然后通過(guò)串口打印出來(lái)。采用DHCP自動(dòng)分配的IP地址為169.254.169.99,然后ping IP地址。具體的過(guò)程如圖9和圖10所示。

  

009.jpg

  圖10表明Lwip協(xié)議移植成功。

  4.4主從站的測(cè)試

  向主站發(fā)送固定的EtherNet/IP數(shù)據(jù)包,如圖11所示。

010.jpg

  ODVA給了CIP報(bào)文的一個(gè)參考格式。CIP的數(shù)據(jù)包存儲(chǔ)是先低位,再高位,逐條分析整個(gè)數(shù)據(jù)包的結(jié)構(gòu),整個(gè)數(shù)據(jù)表達(dá)的意思就是:通過(guò)UCMN未連接管理器發(fā)送rdtag1,通過(guò)連接管理對(duì)象去請(qǐng)求一個(gè)對(duì)象實(shí)例ID為01的對(duì)象,該對(duì)象去響應(yīng)一個(gè)CIP讀取數(shù)據(jù)的命令,給定數(shù)據(jù)讀取的路徑,然后只需要讀取一個(gè)字節(jié)的數(shù)據(jù)。

  然后點(diǎn)擊Request命令,再等待,當(dāng)連接完成以后,最上面的Connection_FLAG由灰色變?yōu)辄S色,表明連接成功。

  連接成功以后就會(huì)反饋一個(gè)EtherNet/IP的數(shù)據(jù)包,如果發(fā)送的數(shù)據(jù)包不是EtherNet/IP格式或者從站不遵循EtherNet/IP的數(shù)據(jù)格式,則不會(huì)有數(shù)據(jù)反饋。其中前4位是00D2,表明反饋回來(lái)的是第3類數(shù)據(jù),即I/O數(shù)據(jù),B2表明是UCMN數(shù)據(jù),C2表明是第1類數(shù)據(jù);00D2后面的數(shù)據(jù)表明是數(shù)據(jù)長(zhǎng)度和數(shù)據(jù)大小,EtherNet/IP沒(méi)有給出相應(yīng)的規(guī)范,在商用驅(qū)動(dòng)器中,用戶不需要解析十六進(jìn)制代碼,主站會(huì)直接識(shí)別信息。

5結(jié)論

  通過(guò)測(cè)試分析一種全新的工業(yè)以太網(wǎng)協(xié)議EtherNet/IP,熟悉其架構(gòu)和數(shù)據(jù)格式,通過(guò)ODVA給出的移植建議,設(shè)計(jì)了基于F28M36的網(wǎng)絡(luò)接口硬件,自己選擇了RTOS、TCP/IP協(xié)議棧和示例從站代碼,在雙核芯片F(xiàn)28M36的ARM核上成功移植了EtherNet/IP從站,結(jié)合示例的主站代碼,測(cè)試TCP/IP協(xié)議和CIP協(xié)議移植的效果,并取得成功,證明了移植的有效性。由于EtherNet/IP是一種全新的工業(yè)以太網(wǎng)協(xié)議,且本文的所有移植都采用的是免費(fèi)代碼,因此本文沒(méi)有測(cè)試很多重要的工業(yè)以太網(wǎng)的技術(shù)指標(biāo),只是驗(yàn)證了移植的有效性,今后將購(gòu)買商業(yè)代碼進(jìn)行測(cè)試。

參考文獻(xiàn)

 ?。?] CIP Common Specification. Release 1.0.2001 by ControlNet International and Open DeviceNet Vendor Association[S].2001.

 ?。?] 薛吉,邱浩,奚培鋒,等.工業(yè)以太網(wǎng)EtherNet/IP介紹及其產(chǎn)品開(kāi)發(fā)[J].低壓電器, 2009 (5):3235.

 ?。?] 鄒靖波,熊皚.EtherCAT從站硬件設(shè)計(jì)方法[J].微型機(jī)與應(yīng)用,2015,34(7):2729.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。