2-07毕业设计(论文)初稿--左欣 (2)

更新时间:2024-07-04 15:23:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

湖南工业大学本科毕业设计(论文)

摘 要

随着计算机通信技术和网络技术的发展,在嵌入式系统中集成以太网口,来实现与其它计算机设备之间的高速数据传输就显得更加的重要了。越来越多的计算机系统都迫切的需要和其它计算机系统进行联网,以达到共享数据,统一管理的目的。因此除了通常的使用PC机的内部网卡接入以太网外,许多的嵌入式系统也需要直接联入以太网,与其它联网的设备实现数据共享的目的。采用STM32微控制器和W5500芯片搭建的网络系统,结构简单、易于实现。

本文首先介绍了目前以太网技术的日前基本情况以及以太网技术在嵌入式系统中的应用现状。再者提供了以太网的应用模型,介绍了各个层次的网络协议。然后结合以太网接口芯片W5500的主要特点、芯片引脚定义、内部寄存器使用说明,提出了这种芯片与嵌入式处理器的硬件接口设计和底层收发程序的编程思路。接着针对嵌入式系统所需要完成的以太网通信的基本要求,从软件设计的角度介绍了一些必须实现的基本网络协议如TCP、UDP等协议的祯格式和主要特点。

该嵌入式以太网系统是基于STM32芯片与W5500高速以太网控制芯片的 ,它充分发挥了 STM32 芯片的 Cortex-M3 内核低成本低功耗的特性,同时该设计直接使用 W5500固化的TCP/IP协议站,对系统性能有了很大提升。

关键词:以太网;以太网接口;W5500芯片

I

湖南工业大学本科毕业设计(论文)

ABSTRACT

With the development of computer communication technology and network

technology, at the mouth of the embedded system in integrated Ethernet to achieve high-speed data transmission and other computer equipment becomes more important. More and more computer systems are urgently needed and other computer systems networking, in order to achieve data sharing and unified management. So in addition to the usual use of PC's internal network card access Ethernet, many embedded systems also need to directly connected to the Ethernet, and other network equipment to achieve the purpose of data sharing. The structure of the network system is simple and easy to implement with the STM32 microcontroller and W5500 chip..

First of all, this paper introduces the current application situation of Ethernet

technology recently basic situation and Ethernet technology in embedded system. Moreover, the application of Ethernet is provided, and the network protocols are introduced.. And then combined with the main characteristic of Ethernet interface chip w5500, chip pin definition, internal register instructions for use, and put forward the idea of programming of the chip with embedded processor interface hardware design and the driver to send and receive procedures. Then for embedded systems need the basic requirement of the Ethernet communication, from the point of view of software design introduces some must achieve the basic network protocols such as TCP, UDP protocol frames format and the main characteristics.

The embedded Ethernet system is based on the STM32 chip and w5500 high-speed

Ethernet control chip. It makes full use of the STM32 chip Cortex-M3 low-cost low-power characteristics, at the same time the design used directly w5500 curing of the TCP / IP protocol station, the system performance has been greatly improved. Keywords: Ethernet; Ethernet interface; W5500 chip

II

湖南工业大学本科毕业设计(论文)

第1章 绪论

1.1 以太网概述

以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网技术的最初进展来自于施乐帕洛阿尔托研究中心的许多先锋技术项目中的一个。1976,梅特卡夫和他的助手戴维伯格斯发表了对以太网的一个标题:局域计算机网络的分布式包交换技术”的文章。多点传输系统称为CSMA/CD(载波侦听多路访问)的碰撞检测,以及符号的以太网的诞生。以太网的吞吐量只有10Mbps,和载波侦听多路访问的访问控制方法(CSMA/CD)碰撞检测使用。这种早期的10Mbps以太网称之为标准以太网,以太网可以使用粗同轴电缆、细同轴电缆、非屏蔽双绞线、屏蔽双绞线和光纤等多种传输介质进行连接[2]。以太网采用带冲突检测的载波帧听多路访问(CSMA/CD)机制。以太网中节点都可以看到在网络中发送的所有信息,因此,我们说以太网是一种广播网络。以太网的工作过程如下:

当以太网中的一台主机要传输数据时,它将按如下步骤进行:

1、监听信道上收否有信号在传输。如果有的话,表明信道处于忙状态,就继续监听,直到信道空闲为止。

