本帖最后由 forrest11 于 2015-3-19 10:03 编辑
串口通信,由于是异步,存在两端时钟不同,导致的误判。
一般而言,串口通信造成的误码,有两个原因:
1. 噪声;
2. 时钟偏差
在这里,我们只考虑2, 不考虑1. 噪声情况。
对于2,我们假设主频率能分频到对应波特率。在这样情况下,只考虑频率偏差造成的误码。
根据异步通信评判准则,当接收方频率和发送方码有相差180度时(即1/2码片时间),就会造成判断错误导致误码。串口通信发送一般有start bit以及8 bit data,第9bit如果有1/2时差,就产生误码。
所以delta t = 1/2 Tdata, 在9*Tdata内。
所以要求delta f= 1/18 = 5.5%, 即最大频率和最小频率差需<5.5%。
如果考虑非串口波特率倍频时钟,意味着分频后和波特率本身有偏差,对时钟的要求会更高,由于分频误差和波特率本身有关系,不再展开计算。
还要考虑时钟温漂,和长期漂移。
至于噪声,计算更复杂,要考虑是否用高斯白噪声或带限灰噪声模型。一般由于串口电平比较高:+/- 7--12v.噪声模型一般功率不大。所以这部分一般不考虑。
但在电源噪声比较大的情形,噪声造成的误码必须考虑,也是可以计算的。
所有这些,和时钟频率的高低,和锁相环,是没有必然联系的。 |