基于NiosII的光柵細分電路系統(tǒng)設計
任務邏輯設計是自定義組件設計過程中最重要的部分,主要實現(xiàn)插值芯片輸出正交信號的四細分,同時更新Countnum_reg和Dir_reg的值。如圖7所示,正交信號A2/B2的相位關系隨著光柵位移傳感器運動方向的不同而改變。當光柵讀數(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)之間的轉移可以通過設計有限狀態(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)定性方面都能夠滿足設計要求。任務邏輯模塊的仿真結果如圖8所示。本文引用地址:http://www.butianyuan.cn/article/163018.htm
若記錄相鄰兩次Countnum_reg的差值,便可通過以下的公式計算光柵讀數(shù)頭移動的距離:
式中:N為插值芯片的插值因子,d為光柵柵距。
4.3 二次細分測速組件設計
光柵讀數(shù)頭的移動速度應在一定范圍之內(nèi),否則會造成丟數(shù)等誤差。測速組件主要對讀數(shù)頭的移動速度進行實時監(jiān)控,從而實現(xiàn)過速報警。其設計過程與二次細分辨向組件類似。移動速度的計算公式如下:
式中:d為光柵柵距,f為插值芯片輸出正交信號的頻率,
N為插值芯片的插值因子,n為t時間內(nèi)正交信號的個數(shù)。由此可知,只要測出頻率f即可求得移動速度。
寄存器描述文件中定義了4個寄存器,如表1所列。
任務邏輯設計采用測周期的方法,即根據(jù)Div_reg中的分頻因子對待測信號tclk進行分頻,在分頻后信號的高電平內(nèi)記錄標準信號sclk的個數(shù),并在其下降沿將計數(shù)值存到COUnt_reg中。同時,在其低電平內(nèi)將Countready_reg置1,通知AVaIon主設備計數(shù)值已就緒。待測頻率的計算公式如下:
該方法可能會產(chǎn)生±1個標準脈沖的測量誤差,由于系統(tǒng)標準頻率與待測正交信號相比為高頻信號,因此能實現(xiàn)高精度的頻率測量。
4.4 LCD控制組件的設計
本系統(tǒng)中使用的LCD為128×64的點陣黑白屏,其內(nèi)嵌控制器為KS0107/KS0108。該液晶模塊的D/I引腳用于指示模塊處理數(shù)據(jù)/命令;R/W引腳控制讀/寫操作;EN引腳為使能信號,CSl/CS2為屏幕的左右半屏控制器片選信號。
本系統(tǒng)在NiosII IDE開發(fā)環(huán)境中設計應用程序,其程序流程如圖9所示。
5 結論
①與傳統(tǒng)的分立元件細分電路相比,本系統(tǒng)中使用了專用的插值芯片IC―NV,不但提高了系統(tǒng)集成度,而且在簡化PCB設計的同時提高了細分數(shù)。NiosII嵌入式處理器使用,既提高了系統(tǒng)性能,又降低了費用。利用Component Editor工具設計的二次細分辨向模塊、測速模塊及LCD控制模塊,可以隨時根據(jù)需要更改驅動程序并可重復利用,實現(xiàn)了系統(tǒng)的集成和模塊化。
②仿真結果表明,該系統(tǒng)設計簡單靈活,穩(wěn)定性高,實時性強,可通過調節(jié)插值芯片的插值數(shù)實現(xiàn)高達64倍的細分。
DIY機械鍵盤相關社區(qū):機械鍵盤DIY
評論