专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
嵌入式
浅谈单片机以太网接入方案
2019-07-13 08:40
发布
生成海报
站内文章
/
嵌入式Linux
10180
0
1545
单片机的种类繁多,从低端到高端,有以
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
已经足够应对超过大部分的应用。
Ta的文章
更多
>>
基于51单片机的指纹密码锁
0 个评论
IIR与FIR基础知识
0 个评论
浅谈单片机以太网接入方案
0 个评论
机器学习基础之 蒙特卡罗算法
0 个评论
热门文章
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