2、若没有监听到任何信号,就传输数据

3、传输的时候继续监听,如发现冲突则执行退避算法,随机等待一段时间后,重新执行步骤1(当冲突发生时,涉及冲突的计算机会发送会返回到监听信道状态。)

4、若未发现冲突则发送成功,所有计算机在试图再一次发送数据之前,必须在最近一次发送后等待9.6微秒(以10Mbps运行)。

网络芯片之间的数据都是基于以太网帧结构,网络层发送下来的数据加上以太网的帧头和帧尾就变成了可以被数据链路层识别的数据帧,在以太网额帧结构中帧头和帧尾的字节数是固定的,但数据包的大小不同,下面分析IEEE802.3以太网的帧结构。IEEE802.3一般帧格式如图1.1.

图1.1 IEEE802.3帧结构

下面具体分析各个字符的作用:

(1) 前导码:一个56比特由交替的0和1组成的同步的前缀。通过前导码字段,接收方就能建立同步过程,使其网络有时间监听网上的信号,并决定是否接收数据帧或产生冲突。

(2) 帧起始定界符:一个8比特序列,用于指明数据帧的开始。

(3) 目的地址:指明了帧发往目的站的MAC地址,6个字节,可以是单播地址、多

1

湖南工业大学本科毕业设计(论文)

址或者全地址。

(4) 源地址:指明发送帧的MAC地址

(5) 长度:共占两个字节,表示逻辑链路层数据报的长度。

(6) 数据:以太网上传输的数据报文,当报文少于46字节时,该字段的其余部分也必须进行填充,一般用0填充,该段的最大长度为1500.

(7) FCS:校验序列,包括4字节CRC用于检查错误,当一个原站组装一个MAC帧,他在所有字节执行一个CRC计算,原站将计算结果放入这个字段,并作为帧的一部分传输给目的站,当帧被目的站接受后,目的站进行同样的校验,若校验值不同,目的站将认为在过程中发生错误并丢弃这个帧。

当今居于主导地位的局域网技术-以太网,便于实现同时又价格低廉的局域网技术已经成为业界的主流。而更高性能的快速以太网和千兆以太网的出现更使其成为最有前途的网络技术。以太网技术不断创新,不断开发出新的功能,并逐步地成为世界上最流行的网络技术。主要的原因有:

(1)可拓展性好,用户从一个老的网络升级到新的高速网络之间的转换十分方便。 (2)可靠性高,以太网使用的是一种很简单的,但又很可靠的结构化布线的基于双绞线的星型连接传输机制。

(3)成本低廉,众多的以太网厂商,导致网络设备价格的进一步下降

(4)管理方便,有成熟的网络管理技术和软件,使管理员能在中心站点方便的管理各个网路设备

1.2 嵌入式系统概述

嵌入式系统是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统[3]。简单地说,嵌入式系统集系统的应用软件与硬件于一体,具有软件代码小、高度自动化、响应速度快等特点。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,它是可独立工作的器件[4]。

嵌入式系统的发展可以分为硬件和软件技术的发展。从硬件上来说,主要是嵌入式处理器芯片的发展,从70年代末、80年代初的4位、8位微控制器发展到现在的犯位、甚至64位的微控制器。不但在速度上提高了很多倍,而且在芯片内部集成的功能部件比以往也大大地增加了。嵌入式处理器可以分为以下四类:

(1)嵌入式微处理器:采用“增强型,,通用微处理器,在功能方面与标准的微处理器基本上是一样的。根据实际嵌入式应用要求嵌入式微处理器的主板安装特殊的设计特点只留下系统和应用,可以大大降低的大小和系统的能源消耗,但其电路板应包括ROM,RAM,总线接口,和其他外围设备。这种设备是最快和最适合用在嵌入式系统中的,应用是比

2

湖南工业大学本科毕业设计(论文)

较大的。目前,有68000个处理器的嵌入式系统的通用,存储在功率:PC,ARM,MIPS,ARM处理器等。特别是,嵌入式微处理器的发展一直很快,和嵌入式微处理器已经在过去的几年中占领了很大的市场份额的,并且有逐步蚕食8位及16位嵌入式微控制器市场的趋势。

