java怎么拦截某个对象
283
2022-11-09
基于通用型单片机和以太网控制器实现嵌入式以太网接口的设计
1、微控制器C8051F020
2、以太网控制器CP2200
CP2200有28脚QFN和48脚TQFP两种封装。28脚QFN封装只支持复用方式寻址。有方式选择引脚,用于选择总线接口方式。
CP2200有8KB片内FLASH存储器,可用于存储用户常数、Web服务器内容或作为通用非易失性存储器。FLASH存储器的最后6个存储单元是工厂预编程的唯一48位MAC地址,这样可以从大多数嵌入式系统的生产过程中消除必不可少的序列化步骤。
CP2200完全兼容100/1000 BASE-T网络,可以工作在全双工或半双工模式,自适应,能进行自动极性检测和纠正,具有碰撞自动重发功能,能自动填充和生成CRC,支持广播和多播MAC寻址。工作的温度范围在-40°C到+85°C 之间。
图1 CP2200的系统结构图
3、以太网接口硬件设计
在嵌入式系统中,扩展以太网接口,通常有下面两种方法:
2.选择带有以太网接口的嵌入式处理器。这种方法要求嵌入式处理器有通用的网络接口控制器。处理器和网络数据交换通过内部总线,速度快。
这里选用前一种方法来实现嵌入式系统的以太网接口,其主要由C8051F020单片机和单芯片以太网控制器CP2200构成,如图2所示,单片机控制数据采集和传输,以太网控制器CP2200负责将数据发送到因特网或从网络上接收数据包。
4.1 CP2200驱动程序
以太网中,网络接口就是一个以太网控制芯片及其驱动程序。以太网接口驱动程序包含管理控制器芯片与网络协议栈中上一层之间通信的程序代码,为了在以太网上传送IP数据报,IP层将数据报传递给以太网控制器的驱动程序,驱动程序指示以太网控制器传送以太网帧。在接收来自网络的IP数据报时,以太网控制器检查目标地址是否与接口硬件地址或控制器可接收的组播或广播地址一致,如果一致,则控制器检查错误,驱动程序把数据报或出错指示传递给IP层。
这里以太网接口驱动程序主要是CP2200的初始化配置和收发配置。
(1) CP2200复位初始化
(2) 数据的接收和发送
单片机C8051F020通过使用CP2200的直接和间接寄存器来控制CP2200,直接寄存器可
a.将RAMADDRH:RAMADDRL设为0x0000。
b.将第一个字节写入 RAMTXDATA。
c.将RAMADDRH:RAMADDRL加1。
d.将另一个数据字节写入 RAMTXDATA.
e.重复步骤c和d直到整个包全部装入发送缓存区。
f.长度小于64字节的帧需要填充为至少64字节。
g.将TXENDH:TXENDL设置为最后一个字节的地址。该地址值必须大于等于0x0040。
4.2 TCP/IP协议栈的设计
我们结合项目的实际需要,自行开发了简化的TCP/IP协议,实现的协议包括UDP协议、IP协议、ARP协议、ICMP协议、TCP协议以及一个简单的HTTP协议。各协议自成一个模块,可以根据实际需要,选择使用全部的协议或部分协议,由于本应用主要使用UDP协议传输数据,因此,TCP部分和HTTP部分可以不使用,去掉这两个模块不会影响系统的正常工作。
在实现时,每种协议的格式都定义为一个结构体,发送数据时,只需将应用数据由高层传递到下一层,每层协议会自动添加本层协议所需的报首内容,如,发送UDP数据时,将数据传给UDP层,UDP层会在数据之前加入源目的端口号和目的端口号以及数据报长度和校验和等8个字节的UDP报首信息,然后交给IP层处理,IP同样地在UDP报文前加入IP报首信息,然后发送给下一层。IP层发送时先从ARP Cache中查询目的IP地址对应的MAC地址,如果有,则将该MAC地址放入相应位置,然后发送;如果找不到目的MAC地址则需要发送ARP请求包,广播请求拥有该IP地址的MAC地址,收到ARP回复包后,再将该IP数据发送到下一层,在IP报之前再封装上源MAC和目的MAC地址以及帧类型后,就可以由CP2200进行数据的发送,CP2200会自动添加帧首用于帧同步的8字节前导符和最后的帧校验序列,真正将数据发送到网络上。
5、 结论
本论文的创新点:本文设计的以太网接口采用新型的单芯片以太网控制器CP2200,可以实现不同数据的网络实时传输,具有稳定的工作性能、抗干扰抗震性能和较低的系统开发成本。简化的TCP/IP协议栈,既避免了通用嵌入式TCP/IP的移植工作,也避免了资源的浪费,同时便于修改和扩充。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~