信息化 频道

基于FPGA的RFID系统解码模块设计

    2.2 去干扰处理

    由于Disturbed_code是带干扰的曼彻斯特码,所以在进行曼彻斯特解码之前必须对数据进行消除干扰的处理,否则会导致曼彻斯特解码的错误。去干扰的原理是在取得帧同步以后使用430kHz(由50MHz时钟分频得到)时钟对Disturted_code信号进行采样,每个曼彻斯特码周期采样8次,每采样8次判断一次采样值中1的个数,若1的个数大于等于5则认为此曼彻斯特码周期内的数据为1,否则为0。这里是考虑在一个曼彻斯特码周期(曼彻斯特码频率为53.4kHz)内脉冲干扰只是很窄的一部分,所以我们将一个曼彻斯特码周期分为8个时间段,每个时间段采样一次来判断是1还是0,若8个时间段内1的个数多则此周期的曼彻斯特码为1,同理0的个数多则判为0。用430kHz是因为一个曼彻斯特码周期正好为8个430kHz脉冲周期。当然,此判断方法会使信号有一定的延迟,但时间很短,不影响识别速度。去干扰之后便得到纯净的曼彻斯特码。

    2.3 帧头检测

    本设计中使用的去除干扰的方法是建立在准确识别数据帧头的基础之上的,所以在进行去干扰处理之前必须进行帧头检测,精确的帧头检测对识别的正确性影响很大。SOF检测模块实现了帧头检测的功能。考虑到帧头部分也会有干扰,本设计采用下面的相关算法来识别帧头。具体实现算法如下:

     

    其中X[71:0]为一个72位的移位寄存器,以480kHz(此频率时钟正好将一个曼彻斯特码周划分为9个时间段)的频率将Disturbed_code移入其中,⊙为按位同或,ffffffe0000003fe00H是理想情况下帧头(11100010)经过480kHz采样速率采样所得到的值。当Z为最大值时,说明此时接收的帧头与期望值匹配达到非常好的,这就准确的找到了帧头的位置。

    2.4 曼彻斯特解码

    经过前面的处理,我们已经得到理想的曼彻斯特码,下面介绍曼彻斯特解码模块的解码过程。前面已经取得了帧同步,现在从第一个Manchester_code数据位的中间位置开始,以53.4kHz(此频率为1个曼彻斯特码周期)的频率将Manchester code移入串行移位寄存器N[1:0]中,采用下述方法实现解码。

    

    每2个53.4kHz信号周期判断一饮K的数值,当K=2时输出解码数据为1(曼彻斯特码10表示原码1),k=0时输出解码数据为0(即曼彻斯特码为01,表示原码0),每16个53.4kHz信号周期便可以得到一个字节的标签数据。这样直到帧尾出现便完成了曼彻斯特的解码工作。

    曼彻斯特解码后的数据同时送往图5中CRC校验模块进行校验和标签信息数据栈进行存储。若CRC校验正确,则会给出一个Data_ok的信号通知其它部分来读取此标签信息数据栈中的数据。到此为止便完成了整个上行信号的解码工作。

    此设计经过FPGA的验证,并结合本课题组成员的模拟电路部分实现了RFID系统的正常工作,标签检测准确,读取速度快,每秒可以读50张标签,双天线作用距离可达1.5m。

    RFID系统采用非接触式射频识别技术,识别速度快、安全性高,应用于超市、矿下工人身份识别等领域可大大提高效率和安全性,所以RFID有着广泛的应用前景。

 

0
相关文章