曼彻斯特解密_曼彻斯特编码解码方法与流程

本发明涉及一种曼彻斯特编码解码方法,属于集成电路技术领域。

背景技术:

RFID在电子领域被广泛采用,解125KHz RFID编码可以通过专用芯片或者单片机软件来解决。使用专用芯片会增加硬件复杂度,增加生产成本,而通常的单片机软件解曼彻斯特编码都需要开启定时器的边沿捕捉,并存储高低电平的持续时间,通过高低电平的持续时间来判定翻转的电平是高还是低或是空跳转,这种方法需要边沿捕计时,并且考虑空闲跳变的干扰,浪费程序资源空间。

技术实现要素:

为了解决上述问题,本发明提供一种曼彻斯特编码解码方法,该方法仅需要1个定时器即可,只需要记录跳变时间,可以大大降低软件开销,节省RAM与ROM。

解决上述问题的技术方案为:一种曼彻斯特编码解码方法,包括以下步骤:

S1、起始帧读取,起始帧为连续N个1,因为停止位为0,紧随其后的起始帧必然为1,起始帧的第一个比特位必然为1个跳变,即在N个T0周期里,每隔1/2*T0必有跳变,有2*N-1个跳变边沿,在N*T0时间内检测是否有2*N-1个跳变,如果有则说明起始帧判定正确,此时读取数据并记录;

S2、数据帧读取,起始帧读取结束后立即进入数据帧读取阶段,延时大于1/2*T0小于T0,等待跳变边沿,跳变后的电平数据即为当前数据帧比特位数据;

S3、校验数据读取是否正确。

进一步地,S1中具体步骤为,设置起始帧有效跳变时间在20*T1~30*T1之间,如果在此区间内产生跳变,则起始帧有效计数加1,否则起始帧有效计数清零;如果起始帧有效计数计数值大于等于2*N-2,则进入数据帧读取阶段。

进一步地,S2中具体步骤为,起始帧读取完毕后,直接进入数据帧读取阶段,延时4/5*T0,即40*T1,等待边沿跳变,记录跳变后的电平数据并将数据计数器加1;数据计数器大于等于55个比特,则表示数据帧读取完毕。

进一步地,S3中采用行列行列奇偶校验或冗余校验。

进一步地,对数据帧进行奇偶校验的具体步骤为,每行第五个与每列第十个数分别奇偶校验,如果行列校验都通过则表明RFID标签接收正确。

本发明的优点在于:通过对起始帧的判断和数据读取省去了边沿捕计时,该方法仅需要1个定时器即可,只需要记录跳变时间,可以大大降低软件开销,节省RAM与ROM。

下面结合附图对本发明作进一步详细描述。

附图说明

图1为起始帧判断示意图;

图2为数据帧判断示意图;

图3为起始帧判断代码流程图;

图4为数据帧代码流程图。

具体实施方式

为了加深对本发明的理解,下面将结合实施例和附图对本发明作进一步详述,该实施例仅用于解释本发明,并不构成对本发明保护范围的限定。

参见图1-4所示,本发明所提供的一种曼彻斯特编码解码方法,包括

125KHz RFID信号的载波频率为125KHz,被调制信号的频率为2KHz,采用曼彻斯特编码,曼彻斯特编码的编码方式如下:电平由高到低翻转代表1,由低到高代表0。

通过检测边沿变换的时间计数判断起始帧,记录下起始帧结束位置,帧结束位置确定后,延时3/4个周期等待边沿跳变,记录跳变后的电平信号,跳变后的信号,就是所需的RFID解码数据。该方法仅需要1个定时器即可,只需要记录跳变时间,可以大大降低软件开销,节省RAM与ROM。

具体实施方法:

设解调信号的周期为T0,采样周期为T1,T1远小于T0,在此设置50*T1=T0。起始帧1的个数为N个。

1、起始帧读取:

起始帧为连续N个1,因为停止位为0,紧随其后的起始帧必然为1,起始帧的第一个比特位必然为1个跳变,即在N个T0周期里,有2*N-1个跳变边沿。设置起始帧有效跳变时间在20*T1~30*T1之间,如果在此区间内产生跳变,则起始帧有效计数加1,否则起始帧有效计数清零。如果起始帧有效计数值大于等于2*N-2,则进入数据帧读取阶段;

2、数据帧读取:

起始帧读取完毕后,直接进入数据帧读取阶段,延时4/5*T0,即40*T1,等待边沿跳变,记录跳变后的电平数据并将数据计数器加1。数据计数器大于等于55个比特,则表示数据帧读取完毕。

3、奇偶校验

为防止数据接收错误,要对数据帧进行奇偶校验。每行第五个与每列第十个数分别奇偶校验。如果行列校验都通过则表明RFID标签接收正确。

上述步骤所对应的的代码为:

1.1、起始帧判断代码:

1.2、数据帧判断代码

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值