欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

485通信速率疑惑

更新时间: 2014-01-05 03:15:10 责任编辑: Author_N1

 

485通讯速率疑惑
做一个课题,打算由上位机通过485总线和多路下位机传感器模块连接进行数据采集,下位机是由一个直接输出数字信号的传感器通过SPI总线与单片机通讯,单片机再通过485总线将数据传给上位机,现在传感器的输出数据是100HZ,也就是10ms采集一个数据,我想问的是假如现在有20个下位机模块,要想将所采集的数据都实时的通过485传给上位机,是不是必须保证在10ms内,单片机要通过SPI把传感器数据读取出来,并且上位机要将20个模块全部轮询一遍,将各个模块的数据都采集上来,如果是这样的话,那485的通讯速率岂不是要特别特别大,而上位机我用的是485转232接口,请高手解惑!!
--参考方法--
1)传感器只有100Hz通信速率,按电气安全降额你最好用到50Hz,这样传感器与单片机通信会比较稳定,不能用到它的满额。
2)若单片机与上位机之间的通信,采用485方式建议在单片机侧硬件增加通信隔离电路,即加2个光藕提高通信抗干扰。一般工业现场,常用的BPS为9600,4800,太高没意义且光耦成本也会增加,满足9600的光藕只要0.3RMB。
仅一点经验之谈,希望对你有帮助,
--参考方法--
其实可以采用分组的方法轮番查询,比如说10个传感器一组,500ms查询第一组(10个),接下来的500ms查询第二组(10个),接下来的500ms又查询第一组···。并不一定一次要采集完20个传感器的数据啊,感觉这样也慢不到哪去。我做过用上位机115200的波特率一秒查询完50台机子的数据,每台机子返回79字节(79*8*50=31600个位,理论花费时间为31600/115200=0.27秒)
--参考方法--
看你的实时性,如10ms,一看实时性也不是很高,可以单个模块一下子发20个过来。200MS收一次。这样相当于10ms收一次数据。实时性比较好控制。0.5ms可能不是太好搞。如果有模块掉了的话,会影响下一个模块的读取。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:15:10
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20135/
本文WWW.DOC100.NET DOC100.NET版权所有。