没仔细想过这个问题。硬件上加上一些辅助电路,软件上面再仔细处理RTS/CTS,DTR/DSR等流控制信号也许能实现共用。不过在没有现有成熟方案可以选择的情况下,这会大大增加软件的复杂度和开发、调试时间。为了省这点成本这么做是否值得?
485芯片倒不贵,maxim的价格高,但是做与之兼容的厂家太多了,intersil的就是很不错的可选厂家。国内也有很多,只是没用过。
硬件串口一对多有很多问题:
肯定必须加切换电路,不然多个设备一起响应就完蛋。
切换到B设备时,A设备有数据了,如何触发串口中断?
切换过程中,fifo里面的数据如何处理?等待完全发空吗?如果此时设备阻塞了,发不出去呢(带RTS/CTS流控时)?