打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
PPM解码器
PPM即Pulse Position Modulation(脉冲位置调制),利用脉冲的相对位置来传递信息的一种调制方式。在这种调制方式中,数据能够高速的传递。本文就来详细介绍一下PPM解码器。
1、PPM的功能描述
输入信号
clk,时钟周期为0.59us
rst,异步复位信号,低电平有效
din,输入的PPM编码后的数据
输出信号
[7:0] dout,PPM解码后的8位数据
d_en,输出数据有效标志,高电平有效,持续一个时钟周期
f_en,帧头检测有效标志,高电平有效,持续一个时钟周期
PPM数据编码格式.png
PPM数据帧格式.png
2、PPM的功能分析
计数器用来控制时序,移位寄存器用来暂存数据,状态机用来进行状态转换。
2.1计数器
时钟的周期是0.59us,而输入的每一位数据宽度为9.44us=0.59us※16,解码2bit的数据需要的时间为75.52us=0.59us※128,解码一个完整的8位数据,需要302.08us=75.52us※4。基于以上分析,我们可以设置3个计数器来控制数据的采样。
count0,0~15,每16个时钟周期采一位din信号。
count1,0~7,解码2bit需要采到8位din信号。
count2,0~3,完成一个完整的8位信号,需要解码2bit数据4次。
计数器count0.png
计数器count1.png
计数器count2.png
2.2移位寄存器
我们要对输入数据的8位数据进行判读,就要求我们对数据进行暂存。这里我们采用移位寄存器对输入数据进行暂存。与此同时,输出的8bit数据是2bit数据输出累加到8bit,所以我们也需要移位寄存器对输出数据进行暂存。
[7:0] reg1,对输入的数据进行移位操作,{reg1[6:0],din}。
[7:0] reg2,对输出的数据进行暂存,等待8bit移满,就进行数据的输出,{2'b11,reg2[7:2]},{2'b00,reg2[7:2]},{2'b10,reg2[7:2]},{2'b01,reg2[7:2]}。
移位寄存器reg1.png
移位寄存器reg2.png
2.3状态机
在传送数据的时候,主要有两个状态。要么是收到帧头解码数据,要么是没有收到帧头不进行解码。
S0,表示没有收到帧头,处于未工作状态。
S1,表示收到帧头,开始进行解码。
状态转移图.png
注:以上电路图和状态转移图的判断条件有所简化。
具体代码如下:
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
CRC循环冗余校验的原理与算法及FPGA实现
序列信号发生器
【原创博文】在FPGA中使用for循环一定浪费资源吗?
两种LED显示方式应用对比
基于verilog 的很基础的RS232串口收发代码
74系列芯片功能大全
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服