新聞中心

首頁 >> 新聞資訊 >> 新聞資訊

CPLD多通道編碼器數據采集系統
發布時間:2012-11-10 | 來源: | 瀏覽 1501 次

 旋轉編碼器是一種測量旋轉角度的測量傳感器,通常采用兩個相位差90度的方波編碼方式,其旋轉方向由兩個波形的相位差決定。當輸出波形A超前于輸出波形B如圖1,則可認為是正方向旋轉,反之,若輸出波形A滯后于輸出波形B如圖2,則可認為是反方向旋轉,當旋轉方向發生變化時,其輸出信號產生鏡像翻轉。

 
 
  編碼器的精度由旋轉一周產生方波數決定,當旋轉一周可產生2000個方波時,每一個方波周期表示為360°/2000。但為了提高旋轉編碼器的測量精度,系統將A、B兩相的各個沿進行了計數,從而將測量精度提高了四倍,相當于最小的測量角度為360°/8000。 
 
  旋轉編碼器廣泛應用于旋轉角度的測量,以及可以將各種參數角度化的參數的測量,通過與各種機械結構的組合,可以測量多種物體的邊緣形狀、各種機械裝置的結構偏差等。 
 
  本論文主要根據旋轉編碼的輸出信號特點,提出了采用CPLD技術,來完成6個旋轉編碼器信號測量,采用CPLD技術,設計適合于PC機的數據采集卡的硬件以及軟件,并給出了實際調試及應用結果。 
 
  1數據采集系統硬件設計 
 
  1.1系統結構 
 
  數據采集系統由旋轉編碼器信號接口、光電隔離和信號校正、編碼計數以及PC接口組成,系統結構如圖4。旋轉編碼器信號接口將旋轉編碼器的信號通過一定的接插件引入到采集卡中,隨后通過光電隔離與信號校正,送入到由CPLD器件實現的編碼器計數。宿主機通過ISA總線來對編碼器的計數進行控制與讀取。
 
 
  1.2光電隔離和信號校正 
 
  旋轉編碼器的控制電源可以在較大范圍內變化使用,為了確保系統的安全可靠,必須進行光電隔離。 
 
  由于旋轉編碼器的輸出信號頻率達100kHz,所以應選用高速的光電隔離器件,如具有1M數據速率的4N135/136,或10M數據速率的4N137等。同時為了防止噪聲引起的信號抖動,應采用斯密特觸發器進行抗抖和信號校正。 
 
  1.3編碼器計數 
 
  編碼器計數由CPLD器件來完成。CPLD是復雜可編程邏輯器件的簡稱。系統選用Xilinx生產的XC9500系列CPLD,它是一種FLASH編程型的可編程邏輯器件。該產品采用先進的FastFLASH技術,該技術采用一個雙層的多晶硅、兩層金屬技術,可提供高達10000次以上的編程/擦寫壽命周期,和傳統存儲技術EPROM和E2PROM相比有著明顯的優勢。采用EPROM存儲技術雖可提供優良存儲器單元且功耗較低,但它不可電擦除;采用E2PROM技術雖可電擦除,但需要較大的存儲器。而CPLD的FastFLASH技術是對EPROM技術的電擦除擴展。 
 
  和普通的可編程邏輯器件相比,CPLD具有以下優點:操作靈活、使用方便;高性能的邏輯能力;存儲元胞密度高;可靠性高;開發迅速;經久耐用;能實行電擦除;能為器件提供快速編程;采用ISP(系統同編程)技術。 
 
  XC9500系列中可供選用的片子有多種,從旋轉編碼器的測量、片子宏單元的多少以及調試的方便,系統最終選用了XC95108PC84。
 
  XC95108的機械特性和電氣特性如下:宏單元數為108個;最大端口數為108個;引腳至引腳延時7.5ns;系統頻率為83.3MHz;支持單個OE(輸出使能)控制;支持JTAG(IEEE邊界掃描標準1149.1)協議。特別值得一提的是,XC95108采用了ISP技術。因此,對器件進行編程不再需要硬件編程器。只要一根下載電纜通過下載軟件與元件的編程接口連接即可實現。并且,無論產品處在設計或制造的哪個環節,還是產品已提交給用戶以后,都可以改寫器件的邏輯功能,也就是可以通過軟件對硬件進行升級。 
 
  六個通道的旋轉編碼器計數由兩個XC95108完成,每個XC95108完成三個編碼器通道的編碼計數以及相關控制命令的接受和計數值的輸出。
 
 
  1.4PC機接口 
 
  六個通道的編碼器信號通過光電隔離和信號較正送入兩片XC95108后,XC95108分別對三個通道的計數信號進行正反相計數,其計數結果分別存放在不同的寄存器中,供宿主機PC讀取。根據設計的實際需要,PC機接口采用ISA總線。 
 
  PC機接口要完成對ISA總線的地址譯碼,數據的緩沖和數據的雙向傳送(控制命令發送和編碼器計數值的讀取)。所有的這些功能同樣由一片CPLD器件(同樣選擇XC95108)完成。
 
 
  2CPLD功能實現 
 
  系統采用3片XC95108分別實現6個通道旋轉編碼器的編碼計數以及與PC計算機的接口。這里主要介紹一個通道的編碼計數實現。CPLD功能實現根據支持軟件的不同可選擇采用原理圖方式、VHDL編程以及兩者混合使用三種模式,本系統設計采用VHDL語言編程方式。 
 
  為了確保旋轉編碼器的編碼精度,采用對輸出信號A、B的各沿進行編碼計數方式,這意味著要提取輸出信號A、B的各個跳變。
 
  根據A,B變化前后的狀態,可以得到旋轉方向、變即計數器計數方向Dire。從而可以有下列計數程序。
 
 
  這樣就實現了一個通道的編碼計數。 
 
  3系統的控制軟件設計 
 
  3.1虛擬設備驅動程序 
 
  應用系統要使用該采集卡,必須要有相應的軟件支持,這各支持可以是直接將復雜的控制方式告訴用戶,讓用戶直接對該卡操作,這樣大大增加了程序的復雜性,也可以采用動態連接庫的方式,這里該系統提供了虛擬設備驅動程序的接口方式。 
 
  對于不同的工作平臺,可以有不同的設備驅動程序模型,對于Windows9x可以為VxD,對于Windows2000為WDM,對于Windows98既可以是VxD,也可以是WDM。而編寫的方式和借助的工具也各不相同。對于編寫VxD可以借助于VtoolsD,對于編寫WDM可以借助于DriverWorks,或者直接用Microsoft DDK(Windows9x和Windows2000均可)?,F以編寫VxD為例,簡述本系統的虛擬設備驅動程序的編寫。 
 
  VxD是Vixtual x Device的簡寫,此處x表示Something。但VxD的功能遠非僅僅虛擬某個硬件設備。有些VxD確實用來虛擬設備,而有些雖然用作驅動程序,卻并不虛擬任何設備。而另外有些VxD只是給其他應用程序或VxD提供服務。不管如何,它的作用在于對Windows操作系統的功能進行擴展。開發VxD常用的方法是用匯編語言,或者用匯編語言和C語言混合編程,而本設計借助于Compuware推出的VtoolsD,從編寫、編譯VxD到應用程序調用VxD都不涉及匯編語言,直接用C++語言來實現。思路如下: 
 
  (1)運用VtoolsD的QuickVxd,快速生成VxD基本框架。在“Device Parameters”欄填上VxD的名稱(要遵循C語言規則),本研究中設為SJCJ。為了能將該軟件動態加載,注意選中Dynamically Loadable。對VxD有動態加載和靜態加載方法。動態加載是由應用程序或別的VxD來加載,而靜態加載是在Windows初始化時加載,直至Windows結束運行時才卸載。如果VxD(如本例)是為某些特定應用程序服務,則最好不要靜態加載,因為當應用程序不調用它時,它所占的那部分內存就浪費了。為了能向Win32應用程序提供服務,控制消息W32-DEVICEIOCONTROL應選中。在“Output Files”欄選擇輸出地址目錄,輸出SJCJ.h文件、SJCJ.cpp文件和SJCJ.mak文件。 
 
  (2)根據需要在SJCJ.h和SJCJ.cpp添加相應的類和函數(SJCJ.mak用來指導編譯程序對源程序進行編譯,不要變更),其添加規則與C++的規則完全一樣。本程序所要實現的是要對某個指定的I/O端口進行完全監視,并且采集相關數據,所以另外添加了一些與相關的類和函數。 
 
  3.2應用程序對VxD的調用 
 
  按照傳統方法,調用VxD一般要用匯編語言,但通過W32-DEVICEIOCONTROL控制消息,可以實現Win32API對VxD的直接調用。剛才在Quick Vxd中已將該消息選中,系統就會自動加載Virtual DWORD OnW32DeviceIoControl函數,該函數用來處理Win32API的調用問題。換言之,當Win32應用程序加載VxD、調用W32 DeviceIocontrol API以及卸載VxD時,將觸發函數OnW32DeviceIoControl,從而實現數據的交換。Win32應用程序通過調用函數CreateFile可以調用SJCJ.VxD;通過調用函數CloseHandle可以卸載SJCJ.VxD。 
 
  4調試結果 
 
  多通道旋轉編碼器數據采集系統完成后,先后在不同的系統中進行了應用測試,取得了較好的實際效果。下面該系統應用于“具有交叉支撐的三大件轉向架的平面形位偏差”測試為例作簡要說明。 
 
  鐵路車輛應用具有交叉支撐的三大件轉向架后,左右側架被彈性固定。由于各種因素,不可能使左右側架完全正位。從而使實際導框的中心與名義中心不一致。雖然輪對的承載鞍與導框間有間隙,但由于摩擦力巨大,輪對不能輕易活動,導框的實際中心的偏差會造成輪對的平均(統計概率)定位中心的偏差。研究表明這種偏差會不同程序地影響車輛的線路上的運行狀態,引起轉向架的不對稱磨耗,實際情況下我們用軸距偏差、對角線偏差等來控制轉向架的正位狀態。 
 
  為此采用機械結構結合多個旋轉編碼器來測量軸距偏差、對角線偏差等來控制轉向架的正位狀態。 
 
  為此采用機械結構結合多個旋轉編碼器來測量軸距偏差、對角線偏差,從而保證將這些偏差控制在一定范圍內,減少轉向架的不對稱磨耗。該系統選用10個日本光洋公司出產的旋轉編碼器TRD-N-RZ2000,旋轉一周能產生2000個方波,而且最大的響應頻率達到100kHz。該系統用兩塊多通道旋轉編碼器數據采集卡,同時采集10個計數值。使用表明,可以很好的實現系統的要求,采集數據誤差為±1,即測量精度為360°/8000。 
 
  5結論 
 
  采用CPLD技術來實現多通道編碼器數據采集系統是切實可行的,由于采用了ISP和JTAG技術,修改和編程都很方便,所以通過對程序的修改,可以使該數據采集系統適合于多種編程方式的編碼器,從而使該系統的應用場合更加廣泛。
 
     威海迪控電子科技有限公司位于美麗的人類宜居城市威海,是一家專門開發、研制、生產光、機、電一體化精密檢測儀器的高科技企業。專長于工業傳感器、檢測及自動化技術產品,主要產品有光電傳感器、增量編碼器、絕對值編碼器、拉線編碼器、光柵尺、磁柵尺、球柵尺、數顯表、角度儀、信號采集控制板、聯軸器等。產品主要應用于機床行業、電機行業、試驗機行業、船舶及車輛行業、紡織業、航空航天行業、電梯、電子電器行業、自動化機械、包裝機械、印刷機械、塑料機械、高校及科研院所等。迪控公司始終堅持“技術領先、質量可靠”的生產經營理念,以完善的售前售后服務、技術支持等竭誠為廣大用戶服務TEL:0631-5265188

聯系我們 | 公司介紹 | 投訴建議
版權所有2010威海迪控電子科技有限公司 魯ICP備10208242號
技術支持:燕之廬
曰韩有码在线观看_在线看免费观看日本av_欧美日韩一区不卡在线观看