单片机的品种繁复,从低端到高端,有以51单片机为代表的8位单片机和以ARM为代表的32位单片机,不同层次的单片机完结网络接口的办法不同。关于像ARM等高端处理器一般都可以运转嵌入式操作体系,例如嵌入式Linux。关于无操作体系要求的单片机怎么完结网络接入,我下面将这些计划按TCP/IP协议栈的不同归结为两大类:第一类是传统的软件TCP/IP协议栈计划;第二类是最新的硬件TCP/IP协议栈计划。下面我就这两类计划的完结方法进行剖析。
1. MAC+PHY计划
所谓的TCP/IP协议栈是一系列网络协议的总称,不只包含咱们熟知的TCP协议和IP协议,还有网络层的ICMP(Internet操控报文)协议、IGMP(Internet组办理)协议、ARP(地址解析)协议,传输层的UDP(用户数据包)协议,使用层的HTTP(超文本传输)协议、DNS(域名解析)协议、FTP(文件传送)协议、SMTP(简略邮件办理)协议等等。
传统的以太网接入计划如下图,由MCU+MAC+PHY再参加网络接口完结以太网的物理衔接,经过在主控芯片中植入TCP/IP协议代码完结通讯及上层使用。
图3-1-1 MAC+PHY以太网计划
使用这种软件TCP/IP协议栈方法完结的比较老练计划有ENC28J60,CS8900A,DM9000,当然也有像STM32F107这类(内部自带MAC)+PHY等计划。
代码量方面,即便是选用轻量级的TCP/IP协议栈LWIP协议,也会为主控芯片带来超越40KB的代码量,这关于自身内存资源匮乏的单片机来说负荷过重。
再从安全性的视点,设备并入互联网之后有必要考虑网络安全问题,这种软件协议栈的方法体系一旦遭到杂乱的歹意进犯,单片机很有或许瘫痪掉,这对体系便是致命性冲击,尽管现在网络技能不断发展,各类新的加密技能企图让通讯变得愈加安全,可是还会呈现各式各样的缝隙。
2. 硬件协议栈芯片计划
图3-2-1硬件协议栈芯片计划
图3-2-2 TCP/IP硬件协议栈内核原理简图
以太网芯片的内核由传输层的TCP、UDP、%&&&&&%MP、IGMP等协议、网络层的IP、ARP、PPPoE等协议以及链路层的MAC构成,再加上物理层的PHY和外围的寄存器、内存、SPI接口组成了这一整套硬件化的以太网解决计划。
这套硬件TCP/IP协议栈替代了以往的MCU来处理这些中止请求,即MCU只需求处理面向用户的使用层数据即可,传输层、网络层、链路层及物理层悉数由外围WIZnet的芯片完结。这套计划从硬件开支和软件开发两个方面来简化前面所述的五层网络模型,简化产品开发计划。这样一来,工程师们就不用再面临繁琐的通讯协议代码,只需求了解简略的寄存器功用以及Socket编程便能完结产品开发作业的的网络功用开发部分。
当然,不行避免的硬件化的协议栈相对来说失去了软件协议栈那样的灵活性。现在只支撑4个/8个Socket,不能随时敞开更多Socket。可是,在嵌入式使用中8个Socket现已满足应对超越大部分的使用。