转到485的情况下,其实每个485口都收到了信息,根据协议来说,帧数据里面的地址是用来区分执行节点的,在每个485节点上的程序改动一下,只要接收到帧数据里面的命令就执行,但是这样容易造成485网络数据拥堵 。
RS485通信,每个设备通常是要有地址的,主从机通信时是按地址进行的。当主机向多个设备发送数据时,可以采用广播模式,即对所有从机发送。而从机接收到数据后不允许返回数据的。这可以在通信协议中加上广播模式,要是用modbus协议通信,就带有广播模式。
扩展资料:
内部集成 ARP,IP,TCP ,HTTP,ICMP,SOCK5,UDP,DNS等协议。RS-485/422转换提供数据自动控制。RS-232/422/485三合一串行接口 , 300-230.4KBPS波特率。
支持动态IP(DHCP)和静态IP,支持网关和代理服务器,可以通过Internet传输数据。提供数据双向透明传输,用户不需要对原有系统做任何修改。所有串口内置600W防雷 。10/100M以太网、自动侦测直连或交叉线。可以同时支持多个连接。
参考资料来源:百度百科-串口转换器
串口都是一次接一组数据,具体是几位要看你设置的比如9600 N,8,1那样是8个数据位,1个起始位,1个停止位(起始和停止位是芯片接收部分自己判断的)之所以发一组都能收到是因为STM32(其实51也一样的,不信你可以试试)运行速度要远大于串口发送数据的速度。比如9600波特率,就是1秒钟发9600个位(bit)这样按N,8,1算的话是10个位(bit)是1个字节(加起始和停止位,还有8个数据位)也就是1秒钟发送960个8位数据。1/960=0.00104秒(1.04ms)发送一个字节 而单片机运行指令周期都是以us为单位的。换算下来就是也是1040us了 按51单片机1us执行一个指令的话,接受一个字节的过程中,芯片可以执行1040个指令,完全可以运算处理完成在发送回去.更何况是速度更高的STM32 1.25MPS的处理速度
接收一个字节数据的时间,够他完成N个复杂的运算处理。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)