白帆,馬鈞華
(浙江大學(xué) 電氣工程學(xué)院,浙江 杭州 310027)
隨著電機(jī)伺服驅(qū)動技術(shù)的不斷發(fā)展,分布式多軸同步伺服系統(tǒng)得到了越來越廣泛的應(yīng)用。分布式多軸同步伺服系統(tǒng)由若干個獨立的伺服控制器組成,只是各個伺服控制器節(jié)點需按照一定的拓?fù)浣Y(jié)構(gòu)連接成網(wǎng)絡(luò),通過特定的通訊方式,保持各節(jié)點的同步運行。
本文提出了一種同步伺服通訊協(xié)議:在常規(guī)以太網(wǎng)的基礎(chǔ)上,通過加入脈沖同步信號來實現(xiàn)伺服傳動的同步性。以下簡稱為EtherPSP(ethernet pulse-synchronized protocol),即以太網(wǎng)脈沖同步協(xié)議。
以太網(wǎng)(Ethernet)是一種計算機(jī)組網(wǎng)技術(shù)。IEEE制定的IEEE 802.3標(biāo)準(zhǔn)給出了以太網(wǎng)的技術(shù)標(biāo)準(zhǔn)。它規(guī)定了包括物理層的連線、電信號和介質(zhì)訪問層協(xié)議的內(nèi)容。以太網(wǎng)是當(dāng)前應(yīng)用最普遍的局域網(wǎng)技術(shù)。以太網(wǎng)的標(biāo)準(zhǔn)拓?fù)浣Y(jié)構(gòu)為總線型拓?fù)洌壳岸际褂媒粨Q機(jī)(Switch)來進(jìn)行網(wǎng)絡(luò)連接和組織,這樣,以太網(wǎng)的拓?fù)浣Y(jié)構(gòu)就成了星型[1]。在1個以交換機(jī)來進(jìn)行連接的局域網(wǎng)中,所有報文的發(fā)送都要經(jīng)過交換機(jī)轉(zhuǎn)發(fā)至目標(biāo)節(jié)點。由于交換機(jī)的“存儲-轉(zhuǎn)發(fā)”機(jī)制,當(dāng)交換機(jī)在極短時間內(nèi)收到多個報文時,首先將報文進(jìn)行存儲,然后按照先后順序依次轉(zhuǎn)發(fā)至各自目標(biāo)節(jié)點,這樣,排隊等待轉(zhuǎn)發(fā)的報文就會經(jīng)歷一個不確定的延時后才能被發(fā)送至目標(biāo)節(jié)點[1]。這使得以太網(wǎng)通訊技術(shù)在實時性要求很高的場合上的應(yīng)用受到限制。
在1個小型的孤立局域網(wǎng)內(nèi),如果各節(jié)點均按照1個固定的時間間隔發(fā)送固定長度的UDP(user datagram protocol)報文,那么報文傳輸?shù)淖畲笱訒r是可以計算的。例如,在由8個節(jié)點組成的孤立的局域網(wǎng)中(嵌入式節(jié)點常用10Mb/s帶寬網(wǎng)絡(luò)),規(guī)定各節(jié)點均周期性發(fā)送74字節(jié)(42字節(jié)報文頭部、32字節(jié)數(shù)據(jù))長度的UDP報文,那么交換機(jī)引入的報文發(fā)送接收的可能最大延時為

考慮到節(jié)點內(nèi)部報文處理時間Tproc(實測在100μs以內(nèi)),那么,在這個局域網(wǎng)中,要保證各節(jié)點的報文在T0周期內(nèi)得到順利傳輸,需滿足:

本文提出的EtherPSP的基本原理如下:
1)主節(jié)點以T0為周期使用獨立通道廣播發(fā)送同步脈沖信號,作為該網(wǎng)絡(luò)中的同步時鐘信號,各個節(jié)點按此同步信號作為各自的控制周期;
2)主節(jié)點同時使用常規(guī)以太網(wǎng)發(fā)送組播命令報文,包含各節(jié)點伺服控制信息;從節(jié)點發(fā)送單播報文反饋各自的狀態(tài)信息。T0已滿足式(2),所有收發(fā)過程在1個T0周期內(nèi)完成;
3)從節(jié)點以當(dāng)前周期執(zhí)行前一周期指令的操作方式,實現(xiàn)網(wǎng)絡(luò)內(nèi)各節(jié)點的同步運行。
采用與以太網(wǎng)一致的星型結(jié)構(gòu)作為Ether PSP網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),這樣可以繼承以太網(wǎng)通訊的大部分特性。同時,規(guī)定網(wǎng)絡(luò)中的某個節(jié)點為同步基準(zhǔn)節(jié)點(主節(jié)點),其余節(jié)點為從節(jié)點。如圖1所示。

