单片机的种类繁多,从低端到高端,有以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等方案。
由于软件协议栈操作需要主控MCU不断地响应中断,这在很大程度上占用了MCU的运算/时钟资源。经过测试发现,单线程操作的情况下,MCU的运行速度和数据的处理速度仅能满足需要,但随着线程增多,MCU的工作效率直线下降,会严重影响通信质量。
代码量方面,即便是采用轻量级的TCP/IP协议栈LWIP协议,也会为主控芯片带来超过40KB的代码量,这对于本身内存资源匮乏的单片机来说负荷过重。
再从安全性的角度,设备并入互联网之后必须考虑网络安全问题,这种软件协议栈的方式系统一旦受到复杂的恶意攻击,单片机很有可能瘫痪掉,这对系统就是致命性打击,虽然目前网络技术不断发展,各类新的加密技术试图让通信变得更加安全,但是还会出现各种各样的漏洞。
2. 硬件协议栈芯片方案
硬件协议栈芯片方案如下图所示。由MCU+硬件协议栈芯片(内含MAC和PHY)直接加网络接口,便可方便的实现单片机联网,所有的处理TCP/IP协议的工作都是通过这位MCU的“小秘书”——硬件协议栈芯片来完成。
图3-2-1 硬件协议栈芯片方案
这套方案是由WIZnet首次提出,并成功推出以太网系列芯片:W5100、W5200、W5300和W5500。
所谓硬件协议栈是指通过将传统的软件TCP/IP协议栈用硬件化的逻辑门电路来实现,如下图所示。
图3-2-2 TCP/IP硬件协议栈内核原理简图
以太网芯片的内核由传输层的TCP、UDP、ICMP、IGMP等协议、网络层的IP、ARP、PPPoE等协议以及链路层的MAC构成,再加上物理层的PHY和外围的寄存器、内存、SPI接口组成了这一整套硬件化的以太网解决方案。
这套硬件TCP/IP协议栈代替了以往的MCU来处理这些中断请求,即MCU只需要处理面向用户的应用层数据即可,传输层、网络层、链路层及物理层全部由外围WIZnet的芯片完成。这套方案从硬件开销和软件开发两个方面来简化前面所述的五层网络模型,简化产品开发方案。这样一来,工程师们就不必再面对繁琐的通信协议代码,只需要了解简单的寄存器功能以及Socket编程便能完成产品开发工作的的网络功能开发部分。
由于硬件协议栈的加入协助单片机处理了几乎所有的TCP/IP协议工作,不仅极大地减少了单片机的中断次数,让单片机腾出更多资源去完成其他工作,而且硬件化的电路处理协议会更加快速、稳定。经试验测试,单线程下,该方案的通信速度是软件协议方案的10倍左右;随着线程的增加,因为硬件协议栈是通过独立的Socket进行通信,因而通信速度实现累加,而且单片机工作效率仍然会维持在高位。
代码量方面,因为这套方案主要是完成对Socket的编程以及寄存器的调用,因此仅有10K左右的代码量,远小于软件协议方案,对51以及STM32等内存很有限的单片机来说非常适用。
从成本角度来讲,硬件协议栈芯片的价格跟用MAC+PHY比起来基本差不多。而前者简单易用,用很短时间便能完成产品的开发过程。另外,官方例程库及上位机程序丰富,也缩短了测试过程,后期基本免于维护。
最后安全性方面,硬件化的逻辑门电路来处理TCP/IP协议是不可攻击的,也就是说网络攻击和病毒对它无效,这也充分弥补了网络协议安全性不足的短板。也正是因为这一优势,硬件协议栈技术在未来物联网以及智能家居领域有着广泛的发展前景,让人们尽情享受现代科技带来的乐趣的同时,免受安全问题的困扰。
当然,不可避免的硬件化的协议栈相对来说失去了软件协议栈那样的灵活性。目前只支持4个/8个Socket,不能随时开启更多Socket。但是,在嵌入式应用中8个Socket已经足够应对超过大部分的应用。
关键字:单片机 以太网 接入方案
引用地址:
浅谈单片机以太网接入方案
推荐阅读最新更新时间:2024-03-16 14:33
51单片机按键双击
//hnrain 改 //适用于CEPARK 51开发板 /***************************************************************************************************************** www.cepark.com 电子园 按键高阶攻略设计大赛 名称: 2*4矩阵键盘扫描 (状态机) 功能: 按键0单击时,点亮P0口的第1357个LED,按键1双击时,点亮P0口的2468个LED,按键2三击时,点亮P0口的所有的LED 按键按下的时间间隔小于200ms。 其他键按下时,LED状态不变 作者:
[单片机]
微控制器的24V接口
工业控制应用经常会使用工作在24V逻辑电平的PLC(可编程逻辑控制器)。这个电压为微控制器的安全使用带来了一种挑战。这样一个设计要求在微控制器和24V信号之间建立一个物理屏障,以避免出现故障或短路情况时,损坏微控制器。
将24V变换给微控制器的一种简单而廉价方法是使用ULN2003或ULN2803晶体管驱动器,它们分别有七个和八个输出。这些IC可以为灯泡或螺线阀提供500 mA的电流。这些IC中的阻尼二极管消除了对多个无源元件的需求,尤其是对使用线圈的设计。
由于它们是数字输入,无源元件需要多只器件,使装配复杂化,增加了成本,并且增加了对查错与维护的要求。很少有简单IC可以承受24V以上电压。
对
[嵌入式]
C51单片机中断实验
实验要求: 要求通过中断方式检测有无按键 判断哪个按键(编号0-9),并且在数码管上显示对应的0-9 代码部分 #include reg51.h char led_mod ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; char key_buf ={0xee,0xde,0xbe,0xed,0xdd,0xbd,0xeb,0xdb,0xbb,0xe7}; void getKey() interrupt 0{ char key_scan ={0xef,0xdf,0xbf,0x7f}; char i=0,j=0; for(i=0;i 4;i++){ P2
[单片机]
恩智浦推出全新Kinetis KE1xF与KE1xZ MCU 进一步扩展5V MCU产品阵容
中国深圳, 2016 年 9 月 27 日讯 ( 2016 恩智浦 FTF 未来科技峰会) 恩智浦半导体(NASDAQ:NXPI)今日宣布推出全新KE1xF和KE1xZ MCU,进一步扩展了其Kinetis E系列产品线。全新MCU产品采用ARM Cortex -M内核,不仅具备更加强大的性能,还拥有更高的存储容量,并集成了更多的抗干扰IP。 Kinetis KE1xF MCU基于高性能ARM Cortex-M4内核,运行频率高达168MHz,集成了兼容CAN 2.0B的FlexCAN模块,提供面向工业应用的高可靠性串行接口以及包含LPUARTs、LPI2Cs、LPSPIs和FlexIO在内的丰富的通信接口。 恩智浦先
[新品]
HT48R05A-1时钟振荡器
中断系统(PROM) HT48R05A-1单片机提供一个外部中断和内部定时/计数器中断。中断的控制寄存器(INTC:0BH)包含了中断控制位,用来设置中断允许/禁止及中断请求标志。 一旦有中断子程序被服务,所有其它中断将被禁止(通过清除EMI位),这种机制能防止中断嵌套,这时如有其它中断请求发生,这个中断请求的标志会被记录下来,如果一个中断服务中有另一个中断需要服务的话,程序员可以设置EMI位及INTC所对应的位来允许中断嵌套服务。如果堆栈已满,该中断请求将不会被响应,即使相关的中断被允许,也要到堆栈指针发生递减时才会响应。如果需要立即得到中断服务,则必须避免让堆栈饱和。 所有的中断均具有唤醒功能,当一个中断被服务
[单片机]
MSP430单片机+BS8112A-3程序源码
采用仿II2C通讯,该芯片II2C通讯略有区别,已调试通过,仅供参考 单片机源程序如下: //============================================================================== //本程序只供学习使用,未经作者许可,不得用于其它任何用途 // 文 件 名 : keyboard.c // 版 本 号 : // 作 者 : // 生成日期 : // 最近修改 : // 功能描述 : FPC触摸按键 IIC 接口例程(MSP430F149系列) // 驱动IC : BS8112A-3 // 说明: 硬件说明 //--------
[单片机]
基于STC单片机的LED智能照明系统
1 引言 led被称为第四代照明光源或绿色光源,LED的发光器件是冷光源,具有节能、环保、寿命长、体积小等特点。白炽灯,卤钨灯的光效为12~24lm/W,荧光灯50~70lm/W,钠灯90~140lm/W,而且大部分的耗电变成了热耗。LED可达到50~200lm/W,而且单光的单色性好,光谱窄,无需过滤,可直接发出有色可见光。在相同照明效果的情况下,耗电量约为白炽灯的十分之一,荧光灯的二分之一。同样效果的一支日光灯40多瓦,而采用LED每支的功率只有8瓦。LED的平均寿命达10万小时,安全可靠性强,不含汞,钠元素等可能危害健康的物质,有利于环保,被称为“绿色照明光源”。 2 智能照明控制方案设计
[电源管理]
单片机的结构原理详细说明
8051是MCS-51系列单片机的非常典型的产品,我们用这一个代表性的型号进行系统的单片机原理讲解。 8051单片机包含中央处理器、数据存储器(RAM)、定时/计数器、程序存储器(ROM)、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别对其原理加以说明: ·数据存储器(RAM): 8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。 ·中央处理器: 中央处理器(CPU)是整个单
[单片机]