周維波,楊志軍
(廣東工業大學 廣東省計算機集成制造重點實驗室,廣東 廣州 510006)
基于TMS320F2812的正交編碼脈沖采集實現
周維波,楊志軍
(廣東工業大學 廣東省計算機集成制造重點實驗室,廣東 廣州 510006)
為分析高速高精控制系統中運動物體的定位情況,設計一個基于TMS320F2812的正交編碼脈沖的數據采集系統。一方面,在TMS320F2812上編寫數據采集程序;另一方面,采用VC++語言設計上位機應用程序。實驗證明,上位機應用程序實現數據的圖形顯示和文本導出等基本功能,并且上位機應用程序顯示的圖形與其他軟件顯示的圖形一致。該數據采集系統電路簡單可靠,適用于能夠產生正交編碼信號的傳感器的數據采集。
TMS320F2812;數據采集;正交編碼脈沖;上位機應用程序
在高準確高速的運動系統中,如果采用光柵位移傳感器來對系統中的運動物體進行位置檢測,高準確度與高速度都使得光柵位移傳感器的脈沖頻率提高。在控制系統中,端子板通過對編碼器反饋信號等進行光耦隔離,防止燒壞控制主板及I/O口,起到保護主板的作用。這樣,由于光耦隔離的存在,光柵位移傳感器產生的脈沖的頻率不能大于端子板光耦所允許的最大頻率。所以,為了分析高精高速系統中運動物體的定位情況,就要使光柵位移傳感器產生的脈沖不經過端子板而被其他采集系統采集。
很多學者都采用過DSP芯片(如TMS320F2812,TMS320C5402)進行數據采集,但是他們都是結合各種AD轉換器進行模擬量的采集[1-4]。除此,在完成數據采集后,一些學者用TMS320F2812進行FFT變換等[5-7]。簡明遠等[8]設計的數據采集系統由AD采樣電路、FPGA電路和DSP電路組成。另外,還有學者利用TMS320F2812內置的AD轉換器進行數據采集[9-10]。
本文針對正交編碼脈沖設計了數據采集系統,它運用TMS320F2812的正交編碼脈沖電路(QEP)[11]對光柵位移傳感器信號進行處理,電路簡單可靠。而且,采用VC++語言設計了上位機應用程序實現數據的圖形顯示和文本導出等基本功能。
宏微平臺控制結構如圖1所示,宏動平臺被運動控制卡PMAC的第1軸(1#)控制,微動平臺被第2軸(2#)控制。宏動平臺以旋轉電機作為動力源,通過絲桿將旋轉運動轉化為直線運動,并相對于標尺光柵運動;微動平臺以壓電陶瓷作為動力源,相對于宏動平臺作直線運動。這樣,宏動平臺與微動平臺在PMAC的控制下可以在一個方向上做往返直線運動。

圖1 宏微平臺控制結構
宏微平臺通過宏動平臺完成長距離的運動,在整個運動過程中,微動平臺通過光柵位移傳感器的反饋隨時對宏動平臺進行補償。因此,在宏動平臺與微運平臺的共同作用下,宏微平臺能夠快速并精確地定位。
在這個控制系統中,光柵位移傳感器發出的脈沖首先通過端子板,然后到達PMAC卡。所以,當宏動平臺相對于標尺光柵高速運動時,由于端子板的光耦隔離的影響,PMAC卡不能實現對光柵位移傳感器信號的完全補獲。因此,為了分析宏動平臺在高速運動時的定位情況,設計基于TMS320F2812的數據采集系統,如圖2所示。TMS320F2812的最大振蕩頻率可以達到150MHz,即允許光柵位移傳感器產生的脈沖的最大頻率為37.5 MHz,遠遠大于光耦所允許的最大頻率。

圖2 數據采集結構
在圖2中,脈沖1與脈沖2組成正交編碼脈沖,即兩個頻率可變,有固定1/4周期相位差(即90°)脈沖序列。所以,可以通過兩路脈沖的先后次序確定電機的轉動方向,根據脈沖的個數與頻率,分別確定電機的角位置和角速度。
另外,在對高速高精運動系統中的運動物體進行位置采集時,如果采集頻率過大,就會導致采集樣本總量增加,從而使TMS320F2812不能完全存儲所有數據。如果采集頻率過低,又會使得采集的數據不能全面地反映運動物體的位置情況。由于只需要獲得運動物體在目標位置點附近的運動情況,所以,只通過TMS320F2812對運動物體到達目標位置前進行編碼輸入脈沖上下沿的計數,而不進行數據采集。一旦運動物體到達目標位置,TMS320F2812就啟動數據采集,這樣,就可以設置合適的采樣頻率來得到運動物體全面的定位情況。
TMS320F2812的事件管理模塊(EVA和EVB)包括通用定時器、正交編碼脈沖電路(QEP)。運用這兩個模塊能實現正交編碼脈沖的采集。
通用定時器具有4種計數操作,在定向遞增/遞減計數模式下,通用定時器2(或4)可以與QEP電路結合使用,此時QEP電路為定時器提供時鐘和方向輸入。但不能通過通用定時器的預定標電路設置預定標參數,即當采用QEP電路提供輸入時,預定標參數總是1。而且,由于通用定時器在QEP電路的上升沿和下降沿都進行計數,QEP電路產生的時鐘頻率是每個QEP輸入的通道頻率的4倍,因此,QEP輸入頻率必須小于等于內部CPU時鐘的1/4。
TMS320F2812事件管理模塊中的QEP電路的方向檢測邏輯確定哪個脈沖相序列超前,然后產生一個方向信號作為通用定時器2(或4)的方向輸入。如果CAP1/QEP1(對于EVB是CAP4/QEP3)引腳的脈沖輸入是相位超前脈沖序列,那么定時器就進行增計數;相反,如果CAP2/QEP2(對于EVB是CAP5/ QEP4)引腳的脈沖輸入是相位超前脈沖序列,那么定時器就進行減計數。
通用定時器2(或4)總是從它的當前計數值開始計數,并根據CAP1/QEP1(對于EVB是CAP4/QEP3)引腳和CAP2/QEP2(對于EVB是CAP5/QEP4)引腳的脈沖輸入情況進行增計數或減計數。增計數情況下,在通用定時器的計數器增計數到周期寄存器值時,定時器的計數器清0,繼續重新增計數到周期寄存器的值。減計數情況下,在通用定時器計數減計數到0時,定時器重新裝載周期寄存器的值,并繼續減計數。當通用定時器計數器與周期寄存器匹配一個時鐘周期后,周期中斷標志位置位。如果周期中斷未被屏蔽,將產生一個周期中斷請求。
3.1程序總體設計
在圖1所示的控制系統中,PMAC卡給宏動平臺發送命令使其到達目標位置,但是,當宏動平臺快速到達目標位置后會產生定位偏差。如果光柵尺的分辨率為0.05μm,由于16位通用定時器的最大計數值為65536,最大偏差可以達到3276.8μm。
分析宏動平臺在高速運動時的定位情況,只需當宏動平臺到達目標位置時才啟動數據采集。這樣,在存儲空間有限的情況下能夠提高有用數據的采集量,并能夠在較寬的采集頻率范圍中選擇所需要的采集頻。
TMS320F2812的程序流程圖如圖3所示。為了確定宏動平臺是否到達目標位置,采用了通用定時器2進行正交編碼脈沖上下沿計數的計數,使事件管理模塊的QEP電路作為該通用定時器的時鐘源,并采用通用定時器2的周期中斷進行周期中斷的計數。當通用定時器2的周期中斷次數滿足要求后,禁止通用定時器2的中斷并啟動通用定時器1進行數據采集,即在通用定時器1的周期中斷函數中將通用定時器2的計數值存到內存中。

圖3 數據采集程序流程圖
為了排除圖1所示的控制系統在其他干擾的情況下錯誤地觸發周期中斷,因此用于通用定時器2的初值不能設置在0或者周期寄存器值附近。
在完成數據采集后就可以通過外部中斷或條件執行程序,采用串行通信接口(SCI)實現TMS320F2812到上位機的發送。在數據發送程序中,通過查詢發送緩沖寄存器準備好標志位把數據從TMS320F2812發送到上位機。當該位置位時,表示發送緩沖寄存器已準備好接收下一個字符,此時,向發送緩沖寄存器寫入要發送的數據就能實現數據發送。而且,寫數據到發送緩沖寄存器操作將自動清除發送緩沖寄存器準備好標志位。所以,每次發送下一個字符時,都需等待發送緩沖寄存器準備好標志位重新置位。
3.2寄存器配置
設置好通用定時器2的計數器初值和周期寄存器能夠確定宏動平臺是否到達目標位置,設置好用于通用定時器1的計數器初值和周期寄存器能夠確定數據采集的頻率。
為了實現通用定時器的周期中斷,在主程序中需要設置外圍中斷擴展PIE的相關寄存器,如PIE中斷使能寄存器、CPU中斷使能寄存器等。在通用定時器的中斷程序中將周期中斷標志位清零,將PIE中斷應答寄存器的相應位清零。
另外,需要在主程序中設置好串行通信接口的相關寄存器。其中,SCI通信控制寄存器(SCICCR)可以設置SCI的數據格式,SCI控制寄存器1(SCICTL1)可以設置SCI發送器與接收器的使能位,SCI波特率選擇寄存器(SCIHBAUD、SCILBAUD)可以設置波特率。
通過TMS320F2812采集來的數據只是以通用定時器的計數值保存在存儲空間中,所以,為了實現實際位置值與相應的采樣時間并存的存儲方式,并且實現采樣曲線的繪制和數據的文本導出,設計了基于VC++的應用程序界面。另外,為了實現TMS320F2812與上位機的串口通信,在上位機應用程序中還需要對上位機的串口進行設置。
數據采集應用程序界面中菜單項“文本文檔”的子菜單項“讀文本作圖”能夠讀取文本數據作圖,子菜單項 “輸出文本”能將數據以文本的形式存儲起來。另外,菜單項“作圖”能對上位機應用程序保存的數據進行作圖。通過“串口設置”對話框,可以根據TMS320F2812的串行通信數據格式設置好上位機的串行通信數據格式。
通過“其他設置”對話框,可以根據采樣頻率以及光柵尺的分辨率設置采樣中的時間比例與位置比例,從而得到所需要的數據。而且,通過修改邏輯_視口比例中的參數使數據圖形能夠在應用程序中得到較好的顯示。
在圖1所示的控制系統中,使宏動平臺以很快的速度進行運動,并用該數據采集系統在宏動平臺到達目標位置后進行數據采集。完成數據采集后,在上位機軟件上顯示的曲線如圖4(a)所示;當上位機軟件中實現文本輸出后,在辦公軟件Excel中得到的曲線如圖4(b)所示。

圖4 實驗曲線
由圖可得,上位機軟件能成功實現數據的文本導出,從而可以在其他數據處理軟件中進行數據處理。另外,上位機軟件能成功實現數據的圖形顯示,并且與其他軟件上顯示的圖形是一致的。
本文介紹了一種基于TMS320F2812的數據采集系統,電路簡單可靠,并能通過上位機軟件實現圖形顯示與數據文本輸出等基本功能。該數據采集系統針對正交編碼脈沖信號而設計,所以,能夠產生正交編碼信號的傳感器都可以作為該采集系統的信號源。
[1]那云虓,劉桂禮,劉剛.基于AD73360和TMS320F2812的數據采集系統設計[J].測控技術與儀器儀表,2008(10):92-96.
[2]馬俊,陳學煌.基于DSP的多路數據采集系統設計[J].測控技術與儀器儀表,2007(12):79-81.
[3]蒲琪,楊保亮,代祥俊.基于TMS320F2812的電子萬能材料試驗機測控系統[J].儀表技術與傳感器,2007(10):53-55.
[4]張龍,周端,司棟森,等.基于TMS320F2812高速數據采集系統的設計與實現[J].電光與控制,2007,14(1):129-132.
[5]萬浩平,馬進,王鋒.基于TMS320F2812的高精度數據采集及FFT實現[J].工業控制計算機,2009,22(4):54-55.
[6]潘偉,王漢功,張霞.基于TMS320F2812 DSP的智能CAN節點設計[J].自動化儀表,2005,26(10):36-37.
[7]姚冉中,潘宏俠.基于TMS320F2812的設備狀態監測與分析儀的實現[J].儀表技術與傳感器,2007(2):8-10.
[8]簡遠鳴,晏福平,劉念,等.基于DSP的高速數據采集與處理系統[J].微計算機信息,2009,25(2):130-132.
[9]郭濤,張英祥,陳峰.基于TMS320F2812的數據采集監測系統設計[J].機械工程與自動化,2010(1):7-8.
[10]孫元敏,尹立新,楊書濤.基于TMS320F2812的高速數據采集處理系統[J].計算機工程,2009,35(2):242-244.
[11]萬山明.TMS320F2812xDSP原理及應用實例[M].北京:北京航空航天大學出版社,2007:141-147.
(編輯:劉楊)
Implementation of quadrature encoder pulse acquisition based on TMS320F2812
ZHOU Weibo,YANG Zhijun
(Guangdong University of Technology,Guangdong Provincial Key Laboratory of Computer Integrated Manufacturing System,Guangzhou 510006,China)
In order to analyze the localization of moving objects in high-speed and high-precision control systems,a data acquisition system based on TMS320F2812 has been designed to collect quadrature encoder pulses.For one thing,a data acquisition program was written in TMS320F2812;for the other,PC application was designed with VC++language.The experiment demonstrates that basic functions can be realized through PC application,such as graphical data display and text export.Moreover,the graph shown on the PC application complies with that displayed on other software.The data acquisition system has simple and reliable circuit and is suitable for the data acquisition of sensors that are capable of generating quadrature encoder pulses.
TMS320F2812;data acquisition;quadrature encoder pulse;PC application
A
1674-5124(2016)05-0075-04
10.11857/j.issn.1674-5124.2016.05.016
2015-10-10;
2015-11-20
國家973計劃項目(2011CB013104)國家自然科學基金項目(U1134004,50905033)廣東省科技計劃項目(2010A090200017,2012B011300067)
周維波(1988-),男,湖南邵陽市人,碩士研究生,專業方向為測試控制。