之前看了有些方案说外挂某个芯片,或者说外挂某个MCU,当时觉得很牛X,是很想写一点来学习学习。最近真的学了嵌入式底层,觉得这个话题又没啥好写的。
从软件的角度来说,外挂硬件,其实就是你用了某个三方库,嗯,准确点说是用了远程服务器。。。没错,就是这么理解。只是软件上可能是用dlopen或者rpc这样的软件接口去开,然后调用函数接口。但是嵌入式硬件中是使用I2C或者SPI这些总线协议去去控制。当然,如果封装I2C这些,也和函数接口无异了。
比如下面这个。要实现Modbus功能,但是板子本身并不支持,于是外挂RS485,用过UART连接,可以从软件理解就是使用了三方库,把UART转成了Modbus协议。
最后是有可能设备树的某些定义或者属性要改一下。
难吗?好像真不算难,没太多好写的。后面看到实际项目再多写一点点吧。
为什么使用SoC+MCU组合?
功耗管理:
- 低功耗模式:MCU通常具有非常低的功耗模式,可以在需要时进入睡眠模式,而SoC则在处理高性能任务时功耗较高。将低功耗任务交给MCU处理,可以延长电池寿命。
实时处理:
- 实时性要求:MCU通常具有确定性的实时处理能力,可以用于处理对延迟敏感的任务,例如传感器数据采集和处理。而SoC的操作系统(如Linux)可能无法提供相同级别的实时性。
资源分离:
- 任务分离:在SoC上运行复杂操作系统(如Linux、Android)和应用程序,可能需要大量的资源和复杂的调度,而简单的控制任务可以分配给MCU处理,从而简化设计和调试。
安全性:
- 安全隔离:MCU可以用于处理安全关键任务,并与SoC上的应用程序隔离开来,以提高系统安全性。例如,在汽车应用中,安全关键的控制功能可以运行在MCU上,而用户界面和联网功能运行在SoC上。
灵活性和扩展性:
- 模块化设计:将功能分散到不同的处理单元可以使系统更加模块化和灵活,便于扩展和升级。