(2)嵌入式微控制器:嵌入式微控制器又称单片机,它将整个计算机系统集成到一块芯片中。嵌入式微控制器一般以某种微处理器内核为核,根据某些典型的应用,在芯片内部集成了ROM、RAM、总线、总线逻辑、定时/计数器、看门狗、FO、串行口、脉宽调制输出、刀D、D/A、FlashRAM、EEPROM等各种必要功能部件和外设。为满足不同的使用要求,功能和配置设置在必要的修改和调整的削减,一个系列的单片机具有多种衍生产品,衍生工具的任何类型的处理器核是相同的,不同的内存和外部配置和功能可与建筑物的最大。应用的需求,降低整个系统的功耗和成本。嵌入式控制器的数量和类型的产品,在各种嵌入式处理器是最大的优点,也是主流单片机是嵌入式系统的应用。嵌入式微控制器可分为通用和半通用两类,比较有代表性的通用系列包括8051、PSIXA、MCS251、MCS96/196/296、C166/167、68300等。而比较有代表性的半通用系列,如支持USB接口的MCUSXC93O/931、C540、C541;支持IZC、CAN总线、LCD等的众多专用MCU和兼容系列。

(3)嵌入式DSP处理器:在数字信号处理应用中,各种数字信号处理算法相当复杂,一般结构的处理器无法实时的完成这些运算。由于DSP的体系结构和指令的特殊设计,使其特别适合于数字信号处理的实时性。嵌入式DSP处理器在数字滤波,光谱分析,DSP算法的DSP嵌入式应用poured,在正常运行和DSP的指令,通过使用转换DSP,嵌入式DSP处理器比较有代表性的产品是TI的TMS320系列、ADI的ADSP系列和Motorola的DSP560OO系列等。

(4)嵌入式片上系统:随着EDA的推广和VLSI设计的普及化,以及半导体工艺的迅速发展,可以在一块硅片上实现一个更为复杂的系统,这就产生了SOC技术。通用处理器核心的多样性,标准库中的soc设计公司,很多其他的嵌入式系统的周辺机器,标准设备的vlsi设计,标准和rlog等硬件描述语言和组件库保存用户,单应用整个系统定义、模拟,然后半导体工厂生产的样品能够设计。一些装置的其他合并,不能被植入了整个系统一种或少数的芯片能整合,应用系统电路板将变得很简单,对于减小整个应用系统体积和功耗、提高可靠性非常有利。

以上介绍了嵌入式系统的硬件核心嵌入式处理器的分类,可以看出硬件的发展的是很快的,同样与之相对应的软件也在不断地发展。从软件上来说,随着嵌入式系统应用范围的不断扩大,采用高级语言编程和嵌入式实时操作系统RTOS己是嵌入式系统设计的必然趋势[5]。因为汇编语言和具体的微处理器的硬件结构密切相关,移植性较差,既不宜在复杂系统中使用,又不便于实现软件重用;而高级语言具有良好的通用性和丰富的软件支持,便于推广,易于维护。高级语言编程具有通用性强、容易编程、可读性强、可移植性好、

3

湖南工业大学本科毕业设计(论文)

图3.8 JTAG部分电路原理图

这里采用的是标准的 JTAG 接法,但是STM32还有SWD 接口,SWD只需要最少2跟线(SWCLK 和SWDIO)就可以下载并调试代码了,而且速度更快,能调试。STM32 的SWD 接口与JTAG 是共用的,只要接上JTAG,你就可以使用SWD 模式了,JLINKV8/JLINKV7 和ULINK2 都支持SWD。

3.4 接口设计

想要实现嵌入式系统与以太网之间的互联互通,那么接口设计就显得尤为重要了,STM32开发板与W5500网络控制芯片的连接如图3.9。

配置W5500 的INT引脚必须通过一个10 kΩ 的电阻接高电平, 以选择W5500 的SPI 接口模式, 置STM32F103 为SPI 主模式,W5500 为SPI 从模式, 在SPI总线模式下的配置复用输入输出接口(AFIO) 的PA5 、PA6、PA4 、PA7 分别为SCLK、MISO、/SCS (SPI 从模式选择, 低电平有效)、MOSI 信号线直接相连, 并用软件设置管脚的输出最大速度为10 MHz ,STM32F105V 通过SPI对W5500 读写操作。

