一種用于光盤(pán)伺服控制系統的通用濾波器的設計

發(fā)布時(shí)間:2010-8-18 10:56    發(fā)布者:lavida
關(guān)鍵詞: 光盤(pán) , 伺服 , 通用濾波器
1 引言  

通常,DVD/CD盤(pán)片在高速旋轉時(shí),由于表面翹曲、不圓度或者外界干擾等因素的存在,使讀數光束焦深范圍(簡(jiǎn)稱(chēng)讀數光點(diǎn))對目標信跡的跟蹤掃描出現誤差。對此,CD、DVD機中設置了伺服控制系統,以實(shí)現讀數光點(diǎn)對目標信跡的動(dòng)態(tài)跟蹤。該系統以PID(比例微積分)閉環(huán)控制理論為基礎,采用數字濾波的方式實(shí)現。該伺服控制系統的實(shí)現原理如圖1所示。  


  
圖1中,Gc(z)為控制濾波器,G(s)為光盤(pán)讀寫(xiě)系統的傳遞函數,R(s)為預期輸出響應,C(s)為實(shí)際輸出響應。整個(gè)閉環(huán)控制系統實(shí)現的核心是濾波器,它通過(guò)改善誤差(FE)信號的幅相頻特性來(lái)實(shí)現控制方案。這里,由于濾波器類(lèi)型和階數與G(s)密切相關(guān),為了保證伺服控制系統的通用性,必然要設計一種通用可配置的濾波器,這正是本文所要討論的重點(diǎn)。  

2 系統設計  

2.1 設計原理  

數字濾波器可以用式(1)的差分方程來(lái)表示:  


  
其中,x(n)為輸入序列,y(n)為輸出序列,ak、bk為各自的系數。其對應的系統函數為:  


  
當ak不都為0時(shí),就是遞歸結構的IIR濾波器;當ak都為0時(shí),就是非遞歸結構的FIR濾波器。  

2.2設計方法  

由于傳統的濾波器設計都與濾波器的類(lèi)型密切相關(guān),不同的類(lèi)型采用不同的乘加網(wǎng)絡(luò )結構實(shí)現,因此,無(wú)法滿(mǎn)足通用的要求。但從濾波器的原始差分表達式(如式(1)所示)可知,FIR和IIR的區別僅在于ak是否為零,兩者都進(jìn)行累加乘積計算,這一特點(diǎn)決定了可以采用編程來(lái)配置濾波器的類(lèi)型和階數,再用狀態(tài)機控制累計乘積的方式實(shí)現濾波器,從而達到階數、類(lèi)型都可配置的目的。  

由上述分析可知,所有的x(k)、y(k)、ak、bk均要由存儲器送向運算單元進(jìn)行計算。若采用以運算單元為中心的馮諾依曼結構,依次從存儲器中取數據的做法,則必然會(huì )使速度受到很大影響。因此,我們借用Harvard結構將指令和數據分開(kāi)編址、存取的做法,將x(k)、y(k)和ak、bk分別存放在不同的存儲器中,單獨編址,加快數據處理速度。同時(shí),考慮到x(k)、y(k)可能同時(shí)對存儲器讀寫(xiě),將讀、寫(xiě)數據總線(xiàn)分開(kāi),進(jìn)一步提高性能。圖2就是采用類(lèi)Harvard結構設計的濾波器的結構圖。  


  
圖2*包含一條指令流,三條數據流。指令流用于配置濾波器的和實(shí)現濾波器的讀寫(xiě)控制;數據流的D—BUS1用于Y(n)的寫(xiě)回,D—BUS2用于X(n)、Y(n)的讀出,Coef—BUS用于濾波器系數的寫(xiě)回和讀出。因為系數存儲單元和X(k)、Y(k)存儲單元都采用雙端口SRAM,所以,可同時(shí)進(jìn)行讀、寫(xiě)操作。  

運算單元采用算術(shù)累加器(MAC)實(shí)現。MAC由乘法器和加法器組成,其中,乘法器因為速度的限制,通常采用基于查找表(LUT)的并行分布算法(DA)實(shí)現,但該算法占用硬件資源較多,對實(shí)現的濾波器的階數有一定限制,在本電路中不宜采用。在綜合考慮面積和速度兩方面因素后,最終選用Booth乘法器實(shí)現。整個(gè)電路的硬件結構圖如圖3所示。  


  
其控制邏輯中的配置寄存器(32bits)設計如表1所示。  


  
需要特別說(shuō)明的是,在對MEM1和MEM2存放數據時(shí),濾波器系數和X(k)、Y(k)必須是一一對應的,從而使每次讀數據時(shí)的讀地址相同,簡(jiǎn)化尋址單元的設計。濾波器的運作是由狀態(tài)機(邏輯單元)控制的,流程如下:  

