PC机与STC单片机485多机通信,单片机串口问题!!

[复制链接]
2817|5
 楼主| 星夜之北 发表于 2014-11-21 09:21 | 显示全部楼层 |阅读模式
我看到别人在PC机与单片机485多机通信时,单片机串口用的是方式一!这怎么可能呢???串口方式一只适用于点对点通信啊!!只有方式2、3才能用于多机通信啊!但是方式2、3在于PC机通信时,第九位地址数据标志位又没办法解决!!如果强行用方式一多机通信,那么一个从机在接收消息时,其他从机也在不断接收数据和自己的地址对比,就一直在串口中断中,这样肯定不行啊,但是人家那系统还能运行!太神奇了!是不是单片机的速度比较快,即使不断中断也没啥影响????请大神们指点指点!!
coody 发表于 2014-11-21 10:43 | 显示全部楼层
我都是MODBUS-RTU协议通讯,不用什么第9位、数据地址控制位什么的,这样程序通用。
 楼主| 星夜之北 发表于 2014-11-21 11:33 | 显示全部楼层
coody 发表于 2014-11-21 10:43
我都是MODBUS-RTU协议通讯,不用什么第9位、数据地址控制位什么的,这样程序通用。 ...

即使使用MODBUS,对于单片机来说它不知道什么是MODBUS,他只有四种串口工作方式,在方式一时,只要总线上有数据传输,所有从机都会接收并触发中断和自己的地址作对照!这样一来,只要有一个从机在和上位机通信,那么其他的单片机也在不断中断接收数据,只不过和自己的地址不符数据都丢弃了,但是,这样的的话,所有从机都不断处在串口中断中,不断在中断程序中跳出跳进!!这样对于从机的实时任务会有影响吧!!
coody 发表于 2014-11-21 15:17 | 显示全部楼层
对于现在大多数的MCU来说,串口中断是个慢速事件,即使使用115200bps,中断间隔也是89us,中断里保存数据花几个us时间。

如果速度不高,比如9600bps,我软件模拟4路全双工串口对大部分的应用,其实时性都不会有太大影响,更何况是硬件串口。
 楼主| 星夜之北 发表于 2014-11-21 15:24 | 显示全部楼层
coody 发表于 2014-11-21 15:17
对于现在大多数的MCU来说,串口中断是个慢速事件,即使使用115200bps,中断间隔也是89us,中断里保存数据花 ...

恩恩!!多谢啊!我用的STC单片机频率22.1184,1T,单指令周期才45纳秒!!那就应该没啥影响!
一枝梅WYH 发表于 2014-11-21 15:34 | 显示全部楼层
单片机中断的话 还是可以的啊 速率
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

56

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部