微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于AVR单片机多任务嵌入式Internet系统设计

基于AVR单片机多任务嵌入式Internet系统设计

时间:11-03 来源:互联网 点击:
4.2 RTL8019AS驱动程序的编写

RTL8019AS驱动程序做的工作主要是8019AS的初始化、发送和接收以太网数据包。

初始化函数rtl8019_init()是在添加以太网络接口时由netif_add()函数调用,调用过程中首先初始化此接口对应的全局网络接口结构体,然后设置8019AS的各功能寄存器 。初始化完8019AS之后调用arp_init()函数启动ARP功能,然后用sys_timeout()函数启动ARP缓冲列表生命周期的定时器。

数据包的发送首先从ARP缓冲队列中查找目的MAC地址,然后构造以太网数据帧的头部,最后调用底层的发送函数low_level_output()将数据帧发送出去。如果找不到对应的IP/MAC项,发送ARP请求数据帧。数据包的接收由中断处理函数rtl8019_ISR()调用,它的执行过程是先调用最底层的接收函数low_level_input()从8019AS中接收数据帧,如果接收的是IP数据包,则更新ARP缓冲队列并把数据包传给网络接口结构指定的函数进行处理。如果接收的是ARP数据包,则调用etharp_arp_input()函数处理。为了提高性能,最底层的接收发送函数采用的都是8019AS的远程DMA工作方式 。

5 总结

嵌入式设备与Internet的结合代表着嵌入式系统的未来发展方向,目前已有不少科研机构和公司纷纷加入了嵌入式Internet技术的研究行列。在这种背景之下,本文设计了一种基于8位AVR单片机的多任务嵌入式Internet系统平台,并且已经应用在研究课题“低码率视频信号的网络传输”系统中,对于嵌入式Internet技术的推广应用具有参考意义。本文作者创新点:将实时嵌入式操作系统和轻型TCP/IP协议栈结合起来,应用在8位AVR单片机上,实现了低成本的多任务嵌入式网络系统平台。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top