配置PB5 口作为W5500 的复位信号/RST_W, 低电平有效。为实现准确的硬件复位, 复位引脚RST_W 上复位信号至少保持2 μs 。

配置PB1 口为外部中断线1(EXTI1) , 并作为W5500的中断信号输出端/INT, 低电平有效。当W5500 在端口产生连接、断开、接收数据、数据发送完成以及通信超时等条件下, 该引脚输出低电平信号指示微处理器。

配置PA8 口为W5500 输出的以太网物理层信号灯(LINKLED) 指示W5500 的网络连接状态, 通过上拉电阻输入到微处理器, 低电平有效。

14

湖南工业大学本科毕业设计(论文)

图3.9 STM32开发板与W5500网络控制芯片接口

15

湖南工业大学本科毕业设计(论文)

第4章 软件设计

4.1 总体设计

W5500固化了TCP/IP协议,所以我们只需要设计Socket接口。这样简化了设计流程,同时也降低微控制器的处理能力以及系统资源的使用。总体流程图见图4.1。

图4.1 总体流程

配置中断W5500初始化配置模式寄存器配置本机MAC地址网关地址掩码地址IP地址配置发送超时重复发送计数配置存储器大小寄存器结束当Socket作为服务器模式时,初始化端口需要设置运行模式(Sn_MR) 和本机端口号(Sn_Port) ,并在端口命令寄存器打开(OPEN) 端口。引用Socket_Listen (SOCKET s)程序,只调用一次该程序就可使W5500 设置为服务器模式。主要程序如下所示。 void W5500_Socket_Set(void) if(S0_State==0)//端口0初始化配置

if(S0_Mode==TCP_SERVER)//TCP服务器模式 if(Socket_Listen(0)==TRUE) S0_State=S_INIT; else S0_State=0

else if(S0_Mode==TCP_CLIENT)//TCP客户端模式 if(Socket_Connect(0)==TRUE) S0_State=S_INIT; else

16

湖南工业大学本科毕业设计(论文)

S0_State=0;

Else //UDP模式 if(Socket_UDP(0)==TRUE) S0_State=S_INIT|S_CONN; else S0_State=0;

完成Socket 的打开和设置侦听工作后, 至于远程客户端是否与其连接, 则需要等待Socket 中断, 在服务器侦听模式下, 不需要设置目的IP 和目的端口号。

当端口接收数据时, 产生接收中断。首先调用端口接收数据包函数Process_Socket_Data () , 并对接收到的数据类型进行判断和加工。本过程先调用接收函数S_rx_process () 从W5500 端口的接收数据缓存区读取数据, 然后将读取的数据加上接收存储器读指针寄存器(S0_RX_RD) 的值再写入S0_RX_RD, 最后将RECV 命令重新写入端口0 的命令寄存器(S0_CR) , 以等待下次数据的接收。或者将处理完的数据拷贝到发送缓冲区, 再调用S_tx_process 函数发送数据包给CPU。主要程序如下:

void Process_Socket_Data(SOCKET s) { }

//本过程先调用S_rx_process()从W5500的端口接收数据缓冲区读取数据,然后将读取的数据从Rx_Buffer拷贝到Temp_Buffer缓冲区进行处理。处理完毕,将数据从Temp_Buffer拷贝到Tx_Buffer缓冲区。调用S_tx_process()发送数据。

System_Initialization(); //STM32系统初始化函数(初始化STM32时钟及外设) Load_Net_Parameters(); W5500_Initialization(); while (1)

W5500_Socket_Set();//W5500端口初始化配置 if(W5500_Interrupt)//处理W5500中断

W5500_Interrupt_Process();//W5500中断处理程序框架

