新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 一种用于光盘伺服控制系统的通用滤波器的设计

一种用于光盘伺服控制系统的通用滤波器的设计

作者:时间:2009-12-18来源:网络收藏

1 引 言
  通常,DVD/CD盘片在高速旋转时,由于表面翘曲、不圆度或者外界干扰等因素的存在,使读数光束焦深范围(简称读数光点)对目标信迹的跟踪扫描出现误差。对此,CD、DVD机中设置了,以实现读数光点对目标信迹的动态跟踪。该系统以PID(比例微积分)闭环控制理论为基础,采用数字滤波的方式实现。该的实现原理如图1所示。

本文引用地址:http://www.amcfsurvey.com/article/188452.htm

  图1中,Gc(z)为控制,G(s)为读写系统的传递函数,R(s)为预期输出响应,C(s)为实际输出响应。整个闭环控制系统实现的核心是,它通过改善误差(FE)信号的幅相频特性来实现控制方案。这里,由于类型和阶数与G(s)密切相关,为了保证的通用性,必然要设计一种通用可配置的滤波器,这正是本文所要讨论的重点。
2 系统设计
2.1 设计原理
数字滤波器可以用式(1)的差分方程来表示:

其中,x(n)为输入序列,y(n)为输出序列,ak、bk为各自的系数。其对应的系统函数为:

当ak不都为0时,就是递归结构的IIR滤波器;当ak都为0时,就是非递归结构的FIR滤波器。
2.2 设计方法
  由于传统的滤波器设计都与滤波器的类型密切相关,不同的类型采用不同的乘加网络结构实现,因此,无法满足通用的要求。但从滤波器的原始差分表达式(如式(1)所示)可知,FIR和IIR的区别仅在于ak是否为零,两者都进行累加乘积计算,这一特点决定了可以采用编程来配置滤波器的类型和阶数,再用状态机控制累计乘积的方式实现滤波器,从而达到阶数、类型都可配置的目的。
  由上述分析可知,所有的x(k)、y(k)、ak、bk均要由存储器送向运算单元进行计算。若采用以运算单元为中心的冯诺依曼结构,依次从存储器中取数据的做法,则必然会使速度受到很大影响。因此,我们借用Harvard结构将指令和数据分开编址、存取的做法,将x(k)、y(k)和ak、bk分别存放在不同的存储器中,单独编址,加快数据处理速度。同时,考虑到x(k)、y(k)可能同时对存储器读写,将读、写数据总线分开,进一步提高性能。图2就是采用类Harvard结构设计的滤波器的结构图。
  图2中共包含一条指令流,三条数据流。指令流用于配置滤波器的和实现滤波器的读写控制;数据流的D―BUS1用于Y(n)的写回,D―BUS2用于X(n)、Y(n)的读出,Coef―BUS用于滤波器系数的写回和读出。因为系数存储单元和X(k)、Y(k)存储单元都采用双端口SRAM,所以,可同时进行读、写操作。


  运算单元采用算术累加器(MAC)实现。MAC由乘法器和加法器组成,其中,乘法器因为速度的限制,通常采用基于查找表(LUT)的并行分布算法(DA)实现,但该算法占用硬件资源较多,对实现的滤波器的阶数有一定限制,在本电路中不宜采用。在综合考虑面积和速度两方面因素后,最终选用Booth乘法器实现。整个电路的硬件结构图如图3所示。

  其控制逻辑中的配置寄存器(32bits)设计如表1所示。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