嵌入式系统与以太网的连接
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式系统与以太网的连接
1 引言
目前,以太网(ethernet)协议已经非常广泛地应用于各种计算机网络,如办公局域网、工业控制网络等场合,并且还不断地发展。基于以太网的新技术和联网设备不断出现,以太网已经成为事实上最常用的局域网络标准之一。但是,基于以太网的嵌入式系统目前并不是很多。其原因除了嵌入式系统本身运行速度较慢、资源较少且不足以实现以太网的各种协议外,更重要是设计以太网的接口及协议相对比较复杂,使人望而却步。本文将研讨基于c8051f系列单片机系统的嵌入式系统与10mbps以太网控制器芯片rtl 8019as的接口电路实现及编程方法。
2 嵌入式以太网接口分析
2.1 接口组成
8位mcu的嵌入式设备通过以太网接口,将8位mcu采集的数据信息,传送到远程服务器。在这个过程中需要处理网络接口、接收数据的分析、发送数据段的封装等问题。
以10baset以太网为例,发送数据时应该做的工作是首先对需要发送的数据进行曼切斯特编码,然后对编码后的数据进行预处理,使其发送的数据适合10baset的以太网传输,最后把处理好的数据以适当的速度发送到以太网。同时为了保证数据的有效性,系统还应具有冲突检测和重发功能。在这个过程中,直接用8位mcu来实现该功能非常困难。解决的方法是用专门的网络接口芯片nic网络接口卡(nic-netw ork interface card)来实现,这类芯片遵循ieee802.3所规定的csma/cd协议,除了提供物理链路所需的电气性能外,还提供曼切斯特编码、冲突检测和重发功能,可以用很少的外围电路一起完成数据的发送和接收功能。这样,8位mcu只需要nic芯片提供初始配置和数据接口,这对于8位mcu是没有问题的。基于以上的分析,8位mcu的嵌入式设备以太网接口部分构成如图1所示:
图1 嵌入式设备以太网接口组成
2.2 以太网控制芯片——rtl8019as
(1) rtl8019as的主要性能
l 符合以太网ii与ieee802.3(10base5、10base2、10baset)标准;
l 全双工,收发可同时达到10mbit/s的速率;
l 内置16kb的sram,用于收发缓冲,降低对主处理器的速度要求;
l 支持8/16位数据总线,8个中断申请线以及16个i/o基地址选择;
l 支持utp、aui、bnc自动检测,还支持对10baset拓扑结构的自动极性修正;
l 允许4个诊断led引脚可编程输出;
l 采用cmos工艺,功耗低。单一电源5v供电。
(2) rtl8019as的内部结构
rtl8019as芯片内部包含远程dma(直接存储器存取)接口、本地dma接口、mac(介质访问控制)逻辑、数据编码解码逻辑和其它接口。这里的dma与平时所说的dma有些不同:rtl8019as芯片的本地d ma操作是由控制器本身完成;而远程dma并不是在没有主处理器的参与下数据能自动移到主处理器的内存中,它指主处理器给出起址和长度就可以读写芯片的ram缓冲区,每操作一次ram地址自动加1,而普通ram操作每次要先发地址再处理数据,速度较慢。内部结构如图2所示。
3 嵌入式设备网络互连设计方案
3.1 电路原理设计
c8051f020是美国cygnal公司推出的一种混合信号soc型8位单片机,它是一种完全集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,与mcs-51指令集完全兼容。内核采用流水线结构,机器周期由标准的12个系统时钟周期降为1个系统时钟周期,70%指令的执行时间为1个或2个系统时钟周期,处理能力大大提高,峰值性能可达25mips。
同时,除具有标准8051的数字外设部件外,c8051- f020片内还集成了构成一个单片机数据采集、控制系统所需要的几乎所有模拟、数字外设及其他功能部件。这些外设或功能部件包括:用于多种模拟信号的模拟多路选择器、真正12位转换精度的adc,还有能满足特殊功能所需的smbus(i2c兼容)、uart、spi、多个多功能计数器/定时器、以及看门狗定时器(wdt)和电源监视器等数字外设。
c8051f020具有100脚的tqfp封装,功耗低,供电电压为2.7~3.3v,全部i/o、rst、jtag引脚均耐5v电压。其mcu具有p0~p7共64个通用i/o端口,每个端口引脚都可以被配置为推挽输出或漏级开路输出。对于rtl8019as,由于其工作电压是5v,而c8051f020的工作电压是3.3v,所以要c80 51f020的输出能更好地驱动5v输入的oled,需要对系统进行额外配置。除了将对应端口的输出方式设置为“漏极开路”外,还应在电路上将每个端口通过一个上拉电阻接到5v电源,这样可以保证c8051f020的逻辑“1”输出能够被提升到5v。
单片机采用c8051f020芯片,以查询工作方式不断读取rtl8019as状态寄存器。以远程dma方式发送或读取rtl8019as的数据。详见图3。
由于网络控制器具有 ethernet(ieee802.3)协议处理功能,系统便可直接rj45连接到以太网(再通过以太网接入 internet)。本文所设计的系统中选用的rj45连接器为lf1s022,它已经具有电平转换功能,简化了 pcb设计。值得注意的是,设计pcb时,rj45连接器不能与cpu和网络芯片相距太远,以免对数据传输造成影响。
rtl8019as的tpin+(59脚), tpin-(58脚)脚是tp 的一对输入脚,能以10mbits/s 的速率从双绞线接收差分曼彻斯特编码的数据。tpout+(45脚)、tpout-(46脚)是一对曼彻斯特编码的差分tp 输出信号。为了防止双绞线超载,该输出信号会被提前中断,这样可以减少拥塞。连接时,这四个管脚分别接到 lf1s022的7、6、5、4脚。连接器的其他管脚都通过一个电容与地连接。最后,还必须在50、5 1脚之间接入一个20mhz的晶体振荡器。
图3中扩展的rj45口接入互联网,rtl8019as通过本地dma方式将接收到的数据送到片内sram,或者从片内sram读取数据从rj45口发送出去。