描述:
我现在有一台串口设备,A电脑上有一个自带的系统和这个通信。
我现在想把这个串口设备上的RS232信号通过数据线并联,同时接到另一台电脑B上。
这样电脑A和电脑B上同时对这个串口发送和接收数据。
不知道我这种想法是否可行?
解决方案1:
可以用USB虚拟串口转CAN总线,实现多机通信。
https://shop152327642.taobao.com
你需要设计一个避免冲突的协议。也就是说,当一个主机发起一个命令-应答事务的整个期间,另一主机不会进行任何发送操作。
例如,一个轮流占用的协议:
1 必须设置主机优先序号,如你的系统是双主机,两主机有序号 1 和 2。更多主机,需要更多序号。
2 首先由 1 号主机占用总线,发送命令,等待应答。然后是 2 号,以此类推。
3 每一台主机都必须在接收到 N (你这里是 2)个完整的应答后,行使下一轮占用权。因为每个应答之前必然有命令,只要你的处理周期小于命令发送所需的时间,就不必担心无法区分连续应答的问题。如果应答是变长的,就必须有识别应答长度或应答结束的机制,或者所有主机都至少等待最长应答的时间后才实际占用总线。
要记住,每一台主机都“听”不到其他主机的命令,只能“听”到从机的应答。
电脑接收数据这块是可以的,但是电脑A与电脑B同时占用了发送总线(TXD),只能自己设计总线判定空闲的机制了。
解决方案4: 不要这样作。
UART (RS232) 协议是为双机通讯设计的。多机且多主的系统,最好不用它。