串行通信是否应以标准波特率发生?

时间:2013-10-16 02:10:54

标签: matlab serial-port baud-rate

我正在使用串口转USB转换器将ATMega8微控制器连接到我的PC。我用来接收数据的程序是MATLAB。我是否必须以标准波特率发送和接收串行通信数据?我可以发送和接收208333 bps吗? 我在发送端使用AVR编程,在接收端使用MATLAB,我想知道为什么必须使用标准波特率?

我正在使用在Windows 8中修改为串行转换器的DKU-5电缆。

1 个答案:

答案 0 :(得分:0)

RS-232串口使用隐式时钟运行。 USB转换器中的接收器通过识别起始位的中间与发送器时钟同步,然后在单个位定时之后对后续位进行采样。为了对中间的位进行采样并限制抖动和时序偏移(Asynchronous communication)的影响,接收器通常以实际数据速率的16倍对信号进行采样。这意味着接收器能够以此速度产生时钟信号,方法是将振荡器除以整数,以达到采样速率。

通常选择振荡器以允许产生具有低错误率的标准时钟速度的除数,特别是在较高速度下。选择非标准速度可能会导致所需速度产生较大误差,从而增加传输错误的可能性。

经典方式(这里可能不适用)是使用不需要过采样的同步链路,并允许提高速度。通过在设备中引入USB从设备,这可能是最容易实现的。这将支持1 Mbit / s的主机时钟,比任何异步链路快得多。

更加面向硬件的网站可能会为您提供更好的答案。