STM32高级物联网通信之以太网通讯
目录
以太网通讯基础知识
什么是以太网
互联网和以太网的区别
1)概念与范围
(1)互联网
(2)以太网
2)技术特点
(1)互联网
(2)以太网
3)应用场景
(1)互联网
(2)以太网
以太网的层次
1)物理层
2)数据链路层
OSI 7层模型
TCPIP 4层模型
一些常见的网络协议
1)IP协议
2)TCP协议
3)UDP协议
4)HTTP和HTTPS协议
W5500芯片
W5500芯片介绍
W5500芯片特点
应用目标
接入框图
主控芯片与W5500交互
1)SPI连接
2)固定数据长度模式和可变数据长度模式
3)W5500的内部存储器
以太网通讯基础知识
什么是以太网
以太网(Ethernet)是一种计算机局域网技术。IEEE组织的IEEE 802.3标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问控制的内容。以太网是目前应用最普遍的局域网技术,取代了其他局域网标准如令牌环、FDDI(双令牌)和ARCNET(令牌总线)。
以太网的标准拓扑结构为总线型拓扑,但目前的快速以太网(100BASE-T、1000BASE-T标准)为了减少冲突,将能提高的网络速度和使用效率最大化,使用交换机(Switch hub)来进行网络连接和组织。如此一来,以太网的拓扑结构就成了星型;但在逻辑上,以太网仍然使用总线型拓扑和CSMA/CD(Carrier Sense Multiple Access/Collision Detection,即载波多重存取/碰撞侦测)的总线技术。(先监听,等空闲再说,边说变监听,如果产生冲突,立刻停止说。载波就是曼彻斯特编码)
互联网和以太网的区别
互联网和以太网有以下区别:
1)概念与范围
(1)互联网
互联网是全球范围内由众多计算机网络相互连接而成的庞大网络系统,它连接了世界各地的各种类型的网络和设备,包括企业网络、家庭网络、移动网络等。可以说互联网是一个高度复杂、覆盖全球的网络集合体,其规模巨大,涵盖了无数的网络节点和用户。
互联网的主要功能是实现全球范围内的信息交流、资源共享和通信服务,例如通过电子邮件、网页浏览、在线视频、社交媒体等各种应用,人们可以在不同的地理位置进行沟通、获取信息和开展业务。
(2)以太网
以太网是一种计算机局域网技术,主要用于在相对较小的地理范围内连接多台计算机和设备,如在一个办公室、一栋建筑物或一个校园内。以太网通常由以太网交换机、网络适配器(网卡)、网线等设备组成,通过特定的网络协议实现设备之间的数据传输。
以太网的主要特点是传输速度快、可靠性高、成本相对较低,并且易于安装和管理。它主要用于实现局部范围内的设备互联和资源共享,如文件共享、打印机共享、内部通信等。
2)技术特点
(1)互联网
技术架构复杂,涉及多种网络技术和协议,包括 TCP/IP 协议族、域名系统(DNS)、路由协议等。互联网的网络结构是分布式的,没有一个中央控制机构,各个网络通过路由器等设备相互连接,实现数据的传输和路由选择。
互联网的连接方式多样,可以通过有线连接(如光纤、电缆等)、无线连接(如 Wi-Fi、移动网络等)等多种方式接入。互联网的服务提供商众多,包括电信运营商、互联网服务提供商(ISP)等,用户可以根据自己的需求选择不同的接入方式和服务提供商。
(2)以太网
以太网采用总线型或星型拓扑结构,使用 CSMA/CD(载波监听多路访问 / 冲突检测)或 CSMA/CA(载波监听多路访问 / 冲突避免)等协议来控制网络中的数据传输,以避免数据冲突。以太网的传输介质主要有双绞线、光纤等,不同的传输介质支持不同的传输速度,如 10Mbps、100Mbps、1000Mbps 甚至更高。
以太网的设备连接相对简单,通常通过交换机或集线器将多台设备连接在一起。以太网的管理主要由网络管理员在局部范围内进行,包括网络配置、故障排除等。
3)应用场景
(1)互联网
应用范围广泛,涵盖了全球各个领域,包括商业、教育、科研、娱乐等。人们可以通过互联网进行远程办公、在线学习、电子商务、社交娱乐等各种活动。互联网还为企业提供了广阔的市场和业务拓展空间,通过互联网,企业可以开展全球范围内的业务,与客户、合作伙伴进行交流和合作。
互联网的服务和应用不断创新和发展,如云计算、大数据、人工智能等新兴技术都是基于互联网的发展而产生的。互联网已经成为人们生活和工作中不可或缺的一部分。
(2)以太网
主要应用于企业内部网络、学校、医院、工厂等局部范围内的网络建设。在这些场景中,以太网可以满足内部设备之间的高速数据传输和资源共享需求。例如,企业可以通过以太网建立内部办公网络,实现文件共享、打印机共享、企业资源规划(ERP)系统的应用等。
以太网也可以作为接入互联网的一种方式,通过以太网连接到路由器或调制解调器,再接入互联网服务提供商的网络,从而实现与互联网的连接。
以太网的层次
以太网通常分为两个主要层次:物理层和数据链路层。
以太网采用无源的介质,按广播方式传播信息。它规定了物理层和数据链路层协议,规定了物理层和数据链路层的接口以及数据链路层与更高层的接口。
1)物理层
物理层规定了以太网的基本物理属性,如数据编码、时标、电频等。
物理层位于OSI参考模型的最底层,它直接面向实际承担数据传输的物理媒体(即通信通道)。物理层的传输单位为比特(bit),即一个二进制位(“0”或“1”)。实际的比特传输必须依赖于传输设备和物理媒体,但是,物理层不是指具体的物理设备,也不是指信号传输的物理媒体,而是指在物理媒体之上,为上一层(数据链路层)提供一个传输原始比特流的物理连接。
2)数据链路层
数据链路层是OSI参考模型中的第二层,介于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源设备网络层转发过来的数据可靠地传输到相邻节点的目的设备网络层。
由于以太网的物理层和数据链路层是相关的,针对物理层的不同工作模式,需要提供特定的数据链路层来访问。这给设计和应用带来了一些不便。
为此,一些组织和厂家提出把数据链路层再进行分层,分为媒体接入控制子层(MAC)和逻辑链路控制子层(LLC)。这样不同的物理层对应不同的MAC子层,LLC子层则可以完全独立。
OSI 7层模型
OSI(Open System Interconnect),即开放式系统互连,一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。ISO为了 使网络应用更为普及,推出了OSI参考模型。其含义就是推荐所有公司使用这个规范来控制网络。这样所有公司都有相同的规范,就能互联了。
OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即ISO开放互连系统参考模型。
每一层实现各自的功能和协议,并完成与相邻层的接口通信。OSI的服务定义详细说明了各层所提供的服务。
TCPIP 4层模型
众所周知,OSI参考模型是学术上和法律上的国际标准,是完整的权威的网络参考模型。而TCP/IP参考模型是事实上的国际标准,即现实生活中被广泛使用的网络参考模型。
OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建力TCP/IP模型。
OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。
OSI是一种理论模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准。
一些常见的网络协议
1)IP协议
IP 协议是TCP/IP协议族中最为核心的协议,更确切的说是网络层重要的协议。
IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层——TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是否按顺序发送的或者有没有被破坏,IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。
2)TCP协议
为了将IP数据包变成可靠。
TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要通过四次挥手拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯。
TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。
3)UDP协议
速度要比TCP快。
UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。
UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象,实际应用中要求程序员编程验证。
UDP与TCP位于同一层,但UDP不管数据包的顺序、错误或重发。
4)HTTP和HTTPS协议
HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。
HTTP 是一个基于 TCP/IP 通信协议来传递数据的协议,可传递 HTML 文件、图片文件、查询结果等。
HTTPS 协议是 HyperText Transfer Protocol Secure(超文本传输安全协议)的缩写,是一种通过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包,HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换资料的隐私与完整性。
W5500芯片
要进行通讯,就需要相应的硬件支持。在嵌入式应用领域,应用最广泛的一个以太网芯片就是W5500,素有以太之王的称号。
官方网址:https://www.w5500.com/index.html
W5500芯片介绍
W5500是韩国半导体公司WIZnet提供的一款高性价比的以太网芯片。其全球独一无二的全硬件TCPIP协议栈专利技术,解决了嵌入式以太网的接入问题,简单易用,安全稳定,是物联网设备的首选解决方案。
W5500集成了TCP/IP协议栈,10/100M以太网数据链路层(MAC)及物理层(PHY),使得用户使用单芯片就能够在他们的应用中拓展网络连接。
久经市场考验的WIZnet全硬件TCP/IP协议栈支持TCP、UDP、IPv4、ICMP、ARP、IGMP以及PPPoE协议。W5500内嵌32K字节片上缓存以供以太网包处理。如果你使用W5500,你只需要一些简单的Socket编程就能实现以太网应用。这将会比其他嵌入式以太网方案更加快捷、简便。
用户可以同时使用8个硬件Socket(将protocol协议\IP协议\port端口进行套接)独立通讯。W5500提供了SPI(外设串行接口)从而能够更加容易与外设MCU整合。而且,W5500使用了新的高效SPI协议支持80MHz速率,从而能够更好的实现高速网络通讯。为了减少系统能耗,W5500提供了网络唤醒模式(WOL)及掉电模式供客户选择使用。
W5500芯片特点
(1)支持硬件TCP/IP协议:TCP、UDP、ICMP、IPv4、ARP、IGMP、PPPoE。
(2)支持8个独立端口(Socket)同时通讯。
(3)支持掉电模式。
(4)支持网络唤醒。
(5)支持高速串行外设接口(SPI模式0、3)。
(6)内部32K字节收发缓存。
(7)内嵌10BaseT/100BaseTX 以太网物理层(PHY)。
(8)支持自动协商(10/100-Based 全双工/半双工)。
(9)不支持 IP 分片。
(10)3.3V工作电压,I/O 信号口5V耐压。
(11)LED状态显示(全双工/半双工、网络连接、网络速度、活动状态)。
(12)LQFP48无铅封装(7x7mm,间距 0.5mm)
应用目标
W5500适合于以下嵌入式应用:
(1)家庭网络设备:机顶盒、个人录像机、数码媒体适配器。
(2)串行转以太网:门禁控制、LED 显示屏、无线 AP 继电器等。
(3)并行转以太网:POS/微型打印机、复印机。
(4)USB 转以太网:存储设备、网络打印机。
(5)GPIO 转以太网:家庭网络传感器。
(6)安全系统:数字录像机、网络摄像机、信息亭。
(7)工厂和楼宇自动化控制系统。
(8)医疗监测设备。
嵌入式服务器。
接入框图
主控芯片与W5500交互
1)SPI连接
W5500提供了SPI(串行外部接口)作为外设主机接口,有SCSn、SCLK、MOSI、MISO 共4路信号,且作为SPI从机工作。
在W5500中只支持工作模式0和3,在这两种模式下数据总是在SCLK信号的上升沿被锁存,在SCLK信号的下降沿被输出。
MOSI和MISO信号无论是接收或发送,均遵从最高标志位(MSB)到最低标志位(LSB)的传输序列。
2)固定数据长度模式和可变数据长度模式
如果SPI工作模式设置为可变数据长度模式(VDM),SPI的SCSn信号需要由外部主机通过SPI帧控制。
在可变数据长度模式下,SCSn控制SPI帧的开始和停止:SCSn信号拉低(高电平到低电平),即代表W5500的SPI帧开始(地址段);SCSn信号拉高(低电平到高电平),即代表W5500的 SPI帧结束(数据段的随机N字节数据结尾);
在我们的电路图设计中,SCSn接的是片选信号,所以我们应该选择可变数据长度模式。
3)W5500的内部存储器
(1)1个普通寄存器block:这里配置了W5500的一些基本信息,如网络配置(IP、MAC地址、Socket中断配置等)。
(2)8个Socket寄存器block:这里配置了每个Socket对应的信息,如Socket的模式、命令、状态、中断信息等。
(3)8个Socket对应的接****收缓冲寄存器block(共16k):初始时每个Socket分配为2k的缓存,用户可以自己重新通过修改相应的配置寄存器进行修改,但是要保证分配给8个Socket的缓冲大小之和不能超过16k,否则会报错。
(4)8个Socket对应的发送缓冲寄存器block(共16k)。
作者:雁过留声花欲落