圖1 EtherPSP網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 Structure of EtherPSP network
在物理層傳播介質(zhì)上,采用連接局域網(wǎng)最常見的UTP(unshielded twisted pair)雙絞線作為EtherPSP網(wǎng)絡(luò)連接線,使用常規(guī)以太網(wǎng)交換機(jī)作為EtherPSP網(wǎng)絡(luò)中心節(jié)點。UTP雙絞線有4對(8根)數(shù)據(jù)線,其中2對(4根)數(shù)據(jù)線用作以太網(wǎng)數(shù)據(jù)的傳輸,剩余2對空閑中的1對數(shù)據(jù)線用來傳輸同步脈沖信號。這樣,既保證了2種信號互相隔離互不干擾,又簡化了線路連接,同一條網(wǎng)線即可同時傳輸2種不同的信號,而且,同步脈沖信號也使用隔離變壓器進(jìn)行隔離,繼承了以太網(wǎng)各節(jié)點保持電隔離的優(yōu)點。
每個節(jié)點均需配置終端信號處理模塊,如圖2所示。將以太網(wǎng)信號和同步脈沖信號整合到1條網(wǎng)線中。在交換機(jī)側(cè),集中配置1個同步信號交換模塊,如圖3所示。分離各條網(wǎng)線中的以太網(wǎng)信號和同步脈沖信號:同步信號通過隔離變壓器進(jìn)行耦合,而以太網(wǎng)信號直接送入交換機(jī)/路由器。

圖2 終端信號處理模塊原理圖Fig.2 Schematic of terminal signal processing block

圖3 同步信號交換模塊原理圖Fig.3 Schematic of sync signal exchanging block
這樣,網(wǎng)絡(luò)中的各節(jié)點可以無阻礙的發(fā)送和接收以太網(wǎng)報文,主節(jié)點發(fā)出的同步脈沖信號可以無延時地被從節(jié)點接收。
測試用EtherPSP網(wǎng)絡(luò)按圖1所示的拓?fù)浼右越M網(wǎng)。
節(jié)點1作為主節(jié)點,由TMS320F2812DSP芯片外擴(kuò)RTL8019AS芯片構(gòu)成。RTL8019AS是一種全雙工即插即用的10Mb/s以太網(wǎng)控制器,它在1塊芯片上集成了RTL8019內(nèi)核和1個16kB的SDRAM存儲器。它支持UTP,AUI,BNC和PNP自動檢測模式,支持外接閃爍存儲器讀寫操作,支持I/O口地址的完全解碼。其接口符合Ethernet2和IEEE802.3標(biāo)準(zhǔn),廣泛應(yīng)用于工業(yè)現(xiàn)場控制領(lǐng)域[2]。
節(jié)點2,3,…,N 等由 TMS320F28035DSP芯片外擴(kuò)ENC28J60芯片構(gòu)成。ENC28J60是帶有行業(yè)標(biāo)準(zhǔn)串行外設(shè)接口(serial peripheral interface,SPI)的10Mb/s獨立以太網(wǎng)控制器,符合IEEE 802.3的全部規(guī)范,采用了一系列包過濾機(jī)制以對傳入數(shù)據(jù)包進(jìn)行限制。與主控制器的通信通過2個中斷引腳和SPI實現(xiàn),數(shù)據(jù)傳輸速率高達(dá)10Mb/s,可以廣泛應(yīng)用于各類嵌入式系統(tǒng),非常方便地實現(xiàn)以太網(wǎng)通訊[3]。
同步脈沖信號的發(fā)送和接收由DSP控制MAX485芯片完成[4],并使用20F001N變壓器進(jìn)行隔離。主節(jié)點和從節(jié)點的終端處理模塊硬件是通用的,差別在于DSP控制MAX485是發(fā)送還是接收同步脈沖信號。同步信號交換模塊的各端口也是對等的。
將上述各節(jié)點用網(wǎng)線接入同步信號交換模塊,并轉(zhuǎn)接到標(biāo)準(zhǔn)以太網(wǎng)交換后,就構(gòu)成了1個以太網(wǎng)脈沖同步網(wǎng)絡(luò)-EtherPSP。
根據(jù)式(1)和式(2)的分析計算,在當(dāng)前EtherPSP測試網(wǎng)絡(luò)中,主節(jié)點以T0=1ms為周期產(chǎn)生一硬的寬度為2.5μs的同步脈沖信號,并發(fā)送74字節(jié)長度、包含各節(jié)點伺服控制信息和順序流水號的以太網(wǎng)UDP報文。T0滿足式(2)的條件,故可保證在一周期內(nèi)所有發(fā)出的UDP報文均可被所有節(jié)點接收。
EtherPSP的軟件流程分主、從節(jié)點來討論。
DSP啟動后,首先進(jìn)行初始化工作,其中啟動EtherPSP包括初始化以太網(wǎng)和同步脈沖收發(fā)配置。主節(jié)點要配置1ms的定時中斷,作為系統(tǒng)的同步時鐘基準(zhǔn),從節(jié)點要配置接收同步脈沖的外部中斷和故障監(jiān)測用的CPU定時中斷。隨后進(jìn)入后臺循環(huán)等待。
主節(jié)點的正常周期過程如圖4所示。主節(jié)點按照周期T0=1ms定時中斷:發(fā)送硬同步脈沖信號;以太網(wǎng)UDP組播方式發(fā)送固定長度的控制報文(當(dāng)前測試網(wǎng)絡(luò)中,規(guī)定控制報文長度為74字節(jié),其中42字節(jié)為報文頭部,32字節(jié)為數(shù)據(jù),包括各個節(jié)點的位置或者速度的給定值);再接收來自網(wǎng)絡(luò)中從節(jié)點的以太網(wǎng)報文,并作處理。

