蔡吳磊,梁顯榮,趙云峰,晉 剛
(聚合物新型成型裝備國家工程研究中心,聚合物成型加工工程教育部重點(diǎn)實(shí)驗(yàn)室,華南理工大學(xué),廣東廣州 510640)
旋轉(zhuǎn)流變儀因其適用范圍廣、測量精度高等優(yōu)點(diǎn)而被廣泛應(yīng)用于流體研究,其測量原理為通過一對(duì)相對(duì)旋轉(zhuǎn)的測量幾何向樣品施加特定的應(yīng)力或應(yīng)變信號(hào),依據(jù)樣品產(chǎn)生的應(yīng)變或應(yīng)力響應(yīng),從而獲取樣品的流變特性[1]。為了提高自主開發(fā)的旋轉(zhuǎn)流變儀測控系統(tǒng)精度,實(shí)現(xiàn)聚合物材料流變特性的準(zhǔn)確測量,故選用絕對(duì)式圓光柵完成內(nèi)外筒驅(qū)動(dòng)電機(jī)的閉環(huán)控制。
絕對(duì)式圓光柵利用碼盤編碼確定機(jī)械位置,無需“歸零”操作即可完成位置讀取與控制,具備優(yōu)異的抗干擾性及可靠性[2]。由于輸出的位置信息精度高、位數(shù)多,并且還要遵循一定的通訊協(xié)議,光柵輸出的數(shù)據(jù)量大而復(fù)雜,因而數(shù)據(jù)的傳輸速度及其穩(wěn)定性是影響應(yīng)用性能的關(guān)鍵因素[3]。
針對(duì)該問題,BiSS(bidirectional synchronous serial)協(xié)議可以作為解決方案。該協(xié)議是開放式同步串行協(xié)議,使用該協(xié)議通信波特率可達(dá)到10 Mbps,超出同類通信協(xié)議的4倍以上[4]。此外,BiSS-C是BiSS協(xié)議最新的版本,該協(xié)議可自由調(diào)整總線連接方式、報(bào)警位、協(xié)議長度,并可進(jìn)行延時(shí)補(bǔ)償,工業(yè)應(yīng)用靈活,無協(xié)議產(chǎn)權(quán)成本,通信傳輸安全可靠[5]。
目前最常用的BiSS協(xié)議解碼是通過BiSS Master芯片實(shí)現(xiàn),但官方解碼芯片的數(shù)據(jù)處理方式單一,難以進(jìn)行接口模塊的功能拓展,因而無法滿足旋轉(zhuǎn)流變儀測控系統(tǒng)的整體控制要求[6]。因此,本文基于Compact RIO嵌入式平臺(tái)設(shè)計(jì)BiSS協(xié)議解碼方案,并加入CRC校驗(yàn)?zāi)K以實(shí)現(xiàn)解碼檢錯(cuò)及糾錯(cuò)功能。
本文首先對(duì)BiSS-C協(xié)議進(jìn)行介紹,其次闡述了通信接口的硬件、軟件設(shè)計(jì),最后在絕對(duì)式圓光柵上完成了實(shí)驗(yàn)測試并說明了接口的準(zhǔn)確性及可靠性。
BiSS-C協(xié)議是一種新型的可自由使用的開放式同步串行通信協(xié)議,其連接方式分為點(diǎn)對(duì)點(diǎn)(point to point)模式和總線(bus)模式2種[7]。
在點(diǎn)對(duì)點(diǎn)模式中,主控接口只連接1個(gè)設(shè)備,該設(shè)備可配有1個(gè)或多個(gè)從接口(Slave)。主控接口通過MA信號(hào)線向從接口提供時(shí)鐘信號(hào),從接口通過SL信號(hào)線由第1個(gè)從接口(First Slave)直接向主控接口傳送傳感器數(shù)據(jù)。在點(diǎn)對(duì)點(diǎn)模式中,BiSS-C接口與SSI接口硬件兼容,最后一個(gè)從接口(Last Slave)的輸入信號(hào)SLI為“0”,其結(jié)構(gòu)如圖1所示。
在總線模式中,設(shè)備的連接呈首尾鏈狀結(jié)構(gòu),每個(gè)設(shè)備還可包含多個(gè)從接口。因此每個(gè)從接口都有2個(gè)端子,即SLI和SLO,分別負(fù)責(zé)前端信號(hào)接收和后端信號(hào)發(fā)射。每個(gè)從接口向后端發(fā)送數(shù)據(jù)時(shí),自身數(shù)據(jù)的優(yōu)先級(jí)是最高的,而從前端接收的數(shù)據(jù)則放置在發(fā)送隊(duì)列末尾。在總線模式中,BiSS-C主控接口連接的從接口數(shù)量是不受限制的,并且可通過MA信號(hào)線向所有從接口提供時(shí)鐘脈沖,其結(jié)構(gòu)如圖2所示。
BiSS協(xié)議存在2種工作模式,分別為傳感器模式(sensor mode)和寄存器模式(register mode)。當(dāng)只需要獲取傳感器測量數(shù)據(jù)時(shí),使用沒有寄存器通信的單向BiSS-C(BiSS-C unidirectional)協(xié)議版本,可極大提高數(shù)據(jù)獲取速度[8]。
圖3為點(diǎn)對(duì)點(diǎn)模式的時(shí)序圖。BiSS幀由產(chǎn)生時(shí)鐘MA(master clock)信號(hào)的主機(jī)啟動(dòng),MA的第1個(gè)上升沿用于所有從接口的同步,以此確保傳感器數(shù)據(jù)的等時(shí)掃描和執(zhí)行器數(shù)據(jù)的等時(shí)輸出。在MA的第2個(gè)上升沿,所有的從接口生成“Ack”(acknowledge)信號(hào),該狀態(tài)持續(xù)至開始(Start)位出現(xiàn)。每個(gè)從接口的開始位都以時(shí)鐘MA為同步標(biāo)準(zhǔn),持續(xù)1個(gè)時(shí)鐘脈沖完成傳輸,而后緊隨CDS(control data slave)位,數(shù)據(jù)傳輸?shù)姆秶菑拈_始位后的第二位至最后的停止位。BiSS幀以BiSS超時(shí)(BiSS-timeout)完成終止判斷,主機(jī)不再向MA發(fā)送時(shí)鐘脈沖,此時(shí)MA的逆狀態(tài)為CDM(control data master)狀態(tài)位。
實(shí)驗(yàn)系統(tǒng)的架構(gòu)如圖4所示。硬件系統(tǒng)基于CompactRIO 9038嵌入式平臺(tái),選用NI 9401 I/O模塊采集并發(fā)送信號(hào),并對(duì)RA32BAA052B30A絕對(duì)式圓光柵讀頭進(jìn)行通信接口電路設(shè)計(jì),最終在上位機(jī)用戶界面顯示采集的位置信息。該系統(tǒng)使用LabVIEW完成圖形化編程,其靈活性高、可移植性強(qiáng),具備優(yōu)異的拓展能力。
CompactRIO集成了實(shí)時(shí)控制器(RT)、可重配置的FPGA(現(xiàn)場可編程門陣列)和熱插拔I/O模塊[9]。在信號(hào)處理的硬件電路中,光柵讀頭與CompactRIO平臺(tái)通過DB9接口實(shí)現(xiàn)連接,F(xiàn)PGA發(fā)出的MA時(shí)鐘脈沖通過NI 9401(發(fā)送)輸出給讀頭,同時(shí)返回的位置信號(hào)又通過NI 9401(接收)輸入至FPGA。該過程中,這2個(gè)I/O模塊分別負(fù)責(zé)將MA時(shí)鐘脈沖由TTL電平轉(zhuǎn)為差分信號(hào),并將位置信號(hào)由差分信號(hào)轉(zhuǎn)為TTL電平。FPGA經(jīng)過解碼校驗(yàn),通過PCI總線將數(shù)據(jù)傳輸至實(shí)時(shí)控制器,最終由實(shí)時(shí)控制器將數(shù)據(jù)傳輸至上位機(jī)實(shí)現(xiàn)位置顯示。
絕對(duì)式圓光柵的數(shù)據(jù)格式如圖5所示[10]。
由圖5可知,在不工作時(shí),時(shí)鐘MA和信號(hào)SLO都保持高電平;當(dāng)主接口請(qǐng)求位置采集時(shí),MA開始傳輸時(shí)鐘脈沖,此外光柵在MA第2個(gè)上升沿將SLO置低表示響應(yīng)。結(jié)束“Ack”周期后,SLO生成一位“Start”高電平和一位“0”低電平,隨后開始傳輸32位的位置信息。緊接著出現(xiàn)一位“Error”和一位“Warn”,用于判斷位置數(shù)據(jù)是否可信,當(dāng)兩者都處于高電平時(shí),則代表數(shù)據(jù)校驗(yàn)成功。之后的6位CRC碼提供檢錯(cuò)及糾錯(cuò)功能。CRC多項(xiàng)式為G(x)=x6+x1+x0,轉(zhuǎn)換為校驗(yàn)碼元即為1000011。當(dāng)數(shù)據(jù)傳輸結(jié)束后,主接口將MA設(shè)為高電平,此時(shí)光柵將SLO置低,表示進(jìn)入超時(shí)周期。而當(dāng)SLO再次設(shè)為高電平時(shí),主接口開始下一次位置采集。實(shí)際上光柵每1 ms完成一次位置采集,而這1 ms是指兩個(gè)請(qǐng)求循環(huán)開始之間的時(shí)間,若數(shù)據(jù)傳輸時(shí)間小于1 ms,光柵則通過將SLO置低直至1 ms過去的方式再向主接口發(fā)送信號(hào),這就是超時(shí)階段。
根據(jù)BiSS協(xié)議特點(diǎn),基于CompactRIO硬件平臺(tái),利用LabVIEW完成上位機(jī)、實(shí)時(shí)控制器、FPGA機(jī)箱的VI設(shè)計(jì)[11]。其中,F(xiàn)PGA VI是光柵通訊解碼程序的核心部分,按照功能進(jìn)行模塊化可分為時(shí)鐘驅(qū)動(dòng)模塊、解碼模塊和CRC校驗(yàn)?zāi)K,其中解碼模塊VI程序如圖6所示。
時(shí)鐘驅(qū)動(dòng)模塊負(fù)責(zé)時(shí)鐘發(fā)送。由于光柵規(guī)定的MA時(shí)鐘速度為0.25~10 MHz,而NI 9401輸出脈沖在低于1 MHz時(shí)質(zhì)量較好,因此利用FPGA完成程序設(shè)計(jì),將CompactRIO機(jī)箱提供的40 MHz時(shí)鐘頻率降低至1 MHz,從而支持解碼模塊及CRC校驗(yàn)?zāi)K的使用。
解碼模塊通過狀態(tài)機(jī)實(shí)現(xiàn)數(shù)據(jù)解碼,解碼模塊狀態(tài)機(jī)框圖如圖7所示[12]。狀態(tài)機(jī)在啟動(dòng)或者復(fù)位之后,檢測光柵SLO是否處于空閑(idle)狀態(tài),并就此進(jìn)入等待狀態(tài)。若檢測到空閑狀態(tài),則開始發(fā)送MA時(shí)鐘脈沖。此時(shí),SLO從高電平轉(zhuǎn)為低電平,狀態(tài)機(jī)進(jìn)入“Ack”應(yīng)答狀態(tài);隨后SLO出現(xiàn)2次電平轉(zhuǎn)換,狀態(tài)機(jī)依次進(jìn)入“Start”和“0”工作狀態(tài)。若在運(yùn)行過程中未檢測到該工作時(shí)序或檢測超時(shí),狀態(tài)機(jī)直接進(jìn)入超時(shí)狀態(tài),結(jié)束超時(shí)等待后再次開始工作循環(huán);若檢測通過,則進(jìn)入接收狀態(tài),完成接下來32位位置信息、2位檢測信號(hào)和6位CRC校驗(yàn)碼的接收。等待數(shù)據(jù)發(fā)送完畢,狀態(tài)機(jī)停止MA時(shí)鐘脈沖進(jìn)入超時(shí)狀態(tài),等待下一次位置采集循環(huán)。
CRC校驗(yàn)?zāi)K負(fù)責(zé)接收數(shù)據(jù)的差錯(cuò)校驗(yàn)[13]。解碼模塊首先將32位位置信號(hào)及2位檢測信號(hào)進(jìn)行拓展,拓展位數(shù)比CRC多項(xiàng)式少1位且全部置零。然后以CRC校驗(yàn)碼元“1000011”作為除數(shù),完成與40位拓展數(shù)據(jù)的除法運(yùn)算,而其中用到的減運(yùn)算全部變?yōu)閄OR(異或)運(yùn)算。之后將得到的6位余數(shù)作為CRC碼,加至原始數(shù)據(jù)之后完成數(shù)據(jù)發(fā)送。接收端將接收的40位數(shù)據(jù)除以CRC校驗(yàn)碼元,若計(jì)算得到的余數(shù)為0,說明數(shù)據(jù)接收正確,并將數(shù)據(jù)輸出至上位機(jī);若余數(shù)不為0,則輸出前一次的正確值,同時(shí)發(fā)送“Error”信號(hào)至上位機(jī)并記錄出錯(cuò)個(gè)數(shù)。
按以上設(shè)計(jì)進(jìn)行光柵的位置讀取實(shí)驗(yàn)。通過示波器檢測并顯示通信信號(hào),如圖8所示。并將實(shí)驗(yàn)檢測波形與理論波形進(jìn)行對(duì)比。由圖8可以看出,測得的MA時(shí)鐘信號(hào)、SLO數(shù)據(jù)信號(hào)與圖7所示的原理時(shí)序相吻合,說明了系統(tǒng)內(nèi)部時(shí)序執(zhí)行正確。因此,基于CompactRIO的BiSS-C協(xié)議接口設(shè)計(jì)可正常實(shí)現(xiàn)光柵的位置數(shù)據(jù)解碼及傳輸。
為了驗(yàn)證基于CompactRIO平臺(tái)解碼的準(zhǔn)確性,利用官方解碼芯片BiSS Master對(duì)流變儀外筒位置同時(shí)進(jìn)行測量,并比較2組數(shù)據(jù)的一致性。實(shí)驗(yàn)過程中,將外筒的1個(gè)旋轉(zhuǎn)周期均分為20個(gè)位置,在同一位置記錄下CompactRIO解碼與BiSS Master解碼獲得的讀數(shù)值,此后不斷旋轉(zhuǎn)外筒,得到多組數(shù)據(jù)。最后將所獲數(shù)據(jù)轉(zhuǎn)換為弧度制,然后以BiSS Master解碼得到的位置數(shù)據(jù)為橫坐標(biāo),CompactRIO解碼得到的位置數(shù)據(jù)為縱坐標(biāo),進(jìn)行線性擬合,如圖9所示。
圖9中直線為線性擬合結(jié)果。實(shí)驗(yàn)分析可知,擬合曲線得到的方程為y=x-1.015×10-6,其相關(guān)度R2為1,說明這2組數(shù)據(jù)完全線性相關(guān)。此外,截距誤差范圍為(-1.015×10-6±4.411×10-7)rad,據(jù)此可認(rèn)為基于CompactRIO解碼與基于BiSS Master解碼得到的位置數(shù)據(jù)一致。
同時(shí),為了驗(yàn)證基于CompactRIO解碼的可靠性,即在測量過程中是否會(huì)出現(xiàn)跳動(dòng)現(xiàn)象,針對(duì)以上每個(gè)位置進(jìn)行20次重復(fù)讀數(shù),并計(jì)算相應(yīng)的標(biāo)準(zhǔn)偏差。實(shí)驗(yàn)發(fā)現(xiàn),位置讀數(shù)的標(biāo)準(zhǔn)偏差固定在1×10-6rad以下,說明基于CompactRIO解碼具備良好的穩(wěn)定性及可靠性。
本文根據(jù)自主開發(fā)的旋轉(zhuǎn)流變儀對(duì)于測控系統(tǒng)準(zhǔn)確度要求,分析了絕對(duì)式圓光柵通過BiSS-C協(xié)議實(shí)現(xiàn)數(shù)據(jù)通訊的特點(diǎn),并針對(duì)測控系統(tǒng)的整體同步控制要求,選用CompactRIO嵌入式平臺(tái)完成光柵讀頭的通訊接口設(shè)計(jì)。該設(shè)計(jì)還采用LabVIEW圖形編程實(shí)現(xiàn)了上位機(jī)、實(shí)時(shí)控制器、FPGA機(jī)箱的VI設(shè)計(jì)。實(shí)驗(yàn)結(jié)果表明,基于CompactRIO的BiSS-C協(xié)議接口設(shè)計(jì)可實(shí)現(xiàn)光柵的位置數(shù)據(jù)解碼及傳輸,其誤差控制在2×10-6rad之內(nèi),重復(fù)測量的標(biāo)準(zhǔn)偏差在1×10-6rad之內(nèi),可靠性及穩(wěn)定性完全滿足旋轉(zhuǎn)流變儀測控系統(tǒng)要求。同時(shí)該設(shè)計(jì)具有良好的移植性和拓展性,可適用于多編碼器的同步控制,結(jié)合位置控制器可實(shí)現(xiàn)電機(jī)的閉環(huán)控制,是解決旋轉(zhuǎn)流變儀測控問題的理想方案。