一种基于C8051F310的UART扩展实现

来源:慧聪网 作者:—— 时间:2010-05-27 09:12


  实验

  (1)为了验证单个软件UART可用首先利用串口调试助手随机发送数据,选择不同的自动发送周期,每个发送周期连续1000字节数据发送检验数据接收和发送错误率,实验结果见表1。

  通过以上数据我们可以看到软件UART在发送和接收时间上存在延迟,因为利用中断和单片机对于数据的转发造成了数据传输的延迟,这是不可避免的,只要保证较高的单片机时钟频率,这种延时可以尽量的减小。其次当发送周期较短时,扩展串口的错误较高,但是延迟到50ms发送周期后这种错误基本解决。因此当传输周期越长,数据错误率越低。
 (2)定波特率下,4UART同时工作的测试结果见表2。

  波特率上升到115200b/s时,UART传输出现大幅错误,基本无正常数据。

  (3)接入实际设备后输出结果,发送指令码:0xaa,取4设备数据。

  由于设备1采集周期最长达到300ms,因此其优先级最高。且设备1一直发送数据。

  实验中发现由于设备1,一直向上发送数据,其他端口数据无法接收,当设备一端口被关闭后其他端口才可接收已经发送数据。表明此前其他端口设备数据被暂时保存在了硬件的缓存当中。

  结语

  通过实验表明在特定波特率条件下利用单片机实现的UART端口可以具有较好的稳定性,且延迟时间可以被接收,同时利用协议方式可以有效地避免硬件扩展串口存在的信道堵塞问题。对于一般PC扩展而言是一种很好的选择。但同时可以看到这种方法在通用性上同硬件扩展有很大差距,必须根据特定设备编写特定协议,并且利用编程模拟的UART接口对于波特率和数据传输时间上具有很高的要求,因此对于实时性要求较高的场合并不使用。

 

 

相关文章

资讯排行榜

  • 每日排行
  • 每周排行
  • 每月排行

华强资讯微信号

关注方法:
· 使用微信扫一扫二维码
· 搜索微信号:华强微电子