毛 川,楊 策,王 鵬,石照耀
(北京工業大學 材料與制造學部 北京市精密測控技術與儀器工程技術研究中心,北京 100124)
塑料齒輪因其生產效率高、成本低、傳動噪聲小等優點,在各領域中的應用越來越廣泛。關于塑料齒輪的傳動誤差測量與分析,國內基本上是空白[1]。作為國內首臺塑料齒輪傳動誤差試驗機,其中用到了大量的光柵傳感器、扭矩傳感器和其他類型的傳感器。因此,塑料齒輪傳動誤差試驗機需要一種能同步采集多種信號的數據采集系統。
塑料齒輪傳動誤差試驗機數據采集系統設計的難點在于如何保證多類型、多通道信號的同步采集,尤其是多路光柵信號的高速采集。常見的數據采集系統由CPU+控制邏輯+通信接口控制器組成[2],崔琪等[3]利用DSP+FPGA的架構,實現了對光纖Bragg光柵信號的高速采樣,并降低了數據采集系統成本。Wu等[4]設計了FPGA+EPICS(Experimental Physics and Industrial Control System)架構,實現了超導插入設備的失超檢測,該數據采集系統實現了16路模擬信號的同步采集。張月等[5]設計的基于STM32+FPGA的架構,實現了64路模擬信號的采集,但是最高的采集頻率只有20 kHz。上面所述的這種結構占用空間較大,通信速率較低,比如STM32+FPGA的這種結構,FPGA和STM32之間常用的通信協議為FSMC、SPI等,FPGA和STM32之間的通信速度限制了其在高速采樣領域的應用。
另一方面,現在的多通道數據采集系統往往只涉及模擬信號或數字信號。宿文玲[6]設計了一款同步采集4路光柵信號的數據采集系統,只涉及了數字信號的采集,不能同步采集其他信號。陳紅亮等[7]設計了一種可以采集4種信號的數據采集系統,簡化了航空發動機試驗中數據采集系統復雜程度,但這4種信號均為模擬信號。牟雪姣等[8]利用ADS1282實現了多路模擬信號的同步采集,提高了地震數據采集的系統工作效率。
針對以上存在的問題,本文以Zynq7000為平臺設計了一款高速數據采集系統。Zynq7000 本身具有 CPU+可編程邏輯的架構,相比于傳統數據采集系統減小了占用空間,內部采用AXI 進行通信,通信的實時性和傳輸速度更好,可以更好地滿足高速采集的要求。把采集高速光柵信號的過程放在Zynq7000 PL部分完成,從而不再需要專門的光柵采集模塊。把低頻的模擬信號采集結果鎖存起來,和高頻的數字信號采集結果合成一組128 bit數據,保證了多路信號的同步性。
Zynq7000是Xilinx推出的全可編程SoC,內部集成了雙核ARM Cortex-A9 處理器和Artix-7 系列FPGA,其中FPGA部分被稱作PL(Programmable Logic),ARM部分被稱作PS(Processing System),兩者之間通過AXI進行通信[9-11]。
系統的整體框圖如圖1所示,光柵傳感器的信號和ADC采集到的數據傳輸到Zynq7000的PL部分,在PL部分進行相應的處理,然后通過AXI把數據存儲到DDR3當中,Zynq7000的PS通過千兆以太網把數據發送到上位機。頻率測量程序和電機控制程序集成在PL部分。可以由上位機發出控制指令決定數據采集的開始、暫停、終止等。
圖1 系統框圖
光柵傳感器輸出的信號是相位相差90°的A,B兩路信號以及光柵零位信號Z[12]。為了方便遠距離傳輸,光柵傳感器內部的轉換電路已經把光柵信號轉換成差分信號。如圖2所示,A+,A-,B+,B-,Z+,Z-為光柵傳感器輸出的差分信號,經過差分信號接收芯片SN75175把差分信號轉換成單極性信號。單極性信號A,B,Z輸入到Zynq7000內部進行整形、細分、辨向、計數。
圖2 光柵信號接收電路
1.1.1 光柵整形程序設計
光柵信號進入到Zynq7000內部后,為了消除可能影響計數結果的因素,首先利用數字方法對信號進行整形[13]。影響計數結果的主要因素是信號中存在的毛刺干擾,如圖3(a)所示,方波信號為光柵信號,毛刺信號為干擾,這些疊加在原始光柵信號上的毛刺干擾,可能會被誤認為信號的上升沿,因此需要整形去除這些干擾。整形的原理為:Zynq7000內部的時鐘頻率比毛刺和光柵信號的頻率要高得多,毛刺比光柵信號持續的時間短很多。在時鐘上升沿檢測輸入信號的電平,只有持續一定時間不發生改變的電平信號才被當作光柵信號,否則認為是毛刺干擾。整形過后的光柵信號如圖3(b)所示,與圖3(a)相比,圖3中的毛刺信號明顯減少,提高了測量的準確性。
圖3 光柵信號
1.1.2 細分辨向程序設計
光柵每移動一個柵距,輸出兩個相差90°的方波信號。為了更精密地測量,需要對光柵信號進行細分處理[14]。假設光柵正向移動時,A相超前B相90°,如圖4(a)所示。A,B兩相信號的電平狀態改變順序為(1,0)→(1,1)→(0,1)→(0,0)→(1,0),當光柵反向移動時,如圖4(b)所示,電狀態變化順序為(0,1)→(1,1)→(1,0)→(0,0)→(0,1)。可以根據兩路信號狀態的變化順序,辨別光柵移動的方向。在一個周期內,A,B兩路的狀態發生了4次改變,每次狀態改變時,輸出一個脈沖信號,就可以實現光柵信號四細分。
圖4 光柵傳感器輸出信號
1.1.3 可逆計數器設計
可逆計數器的作用是記錄輸入脈沖的個數,根據脈沖個數計算光柵移動的距離。計數器如圖5所示。計數器主要有以下幾個功能:鎖存功能、計數模式選擇、等間距計數。鎖存功能用來鎖存當前計數器的計數結果,供軟件讀取。在圖5中,當latchFlag信號由低電平變成高電平時,lockedValue會保存cntValued的值,直到下一個鎖存脈沖到達時才會改變。計數器的計數模式主要有兩種:絕對計數模式和相對計數模式。絕對計數模式是記錄光柵現在的位置與光柵零位之間的絕對位置,需要光柵零位信號Z到達時,計數器才開始工作。相對計數模式記錄光柵現在的位置與開始位置之間的關系,不需要光柵零位信號,只要有光柵脈沖計數器就開始工作。等間距計數主要應用在有特殊采樣要求的儀器上,比如雙嚙儀。雙嚙儀采集光柵數據并不是每個光柵信號都需要采集,而是間隔一定的數據采集一次,在圖5中,可以用setValue預先設置間隔的大小,當到達計數結果等于setValue時,會產生一個計數完成標志位供軟件查詢。
圖5 計數器
模擬量采集模塊選擇德州儀器的ADS8584S,這是一款16位的模數轉換器,可以同步采集4路模擬信號,最大采樣頻率可以達到330 kS/s。模數轉換電路如圖6所示,DB15-DB0是16位數據輸出通道,AVCC是5 V模擬電源,VDD是3.3 V數字電源,Signal1、Signal2是兩路模擬信號的輸入。可以通過引腳ADC_RANGE的輸入狀態控制模擬量的輸入范圍,當ADC_RANGE=1時,輸入范圍為±10 V,當ADC_RANGE=0時,輸入范圍為±5 V。本設計采用并行輸出,16位采樣結果輸入到Zynq7000內部。
圖6 ADS8584S電路圖
ADS8584S芯片的時序圖如圖7所示。CONVSTA和CONVSTB連接在一起控制4路模擬量采集的起停,在CONVSTA和CONVSTB的上升沿啟動ADC采樣,同時采集4 路模擬信號,BUSY信號高電平時,表示ADC正在轉換數據,當BUSY信號由高電平變為低電平時表示轉換完成,可以讀取采樣結果。當CS和RD信號為低電平時,依次讀取AIN_1,AIN_2,AIN_3,AIN_4通道的數據值。
圖7 ADS8584S時序圖
在Zynq7000內部實現ADS8584S讀取狀態機如圖8所示。在圖8中,初始狀態為IDLE,所有狀態在復位信號RST=1時都會進入IDLE狀態,當RST=0、CONVST信號的上升沿到達時,會啟動A/D轉換,進入START狀態,在START狀態時,當BUSY信號變成高電平時會進入BUSY狀態,BUSY狀態表示ADC正在轉換,還未完成所有通道的轉換,當轉換完成時,BUSY信號會變成低電平。CS/RD信號變成低電平后,FRSTDATA=1時,此時可以讀取轉換結果,系統進入READ狀態。Zynq7000會依次讀取每個通道的轉換結果,每讀取一個通道的結果后,CHANEL_CNT就會加1,當CHANEL_CNT=2’B11時,表示4個通道的結果已經讀取完成,之后會進入WAIT狀態,等待本輪采樣周期的結束,然后重新進入IDLE狀態,開始下一次采樣。
圖8 ADS8584S狀態機
頻率測量原理如圖9所示,其中被測信號為外部輸入的方波信號,高頻時鐘為Zynq7000內部時鐘信號。在方波信號上升沿對高頻時鐘脈沖計數,下一個上升沿到達時停止計數,假設被測信號的頻率為f1,高頻時鐘的頻率為f2,高頻脈沖個數為N,則:
圖9 頻率測量原理
(1)
由此可以計算出被測信號的頻率。
電機控制主要控制3個參數:電機輸入脈沖的頻率、電機使能信號和電機的轉向信號。電機使能信號和電機的轉向信號由FPGA的I/O口產生,通過高低電平進行控制。控制電機轉速的脈沖頻率由FPGA內部的時鐘產生。電機所需要的最高脈沖頻率為1 MHz,在FPGA內產生一個2 MHz的時鐘作為電機控的基準時鐘,還有一個可以設置分頻倍數的分頻器。當設置分頻倍數為N時,得到輸出脈沖的頻率為1/NMHz,實現電機調速。
以太網具有傳輸速率高、傳輸距離遠的特點,目前的計算機基本都具有網卡,均可以進行以太網通信,而不需要額外安裝相關接口驅動[15]。本設計選用Realtek公司的RTL8211E芯片,RTL8211E能夠支持10 M/100 M/1000 M以太網通信速率,可以根據微控制器支持的以太網通信速率自動調整自身通信速度,而不需要手動設置通信速度,同時支持RGMII/GMII接口。充分滿足本系統對以太網傳輸的要求。RTL8211E電路圖如圖10所示,圖中PHY_MDI接口連接到RJ45與PC機連接,ETH_RXD和ETH_TXD連接到Zynq7000,Y1為25 MHz的晶振,為RTL8211E工作提供時鐘。
圖10 RTL8211電路圖
Zynq7000 PS部分有以太網控制器,支持千兆以太網通信,因為采用裸機開發PS部分,所以使用LWIP協議棧,且使用RAW API。TCP 數據包的發送主要依賴于 tcp_write 和 tcp_output 兩個函數,tcp_write 將所需要發送的數據寫入TCP發送緩沖區等待發送,tcp_output 函數則將緩存區內數據包發送出去。
數據傳輸過程如圖11所示,計數器1~計數器4為光柵信號的采樣結果,每路光柵信號的計數結果為32位,計數器4和ADC的采樣結果共用一個32位的通道。為了保證信號的同步采集,把4路信號的計數結果合成一個128位數據。Zynq7000內部通過AXI進行通信,采集到的數據不能直接在Zynq7000內部通信,首先要把它轉換成AXI格式才能在Zynq7000內部通信。轉換成AXI-Stream之后的數據寫入128位寬的FIFO,通過DMA控制器把數據搬運到DDR3之中,每搬運1024個數據后,產生一個DMA中斷,Zynq7000的PS端啟動TCP傳輸把DDR3中的數據發送到上位機。
圖11 數據傳輸過程
在實驗驗證時,主要驗證各個模塊的功能是否正確和傳輸速度能否滿足要求。經驗證,各個模塊的功能可以實現預期功能。
以太網通信實驗時,主要測試以太網傳輸數據是否正確和傳輸速度能否滿足要求。測試以太網傳輸數據正確性時,在Zynq7000的PL不間斷循環構造32 bit 位寬的0~511的數據發送到上位機。在接收端統計接收到的數據,選取其中2000個數據,統計結果如圖12所示,在圖中接收到的數據逐次增加,每次增加到511后,數據歸零,然后再重新開始計數,可以得出以太網發送的數據和接收的數據完全一致。
圖12 以太網傳輸測試
測試以太網傳輸速度時,使用ADI公司的ADALM2000產生1~12 MHz的方波信號,在通信穩定后記錄以太網傳輸速度,測試結果如圖13所示。從圖13中可以看出,隨著采集速度逐漸增加,通信速度并未發生較大的波動,而是穩定在600 Mbit/s左右,可以確定設計的數據采集系統以太網通信速度能夠滿足要求。
圖13 以太網通傳輸速度
光柵采集實驗中,采集光柵信號的頻率為1~10 MHz。其中3 MHz光柵信號采集數據如圖14所示,圖中紅色圓圈中的數據為第1路光柵計數器的最低兩位,可以看出脈沖計數結果是逐次增加的,未出現數據丟失的情況。隨著采集系統采集速度的增加會出現數據的丟失的現象。由于計數器計數結果是逐次增加的,所以統計相鄰兩個數據之間的差值可以知道丟失數據的多少。對采集速率從1~10 MHz之間的數據進行統計,每組數據隨機抽取1000個連續的數據,統計相鄰數據之間的差值,統計結果如圖15所示。δ=0、1時,表示正常的采集數據,并未出現數據丟失,當δ=2時,表示兩個數據之間丟失一個數據的情況。從圖中可以看出當采集速度小于4 MHz時,不會出現數據丟失的情況。當采集速度大于4 MHz,隨著采集速度的增加,連續丟失一個數據的情況在增加,但是并未出現δ≥3的情況。說明采集結果只會出現丟失一個數據的情況,丟失一個數據表示少采集了一個光柵脈沖,由于光柵精度比較高,丟失一個信號仍能滿足精度要求,所以數據采集系統可以滿足同步采集4路光柵信號,每路10 MHz的采樣要求。
圖14 3 MHz光柵信號采集數據
圖15 相鄰數據差值統計
ADC性能測試主要測試ADC采集的精度能否滿足要求,采集到的數據是否能夠恢復原來信號的波形。精度測試時,以ADALM2000產生3 V的直流信號,選取2000次采樣結果,結果如圖16所示。從圖16中可以看出,采樣結果在3 V左右,最大值為3.00180 V,最小值為2.99936 V,平均值為3.00010 V,最大值誤差為0.00180 V,最大相對誤差為0.06%,可以滿足測量精度的要求。恢復信號的波形測試時,以ADALM2000產生兩路頻率為50 Hz,幅值為3.3 V,相位相差90°的正弦信號。Matlab恢復后的波形如圖17所示,從圖17中可以看出,兩路信號的幅值可以達到3.3 V,相位差能穩定地維持在90°,說明設計的ADC采樣狀態機能夠很好地采集模擬量。
圖16 3 V信號采樣結果
圖17 Matlab恢復數據波形
介紹了用于塑料齒輪傳動誤差試驗機的數據采集系統。經過實驗驗證,該系統可以同步采集4路頻率高達10 MHz的光柵信號,模擬信號的采集精度達到0.06%,控制程序可以較好地實現電機控制。彌補了傳統的數據采集系統的不足,滿足了塑料齒輪傳動誤差試驗機對數據采集系統的要求,也可以用于其他儀器光柵信號的采集,采用網絡通信,為以后儀器智能測量、遠程測量奠定了基礎,具有很好的應用前景。