物联网中“事物”的定义差异很大。我们将事务定义为通过网络发送和接收信息的嵌入式计算设备(或嵌入式系统)。
什么是嵌入式系统?
嵌入式系统基于微控制器(MCU),并运行占用内存少的软件。某些基于Linux和Android的系统也可以称为嵌入式系统。但是通常,这些通用操作系统需要应用程序处理器,并具有其他功能,例如动态应用程序加载。这就是为什么基于MCU的嵌入式系统通常被描述为深嵌入式系统,而更容易理解的定义就是这些深度嵌入式系统是物联网中的物联网。
在过去的几年中,具有32位架构的MCU的价格有所下降,并且在嵌入式系统中变得越来越普遍。32位MCU的强大功能为嵌入式系统开发人员提供了新的选择。对于8位和16位MCU,通常使用前台/后台方法(即超级循环)编写软件。但是随着32位MCU价格的下降,实时操作系统(RTOS)现在是首选,可以在这些系统上运行更灵活,可扩展的软件。具有内核,GUI,文件系统,USB堆栈,网络等功能的完整RTOS可以容纳小于1MB的存储空间。使用RTOS,嵌入式系统的软件架构可以更加灵活。故障排除和添加新功能大大简化了。执行固件升级也更简单。总而言之,将RTOS与32位处理器一起使用才有意义。
物联网处理器
那么,您应该选择哪种处理器架构?迄今为止,主要竞争者是英特尔和ARM。英特尔将其Atom处理器定位为嵌入式CPU,并将其瞄准工业互联网。另一方面,新的Intel Quark直接针对深度嵌入式系统市常
ARM的处理器家族包括广泛的32位体系结构,已授权给大量供应商。ARM芯片是最好的低功耗架构之一,与英特尔相比,处理器软件的启动要简单得多。通常认为,物联网硬件应始终是低成本的,以便我们可以用物联网设备(每个灯泡的IP地址)充斥整个地球。但是实际上,低成本并不是每种应用程序的解决方案,特别是在涉及IP网络时。
首先,TCP / IP堆栈不是一小段代码。当然,您可以找到适合32 KB代码空间的开放源代码TCP / IP堆栈,但是通常这可以通过自由使用TCP / IP标准来实现。这可能会引起问题,因为您可能需要可以在绝大多数IP网络上运行的设备。
其次,TCP需要大量的网络缓冲区才能有效地工作,这需要宝贵的RAM。而且,如果您需要使用Java,则IoT设备将需要RTOS作为运行Java虚拟机(JVM)的基矗所有这些要素都不利于为物联网设备选择低成本架构。
选择一个MCU
设计物联网设备时,哪个MCU是一个很好的起点?
对于物联网设备中的ARM处理器,Cortex-M0是完美的选择。对于网关,ARM Cortex-M3 / M4或Cortex-A是更好的选择,因为它们具有更高的处理能力。
对于非ARM处理器,不错的选择是用于物联网设备的瑞萨RL78或RX100,以及用于网关的瑞萨RX600或RZ。
无论哪种方式,具有更多闪存和更多RAM的新处理器都会定期以较低的成本出现在市场上。