白帆,馬鈞華
(浙江大學(xué) 電氣工程學(xué)院,浙江 杭州 310027)
隨著電機(jī)伺服驅(qū)動(dòng)技術(shù)的不斷發(fā)展,分布式多軸同步伺服系統(tǒng)得到了越來越廣泛的應(yīng)用。分布式多軸同步伺服系統(tǒng)由若干個(gè)獨(dú)立的伺服控制器組成,只是各個(gè)伺服控制器節(jié)點(diǎn)需按照一定的拓?fù)浣Y(jié)構(gòu)連接成網(wǎng)絡(luò),通過特定的通訊方式,保持各節(jié)點(diǎn)的同步運(yùn)行。
本文提出了一種同步伺服通訊協(xié)議:在常規(guī)以太網(wǎng)的基礎(chǔ)上,通過加入脈沖同步信號(hào)來實(shí)現(xiàn)伺服傳動(dòng)的同步性。以下簡(jiǎn)稱為EtherPSP(ethernet pulse-synchronized protocol),即以太網(wǎng)脈沖同步協(xié)議。
以太網(wǎng)(Ethernet)是一種計(jì)算機(jī)組網(wǎng)技術(shù)。IEEE制定的IEEE 802.3標(biāo)準(zhǔn)給出了以太網(wǎng)的技術(shù)標(biāo)準(zhǔn)。它規(guī)定了包括物理層的連線、電信號(hào)和介質(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個(gè)以交換機(jī)來進(jìn)行連接的局域網(wǎng)中,所有報(bào)文的發(fā)送都要經(jīng)過交換機(jī)轉(zhuǎn)發(fā)至目標(biāo)節(jié)點(diǎn)。由于交換機(jī)的“存儲(chǔ)-轉(zhuǎn)發(fā)”機(jī)制,當(dāng)交換機(jī)在極短時(shí)間內(nèi)收到多個(gè)報(bào)文時(shí),首先將報(bào)文進(jìn)行存儲(chǔ),然后按照先后順序依次轉(zhuǎn)發(fā)至各自目標(biāo)節(jié)點(diǎn),這樣,排隊(duì)等待轉(zhuǎn)發(fā)的報(bào)文就會(huì)經(jīng)歷一個(gè)不確定的延時(shí)后才能被發(fā)送至目標(biāo)節(jié)點(diǎn)[1]。這使得以太網(wǎng)通訊技術(shù)在實(shí)時(shí)性要求很高的場(chǎng)合上的應(yīng)用受到限制。
在1個(gè)小型的孤立局域網(wǎng)內(nèi),如果各節(jié)點(diǎn)均按照1個(gè)固定的時(shí)間間隔發(fā)送固定長(zhǎng)度的UDP(user datagram protocol)報(bào)文,那么報(bào)文傳輸?shù)淖畲笱訒r(shí)是可以計(jì)算的。例如,在由8個(gè)節(jié)點(diǎn)組成的孤立的局域網(wǎng)中(嵌入式節(jié)點(diǎn)常用10Mb/s帶寬網(wǎng)絡(luò)),規(guī)定各節(jié)點(diǎn)均周期性發(fā)送74字節(jié)(42字節(jié)報(bào)文頭部、32字節(jié)數(shù)據(jù))長(zhǎng)度的UDP報(bào)文,那么交換機(jī)引入的報(bào)文發(fā)送接收的可能最大延時(shí)為
考慮到節(jié)點(diǎn)內(nèi)部報(bào)文處理時(shí)間Tproc(實(shí)測(cè)在100μs以內(nèi)),那么,在這個(gè)局域網(wǎng)中,要保證各節(jié)點(diǎn)的報(bào)文在T0周期內(nèi)得到順利傳輸,需滿足:
本文提出的EtherPSP的基本原理如下:
1)主節(jié)點(diǎn)以T0為周期使用獨(dú)立通道廣播發(fā)送同步脈沖信號(hào),作為該網(wǎng)絡(luò)中的同步時(shí)鐘信號(hào),各個(gè)節(jié)點(diǎn)按此同步信號(hào)作為各自的控制周期;
2)主節(jié)點(diǎn)同時(shí)使用常規(guī)以太網(wǎng)發(fā)送組播命令報(bào)文,包含各節(jié)點(diǎn)伺服控制信息;從節(jié)點(diǎn)發(fā)送單播報(bào)文反饋各自的狀態(tài)信息。T0已滿足式(2),所有收發(fā)過程在1個(gè)T0周期內(nèi)完成;
3)從節(jié)點(diǎn)以當(dāng)前周期執(zhí)行前一周期指令的操作方式,實(shí)現(xiàn)網(wǎng)絡(luò)內(nèi)各節(jié)點(diǎn)的同步運(yùn)行。
采用與以太網(wǎng)一致的星型結(jié)構(gòu)作為Ether PSP網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),這樣可以繼承以太網(wǎng)通訊的大部分特性。同時(shí),規(guī)定網(wǎng)絡(luò)中的某個(gè)節(jié)點(diǎn)為同步基準(zhǔn)節(jié)點(diǎn)(主節(jié)點(diǎn)),其余節(jié)點(diǎn)為從節(jié)點(diǎn)。如圖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é)點(diǎn)。UTP雙絞線有4對(duì)(8根)數(shù)據(jù)線,其中2對(duì)(4根)數(shù)據(jù)線用作以太網(wǎng)數(shù)據(jù)的傳輸,剩余2對(duì)空閑中的1對(duì)數(shù)據(jù)線用來傳輸同步脈沖信號(hào)。這樣,既保證了2種信號(hào)互相隔離互不干擾,又簡(jiǎn)化了線路連接,同一條網(wǎng)線即可同時(shí)傳輸2種不同的信號(hào),而且,同步脈沖信號(hào)也使用隔離變壓器進(jìn)行隔離,繼承了以太網(wǎng)各節(jié)點(diǎn)保持電隔離的優(yōu)點(diǎn)。
每個(gè)節(jié)點(diǎn)均需配置終端信號(hào)處理模塊,如圖2所示。將以太網(wǎng)信號(hào)和同步脈沖信號(hào)整合到1條網(wǎng)線中。在交換機(jī)側(cè),集中配置1個(gè)同步信號(hào)交換模塊,如圖3所示。分離各條網(wǎng)線中的以太網(wǎng)信號(hào)和同步脈沖信號(hào):同步信號(hào)通過隔離變壓器進(jìn)行耦合,而以太網(wǎng)信號(hào)直接送入交換機(jī)/路由器。
圖2 終端信號(hào)處理模塊原理圖Fig.2 Schematic of terminal signal processing block
圖3 同步信號(hào)交換模塊原理圖Fig.3 Schematic of sync signal exchanging block
這樣,網(wǎng)絡(luò)中的各節(jié)點(diǎn)可以無阻礙的發(fā)送和接收以太網(wǎng)報(bào)文,主節(jié)點(diǎn)發(fā)出的同步脈沖信號(hào)可以無延時(shí)地被從節(jié)點(diǎn)接收。
測(cè)試用EtherPSP網(wǎng)絡(luò)按圖1所示的拓?fù)浼右越M網(wǎng)。
節(jié)點(diǎn)1作為主節(jié)點(diǎn),由TMS320F2812DSP芯片外擴(kuò)RTL8019AS芯片構(gòu)成。RTL8019AS是一種全雙工即插即用的10Mb/s以太網(wǎng)控制器,它在1塊芯片上集成了RTL8019內(nèi)核和1個(gè)16kB的SDRAM存儲(chǔ)器。它支持UTP,AUI,BNC和PNP自動(dòng)檢測(cè)模式,支持外接閃爍存儲(chǔ)器讀寫操作,支持I/O口地址的完全解碼。其接口符合Ethernet2和IEEE802.3標(biāo)準(zhǔn),廣泛應(yīng)用于工業(yè)現(xiàn)場(chǎng)控制領(lǐng)域[2]。
節(jié)點(diǎn)2,3,…,N 等由 TMS320F28035DSP芯片外擴(kuò)ENC28J60芯片構(gòu)成。ENC28J60是帶有行業(yè)標(biāo)準(zhǔn)串行外設(shè)接口(serial peripheral interface,SPI)的10Mb/s獨(dú)立以太網(wǎng)控制器,符合IEEE 802.3的全部規(guī)范,采用了一系列包過濾機(jī)制以對(duì)傳入數(shù)據(jù)包進(jìn)行限制。與主控制器的通信通過2個(gè)中斷引腳和SPI實(shí)現(xiàn),數(shù)據(jù)傳輸速率高達(dá)10Mb/s,可以廣泛應(yīng)用于各類嵌入式系統(tǒng),非常方便地實(shí)現(xiàn)以太網(wǎng)通訊[3]。
同步脈沖信號(hào)的發(fā)送和接收由DSP控制MAX485芯片完成[4],并使用20F001N變壓器進(jìn)行隔離。主節(jié)點(diǎn)和從節(jié)點(diǎn)的終端處理模塊硬件是通用的,差別在于DSP控制MAX485是發(fā)送還是接收同步脈沖信號(hào)。同步信號(hào)交換模塊的各端口也是對(duì)等的。
將上述各節(jié)點(diǎn)用網(wǎng)線接入同步信號(hào)交換模塊,并轉(zhuǎn)接到標(biāo)準(zhǔn)以太網(wǎng)交換后,就構(gòu)成了1個(gè)以太網(wǎng)脈沖同步網(wǎng)絡(luò)-EtherPSP。
根據(jù)式(1)和式(2)的分析計(jì)算,在當(dāng)前EtherPSP測(cè)試網(wǎng)絡(luò)中,主節(jié)點(diǎn)以T0=1ms為周期產(chǎn)生一硬的寬度為2.5μs的同步脈沖信號(hào),并發(fā)送74字節(jié)長(zhǎng)度、包含各節(jié)點(diǎn)伺服控制信息和順序流水號(hào)的以太網(wǎng)UDP報(bào)文。T0滿足式(2)的條件,故可保證在一周期內(nèi)所有發(fā)出的UDP報(bào)文均可被所有節(jié)點(diǎn)接收。
EtherPSP的軟件流程分主、從節(jié)點(diǎn)來討論。
DSP啟動(dòng)后,首先進(jìn)行初始化工作,其中啟動(dòng)EtherPSP包括初始化以太網(wǎng)和同步脈沖收發(fā)配置。主節(jié)點(diǎn)要配置1ms的定時(shí)中斷,作為系統(tǒng)的同步時(shí)鐘基準(zhǔn),從節(jié)點(diǎn)要配置接收同步脈沖的外部中斷和故障監(jiān)測(cè)用的CPU定時(shí)中斷。隨后進(jìn)入后臺(tái)循環(huán)等待。
主節(jié)點(diǎn)的正常周期過程如圖4所示。主節(jié)點(diǎn)按照周期T0=1ms定時(shí)中斷:發(fā)送硬同步脈沖信號(hào);以太網(wǎng)UDP組播方式發(fā)送固定長(zhǎng)度的控制報(bào)文(當(dāng)前測(cè)試網(wǎng)絡(luò)中,規(guī)定控制報(bào)文長(zhǎng)度為74字節(jié),其中42字節(jié)為報(bào)文頭部,32字節(jié)為數(shù)據(jù),包括各個(gè)節(jié)點(diǎn)的位置或者速度的給定值);再接收來自網(wǎng)絡(luò)中從節(jié)點(diǎn)的以太網(wǎng)報(bào)文,并作處理。
圖4 主節(jié)點(diǎn)軟件流程圖Fig.4 Software flow chart of master node
從節(jié)點(diǎn)的正常周期過程如圖5所示。從節(jié)點(diǎn)接收同步脈沖信號(hào)觸發(fā)外部中斷,進(jìn)入工作周期:用上一周期接收到的指令,作為當(dāng)前周期的指令,執(zhí)行電機(jī)伺服功能模塊,完成伺服同步控制;收發(fā)本周期的以太網(wǎng)報(bào)文,計(jì)算出新的位置給定值,等待下一周期的同步信號(hào)來完成同步過程。如報(bào)文中還有其他非同步控制指令,立即執(zhí)行相應(yīng)的功能,如轉(zhuǎn)變運(yùn)行模式、停機(jī)等。最后,從節(jié)點(diǎn)通過以太網(wǎng)UDP單播的方式將節(jié)點(diǎn)狀態(tài)反饋給主節(jié)點(diǎn)。
圖5 從節(jié)點(diǎn)軟件流程圖Fig.5 Software flow chart of slave nodes
此外,從節(jié)點(diǎn)還設(shè)置1個(gè)周期為T1=10ms的CPU定時(shí)器中斷服務(wù),用于故障處理。正常狀態(tài)下,從節(jié)點(diǎn)每次收到同步脈沖進(jìn)入新的工作周期時(shí),將CPU定時(shí)器計(jì)數(shù)值重置,保證下一同步脈沖和工作周期到來之前不會(huì)觸發(fā)CPU定時(shí)器中斷服務(wù)(T1>T0)。當(dāng)EtherPSP網(wǎng)絡(luò)運(yùn)行出現(xiàn)故障時(shí),比如線路斷開、節(jié)點(diǎn)故障等,會(huì)導(dǎo)致部分節(jié)點(diǎn)無法與網(wǎng)絡(luò)正常通訊。如果從節(jié)點(diǎn)在10 ms時(shí)間段內(nèi)沒有收到同步觸發(fā)脈沖進(jìn)入工作周期,就會(huì)觸發(fā)CPU定時(shí)器中斷,即認(rèn)為該節(jié)點(diǎn)處于離線故障狀態(tài),可立即轉(zhuǎn)入應(yīng)急模式,采取停機(jī)或其他適當(dāng)?shù)拇胧?/p>
EtherPSP網(wǎng)絡(luò)運(yùn)行中,分別采集了主節(jié)點(diǎn)發(fā)出和從節(jié)點(diǎn)收到的同步脈沖信號(hào)。測(cè)試結(jié)果見圖6。
圖6 測(cè)試結(jié)果波形Fig.6 Waveforms of testing result
圖6a中,CH1為主節(jié)點(diǎn)發(fā)出的脈沖波形,CH2為從節(jié)點(diǎn)收到的脈沖波形。圖6b中,CH1和CH2為2個(gè)從節(jié)點(diǎn)接收到的脈沖波形,顯示從節(jié)點(diǎn)收到的同步脈沖信號(hào)時(shí)間上保持了一致。
圖6c是對(duì)圖6a時(shí)間坐標(biāo)展開所示,顯示主節(jié)點(diǎn)發(fā)出的同步脈沖的上升沿和從節(jié)點(diǎn)收到的脈沖的下降沿有約100~150ns的延時(shí)。對(duì)于伺服同步的應(yīng)用而言,硬件上的這個(gè)延時(shí)可以接受。當(dāng)然,各個(gè)從節(jié)點(diǎn)的軟件處理過程要保持一致性,避免引入不等量的軟件延時(shí),影響最終的同步性。
由于EtherPSP網(wǎng)絡(luò)中所有節(jié)點(diǎn)的同步脈沖信號(hào)均經(jīng)過隔離變壓器進(jìn)行隔離耦合,當(dāng)節(jié)點(diǎn)的個(gè)數(shù)逐步增加時(shí),受脈沖收發(fā)器的驅(qū)動(dòng)能力所限,脈沖信號(hào)會(huì)有一定的波形畸變。圖6d是當(dāng)EtherPSP網(wǎng)絡(luò)帶7個(gè)從節(jié)點(diǎn)時(shí)的波形,CH1為經(jīng)過脈沖收發(fā)器(MAX485)整形后的脈沖波形,CH2為從節(jié)點(diǎn)接收到的隔離變壓器上的波形。雖然經(jīng)過隔離后的脈沖波形有較大畸變,但是經(jīng)過脈沖收發(fā)器處理后依然能夠保持原樣。
當(dāng)EtherPSP網(wǎng)絡(luò)規(guī)模不斷增大,需要多個(gè)交換機(jī)級(jí)聯(lián)時(shí),會(huì)增加存儲(chǔ)-轉(zhuǎn)發(fā)的次數(shù),增加以太網(wǎng)報(bào)文的收發(fā)延時(shí)。實(shí)測(cè)表明,交換機(jī)級(jí)聯(lián)的影響不大,報(bào)文發(fā)送接收的最大延時(shí)主要與網(wǎng)絡(luò)中總的報(bào)文發(fā)送數(shù)成正比關(guān)系,符合式(1)的表述。
目前,SERCOS(serial real-time communication specification,串行實(shí)時(shí)通訊協(xié)議)是工業(yè)領(lǐng)域中實(shí)時(shí)數(shù)據(jù)通訊協(xié)議的國(guó)際標(biāo)準(zhǔn),專門用于工業(yè)機(jī)械電氣設(shè)備的控制單元與數(shù)字伺服裝置之間。它全面而嚴(yán)格的定義了物理層、數(shù)據(jù)鏈路層以及數(shù)據(jù)交換的報(bào)文結(jié)構(gòu)等內(nèi)容,并給出了大量數(shù)據(jù)結(jié)構(gòu)和過程命令,可用于操作控制單元、伺服裝置及相關(guān)機(jī)械設(shè)備。SERCOS協(xié)議被歐洲各國(guó)及美國(guó)和日本的數(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),每個(gè)節(jié)點(diǎn)通過“一進(jìn)一出”兩根光纖依次串聯(lián),形成數(shù)據(jù)單向流通的環(huán)形通訊網(wǎng)絡(luò)。如圖7所示,每個(gè)環(huán)路由1個(gè)主站和若干個(gè)從站構(gòu)成,主站的功能是將控制電報(bào)發(fā)送到網(wǎng)絡(luò)中,并接收從站發(fā)回的電報(bào);從站的功能是接收和轉(zhuǎn)發(fā)電報(bào)并將提取出的控制信息傳遞給伺服裝置。
圖7 SERCOS協(xié)議拓?fù)浣Y(jié)構(gòu)Fig.7 Structure of SERCOS protocol
SERCOS系統(tǒng)周期性進(jìn)行環(huán)路通訊,很短的時(shí)間內(nèi)遍歷各節(jié)點(diǎn),從而使網(wǎng)絡(luò)內(nèi)各節(jié)點(diǎn)實(shí)現(xiàn)同步,且擁有固定的周期。實(shí)際測(cè)試中,SERCOS協(xié)議可以達(dá)到很高的同步精度,同步值小于100ns[6]。
由于SERCOS協(xié)議采用環(huán)形串聯(lián)的拓?fù)浣Y(jié)構(gòu),網(wǎng)絡(luò)中任何1個(gè)節(jié)點(diǎn)、任何1條線路的故障,均會(huì)導(dǎo)致下游從站無法收到主站的信息。而采用星型拓?fù)涞腅therPSP協(xié)議,網(wǎng)絡(luò)內(nèi)線路和節(jié)點(diǎn)的故障不會(huì)對(duì)其他節(jié)點(diǎn)和整個(gè)系統(tǒng)的運(yùn)行造成嚴(yán)重干擾。基于這個(gè)特性,EtherPSP網(wǎng)絡(luò)可以在正常運(yùn)行的情況下隨時(shí)加入和刪除節(jié)點(diǎn)。
SERCOS協(xié)議物理層采用光纖介質(zhì)傳遞數(shù)字信號(hào),可以徹底消除傳輸過程中的電磁干擾,大大提高了系統(tǒng)的穩(wěn)定性和對(duì)復(fù)雜環(huán)境的適應(yīng)能力[5]。而EtherPSP協(xié)議中,同步脈沖信號(hào)經(jīng)過了隔離變壓器處理,可以消除一定的諧波干擾并保持節(jié)點(diǎn)間電隔離的特性,而且UTP雙絞線也有較好的抗干擾能力。
SERCOS協(xié)議理論上每個(gè)主站可驅(qū)動(dòng)最多254個(gè)伺服裝置[5]。EtherPSP網(wǎng)絡(luò)的最大節(jié)點(diǎn)數(shù)則受多個(gè)因素的限制。根據(jù)式(1)和式(2)的分析計(jì)算,EtherPSP報(bào)文的理論傳輸最大延時(shí)受以太網(wǎng)通訊速率和網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)數(shù)的影響。因此,當(dāng)整個(gè)系統(tǒng)的工作周期確定時(shí),網(wǎng)絡(luò)的節(jié)點(diǎn)數(shù)會(huì)受到限制。通過提高以太網(wǎng)通訊速率(如采用100 Mb/s甚至1000Mb/s速率的以太網(wǎng)設(shè)備),可以提高EtherPSP網(wǎng)絡(luò)的傳輸性能和負(fù)載能力。
SERCOS協(xié)議可以使用專門的芯片(如SERCON410B、SERCON816等)實(shí)現(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)在各個(gè)領(lǐng)域極其普遍的應(yīng)用,因此實(shí)現(xiàn)EtherPSP將變得非常方便,成本低廉,易于取材。
而且,對(duì)于嵌入式的控制平臺(tái),可以很方便地直接擴(kuò)展RTL8019AS芯片或通過SPI擴(kuò)展ENC28J60芯片來實(shí)現(xiàn)以太網(wǎng)通訊,使得Ether PSP更容易在各種嵌入式平臺(tái)上推廣應(yīng)用。表1對(duì)比了SERCOS與EtherPSP的特性。
表1 SERCOS和EtherPSP特性對(duì)比Tab.1 Comparison between SERCOS and EtherPSP
綜上所述,SERCOS協(xié)議和EtherPSP協(xié)議均能較好地完成多軸伺服系統(tǒng)要求的高精度的實(shí)時(shí)通訊。相對(duì)而言,SERCOS協(xié)議更適用于大系統(tǒng)、多負(fù)載,對(duì)穩(wěn)定性和適應(yīng)性要求更高的場(chǎng)合,而EtherPSP在小型系統(tǒng)上更能發(fā)揮其靈活、廉價(jià)、便利的特性。
[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ū)動(dòng)程序設(shè)計(jì)及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2005.
[6]呂日昌,葛萬成.SERCOS-Ⅲ在運(yùn)動(dòng)控制網(wǎng)絡(luò)中實(shí)時(shí)與同步的實(shí)現(xiàn)[J].信息技術(shù),2009,33(4):8-11.