一个控制器需要2个485,在二种总线中,用二个单片机还是一个
一个控制器需要2个485,在二个485总线中同时通信,目前我觉得得用二个单片机才能确保实时通讯,各单片机负责一个通信,二个单片机通过spi或双口ram实现互相通信!其中一个485当从机,另一个当主机。也有人说现在一个单片机带二个串口的太多,但是我觉得,一个单片机实现二个总线通信,应该做不到事实。不知道有没有哪位也遇到过这个问题! 打错了,一个单片机做不到二个485实时通讯,因 如果两个串口都能正常中断,没有问题的。 一个MCU控制2个485肯定没问题,不然单个MCU带多个UART串口干嘛。 找一个带有多字节硬件FIFO的双串行口MCU加上DMA,我感觉应该是可以的,实时只是相对的 485不是为高速实时设计的,不是复杂的东西,超过2个也没问题当然还要看你用什么速度的单片机了 一个带双串口的单片机就可以了 我看要求似乎 单UART,使能切换就可以了。 普通的单片机就行,一个硬件串口,一个外部中断加一个IO模拟就OK了 如果二端同时发数据,应该会有一端丢失数据吧, 假设通信速率是9600. 每个字节在间隔是1s/960 = 1ms 。 也就是说单片机至少有1ms的时间将数据从当前中断中取出。 一个足够,带两个USART的完全满足单独控制2个485 单片机本来就不是并行处理数据的,你想同时上FPGA~ myiccdream 发表于 2015-1-19 18:33
假设通信速率是9600. 每个字节在间隔是1s/960 = 1ms 。 也就是说单片机至少有1ms的时间将数据从当前中断中 ...
同意这种说法,
就算两个串口同时在接收数据,只要你的单片机速度够快,能再下一个中断来之前把数据读走,应该就没问题了……
当然了,如果对延时要求很高很高的话,可能用单片机就不太合适了。 我就在一个单片机上跑两个MODBUS,没问题啊 通信关系搞好就没问题 谢谢,我来试试,楼上你用的什么芯片带二个串口跑modbus?我也跑这个 没问题的哈,一个双串口单片机就可以了,要是这个都处理不过来,那你得换方案了,485不合适你了。 一个单片机没问题,串行数据属于慢速 myiccdream 发表于 2015-1-19 18:33
假设通信速率是9600. 每个字节在间隔是1s/960 = 1ms 。 也就是说单片机至少有1ms的时间将数据从当前中断中 ...
1/9600*8=833us ”实时“应该没问题,”同时“就比较困难了 tragedy 发表于 2015-1-21 08:38
1/9600*8=833us
应该是你搞错了。 你应该百度一下 波特率 tragedy 发表于 2015-1-21 08:38
1/9600*8=833us
实际>1ms,开始位 8数据 校验位 停止位 传输间隔 9600bps接收一个字节大约1.14ms,如果中断处理只是将数据保存到环形队列,那么同时使用两个串口,应该是没有问题的。关键是你的实时性指标是多少? 用过ATMega64, 两个串口同时用, 再加一个模拟串口, 也就3个串口同时用, 没发现出什么问题. 3个通信都走ModBus 打算用二个串口带fifo的,不知道19200,大概一字节500微妙
页:
[1]