基于NiosII的光柵細分電路系統設計
任務邏輯設計是自定義組件設計過程中最重要的部分,主要實現插值芯片輸出正交信號的四細分,同時更新Countnum_reg和Dir_reg的值。如圖7所示,正交信號A2/B2的相位關系隨著光柵位移傳感器運動方向的不同而改變。當光柵讀數頭正向移動時,A2相信號超前于B2相信號90°,A2/B2兩信號的電平變化規律為OO→10→11→01→00。當光柵讀數頭反向移動時,A2相信號滯后于B2相信號90°,A2/B2兩信號的電平變化規律為00→01→ll→10→00。這樣,就可以通過判斷電平之間的狀態變化來決定是否對計數器進行操作。當狀態變化為00→10→11 →01→00時,對Countnum_reg進行加1操作,并將Dir_reg置1;而當變化為00→01→ll→10→OO時,則對Countnum_reg進行減1操作并將Dir_-reg置0。若狀態保持不變,則計數器和方向值保持不變。其余狀態之間的變化,規定為無效。
上述的4個狀態之間的轉移可以通過設計有限狀態機來實現。系統主時鐘clk選用50 MHz,能夠保證正確采樣狀態之間的變化。該有限狀態機由5個狀態組成,它們分別是idle、00、01、l1、10。采用one―hot的編碼方式,可以有效地避免競爭冒險現象,提高抗干擾能力。其綜合生成的電路無論是在效率還是穩定性方面都能夠滿足設計要求。任務邏輯模塊的仿真結果如圖8所示。本文引用地址:http://www.j9360.com/article/163018.htm
若記錄相鄰兩次Countnum_reg的差值,便可通過以下的公式計算光柵讀數頭移動的距離:
式中:N為插值芯片的插值因子,d為光柵柵距。
4.3 二次細分測速組件設計
光柵讀數頭的移動速度應在一定范圍之內,否則會造成丟數等誤差。測速組件主要對讀數頭的移動速度進行實時監控,從而實現過速報警。其設計過程與二次細分辨向組件類似。移動速度的計算公式如下:
式中:d為光柵柵距,f為插值芯片輸出正交信號的頻率,
N為插值芯片的插值因子,n為t時間內正交信號的個數。由此可知,只要測出頻率f即可求得移動速度。
寄存器描述文件中定義了4個寄存器,如表1所列。
任務邏輯設計采用測周期的方法,即根據Div_reg中的分頻因子對待測信號tclk進行分頻,在分頻后信號的高電平內記錄標準信號sclk的個數,并在其下降沿將計數值存到COUnt_reg中。同時,在其低電平內將Countready_reg置1,通知AVaIon主設備計數值已就緒。待測頻率的計算公式如下:
該方法可能會產生±1個標準脈沖的測量誤差,由于系統標準頻率與待測正交信號相比為高頻信號,因此能實現高精度的頻率測量。
4.4 LCD控制組件的設計
本系統中使用的LCD為128×64的點陣黑白屏,其內嵌控制器為KS0107/KS0108。該液晶模塊的D/I引腳用于指示模塊處理數據/命令;R/W引腳控制讀/寫操作;EN引腳為使能信號,CSl/CS2為屏幕的左右半屏控制器片選信號。
本系統在NiosII IDE開發環境中設計應用程序,其程序流程如圖9所示。
5 結論
①與傳統的分立元件細分電路相比,本系統中使用了專用的插值芯片IC―NV,不但提高了系統集成度,而且在簡化PCB設計的同時提高了細分數。NiosII嵌入式處理器使用,既提高了系統性能,又降低了費用。利用Component Editor工具設計的二次細分辨向模塊、測速模塊及LCD控制模塊,可以隨時根據需要更改驅動程序并可重復利用,實現了系統的集成和模塊化。
②仿真結果表明,該系統設計簡單靈活,穩定性高,實時性強,可通過調節插值芯片的插值數實現高達64倍的細分。
DIY機械鍵盤相關社區:機械鍵盤DIY
評論