在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5946|回复: 6

[求助] 关于在FPGA上实现串口通信的问题

[复制链接]
发表于 2014-5-13 10:16:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
在特权同学的代码中(接收模块)出现了这么一段代码always @ (posedge clk or negedge rst_n) begin

if(!rst_n) begin

rs232_rx0 <= 1'b0;

rs232_rx1 <= 1'b0;

rs232_rx2 <= 1'b0;

rs232_rx3 <= 1'b0;

end

else begin

rs232_rx0 <= rs232_rx;

rs232_rx1 <= rs232_rx0;

rs232_rx2 <= rs232_rx1;

rs232_rx3 <= rs232_rx2;

end
end

assign neg_rs232_rx = rs232_rx3 & rs232_rx2 & ~rs232_rx1 & ~rs232_rx0;
他是怎么实现数据线接收到下降沿的
发表于 2014-5-13 17:12:24 | 显示全部楼层
neg_rs232_rx =  rs232_rx2 & ~rs232_rx1;
rs232_rx3 和 rs232_rx2 是相等的。
发表于 2014-5-13 17:35:27 | 显示全部楼层
老范你好,这个我最近也看了,我认为他写错了,你觉得呢?   似乎是这样的
f(!rst_n) begin

rs232_rx0 <= 1'b1;

rs232_rx1 <= 1'b1;

rs232_rx2 <= 1'b1;

rs232_rx3 <= 1'b1;

end

else begin

rs232_rx0 <= rs232_rx;

rs232_rx1 <= rs232_rx0;

rs232_rx2 <= rs232_rx1;

rs232_rx3 <= rs232_rx2;

end
end

assign neg_rs232_rx = rs232_rx3 & rs232_rx2 &rs232_rx1 & ~rs232_rx0;
发表于 2014-5-13 17:36:17 | 显示全部楼层
加我QQ94465924  大家讨论一下
发表于 2014-5-13 19:47:29 | 显示全部楼层
本帖最后由 lbt1990 于 2014-5-13 19:49 编辑

QQ图片20140513192652.jpg 回复 4# 元合羽

复位时初始值可以为0;你的公式assign neg_rs232_rx = rs232_rx3 & rs232_rx2 & rs232_rx1 & ~rs232_rx0是对的。特权那个可能打错啦。我验证过
 楼主| 发表于 2014-5-13 20:58:47 | 显示全部楼层
QQ截图20140513205822.png 用他的代码,发送数据后显示一直在接受数据,这是为什么?
发表于 2014-5-13 21:10:52 | 显示全部楼层
他代码理论上是对的,而且传递出一种延时抗干扰的效果,但这样写出来的串口程序,对于延时抗干扰意义不大,如果是16倍或者是8倍过采样,他写的两拍根本不能达到延时判断的效果,至少是5拍。。
对于串口的采样时钟,肯定不可能是波特率的原频率或者是波特率2倍频,一般是8倍或者16倍,甚至更高,所以他的语句
assign neg_rs232_rx = rs232_rx3 & rs232_rx2 &~rs232_rx1 & ~rs232_rx0;
当一个下降沿到来时,低电平最早被寄存到rs232_rx0里,然后下一个时钟被寄存器到rs232_rx1 里,但前面的rs232_rx3 和rs232_rx2还是高电平状态,所以这个assign的结果是1,代表产生下降沿,特权为何想判断rs232_rx1 和rs232_rx0同时为0呢? 如我前面所说,采样时钟一般是8倍或者是16倍,这么快的时钟,面对对面uart起始位的低电平持续时间,即使是rs232_rx3 为0 了,rs232_rx0还是为0的,特权只是想看看这个低电平是不是瞬间干扰,于是用两拍为低来判断下降沿,不过真的意义不大,uart如果因为干扰电平误触发了,这两拍0也察觉不出来
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-2-24 21:04 , Processed in 0.040378 second(s), 13 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表