基于AVR的网络用具接口的设计与实现

分享到:

1 引言

家庭网络是指融合控制网络和多媒体信息网络于一体的家庭信息化平台,是在家庭范围内。实现各种电子设备互联和管理的系统。一个典型的家庭网络结构如图1所示.一般由一个家庭网关(home gateway或resident gateway)和若干个网络用具(network apphanees)组.成。组网的方式可以是有线的,也可以是无线的,可采用TCP/IP、以太网方案、xlO电力线方案、Zigbee、超宽带 (Ultra Wide Band,简称uwB)通信、近场通信(Near Field Communication,NFC)、蓝牙等方式。

1

图1家庭网络结构图

家庭网关是网络的管理控制核心,负责把家庭中彼此孤立分散的子网系统或网络用具终端设备互联起来,实现信息的交互和共享,同时作为家庭内网和外部网连接的枢纽,以满足内网和外网的信息交互。网络用具,又称网络家电、信息家电,在IETF草案中按功能把它分成胖网络用具(fat IPA)和瘦网络用具(Thin IPA)两种。功能比较复杂的胖网络用具定义为:IPA=[network interface][apphcation control][I/O control]。即具备网络接口和控制本地系统的I/O端口,并具有嵌入式应用程序的设备。家用电器如冰箱、空调等需要实现复杂控制功能,一般需要有网络接口和I/O端口控制功能,同时需要开发m控制应用程序,就成为了胖网络用具;家用电器如灯、门等实现简单控制功能,只要具备网络接口和I/O端口控制功能,它们就是瘦网络用具。

可见网络用具实际上是指包含一个网络处理器并具备特定功能的消费设备,郎在传统家用电器中加入网络接口使之成为具有远程遥控、信息访问、获取、存储以及联网等功能的信息家电,如此—来,我们不仅可以在本地对家电进行控制,还可以通过Internet网络远程控制家电,家电也可以把自身的状态信息上报到家庭网关中。可以简单地认为,普通的家用电子设备增加一个网络接口,就可以成为网络用具。因此,网络用具的网络接口是家用电子设备网络化的关键部件。

本文提出—种网络用具网络接1:3的。方案,在本方案中.组网力式基于以太网的TCP/IP,硬件采用ATMEL公司的AVR单片机和RTL8019以太网芯片。该方案成本低,便于组网,易于实现。

2 网络用具接口的硬件设计

2.1系统结构

网络用具接口硬件结构如图2,可以看到网络用具通过10口与AVR单片机通讯,单片机中内嵌TCP/IP协议栈,会话层、传输层在单片机中实现,RTL8019AS实现数据链路层和物理的功能。

2

图2网络用具接口硬件结构图

当家庭网关控制网络用具时,数据通过带隔离变压器的RJ45接口.进入RTL8019AS的缓冲区,经RTL8019AS处理后被单片机读入到单片机的 RAM暂存,暂存的数据通过IO口或RS-232串口传送到刚络用具,在向家庭嘲关发送数据时,网络用具经IO口或RS-232串口发送数据包至单片机的数据缓冲区,把数据打包,然后通过远程DMA操作将组帧后的数据写入到RTL8019AS的内部SRAM,再经RJ45接口发送给家庭网关。如此,就实现了家庭网关与家电的双向通讯,以及家电设备连接到Internet。

2.2硬件电路设计

硬件连接图如下:

3

图3 MCU与RTL8019AS硬件连接图

这里选用的控制芯片是AVR单片机。本项目所用的单片机ATMEGA32L是一款高性能低功耗AVR8位单片机。这款芯片有32K的FLASH,足够烧写TCP/IP协议栈。

RTL8019AS是REALTEAK公司的一款10M以太网芯片,内部嵌入16KB的SRAM,它用于实现网络的物理层协议,主要实现网卡和网络电缆的物理连接.介质访问控制(MAC),数据帧的开拆,数据帧的发送和接收,错误校验、数据信号的编,解码以及数据的串/并变换。

RTL8019AS片内有16K的SRAM,地址0X40000-0X7FFF,这16KRAM被初始化成2个部分:①接收以太网数据缓冲②发送以太网数据缓冲,具体2个缓冲大小可编程设定。

