毕 业 设 计(
论文
政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载
) 外 文 翻 译
外文
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
目: Construction of Embedded Ethernet Based on MCF52259
中文题目: 基于MCF52259构建嵌入式以太网
学 院 名 称: 电子与信息工程学院
专 业: 电子科学与技术
班 级: 电科084
姓 名: 李杰 学 号0840*******
指 导 教 师: 胡劲松 职 称 副教授
定稿日期: 2011年 12 月8日
基于MCF52259构建嵌入式以太网
摘要 嵌入式以太网已成为一个重要的通信方式支持物联网的发展。嵌入式以太网技术分为两种类型:“微控制器与以太网控制芯片”构建
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
和“单芯片”构建方案,但前者是现在流行的选择。飞思卡尔公司的32位高度集成微控制器MCF52259被用为V2ColdFire微架构的嵌入式以太网的主要控制器。在构建过程中,嵌入式组件为向导。首先,完成以太网驱动的硬件电路
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
,然后实现以太网驱动的软件编程。最后,进行彻底核查编制测试用例。通过这种方式,可以证明该设计方案具有良好的稳定性。
关键词:MCF52259,嵌入式以太网,以太网驱动器。
1引言
随着4C技术(计算机技术,控制技术,通信技术和图形技术),从政府,企业,再到家庭,每一个部分将通过网络连接。更多更多的建筑物,生产设备,智能家居,智能互联网设备都要连接到对方,他们迫切需要嵌入式应用网络技术。目前,嵌入式以太网技术的研究可分为两种类型:(1)“微控制器与以太网控制方案芯片“解决方案[1](2)”单芯片“解决方案[2]。大多数应用程序选择第一种方案,主要是由于嵌入式以太网通讯模块集成单片控制器少,这种微控制器的初始应用成本高。被选定的MCF52259微控制器[3]是由飞思卡尔公司于2009年2月推出一个新产品。它包括一个快速以太网控制器(FEC)模块,相应的OSI七层协议的数据链接的媒体访问控制层(MAC)层。由于芯片没有集成物理层模块,本文采用第一种嵌入式以太网接入解决方案。在寻找信息的过程中,发现中国几乎没有关于MCF52259的研究和应用。因为芯片内它有丰富和强大的资源,将有很大的潜在的,有价值的应用市场,因此,这种芯片是值得研究的。在MCF52259功能和开发方法的分析和研究的基础上,本文将完成以太网驱动器的硬件电路设计,并提供软件嵌入式以太网驱动程序的设计和测试案例的以太网驱动程序,也将提供MCF52259的其他功能模块的学习参考以及嵌入式以太网技术。
2.以太网模块的硬件设计
在物理层和数据链路层之间,MCF52259提供一个快速网络控制器(FEC)模块。如果在芯片中没有物理层,要实现以太网通信,必须有一个外部物理收发器。本文使用由台湾Realtek公司生产的具有10/100M快速以太网物理层收发器的RTL8201CP芯片[4]。RTL8201CP提供可供选择的媒体独立接口(MII)或串行网络接口(SNI)的MAC芯片,它实现了所有的10/100M以太网物理层的功能。在本文中,MII18线的接口被应用于实现MCF52259的MAC层和RTL8201CP物理层PHY的通信,以及媒体独立接口(MII)符合IEEE802.3的u
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
接口。图1显示MCF52259和RTL8201CP之间的引脚连接。RTL8201CP界面芯片和电器插座RJ45之间得的网络连接,一个隔离得芯片HR601680用于连接的RJ45电源插座。这样做不仅可以让信号传得更远,而且使芯片的内部和外部隔离,大大提高抗干扰能力,增加了对芯片的保护,如防止雷击。除此之外,不同电压的芯片(一些PHY芯片是2.5V,一些PHY芯片是3.3V)连接时,彼此不会影响。
3.以太网驱动程序的软件设计
以太网模块MCF52259的硬件电路集成了EPHY和快速以太网控制器(FEC),它们通过MII接口通讯。通此过此模块的驱动程序发送和接收帧。 “以太网帧结构显示在图2。领先的位循环冗余校验(CRC)校验位由硬件自动添加。该驱动程序和MAC的源地址和目的地址,长度和字段的类型和数据类型紧密相连。当它的值介于0x0000和0x05DC之间,字段的长度和类型就是是数据的长度,当其值大于0x0600,意味着字段的长度和类型就是数据的类型。互联网IP)为0x0800和地址解析对应本文中提到的协议(ARP),这是由0x0806对应。完整的驱动程序文件包括(EPHY)的物理初始化,PEC的初始化,帧的发送和接收。
图1。以太网物理层的硬件连接
8字节
6字节
6字节
2字节
46-4500字节
4字节
首字节
目的地址
源地址
字节/长度
数据
CRC校验
图2:框架结构
3.1EPHY的初始化
EPHY初始化需要设置物理收发器的工作模式,程序如下:
(1)以太网功能通过设置NQ[3]和NQ[5]来选择,这两个端口是用来作为MDIO的和MDC。
(2)初始化MII接口控制器。由于系统总线频率为80MHz,速度控制寄存器(MSCR)的MII_SPEED域名设置为16,所以管理数据得到2.5M赫兹的时钟。
EPHY初始化需要设置物理收发器的工作模式,程序如下:
(1)以太网功能通过设置NQ[3]和NQ[5]来选择,这两个端口是用来作为MDIO的和MDC。
(2)初始化MII接口控制器。由于系统总线频率为80MHz,速度控制寄存器(MSCR)的MII_SPEED域名设置为16,所以管理数据得到2.5M赫兹的时钟。
(3)MII通过MIMIFR注册控制读时序和写时序,根据用户参数,全双工或半双工模式,通过CR注册的自动协商模式来设置以太网传输速率。通过设置ANAR注册选择以太网所支持的特性,当CR注册工作在自动协商模式,所有这些选定的特点被送到另一端。
3.2 FEC的初始化
FEC的初始化需要设置几个重要的寄存器和初始化缓冲区描述符。其过程如下:
(1)通过以太网控制寄存器(ECR)设置复位信号1。大约复位后8个时钟周期,FEC的逻辑复位序列已完成,FEC逻辑恢复复位信号。现在,FEC模块已完成复位。
(2)通过中断控制器来设置FEC的13个中断源的优先级。
(3)关闭所有的FEC中断入口,并清除所有中断标志位。
(4) 通过物理地址高寄存器(PAUR)和物理地址低字节寄存器(PALR)来设置本地MAC地址。PALR包含低32位(字节0,1,2,3)的48位地址。PAUR包含高16位(4字节和5)
48位地址。PAUR的15:0位包含一个常数的类型字段(0x8808用于PAUSE帧的传输。该寄存器的高16位不能自动复位,我们必须对其进行初始化。
(5) 初始化一个单独的哈希表和一组哈希表。
(6) 通过接收缓冲区大小寄存器(EMRBR)配置来辨别大小,并设置接收缓冲区的最大长为 1520字节,(传统的帧最大1518字节,以正确对齐的缓冲区,EMRBR必须由16整除,这里设置为1520字节)。
(7) 通过接收控制寄存器(RCR)设置接收块的运作模式,通过传输控制寄存器(TCR)和帧的最大长度,设置发送块的运作模式。无论是在传输还是接收,是否是MII模式,全双工还是半双工。
(8) 由于系统总线频率为80MHz,速度控制寄存器(MSCR)的MII_SPEED域名设置为16,所以管理数据得到2.5M赫兹的时钟。
(9) 分配和初始化缓冲区描述符,初始化哈希表,并指派接收BDS接收描述符环的价值的起始地址开始注册(ERDSR)和分配的起始地址作为值传递BDS发送描述符环,开始注册(ETDSR)。
(10) 启用FEC模块,通过设置ECR的ETHER_EN位。然后接收和传输帧。
3.3 接收帧和传输帧
屋宇署结构和帧的传输和接收密切相关。我们定义在内存中,这是每个缓冲区的缓冲区描述符表。 “发送表和接收表的建立,他们的第一个地址相应书面到ETDSR和ERDSR。在我们的程序中,定义屋宇署结构如下:
typedef struct
{
vuint16 status; //control and status
vuint16 length; // buffer length
vuint8 * dataAd; //buffer address
} BD;
为了简化处理,分配各为1520字节的缓冲区,然后每帧完全可以存储在缓冲区中,而不是分开存放。为了增加以太网的数据吞吐量,发送和接收缓冲区描述符表维护BDS,每个对应两个缓冲区。发射架的步骤如下:
(1)在屋宇署表状态段和控制段有序的查询R位,找到可用的发射屋宇署
(2)写MAC的目的地址,MAC源地址,长度,类型和数据和将要被发送到发送缓冲区的数帧。
(3)配置发送屋宇署的字段长度。
(4)配置发送屋宇署,和关联的L,R和TC位,配置相应的缓冲区的标志数据,形成一个完整的帧,等待发送。在帧的末尾,是由硬件生成一个CRC电路。
(5)发送缓冲器描述符寄存器活跃,表明发送缓冲区寄存器表已更新,并可以发送帧。
接收帧的步骤如下:
1. 在屋宇署表状态段和控制段有序中查询e位,并找到屋宇署将要收到的数据。
2. 在上述屋宇署中,得到数据长度和起始地址,并从缓冲区中读取数据。
3.设置屋宇署的E位为1,为屋宇署被重用做准备。
4. 接收缓冲器描述符寄存器活跃,表明接收缓冲区寄存器表已更新,并可以接收帧,接口功能[5]包括为上层协议栈提供的以太网驱动程序如下:
//初始化EPHY模块
uint8 EPHY_Init(uint16 sysClk,uint8 rateMode,uint8 DupMode,uint8 autoNeg);
/ /初始化FEC模块
void FEC_Init(uint8 mac_addr[6]);
//发送一个帧
int8 FEC_FrameSend(uint8 Data[ ], uint8 destAdd[6], uint8 srcAdd[6],uint16 len-
Type,uint16 DataLen);
//接收一帧
int8 FEC_FrameReceive(uint8 Data[ ], uint16 *Datalen);
4.测试以太网模块
为了测试发射和接收以太网帧,本文采用环回模式。主要功能是循环调用FEC_Frame发送函数来发送以太网帧。在这个系统中帧接收时允许开中断。如果以太网模块要接收一帧数据。在中断中FEC FrameReceive函数被调用。从而帧从接收缓冲区读取和通过UART发送到PC本文中,MAC目的地址被设置为“FF-FF-FF-FF-FF-FF”, MAC源地址设置为“0A,0B,0C-0D-0E-0F” 。数据的长度是80个字节,当数据发送后,地址加1。在这个过程中,应该设置循环接收控制寄存器(RCR)的LOOP位,DRT位应该被清零,以便在全双工模式FEC下在传输过程中也可以接收。