光柵電子細分電路設(shè)計
3.4 差值電路的實現(xiàn)
IC—NV是IC—HAUS公司的單片A/D轉(zhuǎn)換芯片,能夠?qū)斎氲膕inθ/COSθ信號進行插值,從而輸出增量的正交編碼信號。IC—NV芯片的內(nèi)部結(jié)構(gòu)及外圍電路如圖5所示。其內(nèi)部集成了高速的比較器和毛刺濾波器,以保證信號的高速轉(zhuǎn)換和完整性;輸入/輸出引腳具有ESD防護,且與TTL、CMOS電平兼容,接口簡單可靠。
sinθ/cosθ信號首先進入芯片內(nèi)部的前置儀表放大器。其增益取決于輸入信號的電平及SG0、SGl引腳的狀態(tài)。通過將SGO、SGl置為高、低電平或開路來選擇不同的增益值,以適應峰峰值為20 mV~1.3 V的差分信號輸入(單端信號峰峰值可達2.6 V)。本系統(tǒng)中,sinθ和cosθ信號使用單端輸入方式,峰峰值為2 V,直流偏置為2.5V。因此在使用時需將NS和NC引腳與VREF(2.5 V)相連,以消除直流偏置。
前置儀表放大器輸出的信號經(jīng)過高速轉(zhuǎn)換核心和轉(zhuǎn)換間距控制單元后進入后端信號處理單元。該單元根據(jù)不同的插值因子(Interpolat-ion Factor,IPF)輸出相應的方波信號。9種不同的插值因子可以通過SF0和SFl引腳來配置,最高可以實現(xiàn)每個輸入信號周期的64倍細分。
4 光柵信號處理電路的FPGA實現(xiàn)
4.1 NioslI處理器及其硬件平臺
NioslI處理器是A1tera公司在2004年推出的第二代軟核CPU。NiosII軟核處理器基于哈佛總線結(jié)構(gòu),采用32位RISC單周期指令集、32位數(shù)據(jù)總線及流水線技術(shù),支持32個外部中斷和可配置的MMU/MPU。NiosII有3個型號:e型、s型、f型。它們分別是針對不同應用要求優(yōu)化的:e型的面積最小,只需550個LE(邏輯單元);f型的性能最高,最大性能可達200DMIPs以上;s型又叫標準型,其面積與性能介于e型與f型之間。
NiosII處理器通過AvaIon總線與外設(shè)進行連接。Avalon接口規(guī)范定義了主端口和從端口所需的信號和時序。它能以最少的邏輯資源來實現(xiàn)數(shù)據(jù)總線復用、地址譯碼、等待周期產(chǎn)生、地址對齊、中斷優(yōu)先級產(chǎn)生及仲裁等操作。用戶可以根據(jù)主從端口的規(guī)范在SOPC Builder中創(chuàng)建各種自定義組件,并掛到Avalon總線上。NiosII處理器支持多達256條用戶定制指令,極大地提高了軟件的執(zhí)行效率。這些優(yōu)勢使得NiosII系統(tǒng)成為可裁剪、可調(diào)整、可擴展的系統(tǒng),更使其成為軟硬件緊密融合的系統(tǒng)。
系統(tǒng)中選用CycloneII系列的FPGA EP2C5Q208,并且擴展了64 Mb SDRAM HY57 V641620和16 Mb Flash AMD29LVl60來構(gòu)建NiosII系統(tǒng)。 EP2C5系列FPGA內(nèi)部擁有4 608個Le和119 808位的RAM,并提供2個PLL和158個用戶引腳,完全能夠滿足本系統(tǒng)設(shè)計的需求。系統(tǒng)選用主動串行配置芯片EPCS1,該非易失性芯片具有1 Mb的內(nèi)部容量,遠大于EP2C5Q208所支持的最大配置文件的大小。當系統(tǒng)上電時,EPCS就可將配置數(shù)據(jù)重載到FPGA的配置RAM中。
4.2 二次細分辨向組件設(shè)計
二次細分辨向組件的設(shè)計包括組件邏輯的硬件描述文件和軟件文件的設(shè)計。其中,硬件描述文件由任務邏輯模塊、寄存器描述模塊和Avalon接口模塊組成。軟件文件由HAL驅(qū)動文件的源文件(my_avalon-quadrature.c)、頭文件(my_avalon_quadrature.h)和寄存器訪問的頭文件(my_avalon_quadrature_regs.h)組成。這些文件的組織結(jié)構(gòu)如圖6所示。
使用SOPC Builder中的Component Editor工具添加相應的硬件描述文件、信號接口和軟件文件,便可以方便地將用戶自定義組件集成到系統(tǒng)元件庫中去。為了實現(xiàn)NiosII處理器與自定義組件之間交換數(shù)據(jù),首先需要定義一組寄存器,并對寄存器進行地址分配,同時根據(jù)Aval-on總線的時序?qū)拇嫫鬟M行存取操作。本組件中定義的脈沖計數(shù)寄存器Countnum_reg[31:0]和方向寄存器Dir_reg均為只讀寄存器,且相對地址分別為O和1。
任務邏輯設(shè)計是自定義組件設(shè)計過程中最重要的部分,主要實現(xiàn)插值芯片輸出正交信號的四細分,同時更新Countnum_reg和Dir_reg的值。如圖7所示,正交信號A2/B2的相位關(guān)系隨著光柵位移傳感器運動方向的不同而改變。當光柵讀數(shù)頭正向移動時,A2相信號超前于B2相信號90°,A2/B2兩信號的電平變化規(guī)律為OO→10→11→01→00。當光柵讀數(shù)頭反向移動時,A2相信號滯后于B2相信號90°,A2/B2兩信號的電平變化規(guī)律為00→01→ll→10→00。這樣,就可以通過判斷電平之間的狀態(tài)變化來決定是否對計數(shù)器進行操作。當狀態(tài)變化為00→10→11 →01→00時,對Countnum_reg進行加1操作,并將Dir_reg置1;而當變化為00→01→ll→10→OO時,則對Countnum_reg進行減1操作并將Dir_-reg置0。若狀態(tài)保持不變,則計數(shù)器和方向值保持不變。其余狀態(tài)之間的變化,規(guī)定為無效。
上述的4個狀態(tài)之間的轉(zhuǎn)移可以通過設(shè)計有限狀態(tài)機來實現(xiàn)。系統(tǒng)主時鐘clk選用50 MHz,能夠保證正確采樣狀態(tài)之間的變化。該有限狀態(tài)機由5個狀態(tài)組成,它們分別是idle、00、01、l1、10。采用one—hot的編碼方式,可以有效地避免競爭冒險現(xiàn)象,提高抗干擾能力。其綜合生成的電路無論是在效率還是穩(wěn)定性方面都能夠滿足設(shè)計要求。任務邏輯模塊的仿真結(jié)果如圖8所示。
評論