圖4 主節(jié)點軟件流程圖Fig.4 Software flow chart of master node
從節(jié)點的正常周期過程如圖5所示。從節(jié)點接收同步脈沖信號觸發(fā)外部中斷,進(jìn)入工作周期:用上一周期接收到的指令,作為當(dāng)前周期的指令,執(zhí)行電機(jī)伺服功能模塊,完成伺服同步控制;收發(fā)本周期的以太網(wǎng)報文,計算出新的位置給定值,等待下一周期的同步信號來完成同步過程。如報文中還有其他非同步控制指令,立即執(zhí)行相應(yīng)的功能,如轉(zhuǎn)變運行模式、停機(jī)等。最后,從節(jié)點通過以太網(wǎng)UDP單播的方式將節(jié)點狀態(tài)反饋給主節(jié)點。

圖5 從節(jié)點軟件流程圖Fig.5 Software flow chart of slave nodes
此外,從節(jié)點還設(shè)置1個周期為T1=10ms的CPU定時器中斷服務(wù),用于故障處理。正常狀態(tài)下,從節(jié)點每次收到同步脈沖進(jìn)入新的工作周期時,將CPU定時器計數(shù)值重置,保證下一同步脈沖和工作周期到來之前不會觸發(fā)CPU定時器中斷服務(wù)(T1>T0)。當(dāng)EtherPSP網(wǎng)絡(luò)運行出現(xiàn)故障時,比如線路斷開、節(jié)點故障等,會導(dǎo)致部分節(jié)點無法與網(wǎng)絡(luò)正常通訊。如果從節(jié)點在10 ms時間段內(nèi)沒有收到同步觸發(fā)脈沖進(jìn)入工作周期,就會觸發(fā)CPU定時器中斷,即認(rèn)為該節(jié)點處于離線故障狀態(tài),可立即轉(zhuǎn)入應(yīng)急模式,采取停機(jī)或其他適當(dāng)?shù)拇胧?/p>
EtherPSP網(wǎng)絡(luò)運行中,分別采集了主節(jié)點發(fā)出和從節(jié)點收到的同步脈沖信號。測試結(jié)果見圖6。

