对于一个项目,我需要在一个CANBus网络,以太网网络和RS-232通信。我想使用一个单片机,它将作为CANBus启动拓扑的主要单元,以太网启动拓扑,以及该单片机也将传输到它的RS232数据到另一个设备。现在我想使用高速CAN,它可以达到每秒1 Mbit。然而,RS-232是最大20 k波特.我想知道是否可以用1单片机来处理3种不同的通信( CANBus、以太网和RS-232)。我害怕在某一时刻被数据过多。我可以缓冲数据短期内,如果数据是突发的,可以平均出来。对于无法跟上的连续数据,我需要丢弃消息,也许是以托管的方式。但我不想丢弃任何数据。所以我的问题是:在这个情况下,使用1单片机可以吗?有什么软件技巧可以帮我处理这个案子吗?(比如给予CANBus更高的优先级等等)
发布于 2020-09-25 15:24:12
是的,这可以用一个单片机完成。即使是一个简单的MCU,也应该能够轻松地处理1 Mbps的数据速率。最有可能的情况是,您希望使用DMA支持的传输,因此CPU核心只需要在数据块传输完成时才采取行动。
由于数据速率不匹配而被数据溢出的问题是另一个主题:
因此,如果要处理的最坏情况是以1 Mbps (输出速率为20 Mbps)的10s输入数据,则需要10sx(1 Mbps-20 10s )=9.8Mbit= 1.225 MByte的缓冲区内存。
https://stackoverflow.com/questions/64065296
复制相似问题