电路连接如图3,RTL8019AS电源采用直流5V.它的SDOSD7数据总线,通过一个74HC573锁存器与单片机连接,单片机用LE使能控制锁存器。RTL$019AS采用8位总线,SA地址总线只使用SA0-SA4与单片机连接,其它SA5-SAl9都接地。这里基址为0。INTO为 RTL8019AS8个中断之一,与单片机的外部中断连接,在接收数据时使用。RSTDRV为复位线,高电平有效,要求复位时间长于800ms。 IOR/10W为读写控制线。AEN为地址使能,低电平有效。

芯片与网线接口RJ45通过TPIN+、TPIN-、TPOUT+、TPOUT-连接。TPIN+/TPIN-为双绞线接收,TPOUT+、TPOUT- 为双绞线的发送脚。但是不能直接连接,要经过网络隔离变压器隔离,本设计采用20F—Ol。它起的作用主要有两个,一是传输数据,把PHY送出来的差分信号用差模耦合的线圈耦合滤波以增强信号,并且通过电磁场的转换耦合到不同电平的连接网线的另外一端;二是隔离网线连接的不同网络设备问的不同电平,以防止不同电压通过网线传输损坏设备。

3 RTL8019驱动程序

RLS019AS包含大量的片内寄存器单元,在工作的过程中需要实现数据包的接收和发送,必须正确的对相关的寄存器进行设置。对RTLSOl9AS的驱动程序主要包括3个部分:RTL80l 9AS初始化部分,数据包接收部分,数据包发送部分。

3.1初始化

初始化主要是对寄存器的初始化,主要包括初始化复位寄存器,初始化RTLS019AS的配置寄存器:CONFIG0-CONFIG3,初始化接收和发送缓冲区,初始化RTL9019AS的中断,初始化接收配置,发送配置等,设置以太网物理地址等。

3.2数据接收

数据的接收可以用查询方式,芯片不断向网络中查询是否有信息到达本节点;也可以用中断方式,这里选择中断方式。RTL8019AS的INTO接 ATMEGA32的INT0,当有中断发生。AVR进入中断服务,先通过读取ISR,对中断类型进行判断,看是否正确接收。根据先前工程定义好的网卡接收缓存区地址,用CURR指针将接收到的数据读取到内存中。当CURR指针同BURY指针地址相同时说明接收数据结束。所以要先判断是否接收结束,再调用取包函数WY_GETPACK()。

取包函数主要包括停止8019的工作,复位中断,判断是否边界寄存器是否越界,启动DMA操作,读取DMA,计算数据包长度.移动接收地址然后再读。接收流程图如图4所示。

4
图4数据接收流程图

3.3数据发送

发送过程分为3个步骤:封装数据包;将数据送至发送缓冲区;发送数据。发送缓冲区空问为3k,可以保存2个完整的数据帧。可以把缓冲区分为两部分,一部分用来发送,另一部分用来封装数据包,达到提高效率的目的。如果发送的数据少于60字节,则将数据填充至60个字节再发送出去。若数据大于1514个字节就要将数据分割到小于1514个字节后再发送。所以—个数据包的数据字节数必须控制在60—1514字节.这是以太网8023协议规定的。如果发送失败则重发。发送流程如下图5所示。

5

图5数据发送流程图

4 结束语

网络用具义称网络家电、信息家电,是未来家用电器的主要发展方向。在未来家庭中。多台网络用具设备协调工作,并组成一个互动的网络环境,以方便用户的使用,这个网络环境被称为数字家庭网络,简称家庭网络。家庭网络是信息技术发展创新的必然趋势。

本文创新点在于,设计了基于AVR的网络用具接口方案,简单易用,成本低,符合了信息家电的要求,更可以应用于远程工业控制,远程仪表抄表等领域。目前开发的开发板,使用单片机直接通过RTLSOl9AS芯片,用网线与PC机通讯,工作正常。

 

继续阅读
51单片机、AVR单片机和PIC单片机IO口的操作

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。

一个小经验,让你的AVR单片机功耗超低

休眠电流要最小:掉电模式必须的,然后能关闭的功能全部关闭,关闭BOD检测,关闭看门狗,电压越低越好,1.8V,频率越低越好。

51、AVR与PIC,三种单片机IO口的操作

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。

14个官方视频教程,助您学习AVR系列单片机

AVR® Insights — 第1集 — AVR存储器 AVR® Insights — 第2集 — 边写边读存储器 AVR® Insights — 第3集 — 端口 AVR® Insights — 第4集 — 休眠模式 AVR® Insights — 第5集 &mdash

关于AVR单片机,你了解多少?

什么是AVR单片机?AVR单片机有什么优点?为什么要选择AVR单片机?

©2019 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss