|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2013-5-3 10:54:59
|
显示全部楼层
tennokoe 发表于 2013-5-2 22:31 ![](static/image/common/back.gif)
给一个基于FSL总线的串口IP,直接看串口部分的实现你就明白了。
如果撸主的串口是用软核+IP实现的,那么很 ...
谢谢! 我没有用软核, 我全部用硬件语言实现在! VHDL 写在, 当然一切都得感谢特权 同学.VERILOG 版本也有 直接可以参照 特权同学在代码
等我把代码注释一下再贴出来请教大家, 现在没注释很乱....
其实我有一个相当困惑在问题! 为什么大家都说 采样频率 最好是波特率的 8 ,或16 倍
最终无非是保证能够在BIT 中间进行采样, 那如果我 用以下在思路实现是否有问题呢
FPGA 主频125MHZ ,波特率使用 115200
定义一个 CNT , 范围为 0 到 BPS_PA , BPS_PA = (125 * 1000 000 / 115200 ) -1
其次计数到1/2 BPS_PA 产生一个脉冲 进行采样一个BIT
正常情况下不停在计数, 只有在以下两种情况进行清零
1. 计数计满 BPS_PA
2. 检测到RS232_RX 接收端 有电平跳变 (作用,不停在矫正计数器保证计数到1/2 BPS_PA 产生在脉冲处于 BIT 采样在中间点 )
这样的话, 误差是否就不会累积 呢? |
|