首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在同一个MCU中使用3种不同的通信协议

在同一个MCU中使用3种不同的通信协议
EN

Stack Overflow用户
提问于 2020-09-25 13:39:46
回答 1查看 65关注 0票数 0

对于一个项目,我需要在一个CANBus网络,以太网网络和RS-232通信。我想使用一个单片机,它将作为CANBus启动拓扑的主要单元,以太网启动拓扑,以及该单片机也将传输到它的RS232数据到另一个设备。现在我想使用高速CAN,它可以达到每秒1 Mbit。然而,RS-232是最大20 k波特.我想知道是否可以用1单片机来处理3种不同的通信( CANBus、以太网和RS-232)。我害怕在某一时刻被数据过多。我可以缓冲数据短期内,如果数据是突发的,可以平均出来。对于无法跟上的连续数据,我需要丢弃消息,也许是以托管的方式。但我不想丢弃任何数据。所以我的问题是:在这个情况下,使用1单片机可以吗?有什么软件技巧可以帮我处理这个案子吗?(比如给予CANBus更高的优先级等等)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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的缓冲区内存。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64065296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档