基于ATmega128单片机多任务嵌入式Internet系统设计
每个sys_timeout结构体包括本线程的timeout时间长度,及超时后的回调处理函数
。sys_arch.c中sys_arch_timeouts()函数的功能就是返回当前进程所对应的sys_timeout结构体队列的头指针。本系统用的方法是在系统初始化的时候根据最大的LwIP进程数创建一个sys_timeout结构体指针的数组,以后每创建一个LwIP进程其优先级都从一个连续的已知区间进行分配,sys_arch_timeouts()函数通过调用OSTaskQuery()函数获得进程的优先级进而获得对应的sys_timeout结构体队列的头指针。
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单片机上,实现了低成本的多任务嵌入式网络系统平台。
ATmega128 嵌入式Internet系统 相关文章:
- 基于ATmega128单片机的矿用磁力启动器控制系统设计(06-04)
- 一款宠物狗无线感知交互系统让人和动物的社交网络成真(06-03)
- ATmega128 流水灯的两种实现方法(基于AVR GCC)(11-23)
- Atmega128串口详解(11-23)
- 基于ATMEGA128单片机压力的测量(11-21)
- ATmega128型号标识说明(11-11)