劉 斌,陳 新,陳新度,杜 雪,蔡 念,呂元俊,王 晗
(廣東工業(yè)大學 機電工程學院 廣東省微納加工技術與裝備重點實驗室 ,廣州 510006)
?
基于NIOS的絕對光柵編解碼系統(tǒng)設計*
劉斌,陳新,陳新度,杜雪,蔡念,呂元俊,王晗
(廣東工業(yè)大學 機電工程學院 廣東省微納加工技術與裝備重點實驗室 ,廣州 510006)
摘要:為了實現(xiàn)絕對光柵尺的快速解碼,提高絕對光柵解碼的實時性,建立了片上Nios絕對光柵編解碼系統(tǒng)。首先,使用Verilog hdl語言編寫了光柵編碼采集的前端CCD和AD驅動。接著,將轉換后的數(shù)據送到后端,以EP2C5T144C8為核心處理器的FPGA上的硬件加速模塊,獲得光柵條紋編碼信息。然后,利用sopc技術,在實現(xiàn)Avalon數(shù)據接口ip核的基礎上,搭建絕對光柵編碼采集和處理平臺,最后,在NIOS II IDE軟件開發(fā)環(huán)境中,編寫生成偽隨機碼絕對位置查詢數(shù)據庫和解碼程序。實驗結果表明:此編解碼系統(tǒng),在解碼速度為2000幀/s條件下,精度為7μm,基本解決面陣做采集幀速不夠的問題,并有較好的實時性,有效地降低了開發(fā)成本,為絕對光柵的開發(fā)提供了一個新的途徑。
關鍵詞:NIOS ;驅動采集;絕對光柵尺;解碼
0引言
在現(xiàn)代數(shù)控自動加工行業(yè)中,精密電移平臺的精確定位,多數(shù)采用光柵尺作為其位移位置反饋的核心部件,絕對光柵尺因在數(shù)控機床上電后得到的就是絕對位置,與采用增量光柵尺作為反饋部件的數(shù)控機床相比,簡化了操作,提高了效率,因此應用前景更廣[1]。
絕對光柵尺把高精度位移量反饋給數(shù)控系統(tǒng),其關鍵是:光柵讀數(shù)采集到絕對編碼條紋信息,數(shù)據可靠,實時性高,采用面陣作為前端采集部件,因數(shù)據量龐大,幀速難于達到應用需求,而且還需專用數(shù)字信號處理芯片DSP完成大量的圖像處理運算,實時性難于有效控制,成本也較高[2]。
因此本文提出基于Nios的絕對光柵編解碼系統(tǒng)設計,具體如下:
(1)充分利用FPGA的并行處理的優(yōu)勢,完成前端光柵數(shù)據采集的CCD驅動和AD驅動;并采用硬件加速方法,使軟件實現(xiàn)的一些算法用硬件邏輯實現(xiàn),很好地解決了數(shù)據處理速度和存儲空間分配的問題,簡化了系統(tǒng)軟件設計,提高了實時性。
(2)利用FPGA的Sopc系統(tǒng)自由配置所需的資源,靈活性大,使更新或修改更加便捷,縮短了開發(fā)周期,提高了集成度。
該設計集軟硬開發(fā)于一體,降低了成本,同時實時性也達到了應用需求,為絕對光柵尺的開發(fā)提供了一個新的思路。
1系統(tǒng)設計原理
圖1 系統(tǒng)原理框圖
系統(tǒng)設計原理框圖如圖1所示,圖中的線陣CCD模擬信號由FPGA驅動獲得,線陣CCD從刻有絕對編碼的玻璃基板上采集編碼條紋,其中最小條紋寬度只有10μm,為進一步實現(xiàn)細分,我們采用20倍的光學放大系統(tǒng)進行放大,線陣CCD在FPGA驅動脈沖的驅動下,輸出離散的像點模擬信號,再經過AD芯片的模數(shù)轉換,在這里,AD驅動和CCD驅動采用同一基準時鐘,以保證信號的精確采樣,然后將轉換后的信號,送入FPGA里的硬件加速模塊,該模塊通過Verilog hdl語言編程實現(xiàn),由硬件二值化,條紋判斷,和串并轉換等子模塊組成,經過該硬件邏輯后的條紋信號在SOPC架構下,由負責系統(tǒng)處理器和外設之間的內聯(lián)Avalon總線,送往NIOS II內核處理器,最后在NIOS II IDE中完成絕對位置信息的解碼和顯示。
2硬件架構的實現(xiàn)
2.1編碼采集的實現(xiàn)
2.1.1線陣CCD驅動
編碼采集主要是針對絕對光柵編碼條紋明暗的采集,條紋采集質量將直接影響絕對光柵的解碼精度,而條紋采集質量將受到線陣CCD驅動設計優(yōu)劣的影響,本文CCD采用 TCD1209D,它是一款典型的高靈敏度,低暗電流的單溝道線陣CCD,內含2088個像素單元,該器件正常工作需要5路驅動信號,其驅動信號為:轉移脈沖SH,移位脈沖F1,F(xiàn)2,復位脈沖RS,及其鉗位脈沖CP ;并且各路驅動信號必須滿足圖1所示的時序關系;由圖可知CCD信號輸出每幀數(shù)據的分布情況是:首先是32個啞元像素,接著是2048個有效像素,最后是8個啞元像素[3-4]。SH的周期稱為行周期,行周期應大于等于2088個轉移脈沖φ1的周期Tφ1。只有行周期大于2088Tφ1,才能保證SH在轉移第2幀信號時第1幀信號能全部轉移出器件。
2.1.2AD9804驅動
AD9804集相關雙采樣,自動增益,和A/D轉換為一體的10位轉換精度的轉換芯片;CCD模擬信號進入AD9804以后,首先進行直流重建,輸入鉗位,相關雙采樣(CDS),VGA增益放大后進行AD轉換,在輸出時鐘dataclk的控制下輸出10位精度的像素數(shù)據,圖2是CDS時序,圖3是線性鉗位時序,由時序圖可知cds和鉗位時序必須保證與ccd輸出信號精確同步,與CCD輸出信號采用統(tǒng)一的時鐘保證輸出與采樣同步,由輸出CCD信號可知,有效范圍內的像素輸出才是解碼需要的輸出,為此,重新定義了輸出采樣時鐘fifowclk。
圖2 cds時序
圖3 線性鉗位時序
2.2硬件加速模塊
AD轉換后的數(shù)據在由內核讀取之前,需要前期的預處理,才能由內核讀取,以解決幀速慢,實時性的問題,所謂硬件加速,就是把用軟件解決需要耗費大量時間的一些處理,交給硬件去做,以充分利用FPGA的并行性,提高處理速度。硬件處理主要有三大模塊,硬件二值化(levelto_two),條紋判斷(strip_judge),串并轉換(stringto_parall),硬件二值化主要是把AD轉換過來的數(shù)字信息進行二值判定,當數(shù)據值大于某個閾值時判定為1,代表該像素為亮,反之,為0,代表為暗,而條紋判斷主要是明暗條紋的判斷,根據ccd像元尺寸14μm,和激光刻蝕柵紋的間距10μm,以及20倍的光學放大系統(tǒng),得到每條條紋當中所占的像素數(shù)至少為14個,我們以大于12個亮的像素數(shù),判斷該條紋為明紋,反之為暗紋。解碼需要的是16位的解碼數(shù)據,而串并轉換正好是實現(xiàn)16位的編碼條紋數(shù)據連續(xù)讀取的模塊,負責將單個條紋的數(shù)據,緩沖為16個條紋數(shù)據供nios內核讀取。
2.3Avalon數(shù)據接口IP的自定義
Avalon總線為Altera公司為Sopc系統(tǒng)開發(fā)的一種專用內部總線,用于連接Nios II軟核處理器與外設,是處理器和外設的傳輸通道,外設依據Avalon總線規(guī)范,實現(xiàn)對外設的讀寫,主要的讀寫控制信號有:Chipselect片選信號,Byteenable字節(jié)對齊信號,read,write讀寫控制信號和readdata 和 writedata等,為讀取解碼所需條紋信息,編寫定義了read16 ip核,為實現(xiàn)16位編碼條紋的解碼顯示;編寫定義用于顯示的display ip核,由于NIOS內核是32位的數(shù)據總線,與從端口外設進行數(shù)據交互時,存在數(shù)據寬度的匹配的問題;而Avalon地址對齊分為主,從靜態(tài)地址對齊,和動態(tài)地址對齊兩種方式,當主端口對具有靜態(tài)地址對齊特性的從端口尋址時,所有從端口數(shù)據與靜態(tài)主端口地址邊界對齊,動態(tài)地址對齊是提供一種動態(tài)管理傳輸數(shù)據的服務,當主端口對有動態(tài)總線特性的從端口尋址時,所有從端口數(shù)據在主端口地址空間按連續(xù)字節(jié)對齊[5],在這里,我們display Ip核和read16 ip核都采用靜態(tài)地址對齊的方式,即才用讀取低位有效數(shù)據高位補0的方式,實現(xiàn)條紋數(shù)據的讀取。
3SOPC設計
圖4 Nios處理平臺
利用QUARTUS II SopcBuilder根據采集與解碼需求,搭建NIOS II 硬件平臺[6-7],該系統(tǒng)SOPC部分主要包括NIOS II 軟核處理器,鎖相環(huán)Pll,及Sdram控制器,Epcs控制器,和自定義的兩個ip模塊,display,和read16模塊;生成NIOS的硬件處理平臺,各模塊的搭建如圖4所示,其中包含CCD和AD芯片驅動模塊,和前端硬件加速部分等。
4Niso II程序設計
NIOS II 是Altera特有的基于通用FPGA架構的軟CPU內核。具有速度快,高度的靈活性和可配置性及設計流程簡單等特點,由于NIOS II處理器有3種可選類型:NIOS/F,NIOS/E,NIOS/S.而 NIOS II/E占FPGA資源最少,但性能低,NIOS/S性能和資源消耗介于NIOS/E型和NIOS/F型之間,而系統(tǒng)硬件資源有限,實時性必須得到保證,故本文選用NIOS/E型完成相應的硬件平臺設計。Nios II軟件開發(fā)環(huán)境是NIOS II IDE,內嵌在QUARTUS II設計工具中,該SDK基于GNU C/C++ 編譯器和Eclipse IDE,絕對光柵的位置的解碼實際上是通過查詢編碼數(shù)據庫實現(xiàn),而編碼數(shù)據庫則是根據玻璃基板上的絕對編碼條紋的激光刻蝕方式相應編碼生成,在這里我們的刻蝕,以10μm一條編碼條紋,按照16位偽隨機碼的生成原理刻蝕,故我們添入sopcbuilder生成的.ptf文件建立相應工程后,編寫相應的偽碼生成和顯示的應用程序,NIOS II IDE實際上自動建立了2個工程,1個是用戶應用程序工程和HAL系統(tǒng)庫工程,HAL為NIOS II IDE為用戶提供的包含所有與硬件處理相關接口信息的硬件抽象層(HAL),我們通過查閱生成的與目標系統(tǒng)相關的system.h系統(tǒng)描述文件,該文件含有各模塊的屬性和寄存器地址信息[8-14]。內核Nios II讀取相應地址的數(shù)據,以供下一步處理。
圖5 部分數(shù)據處理代碼
在系統(tǒng)中NIOS II 程序的任務,除了生成解碼數(shù)據庫外,還要對條紋數(shù)據的進行讀取和解碼操作的顯示,NIOS II 軟核讀取條紋數(shù)據有中斷和查詢方式,實驗中,為提高cpu效率,條紋編碼數(shù)據的采用中斷的方式讀取,在自編的ip核read 16中,我們已經編寫生成了相應中斷標志寄存器irq,用于監(jiān)聽內核中斷,為實現(xiàn)解碼的循環(huán)顯示,和避免重復數(shù)據的錯誤解碼,我們在中斷的處理程序中必須及時將中斷標志位的清除,圖5是主函數(shù)處理的相關代碼。程序初始化時調用Mint(16)函數(shù),完成數(shù)據庫的創(chuàng)建,此后在While(1)循環(huán)中等待中斷的到來,而在read_isr中斷處理函數(shù)中完成數(shù)據的讀取,解碼和標志位的清除,由于硬件邏輯中處理了軟件實現(xiàn)的部分代碼,軟件處理指令數(shù)大大減少,降低了解碼處理的時間。提高了絕對光柵編解碼系統(tǒng)的實時性。
5實驗結果與分析
圖6 ccd驅動的仿真結果
由于線陣ccd最小光積分時間為1000ns,故我們在QUARTUS II軟件開發(fā)環(huán)境中,在滿足最小光積分時間1000ns時,編寫Verilog代碼,通過計數(shù)器的計數(shù)和電平變換,生成CCD的驅動,圖6 modersim里的仿真結果。與圖2和圖3比較,時序滿足驅動要求。圖7是CCD實測輸出,滿足ccd驅動輸出要求,其幀頻為2000fps,每幀解碼速度為500μs。遠高于采用面陣時120fps圖像處理的采集幀頻。
圖7 ccd輸出信號
偽隨機碼的解碼基于光柵母尺的編碼,實驗中玻璃基板刻蝕條紋按照初始相位為0x0001,末相位為0x0000的16級M系列排列,其本原多項我們采用D16+D5+D3+D2+1,由本原多項式和初相生成可供解碼查詢的數(shù)據表如圖8所示。
圖8 查詢數(shù)據表
最右邊是16位編碼,最左邊是其實際絕對位置;光柵條紋的實時編碼數(shù)據的解碼由查表完成,由表可知其位置,加上誤差修正的像元點數(shù),和采用倍頻細分方法,精度可達7μm,不過TCD1209D其像元尺寸為14個μm,為提高測量精度的可靠性和可重復性,采用像元尺寸更小的線陣CCD或CMOS和放大系數(shù)更高的光學成像放大系統(tǒng)其精度可以進一步的提高。
6結束語
本文采用線陣CCD作為前端圖像采集部件,以FPGA Cyclone II EP2C5T144C8為核心處理器,在對絕對光柵編解碼原理研究的基礎上,完成了基于NIOS內核的光柵編碼采集和解碼的軟硬件設計,文中通過sopc技術,配置所需要的硬件模塊,并添加了用于解碼顯示和硬件加速的自定義ip核,較好地解決了不同時鐘域數(shù)據處理模塊間的數(shù)據流動,編寫相應的硬件驅動程序,在幀速達到2000幀/s條件下,精度為7μm,實時性滿足應用需求,極大地提高了開發(fā)靈活性。
[參考文獻]
[1] 盧國綱.絕對光柵尺和編碼器是當代位移傳感器的發(fā)展主流—CIMT2011 精密位移傳感器評述[J].世界制造技術裝備市場,2011(4):56-60.
[2] 范朝龍,王晗,劉強,等.精密絕對光柵尺的編碼采集系統(tǒng)研究[J].組合機床與自動加工技術,2014(11):78-81.
[3] 蔣斐,吳海波,程玉寶.基于相關雙采樣的線陣CCD信號采集電路的設計[J].光學與光電技術,2010,8(4):60-63.
[4] 李正剛,袁紅艷,吳一輝.通用線陣CCD采集系統(tǒng)設計[J].電子設計工程,2009,17(12):18-20.
[5] 林英撐,童曉華. FPGA嵌入式系統(tǒng)設計與開發(fā)指南[M].北京:中國電力出版社,2012.
[6] 孟令軍,尹維漢,彭晴晴,等,基于Nios II的圖像采集系統(tǒng)設計[J].電視技術,2013,37(9):59-60,86.
[7] 王延年,鄧毓.基于軟核Nios II的Sopc智能溫度變送器[J].電子測量技術,2012,35(1):85-88.
[8] 王強,文豐,任勇峰.基于FPGA的高速實時數(shù)據采集存儲系統(tǒng)[J]. 儀表技術和傳感器,2009,45(1):50-52.
[9] Altera Company. Nios2.1 CPU,Data Sheet V1.1[Z], 2002.9.
[10] Hong Lu,Li Yong Tan,Bo Lei,et al. A kand of linear array ccd drive frequency regulation technology [J].Advanced materials research,2010,139-141: 2279-2282.
[11] Wei jun C,Chun kuang T.Design of CCD Acquisition System Based on Nios Ⅱ[J]. Microcontrollers & Embedded Systems, 2012(8): 17.
[12] Lin M O, Tu T A N, Lei W, et al. Design of CCD Spectrum Data Acquisition System Based on SOPC [J]. Journal of Atmospheric and Environmental Optics, 2013(2): 12.
[13] WANG Lei-yang,LI Zheng-sheng,FENG Xiao-wei,et al.Research and development of high-accuracy device measuring clearance based on linear array CCD [J].Electronic Design Engineering ,2011,19(5):67-71.
[14] CHANG Liang-liang,WANG Guang-long,ZHANG Cheng-ji.Design of Image Acquisition and Storage System Based on SOPC[J].Measurement & Control Technology,2012,31(11):11-14
(編輯李秀敏)
Absolute Grating Encoding and Decoding System Design Based on NIOS
LIU Bin,CHEN Xin,CHEN Xin-du,DU Xue, CAI Nian, LV Yuan-jun,WANG Han
(School of Electromechanical Engineering,Guangdong Provincial Key Laborator of Micro-nano Manufacturing Technology and Equipment,Guangdong University of Technology,Guangzhou 510006,China)
Abstract:In order to realize the fast decoding absolute grating ruler, improve the real-time absolute grating decode, we established an on-chip Nios absolute grating encoding and decoding system. First of all, by using Verilog HDL language ,we encoding CCD and AD driver which acquisite front-end grating. Then, we take the converted data to the backend where taking the EP2C5T144C8 FPGA as the core processor of hardware acceleration module, we obtain grating stripe code information. Then, using the SOPC technology, based on the realization of Avalon data interface IP core,we build absolute grating code acquisition and processing platform, finally, in the NIOS II IDE software development environment, we write programs which can generate the database of the pseudorandom code absolute position to query and decode. The experimental results show that: This codec system get the accuracy of the 7μm in the decoding speed of 2000 frame/s conditions, basically solve the problem that the frame speed is inadequate by taking the plane array as the front-end acquisition, and has good real-time performance, effectively reduce the cost of development, provides a new way for the development of absolute grating.
Key words:Nios ; drive acquisition ;absolute grating ruler ;decode
中圖分類號:TH164;TG506
文獻標識碼:A
作者簡介:劉斌(1990—),男,江西贛州人,廣東工業(yè)大學碩士研究生,研究方向為絕對光柵尺編解碼,(E-mail)jxndgxylb@163.com;通訊作者:王晗(1980—),男,湖北鐘祥人,廣東工業(yè)大學副教授,博士,研究方向為超精加工與檢測技術,光學儀器設計,嵌入式控制系統(tǒng)設計,(E-mail)wanghangood@gdut.edu.cn。
*基金項目:廣東省微納加工技術與裝備重點實驗室(2011A060901021);省部產學研(2011A090200119)
收稿日期:2015-04-16
文章編號:1001-2265(2016)03-0112-03
DOI:10.13462/j.cnki.mmtamt.2016.03.031