找回密码
 立即注册
楼主: sulajintan

AI单片机有没有超过64引脚的,一个产品64脚不够用了。

[复制链接]
  • 打卡等级:常住居民II
  • 打卡总天数:93
  • 最近打卡:2025-06-17 10:15:10

6

主题

71

回帖

363

积分

中级会员

积分
363
发表于 2025-2-10 10:52:37 | 显示全部楼层
如果两个MCU要处理同一个全局变量是不是比较麻烦?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:568
  • 最近打卡:2025-06-17 11:43:25

11

主题

1196

回帖

5532

积分

论坛元老

积分
5532
发表于 2025-2-10 11:59:00 | 显示全部楼层
ys*** 发表于 2025-2-10 10:52
如果两个MCU要处理同一个全局变量是不是比较麻烦?

是的,在双MCU架构下,如果两个MCU要共享和处理同一个全局变量,会涉及数据一致性和同步问题。以下是几种常见的解决方案:

1. 共享全局变量的挑战
-数据竞争:如果两个MCU同时读写变量,可能导致数据不一致或冲突。
-时序问题:一个MCU可能在变量更新未完成时读取了错误数据。
-通信开销:共享数据需要有效的同步机制,否则会增加系统负担。
2. 解决方案
(1) 主从数据同步协议
-单方向更新:让 主MCU管理全局变量,从MCU只读取数据,避免竞争。
-双缓冲机制:主MCU更新变量后,发送“数据更新”信号,从MCU在收到信号后再读取。
-事务管理(握手协议):
        1.主MCU 发送 "请求更新" 信号
        2.从MCU 读取并确认数据
        3.主MCU 确认接收并继续执行
(2) 使用高速通信总线
- SPI:全双工,高速同步,可用于实时共享变量
- I²C:适用于低速状态变量的同步
- 共享GPIO信号:用于关键变量的更新触发
(3) 硬件互锁(锁变量)
- 共享一个信号线(GPIO):
         -变量写入时,MCU先拉高“BUSY”信号
         -变量写完后,MCU拉低“BUSY”信号,通知对方MCU读取
3. 推荐方案
-如果变量是实时数据(如ADC/PWM),建议使用SPI传输,带数据帧校验。
-如果变量是低速状态数据(如模式、标志位),建议I²C或定期查询同步。
-如果变量是控制标志,建议使用共享GPIO信号(如中断或握手)。

你能具体描述一下,哪类变量需要被两个MCU共享?是控制变量,还是高速采样数据?

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:93
  • 最近打卡:2025-06-17 10:15:10

6

主题

71

回帖

363

积分

中级会员

积分
363
发表于 2025-2-10 16:44:22 | 显示全部楼层
angm*** 发表于 2025-2-10 11:59
是的,在双MCU架构下,如果两个MCU要共享和处理同一个全局变量,会涉及数据一致性和同步问题。以下是几种 ...

谢谢您的回复,目前我并没有双MCU的需求,只是觉得这个比较难处理。如果两台设备需要共享同一个变量应该也是同一个道理,比如计数,两台机器都可以加减,只不过机器之间通信方式不同,这样理解对吧。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:568
  • 最近打卡:2025-06-17 11:43:25

11

主题

1196

回帖

5532

积分

论坛元老

积分
5532
发表于 2025-2-10 17:02:46 | 显示全部楼层
ys*** 发表于 2025-2-10 16:44
谢谢您的回复,目前我并没有双MCU的需求,只是觉得这个比较难处理。如果两台设备需要共享同一个变量应该 ...

是的,你的理解是正确的!

无论是两台MCU还是两台独立设备,共享同一个变量都涉及数据同步和并发访问问题

本质上,不管是MCU还是独立设备,核心问题都是数据同步。
通信方式不同,但处理方式类似,都需要避免竞争、保持一致性。
如果是高频更新的数据(如计数),建议用高速同步机制,如SPI或CAN。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:93
  • 最近打卡:2025-06-17 10:15:10

6

主题

71

回帖

363

积分

中级会员

积分
363
发表于 2025-2-10 20:08:35 | 显示全部楼层
angm*** 发表于 2025-2-10 17:02
是的,你的理解是正确的!

无论是两台MCU还是两台独立设备,共享同一个变量都涉及数据同步和并发访问问 ...

谢谢。
比如有这样的需求,3~4台或者更多设备联网进行计数,每台设备都可以对总数进行加减,并且根据总数的大小进行相应操作(比如控制指示灯亮灭或者控制继电器等),我想到的解决方法和你的第1种是差不多的,其中一台作为主机,其余分机只提供加减信号的采集,由主机统一汇总处理,并将结果回传给所有分机。这个控制指令是由分机自行处理还是由主机发送?这里面要注意哪些细节?
如果采集频率不高,3秒左右一次RS485能否胜任?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-05-20 14:06:55

0

主题

3

回帖

20

积分

新手上路

积分
20
发表于 2025-2-13 16:47:51 | 显示全部楼层
神*** 发表于 2025-2-10 09:42
你这个 双 MCU 更合适,成本也低了

我知道,但我这个项目里真拆不开.
它功能耦合和复用太高了,而且有一大堆需要极高实时性的共用全局量,十分不好做多机同步.

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:514
  • 最近打卡:2025-06-17 18:45:09
已绑定手机

21

主题

118

回帖

1036

积分

金牌会员

积分
1036
发表于 2025-2-20 21:10:42 | 显示全部楼层
angm*** 发表于 2025-2-10 11:59
是的,在双MCU架构下,如果两个MCU要共享和处理同一个全局变量,会涉及数据一致性和同步问题。以下是几种 ...

高速采样数据要求多少Mbps? 可以用并行传输,再快的可能需要FPGA、FIFO等
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-17 20:55 , Processed in 0.199136 second(s), 90 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表