圖6 測試結(jié)果波形Fig.6 Waveforms of testing result
圖6a中,CH1為主節(jié)點發(fā)出的脈沖波形,CH2為從節(jié)點收到的脈沖波形。圖6b中,CH1和CH2為2個從節(jié)點接收到的脈沖波形,顯示從節(jié)點收到的同步脈沖信號時間上保持了一致。
圖6c是對圖6a時間坐標(biāo)展開所示,顯示主節(jié)點發(fā)出的同步脈沖的上升沿和從節(jié)點收到的脈沖的下降沿有約100~150ns的延時。對于伺服同步的應(yīng)用而言,硬件上的這個延時可以接受。當(dāng)然,各個從節(jié)點的軟件處理過程要保持一致性,避免引入不等量的軟件延時,影響最終的同步性。
由于EtherPSP網(wǎng)絡(luò)中所有節(jié)點的同步脈沖信號均經(jīng)過隔離變壓器進(jìn)行隔離耦合,當(dāng)節(jié)點的個數(shù)逐步增加時,受脈沖收發(fā)器的驅(qū)動能力所限,脈沖信號會有一定的波形畸變。圖6d是當(dāng)EtherPSP網(wǎng)絡(luò)帶7個從節(jié)點時的波形,CH1為經(jīng)過脈沖收發(fā)器(MAX485)整形后的脈沖波形,CH2為從節(jié)點接收到的隔離變壓器上的波形。雖然經(jīng)過隔離后的脈沖波形有較大畸變,但是經(jīng)過脈沖收發(fā)器處理后依然能夠保持原樣。
當(dāng)EtherPSP網(wǎng)絡(luò)規(guī)模不斷增大,需要多個交換機(jī)級聯(lián)時,會增加存儲-轉(zhuǎn)發(fā)的次數(shù),增加以太網(wǎng)報文的收發(fā)延時。實測表明,交換機(jī)級聯(lián)的影響不大,報文發(fā)送接收的最大延時主要與網(wǎng)絡(luò)中總的報文發(fā)送數(shù)成正比關(guān)系,符合式(1)的表述。
目前,SERCOS(serial real-time communication specification,串行實時通訊協(xié)議)是工業(yè)領(lǐng)域中實時數(shù)據(jù)通訊協(xié)議的國際標(biāo)準(zhǔn),專門用于工業(yè)機(jī)械電氣設(shè)備的控制單元與數(shù)字伺服裝置之間。它全面而嚴(yán)格的定義了物理層、數(shù)據(jù)鏈路層以及數(shù)據(jù)交換的報文結(jié)構(gòu)等內(nèi)容,并給出了大量數(shù)據(jù)結(jié)構(gòu)和過程命令,可用于操作控制單元、伺服裝置及相關(guān)機(jī)械設(shè)備。SERCOS協(xié)議被歐洲各國及美國和日本的數(shù)控系統(tǒng)和伺服系統(tǒng)制造商廣泛接受,開發(fā)和生產(chǎn)符合該協(xié)議的產(chǎn)品,應(yīng)用領(lǐng)域也從最初的數(shù)控機(jī)床擴(kuò)大到各類數(shù)控機(jī)械[5]。
SERCOS接口采用環(huán)形拓?fù)浣Y(jié)構(gòu),每個節(jié)點通過“一進(jìn)一出”兩根光纖依次串聯(lián),形成數(shù)據(jù)單向流通的環(huán)形通訊網(wǎng)絡(luò)。如圖7所示,每個環(huán)路由1個主站和若干個從站構(gòu)成,主站的功能是將控制電報發(fā)送到網(wǎng)絡(luò)中,并接收從站發(fā)回的電報;從站的功能是接收和轉(zhuǎn)發(fā)電報并將提取出的控制信息傳遞給伺服裝置。

