楊藝勇,唐小琦,宋 寶
(華中科技大學(xué)機(jī)械科學(xué)與工程學(xué)院,武漢 430074)
在運(yùn)動(dòng)控制系統(tǒng)中,位移傳感器一般采用光電編碼器或者光柵尺[1],早期位移傳感器信號(hào)輸出為TTL電平或者正余弦脈沖串[2]。在電機(jī)高速運(yùn)行時(shí),若采用傳統(tǒng)脈沖串的方式傳輸信號(hào),容易出現(xiàn)計(jì)數(shù)誤差,從而影響控制性能[3]。為了提高位置反饋精度和控制性能,在運(yùn)動(dòng)控制系統(tǒng)中,位移傳感器與控制裝置之間逐漸采用數(shù)字式串行通信接口。目前,國內(nèi)外位置測量器件接口大部分采用數(shù)字式串行通信協(xié)議[4],如 EnDat、SSI、BISS,HIPERFACE、多摩川等[5-7]。但是這些串行通信方法存在下述問題:串行同步通信方式采用數(shù)據(jù)和時(shí)鐘兩組信號(hào)進(jìn)行傳輸,對數(shù)據(jù)和時(shí)鐘信號(hào)二者相位同步要求高,因此對傳輸速率和傳輸距離有嚴(yán)格要求,需要額外添加同步補(bǔ)償功能,否則容易導(dǎo)致數(shù)據(jù)接收錯(cuò)誤;另外串行通信采用電平的方式表示數(shù)據(jù),容易受到干擾[8]。
本文根據(jù)位移傳感器與控制裝置之間強(qiáng)實(shí)時(shí)性、高可靠性特點(diǎn),針對現(xiàn)有串行通信接口存在問題,設(shè)計(jì)一種位移傳感器串行通信協(xié)議——CPE-Bus(Communication Protocol of Encoder Bus),在基于現(xiàn)場可編程邏輯陣列(FPGA)和RS485接口芯片硬件平臺(tái)上實(shí)現(xiàn)位移傳感器與控制裝置之間數(shù)據(jù)通信,解決了現(xiàn)有串行通信中數(shù)據(jù)與傳輸時(shí)鐘同步性和抗干擾性差等問題。
在運(yùn)動(dòng)控制系統(tǒng)中,位置傳感器與控制裝置之間數(shù)據(jù)傳輸是點(diǎn)對點(diǎn)的形式,因此CPE-Bus協(xié)議采用點(diǎn)對點(diǎn)串行通信結(jié)構(gòu)。CPE-Bus通信結(jié)構(gòu)由控制裝置和位移傳感器通過電纜連接構(gòu)成,如圖1所示,在CPE-Bus通信兩端都包含F(xiàn)PGA和RS485接口芯片,其中FPGA用于CPE-Bus協(xié)議的處理和數(shù)據(jù)讀寫,RS485接口芯片用于接收或者發(fā)送差分信號(hào)。在CPE-Bus結(jié)構(gòu)中,控制裝置對位移傳感器進(jìn)行供電,在位置傳感器與控制裝置之間通過一對雙絞線進(jìn)行數(shù)據(jù)傳輸。
圖1 串行通信結(jié)構(gòu)示意圖
CPE-Bus通信協(xié)議以差分信號(hào)形式進(jìn)行數(shù)據(jù)傳輸,增強(qiáng)對外界信號(hào)的抗干擾能力,同時(shí)在CPE-Bus的RS485收發(fā)器上采用終端匹配電路,在高傳輸速率或者長傳輸電纜下可以減少信號(hào)反射,改善信號(hào)的質(zhì)量,提高傳輸可靠性。另外CPE-Bus的RS485收發(fā)器上還添加偏置電阻,在線路進(jìn)入空閑狀態(tài)后,把總線上沒有數(shù)據(jù)時(shí)(空閑時(shí))的電平拉離0電平。這樣一來,即使線路中出現(xiàn)了比較小的反射信號(hào)或干擾,掛接在總線上的數(shù)據(jù)接收器也不會(huì)由于這些信號(hào)的到來而產(chǎn)生誤動(dòng)作。
CPE-Bus通信協(xié)議是在基于FPGA和RS485接口芯片硬件平臺(tái)實(shí)現(xiàn)的,所以重點(diǎn)在于CPE-Bus協(xié)議IP核設(shè)計(jì)。在設(shè)計(jì)CPE-Bus協(xié)議IP核時(shí),采用模塊化設(shè)計(jì)方法,自頂而下劃分成不同子模塊,分別為數(shù)據(jù)讀寫模塊、數(shù)據(jù)處理模塊、模式處理模塊、曼徹斯特編解碼模塊和通信控制模塊五個(gè)模塊,如圖2所示。其中,數(shù)據(jù)讀寫模塊用于位移傳感器、控制裝置以及存儲(chǔ)器數(shù)據(jù)讀寫,數(shù)據(jù)處理模塊用于對數(shù)據(jù)進(jìn)行CRC校驗(yàn)和組幀,曼徹斯特編解碼模塊用于數(shù)據(jù)的曼徹斯特編解碼,模式處理模塊用于數(shù)據(jù)通信過程中模式產(chǎn)生或者模式判斷處理,通信控制模塊用于通信中各個(gè)模塊的工作的協(xié)調(diào)控制。在CPEBus通信兩端的IP核由于功能相似性,所以在設(shè)計(jì)時(shí)采用模塊劃分方式,利用IP核的復(fù)用性簡化設(shè)計(jì)。
圖2 CPE-Bus模塊組成示意圖
根據(jù)CPE-Bus模塊劃分以及通信需要,CPE-Bus工作模式分為數(shù)據(jù)模式和配置模式。數(shù)據(jù)模式是由位置傳感器向控制裝置傳輸位移傳感器實(shí)時(shí)數(shù)據(jù)和傳感器相關(guān)參數(shù),而配置模式是由控制裝置向位置傳感器傳輸配置參數(shù)。在每一次數(shù)據(jù)通信開始時(shí),控制裝置根據(jù)運(yùn)動(dòng)控制系統(tǒng)使用要求,發(fā)出模式信號(hào),位置傳感器接收模式信號(hào)并對其進(jìn)行模式判斷。
當(dāng)CPE-Bus串行通信工作在配置模式時(shí),控制裝置向位移傳感器發(fā)送配置數(shù)據(jù)幀,位移傳感器接收配置數(shù)據(jù)幀后,回傳接收到的配置數(shù)據(jù)幀,控制裝置接收并檢驗(yàn)位移傳感器回傳的配置數(shù)據(jù)幀,若數(shù)據(jù)校驗(yàn)正確則結(jié)束一次數(shù)據(jù)通信,退出配置模式,若數(shù)據(jù)校驗(yàn)錯(cuò)誤則可以選擇重傳參數(shù)或者結(jié)束數(shù)據(jù)通信,其工作流程如圖3所示。
圖3 串行通信配置模式流程圖
當(dāng)CPE-Bus串行通信工作在數(shù)據(jù)模式時(shí),控制裝置向位移傳感器發(fā)送數(shù)據(jù)幀,位移傳感器回傳位置數(shù)據(jù)幀,控制裝置接收并校驗(yàn)回傳的位置數(shù)據(jù)幀,若數(shù)據(jù)校驗(yàn)正確,根據(jù)系統(tǒng)要求選擇繼續(xù)數(shù)據(jù)傳輸或者結(jié)束數(shù)據(jù)通信;若在數(shù)據(jù)通信過程中出現(xiàn)數(shù)據(jù)傳輸超時(shí)或者數(shù)據(jù)校驗(yàn)錯(cuò)誤時(shí)則可以選擇報(bào)警并結(jié)束數(shù)據(jù)通訊或者繼續(xù)數(shù)據(jù)傳輸,其工作流程如圖4所示。
圖4 串行通信數(shù)據(jù)模式流程圖
為了保證CPE-Bus協(xié)議能夠在位移傳感器和控制裝置之間可靠地傳輸,需要采用一些處理措施。下面從數(shù)據(jù)的編碼和差錯(cuò)檢測兩方面討論數(shù)據(jù)高可靠性通信措施。
目前位移傳感器的串行通信協(xié)議中數(shù)據(jù)基本采用單極性不歸零(NRZ,Non-return to Zero)編碼形式,即用高低電平表示分別傳送數(shù)據(jù)1和0。采樣不歸零編碼形式進(jìn)行雙向串行同步傳輸時(shí)存在數(shù)據(jù)和時(shí)鐘同步問題,如圖5所示,信號(hào)在電纜傳輸需要t/2時(shí)間,且t/2正比于電纜長度。控制裝置向傳感器發(fā)送時(shí)鐘信號(hào),由于信號(hào)傳輸時(shí)間造成在傳感器端接收到的時(shí)鐘有t/2的延遲,傳感器根據(jù)接收時(shí)鐘信號(hào)發(fā)送數(shù)據(jù),同樣控制裝置接收的數(shù)據(jù)也有t/2的延遲。對控制裝置來說,接收的數(shù)據(jù)相對時(shí)鐘信號(hào)有t的延遲。當(dāng)t小于或等于T/2時(shí),控制裝置在時(shí)鐘下降沿能正確采樣到數(shù)據(jù),否則就需要額外添加同步補(bǔ)償功能才能正確采樣的數(shù)據(jù),因此對傳輸時(shí)間頻率和傳輸距離有嚴(yán)格要求,傳輸距離遠(yuǎn)時(shí),就會(huì)限制傳輸?shù)淖罡邥r(shí)間頻率,反之,傳輸時(shí)鐘頻率越高時(shí),也會(huì)限制最大傳輸距離。
圖5 串行同步傳輸時(shí)鐘與數(shù)據(jù)波形圖
曼徹斯特編碼(Manchester Encoding)是一種同步時(shí)鐘編碼技術(shù),時(shí)鐘和數(shù)據(jù)包含在數(shù)據(jù)流中,具有自同步能力[9]。采用曼徹斯特編碼進(jìn)行串行傳輸時(shí)可以從數(shù)據(jù)流中提取時(shí)鐘和數(shù)據(jù)信號(hào),所以不存在時(shí)鐘與數(shù)據(jù)同步問題,只要信號(hào)在傳輸中能夠保持完整性前提下,對傳輸時(shí)鐘頻率和傳輸距離沒有限制。
EnDat、BISS、SSI協(xié)議采用不歸零數(shù)據(jù)編碼形式,在雙向串行傳輸通信時(shí)需要時(shí)鐘和數(shù)據(jù)兩對差分信號(hào),存在時(shí)鐘與數(shù)據(jù)同步問題。而CPE-Bus協(xié)議采用曼徹斯特編碼,方便接收模塊提取時(shí)鐘和數(shù)據(jù)信息,解決了數(shù)據(jù)與時(shí)鐘同步問題,而且位移傳感器和控制裝置之間數(shù)據(jù)通信僅需一對差分雙絞電纜,簡化了傳輸裝置,同時(shí)提高傳輸?shù)目煽啃浴?/p>
此外在串行數(shù)據(jù)通信過程中會(huì)遇到線路本身電氣特性造成的隨機(jī)噪聲、電信號(hào)在線路上反射到造成的回音效應(yīng)、相鄰線路間的串?dāng)_以及外界因素干擾而造成信號(hào)幅度、頻率和相位的失真或者畸變,導(dǎo)致傳輸信息改變、通信不可靠。因此需要差錯(cuò)檢測(Error Detection)來探測傳輸信息是否改變,以保證數(shù)據(jù)通信的可靠性。常用差錯(cuò)檢測方法有奇偶檢驗(yàn)(Parity Checking)、校驗(yàn)和(Checksum)、循環(huán)冗余校驗(yàn)(CRC,Cycle Redundancy Check)、海明碼(Hamming code)[10]。奇偶檢驗(yàn)位主要適用于單比特差錯(cuò)檢測,只能檢驗(yàn)大約50%的突發(fā)錯(cuò)誤,對串行通信來說,是遠(yuǎn)遠(yuǎn)不夠的。校驗(yàn)和比奇偶校驗(yàn)要準(zhǔn)確一些,但也是達(dá)不到數(shù)據(jù)通信的要求。海明碼不僅能檢測到錯(cuò)誤,還能對錯(cuò)誤進(jìn)行糾正,對單比特查錯(cuò)糾正相對比較容易,但對多比特查錯(cuò)糾正需要很大的開銷而且很復(fù)雜。而CRC校驗(yàn)檢測準(zhǔn)確度高、效率高,因而在網(wǎng)絡(luò)和通信領(lǐng)域被廣泛使用。CRC校驗(yàn)?zāi)軌蛲ㄟ^循環(huán)移位的方法實(shí)現(xiàn),特別適合于FPGA中處理。鑒于CRC檢驗(yàn)的優(yōu)點(diǎn),CPE-Bus采用CRC校驗(yàn)進(jìn)行通信差錯(cuò)檢測。
本文設(shè)計(jì)串行通信實(shí)驗(yàn)測試平臺(tái)如圖6所示,主要實(shí)驗(yàn)設(shè)備包括:西門子永磁同步電機(jī)(型號(hào)1FT6062-6AC71-3AA0,額定轉(zhuǎn)速 2000r/min,最高轉(zhuǎn)速3200r/min,其編碼器輸出信號(hào)為1Vpp正余弦信號(hào),2048線)、高倍正余弦細(xì)分盒以及華中數(shù)控HC5819伺服驅(qū)動(dòng)器。高倍正余弦細(xì)分盒內(nèi)部主要采用Altera公司FPGA芯片:CycloneIII EP3C10E144C8N和Maxim公司 RS485接口芯片:MAX14841E,伺服驅(qū)動(dòng)器內(nèi)部FPGA芯片則采用Altera公司 FPGA芯片:Cyclone II EP2C8Q208C8N,RS485接口芯片與細(xì)分盒一樣。
圖6 實(shí)驗(yàn)測試平臺(tái)
實(shí)驗(yàn)測試方法如下:伺服驅(qū)動(dòng)器控制西門子電機(jī)轉(zhuǎn)動(dòng),電機(jī)通過編碼器接口反饋位置信息,高倍正余弦細(xì)分盒對編碼器輸出1Vpp正余弦信號(hào)進(jìn)行高倍細(xì)分處理,高倍正余弦細(xì)分盒的另外一端與伺服驅(qū)動(dòng)器通過雙絞線相連接。利用CPE-Bus串行通信協(xié)議將細(xì)分處理后數(shù)據(jù)傳輸給伺服驅(qū)動(dòng)器,伺服驅(qū)動(dòng)器接收細(xì)分盒上傳位置數(shù)據(jù),完成閉環(huán)控制。
圖7為伺服驅(qū)動(dòng)器與高倍細(xì)分盒之間一次數(shù)據(jù)通信實(shí)驗(yàn)中,通過Quartus II軟件的SignalTap II工具抓取驅(qū)動(dòng)控制器FPGA內(nèi)部信號(hào)波形圖。其中Rece_data_485為RS485接收的數(shù)據(jù),Tclk_Rece為提取的時(shí)鐘信號(hào),Postion為接收到細(xì)分后位置數(shù)據(jù),CRC_Err_Num為CRC校驗(yàn)錯(cuò)誤數(shù)。從圖中可以看出伺服驅(qū)動(dòng)器與高倍細(xì)分盒之間通過CPE-Bus串行通信協(xié)議能夠正確地通信,驗(yàn)證了CPE-Bus串行通信協(xié)議的可行性。
圖7 驅(qū)動(dòng)控制器FPGA內(nèi)部信號(hào)波形圖
下面從實(shí)時(shí)性、通信電纜長度、誤碼率三個(gè)方面的實(shí)驗(yàn)測試串行通信協(xié)議的性能。
實(shí)時(shí)性測試實(shí)驗(yàn)是通過在運(yùn)動(dòng)控制系統(tǒng)速度環(huán)下,設(shè)置不同傳輸時(shí)鐘傳輸速率,觀察對應(yīng)轉(zhuǎn)速波動(dòng)值。圖8為電機(jī)速度環(huán)設(shè)定在2500r/min轉(zhuǎn)速下,傳輸時(shí)鐘頻率從100KHz到10MHz變化時(shí),對應(yīng)轉(zhuǎn)速波動(dòng)值統(tǒng)計(jì)結(jié)果。從實(shí)驗(yàn)結(jié)果可以看出傳輸時(shí)鐘頻率越高,速度波動(dòng)逐漸減少,時(shí)鐘頻率在4MHz以上時(shí),速度基本穩(wěn)定。說明傳輸時(shí)鐘頻率越高,串行通信實(shí)時(shí)性越好,反饋位置數(shù)據(jù)越準(zhǔn)確,控制性能越好。
通信電纜長度測試實(shí)驗(yàn)在不同電纜長度測試傳輸時(shí)鐘頻率最高頻率。圖 9為 Endat2.2協(xié)議與CPE-Bus串行通信協(xié)議時(shí)鐘頻率與電纜長度關(guān)系對比,在Endat2.2中如果無傳輸延遲時(shí)間補(bǔ)償,時(shí)鐘頻率取決于電纜長度,頻率可在100 kHz到2 MHz之間,隨電纜長度增加,最高時(shí)鐘頻率相應(yīng)降低。如果在后續(xù)電子設(shè)備中對傳輸延時(shí)進(jìn)行補(bǔ)償,時(shí)鐘頻率可提高到16MHz,電纜長度最長達(dá)100m(fclk≤8MHz)。而CPE-Bus串行通信協(xié)議無需增加延遲補(bǔ)償,電纜長度最長可達(dá)100m,最大傳輸頻率為10MHz。
圖8 在2500r/min轉(zhuǎn)速下,不同傳輸時(shí)鐘頻率對應(yīng)速度波動(dòng)值
誤碼率測試實(shí)驗(yàn)是通過多次長時(shí)間運(yùn)行測試平臺(tái),統(tǒng)計(jì)不同傳輸時(shí)鐘頻率下,CRC檢驗(yàn)出錯(cuò)次數(shù)、通信次數(shù),計(jì)算通信誤碼率。圖10為在多次運(yùn)行測試平臺(tái),每次運(yùn)行時(shí)間不少于5個(gè)小時(shí),傳輸時(shí)鐘頻率從100KHz到10MHz變化時(shí),統(tǒng)計(jì)的通信誤碼率結(jié)果,從實(shí)驗(yàn)結(jié)果中可以得知所設(shè)計(jì)串行通信協(xié)議誤碼率達(dá)10-12,可靠性較高,能夠滿足位移傳感器與控制裝置數(shù)據(jù)通信要求。
圖9 兩種通信協(xié)議傳輸時(shí)鐘頻率與電纜長度關(guān)系對比
圖10 不同傳輸時(shí)鐘頻率下誤碼率
本文采用曼徹斯特編碼以及循環(huán)冗余校驗(yàn)技術(shù),設(shè)計(jì)一種位移傳感器串行通信協(xié)議,分析了其通信結(jié)構(gòu)、IP核模塊劃分,工作模式以及可靠性通信措施。通過實(shí)驗(yàn)驗(yàn)證了串行通信協(xié)議的可行性,同時(shí)從不同實(shí)驗(yàn)測試串行通信協(xié)議實(shí)時(shí)性、通信電纜長度、誤碼率。實(shí)驗(yàn)結(jié)果表明串行通信協(xié)議具有較高的實(shí)時(shí)性、可靠性,在運(yùn)動(dòng)控制系統(tǒng)中位置傳感器與控制裝置之間長距離數(shù)據(jù)通信方面具有很廣泛的應(yīng)用價(jià)值。
[1]王列虎,皮佑國.數(shù)控機(jī)床中直接位置閉環(huán)控制系統(tǒng)的研究[J].組合機(jī)床與自動(dòng)化加工技術(shù),2011(2):50-52.
[2]盧國綱.位移測量技術(shù)及其傳感器的最新發(fā)展[J].世界制造技術(shù)與裝備市場,2005(4):72-73.
[3]阮毅,陳維鈞.運(yùn)動(dòng)控制系統(tǒng)[M].北京:清華大學(xué)出版社,2006.
[4]盧國綱.世界制造位移傳感器的主要企業(yè)概況[J].世界制造技術(shù)與裝備市場,2007(2):114-118.
[5]HEIDENHAIN Corporation.EnDat Specification[DB/OL].www.mazet.de.
[6]IC-Haus Corporation.BISS Interface Protocol Description[DB/OL].www.biss-interface.com.
[7]Jens Onno Krah,Reiner Berger et al.Resource Optimized BiSS Master Interface for High Resolution Encoders[R].PCIM EUROPE 2006,PROCEEDINGS:479-484
[8]焦亞冬.總線編碼方法研究及其FPGA驗(yàn)證[D].西安:西安電子科技大學(xué),2011.
[9]董健,董會(huì)寧,陳虎,等.基于FPGA的曼徹斯特編解碼器研究[J].無線通信技術(shù),2010(3):5-8.
[10]William A.Shay著,高傳善,等,譯.數(shù)據(jù)通信與網(wǎng)絡(luò)教程[M].北京:機(jī)械工業(yè)出版社,2005.