if((S0_Data & S_RECEIVE) == S_RECEIVE//如果Socket0接收到数据 S0_Data&=~S_RECEIVE;

17

unsigned short size;

size=Read_SOCK_Data_Buffer(s, Rx_Buffer); memcpy(Tx_Buffer, Rx_Buffer, size);

Write_SOCK_Data_Buffer(s, Tx_Buffer, size);

//装载网络参数

W5500_Hardware_Reset(); //硬件复位W5500

//W5500初始货配置

湖南工业大学本科毕业设计(论文)

0xaa Process_Socket_Data(0);//W5500接收并发送接收到的数据 else if(W5500_Send_Delay_Counter >= 500)//定时发送字符串 if(S0_State == (S_INIT|S_CONN)) S0_Data&=~S_TRANSMITOK;

memcpy(Tx_Buffer, \

Write_SOCK_Data_Buffer(0, Tx_Buffer, 23);//指定Socket(0~7)发送数据处理,端W5500_Send_Delay_Counter=0;

0x55 长度 目标代码 命令 数据 口0发送23字节数据

其中通信数据包格式为: 其中Oxaa 和Ox55 为接收数据包的标志头;长度位为数据包字节长度,不包括数据包头和本身字符,命令位为对对象数据的操作,为0 时读取数据,为1 时设置对象数据,目标代码位用来显示对象代码,如Ox00 为网关IP 、Ox01 为子网掩码、0x02 为物理地址、LED 为状态显示等;数据位为接收到的数据,数据是以16 进制形式接收,最后再加上2 B 的数据报头和1 B 的数据本身。

18

湖南工业大学本科毕业设计(论文)

参考文献

[1] 潘辉.STM32_FSMC机制的Flash存储器扩展技术[J].单片机与嵌入式系统应用,2011,34(1):258-260.

[2] 王晓廷.以太网技术与应用[M].北京:人民邮电出版社,2005:15-18,31. [3] 王强,张和生,叶华.交通信息采集的UDP通信方法[J].电子测量与仪器学报,2009,23(3):39-44.

[4] 尹岗.基于ARM的以太网通信控制器的设计[J].电子测量技术,2009,32(10):133-35.

[5] 王健.基于TOE技术的嵌入式以太网接口设计[J].工业仪表与自动化装置,2010,34(6):34-36.

[6] 乔立岩,梁宇,赵浩然,朱建平.基于W5300的以太网接口设计[J].电子测量技术,201,35(7):129-132.

[7] 陈峰,易彬,罗春彬.基于嵌入式技术的以太网接口设计[J].通信技术,2010,43(5):127-129.

[8] 于春雪.STM32F103的高速以太网接口设计[J].单片机与嵌入式系统应用,2011,49(5):43-45.

[9] 李文生,黄杰勇,邓春建.嵌入式以太网接口及精简网络协议的非常规实现[J].通信技术,2009,42(01):149-151.

[10] 徐功伟,戴雪峰,刘树东.嵌入式以太网控制器设计[J].通信技术,2011,49(5):43-45.

[11] 兰少华,杨余望,吕建勇.TCP/IP详解[M].北京:清华大学出版社,2006:15-18,31.

[12] 葛永明,林继宝.嵌入式系统以太网接口设计[J].电子技术应用,2002,49(3):25-28.

[13] 杨震斌.基于AX88796的以太网接口设计与实现[J].微计算机信息,2007,14(3):49-50.

[14] 李永胜,黄兰红,刘红军.基于UDP协议的多文件传送[J].广西民族大学学报,2007,49(3):68-72.

[15] Kyok Kim, Hongki Sung, Hoonbock Lee.Performance analysis of the TCP/IP protocol under UNIX operating systems for high performance computing and communications[J].Proceedings, 2005, 17(4): 123-128.

29

湖南工业大学本科毕业设计(论文)

致 谢

入校求学至今己有四年,依然清晰地记得高考时的那份执著,接到录通知书时的那份 兴奋,报到时的那份骄傲??,今天,所有的一切都即将永久地存入我的记忆中。经过前期的大量准备及自己的专心写作,学士的学位论文到今天接近尾声了,这也预示着我四年的大学生涯即将结束。值此学士论文完稿之际,谨向帮助过我与我共同度过这段美好时光的老师、同学和家人致以诚挚的谢意。

感谢我的导师邹豪杰副教授,从论文的选题、构思、初稿修改直到最后定稿,导师都倾注了大量的时间和心血,提出了宝贵的建议和意见;同时,他们的严谨的学风、强烈的责任感、谦和的态度深深地感染了我,我将铭记终身。

感谢系里的老师,你们无私的知识传授,拓展了我的知识视野。

感谢我至亲至爱的同学,四年里,我们情同手足,在我需要的时候,给了我最温暖的问候与最无私的帮助,衷心地祝福你们,前程美好!

最后,谨以此文献给我挚爱的双亲。

学生签名:

日 期: 年 月 日

30

本文来源:https://www.bwwdw.com/article/4hl.html

Top