作者: Meng He
ABI Research指出,目前市场上的无线连接设备已超过100亿部,而到2020年通过无线连接到物联网(万物互联)的设备将突破300亿部。随着物联网越来越受到人们的重视,许多OEM厂商都发现自身面临的压力也越来越大,他们必须为各种产品提供因特网连接功能,才能从实现设备间的通信功能中受益。但是,许多开发人员并不熟悉如何实现高度稳健的TCP/IP协议栈。本文将探讨在嵌入式系统中有关支持因特网连接功能的主要问题,以及如何通过新工具帮助开发人员为系统提供TCP/IP且无需担心低层次实现细节问题。
首先,让我们简要回顾一下TCP/IP协议。传输控制协议/因特网协议(TCP/IP)是连接到因特网的硬件设备之间用于交换数据的通用语言。这些规则管理着终端操作系统(Windows、iOS、Linux等)之间的交换机制以及SMTP、FTP、HTTP等一系列具体协议。
TCP/IP被细分为不同的“层”(详见图1)。因特网数据以数据片段的格式从应用层路由到传输层。物理层是在IEEE 802.3规范所定义的以太网协议下,数据通过“因特网”进行物理传输的地方。以太网有多种不同的规范版本,可提供各种最大比特率、传输模式和传输介质(光纤、同轴电缆等)。介质访问控制(MAC)是物理层非常重要的部分,MAC地址表示以太网网络上节点的物理地址。每个以太网帧都包含一个源地址和一个目的地址。
图1. 因特网上的数据传输
应用层负责提供用户接口。以下是常见的应用层协议 。
1. 超文本传输协议(HTTP):传输与浏览万维网(WWW)相关的数据。
2. 简单邮件传输协议(SMTP):支持整个因特网上的电子邮件传输。
3. 文件传输协议(FTP):用于在因特网上传输文件。
4. 域名系统(DNS):翻译域名。
5. 动态主机配置协议(DHCP):为特定节点动态分配IP地址。
6. Telnet:为节点创建互动的TCP连接。
7. 简单网络时间协议(SNTP):支持节点时钟与参考时钟同步。
8. 简单网络管理协议(SNMP):用于监控网络连接设备,检查是否存在发生故障等需要干预的情况。
嵌入式TCP/IP协议栈的两种最常见用途就是消息传送和Web页面显示。例如,简单的SMTP消息传送系统允许微控制器获得传感器读数,并根据预设的间隔将读数以消息或电子邮件的形式发送给中央存储库,以便记录和分析。家庭中可采用这种应用每隔一小时给住户发送室温电子邮件,当然我们也可进一步扩展这种使用案例。嵌入式微控制器不仅能读取温度信息,而且能监控门窗是否锁好、灯光是否关闭等。这些系统可以全天候监控有关信息。如果住户将要工作到很晚才回家,那么他/她可使用HTTP请求微控制器发送包含所有相关信息的Web页面。然后,住户可通过改变Web页面上的一些字段,打开某些房间的灯、提升温度、并执行其它任务。
实现能够满足各个系统要求的以太网子系统有多种不同方式:
1. 以太网控制器模块
包含TCP/IP硬连线芯片、变压器和RJ45的控制器模块能大幅简化所提供的连接功能。完整的厂商生态系统可提供各种现成可用的模块,不仅能加速产品的上市进程,同时还提供极具吸引力的价格点。这种方案对于想要快速开发因特网系统的工程师来说非常理想。例如,开发人员可选择Wiznet的WIZ550io、W5100 shield以及Rabbit Semiconductor的以太网模块RCM6760 MiniCore等模块。随着Arduino平台的日益普及,市场上也开始出现许多兼容于官方Arduino开发板的模块。
2. TCP/IP IC加一款MCU
此外,设计人员还能将TCP/IP控制器连接到他们的嵌入式微控制器。例如,Microchip的ENC28J60以太网模块能通过SPI接口直接连接到大多数的微控制器。这些模块通常采用独立的以太网控制器IC,其具有众多特性,能够处理大部分的网络协议要求。这样的基础架构能帮助设计人员构建并共享他们自己的以太网项目。例如,Github上有个项目(https://github.com/kmmankad/ENC28J60-PSoC3)就能支持赛普拉斯的可编程片上系统(PSoC)控制器和基于ENC28J60的器件之间的因特网连接。基于PSoC 3的同一项目同时也可移植到PSoC 5中。这种实现方案的优势在于它能将微控制器内核和其它片上资源释放出来,以满足其它系统功能的需求。在硬件层面,我们只需要一个RJ45连接器、磁性元件、一个25 MHz的晶振或振荡器以及一些无源组件即可。
3. 支持lwIP的单芯片微控制器
轻量级IP(lwIP)是一种广泛使用的开源TCP/IP协议栈,专门针对嵌入式系统而精心设计,并获得了全球开发人员网络的支持。对许多应用来说,lwIP可提供以太网功能,同时能大幅降低MCU的资源占用率。MCU实现协议栈从物理上需要MAC和PHY。lwIP对于想要实现低成本连接功能的设计人员来说是一种理想选择。但是,由于这更像是一种DIY类型的实现方案,因此开发人员还必须愿意为解决协议栈问题而付诸努力。这种实现方案的挑战在于系统资源的使用以及动态分配MAC地址的功能。PSoC的动态可重配置属性使得解决上述挑战成为可能。PSoC的数字侧由通用数字模块(UDB)组成,可用于平衡配置粒度并支持高效的实现方案。这种方法的基础就在于能定制器件数字操作,从而满足应用要求。例如,片上DMA使我们能设计出可配置的RX和TX FIFO。PSoC设计环境PSoC Creator支持开发人员构建自己的以太网组件,并将其作为系统级设计中的虚拟芯片。
连接功能代表着未来需求,世界正日益依赖因特网来促进并扩展通信。随着芯片厂商推出具有更多实现选项和更高灵活性的成熟产品,设计人员可根据所需级别从现成可用的交钥匙模块到DIY嵌入式方案中做出购买选择。
责任编辑:gt
全部0条评论
快来发表一下你的评论吧 !