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