问题记录总结2----串口项目中遇到的问题2

描述问题:进行数据解码时,对于曼彻斯特编码而言,并不是所有的沿都是数据,因此需要对有用的沿进行一个提取。最初对沿没有提取,当数据进来后,解码失败。

问题难点:当state置1时,会对数据的所有沿源源不断的采,无法特定选择我们想要的数据沿,

目标:只对有用的数据沿进行解码:上升沿-1,下降沿-0.

问题解决:虽然每个沿都在采,其实只要保证只判断在tx_cnt的56、78、9和10....中间沿即可,也就是要保证被解析的沿在rx_cnt中的01、23、45、67、89、1011、1213、1415 当中。

最终发觉,有用的沿均在rx_cnt的偶数上出现,因此将对上升和下降沿的转换,放在rx_cnt的偶数下面即可。

always @(posedge Clk or negedge Rst_n)
		 if(!Rst_n)
			 r_pe_data_byte <= 8'd0;
		 else if(rx_cnt == 0 || rx_cnt == 2 ||rx_cnt == 4 ||rx_cnt == 6 ||rx_cnt == 8             
                  ||rx_cnt == 10 ||rx_cnt == 12 || rx_cnt == 14)
			 if(nedge)
				  r_pe_data_byte <= {1'd0,r_pe_data_byte[7:1]};
			 else if(podge)
				  r_pe_data_byte <= {1'd1,r_pe_data_byte[7:1]};
			 else
				  r_pe_data_byte <= r_pe_data_byte;
		 else if(pe_rx_done)
			r_pe_data_byte <= 8'd0;
		 else
			r_pe_data_byte <= r_pe_data_byte;

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值