(1)初始化系數存儲單元,根據SP算出X(k)、Y(k)在MEM2中的分界地址SP+N和SP+M+N;  

(2)從MEM1、MEM2的(SP+j)單元讀出數據送MAC計算,MEM2讀出的數據寫(xiě)回(SP+j-1)單元,j為0時(shí)的數據無(wú)效,不寫(xiě)回;當j為M+N時(shí),轉步驟(4);  

(3)j加1,重復步驟(2);  

(4)一次Y(k)計算完成。將當前ADC的輸入寫(xiě)回到MEM2的(SP+M+N)單元;  

(5)將本次計算所得的Y(k)送SP+M,j復位為0,重復步驟(2)。  

3 實(shí)現與仿真  

按照上述設計思想,用Verilog對系統進(jìn)行RTL描述,代碼層次結構如圖4所示,其中,F—TOP為頂層wrapper模塊,連接MAC、STATEM、SRAM三個(gè)子模塊。MAC實(shí)現圖3中虛線(xiàn)所示的Booth乘加器,得到的乘積為32 bits數,然后經(jīng)過(guò)舍入調整(rounding)將其轉化為16 bits數;STATEM模塊實(shí)現上文提到的控制流程;SRAM模塊由系數SRAM和數據SRAM(存放X(k)、Y(k))組成,分別對應圖3的MEM1、MEM2,為了方便后面的驗證,直接調用Xilinx的SRAM單元RAMB4—S8—S8。  


  
代碼使用synopsys VCS進(jìn)行仿真,通過(guò)debussy的PLI接口生成fsdb波形文件。在debussy中對波形(圖5所示是波形仿真圖)進(jìn)行分析。當前的配置寄存器的值為0x0000018f,為三階IIR濾波器。READ—EN為讀使能信號,低電平有效。STATE—WE—LOC為寫(xiě)使能信號,低電平有效。RADDR—LOC和WADDR—LOC是存儲單元的地址,地址范圍從0到5,與三階IIR濾波器對應;當WADDR—LOC為5時(shí),寫(xiě)入的是X(k),下一時(shí)鐘周期變?yōu)?,寫(xiě)入Y(k)(標尺線(xiàn)所對的值0x000a,已經(jīng)過(guò)rounding處理)。XIN—LOC和YIN—LOC是MAC的輸入數據。STATE—LOC和YIN—LOC是MAC的輸入數據。CUR—STATE為狀態(tài)機的狀態(tài)變化,可以看出,與前面的狀態(tài)含義和狀態(tài)機實(shí)現策略一致。這里,讀寫(xiě)地址在整個(gè)運算過(guò)程中都占用兩個(gè)時(shí)鐘周期是為了保證MAC運算的正確完成,當X(k)和計算所得的Y(k)寫(xiě)回時(shí),不涉及MAC運算,因此,只分配一個(gè)時(shí)鐘周期。  


  
為了確保濾波器以及整個(gè)控制系統設計的正確性,我們選用Xilinx Spartan2的XC2S50系列做FPGA驗證。首先,在synplify中生成網(wǎng)表文件(edf),然后,通過(guò)Xilinx ISE生成帶延時(shí)信息的單元網(wǎng)表文件(v)和線(xiàn)延時(shí)文件(sdf),用于在VCS中進(jìn)行后仿真,最后生成FPGA下載文件(bit)。XC2S50硬件占用情況如表2所示。表2所示是FPGA資源分配表。  


  
該濾波器在光盤(pán)伺服控制電路中的應用表明,激 光頭的恢復時(shí)間、穩態(tài)誤差等計數參數均滿(mǎn)足實(shí)際要求。該單元可直接用于伺服芯片的聚焦尋跡模塊。  

4 結束語(yǔ)  

文中介紹了一種通用可配置濾波器的設計和實(shí)現。通過(guò)對該濾波器的配置可實(shí)現不同階數和類(lèi)型的濾波器,從而加大以數字濾波為基礎的伺服控制系統應用的靈活性。
本文地址:http://selenalain.com/thread-22079-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页