圖7 SERCOS協(xié)議拓?fù)浣Y(jié)構(gòu)Fig.7 Structure of SERCOS protocol
SERCOS系統(tǒng)周期性進(jìn)行環(huán)路通訊,很短的時間內(nèi)遍歷各節(jié)點,從而使網(wǎng)絡(luò)內(nèi)各節(jié)點實現(xiàn)同步,且擁有固定的周期。實際測試中,SERCOS協(xié)議可以達(dá)到很高的同步精度,同步值小于100ns[6]。
由于SERCOS協(xié)議采用環(huán)形串聯(lián)的拓?fù)浣Y(jié)構(gòu),網(wǎng)絡(luò)中任何1個節(jié)點、任何1條線路的故障,均會導(dǎo)致下游從站無法收到主站的信息。而采用星型拓?fù)涞腅therPSP協(xié)議,網(wǎng)絡(luò)內(nèi)線路和節(jié)點的故障不會對其他節(jié)點和整個系統(tǒng)的運行造成嚴(yán)重干擾。基于這個特性,EtherPSP網(wǎng)絡(luò)可以在正常運行的情況下隨時加入和刪除節(jié)點。
SERCOS協(xié)議物理層采用光纖介質(zhì)傳遞數(shù)字信號,可以徹底消除傳輸過程中的電磁干擾,大大提高了系統(tǒng)的穩(wěn)定性和對復(fù)雜環(huán)境的適應(yīng)能力[5]。而EtherPSP協(xié)議中,同步脈沖信號經(jīng)過了隔離變壓器處理,可以消除一定的諧波干擾并保持節(jié)點間電隔離的特性,而且UTP雙絞線也有較好的抗干擾能力。
SERCOS協(xié)議理論上每個主站可驅(qū)動最多254個伺服裝置[5]。EtherPSP網(wǎng)絡(luò)的最大節(jié)點數(shù)則受多個因素的限制。根據(jù)式(1)和式(2)的分析計算,EtherPSP報文的理論傳輸最大延時受以太網(wǎng)通訊速率和網(wǎng)絡(luò)內(nèi)節(jié)點數(shù)的影響。因此,當(dāng)整個系統(tǒng)的工作周期確定時,網(wǎng)絡(luò)的節(jié)點數(shù)會受到限制。通過提高以太網(wǎng)通訊速率(如采用100 Mb/s甚至1000Mb/s速率的以太網(wǎng)設(shè)備),可以提高EtherPSP網(wǎng)絡(luò)的傳輸性能和負(fù)載能力。
SERCOS協(xié)議可以使用專門的芯片(如SERCON410B、SERCON816等)實現(xiàn),高度標(biāo)準(zhǔn)化集成化,便于大規(guī)模生產(chǎn)和應(yīng)用[5]。而EtherPSP協(xié)議完全兼容以太網(wǎng)協(xié)議,靈活性更高。物理層基于最常見的以太網(wǎng)設(shè)備(網(wǎng)線、交換機(jī)等),由于以太網(wǎng)在各個領(lǐng)域極其普遍的應(yīng)用,因此實現(xiàn)EtherPSP將變得非常方便,成本低廉,易于取材。
而且,對于嵌入式的控制平臺,可以很方便地直接擴(kuò)展RTL8019AS芯片或通過SPI擴(kuò)展ENC28J60芯片來實現(xiàn)以太網(wǎng)通訊,使得Ether PSP更容易在各種嵌入式平臺上推廣應(yīng)用。表1對比了SERCOS與EtherPSP的特性。

表1 SERCOS和EtherPSP特性對比Tab.1 Comparison between SERCOS and EtherPSP
綜上所述,SERCOS協(xié)議和EtherPSP協(xié)議均能較好地完成多軸伺服系統(tǒng)要求的高精度的實時通訊。相對而言,SERCOS協(xié)議更適用于大系統(tǒng)、多負(fù)載,對穩(wěn)定性和適應(yīng)性要求更高的場合,而EtherPSP在小型系統(tǒng)上更能發(fā)揮其靈活、廉價、便利的特性。
[1]KUROSE James,ROSS Keith.Computer Networking[M].Beijing:Higher Education Press,2005.
[2]REALTEK,RTL8019AS Realtek Full-Duplex Ethernet Controller with Plug and Play Function(RealPNP)SPECIFICATION[Z].
[3]MICROCHIP,ENC28J60Datasheet[Z].
[4]MAXIM,RS-485/RS-422Transceivers Datasheet[Z].
[5]郇極,尹旭峰.數(shù)字伺服通訊協(xié)議SERCOS驅(qū)動程序設(shè)計及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2005.
[6]呂日昌,葛萬成.SERCOS-Ⅲ在運動控制網(wǎng)絡(luò)中實時與同步的實現(xiàn)[J].信息技術(shù),2009,33(4):8-11.