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

发布者:RadiantBlossom最新更新时间:2006-10-17 来源: 微计算机信息关键字:传输  视频  以太网 手机看文章 扫描二维码
随时随地手机看文章

1 引言

  目前,嵌入式系统已经广泛渗透到人们的工作、生活中。从家用电器、信息终端、手持通信设备到仪器仪表、制造工业、过程控制等领域,嵌入式设备已随处可见。另一方面,近几年来Internet技术的飞速发展给嵌入式应用带来了新的契机,在未来嵌入式系统中应用Internet技术具有很大的优势。

  目前嵌入式Internet技术的实现主要有下面三种方式 :

  第一种方式是EMIT技术,采用支持TCP/IP协议的高性能服务器作为网关(emGateway), 嵌入式设备通过RS-232、RS-485或者CAN总线等与网关服务器连接,间接通过服务器网关连接Internet。经过多年的发展EMIT技术已经在工业设备的网络化中得到了广泛的应用。但该技术也存在着以下的缺点:由于需要使用高性能的网关服务器,再加上emGateway网关的使用需要缴纳相应的版税,从而使得成本很高;而且网关和设备之间需要专门布线,在嵌入式设备比较分散的情况下极为不便,通信的距离、速度都受到一定的限制。

  第二种方式是采用硬件协议栈芯片进行网络连接,比如Seiko公司的S7600,嵌入式MCU通过接口对其进行控制以达到Internet通信的目的,这时软件只需要增加一段和协议栈芯片通信的接口程序即可,因此开发难度小、周期短。其缺点是系统的硬件成本非常高,而且由于使用的是硬件协议栈,扩展不灵活。

  第三种方式是在嵌入式MCU上用软件实现TCP/IP协议栈,然后通过网络接口芯片连接Internet。在这种方式中由于使用了软件协议栈使得嵌入式MCU本身具有了Internet通信能力,从而省去了高性能网关和硬件协议栈芯片,因此成本非常低,而且扩展起来非常方便灵活,再配上小型嵌入式实时操作系统的支持,就可以实现性价比很高的嵌入式多任务Internet平台。但是要在资源有限的16位甚至8位单片机上实现复杂的操作系统和网络协议栈有一定难度,但近年来随着单片机处理速度的不断提高和内部资源的不断扩展,再加上小型的实时操作系统和网络协议栈的相继推出,使得利用单片机来实现低成本嵌入式多任务网络平台成为可能。

  基于以上背景,本文就来介绍应用在研究课题“低码率视频信号的网络传输”系统中的一种基于AVR单片机的多任务嵌入式网络系统软硬件平台的设计。

2 硬件平台设计

  考虑到以太网接入方式技术成熟、可靠性高、通信速度快和成本低的优点,本系统的硬件平台采用单片机加以太网接口控制芯片组成。由于操作系统和协议栈需要用到大量的数据存储器,因此需要外扩RAM存储器。为了提高通信性能,单片机与以太网接口芯片之间采用并行总线扩展方式进行连接,接口芯片和外部的RAM存储器统一编址。本系统采用了可编程GAL器件ATF16V8进行地址译码,这样不仅可以充分利用地址资源,而且只需要修改ATF16V8的源程序即可实现地址的改变,提高了系统的扩展能力。系统的硬件平台的原理框图如图1所示。

             图1:硬件平台系统框图

  单片机选用高性能的AVR单片机ATmega128。AVR是ATMEL公司结合了成熟的51系列和PIC系列单片机的优点而推出的高性能8位单片机,具有以下特点:

  性价比高: AVR单片机内部集成了8路10位的ADC、PWM、E2PROM、WDT、RTC等,具有了片上系统(SOC)的雏形,大幅度降低了系统的整体体积和成本。
 
  速度快:AVR单片机采用了先进的RISC体系架构,大多数指令可以在一个时钟周期内完成,理论上速度可以达到1MIPS/MHz。而且具有只需要两个时钟周期的硬件乘法器。

  接口丰富:AVR单片机除可以进行并行扩展外,还具有USART、SPI和I2C串行总线。

  ISP&IAP:其内部的可擦写FLASH存储器不仅可以进行在线下载,而且具有片上的BOOT程序实现在应用可编程,真正实现同时读写操作。

  开发方便:AVR是第一款真正为C语言开发设计的单片机,具有多种编译器。而且具有JTAG接口,可以进行在线调试。

  低功耗:AVR单片机具有六种睡眠模式,可以最大程度的降低系统的功耗。

  以太网接口控制芯片采用Realtek公司生产的以太网接口控制器RTL8019AS ,其10M处理能力对于本课题需要的码率为4Mbps视频流的网络传输来说完全满足要求。另外8019AS片内集成了16KByte的RAM用作发送和接收的缓冲区,对其访问可以使用远程DMA方式,从而大幅提高接口的通信能力。需要注意的是,由于ATmega128数据总线是8位,RTL8019AS的IOCS16B引脚应当下拉接地以选择8位总线方式,而且JP引脚要接高电平以选择跳线模式。

  地址译码采用的是ATF16V8,具体是把MCU地址线的高8位作为16V8的译码输入,16V8的3位输出作为译码片选输出:低端RAM(32KB)、高端RAM(32KB)和8019AS的片选。由于8019AS的地址空间仅需要32Byte,而且与高端RAM的地址重叠,为了给RAM分配尽可能多的地址空间,为8019AS分配顶部的256Byte,而把剩余的地址空间全部分配给RAM。上述译码的CUPL描述如下:

CS_RAM_L = ! A15;

CS_RAM_H = A15 & ! (A14 & A13 & A12 & A11 & A10 & A9 & A8);

CS_8019 = A15 & A14 & A13 & A12 & A11 & A10 & A9 & A8;

3 操作系统移植

  uC/OS-II是一个专门为中小型嵌入式应用设计的抢占式的实时操作系统内核,具有源代码公开、移植性好、可裁减、可固化、实时性和安全稳定性高的特点 ,非常适合本系统的应用。uC/OS-II的系统框图如图2所示。

uC/OS-II与硬件平台无关的代码文件:UCOS_CORE.C、UCOS_II.C等

uC/OS-II配置代码文件:INCLUDES.H 、OS_CFG.H


           
                   图2:uC/OS-II的系统框图

uC/OS-II

  在设计之初就充分考虑了移植性,移植起来非常方便。从图2可以看出,与移植有关的只有3个文件:OS_CPU.H,OS_CPU_C.C和OS_CPU_A.S。

  第1个文件是OS_CPU.H,其中主要定义了一些与编译器有关的数据类型、堆栈的生长方向、临界代码区的保护方式。需要说明的是uC/OS-II中临界代码区的保护方式有3种,本设计采用第3种,即在进入临界区之前把CPU状态寄存器SREG的内容保存到一个局部变量cpu_sr中,在退出临界区之后再还原SREG,这样做的好处是临界区保护不会对SREG产生影响。其中SREG的保存和返回函数必须由汇编语言来写,放在OS_CPU_A.S文件中。

  第2个文件OS_CPU_C.C中主要是任务堆栈初始化函数OSTaskStkInit(),任务创建时调用此函数来初始化任务的堆栈结构。该函数一开始把传入的任务函数的指针存放到硬件堆栈的栈顶,看上去就像该函数在执行过程中发生了中断一样(低字节在先),这样返回后就可以从新的任务开始执行了。需要特别注意的是,在这个函数中必须把CPU状态寄存器SREG的值设为0x80,也就是全局中断使能,否则系统将崩溃。

  最后一个文件OS_CPU_A.S是一个汇编源文件,主要定义了6个汇编函数。首先是临界区保护用到的SREG保存和恢复函数。然后定义的是OSStartHighRdy()函数,它只在系统启动时由OSStart()函数调用一次,所做的工作主要是让系统从最高优先级的任务开始执行,实现的方法和后面要介绍的OSCtxSw()函数相似。OSCtxSw()函数实现的是任务级的切换,首先把当前的任务的状态保存到其任务控制块TCB中,然后把当前优先级最高的任务的TCB中的内容加载到工作寄存器中,这样函数返回后就可以从此任务开始执行了。接下来的OSIntCtxSw()函数实现的是中断级的任务切换,它和OSCtxSw()函数的唯一不同是它是在中断中调用的,因此不需要保存工作寄存器的内容,剩下的和任务级的切换过程完全一样。最后一个定义的是节拍时钟的中断服务子程序,在这个函数中的开始要令中断欠套全局变量加1,并且调用时钟管理函数OSTimeTick(),中断退出时调用系统提供的中断退出函数OSIntExit()。

4 网络平台设计

  LwIP是一套专门为嵌入式系统设计的源码开放的轻型协议栈,最新版本是LwIP1.1.0。LwIP在保持TCP/IP协议基本要求的前提下,通过层与层之间共享内存,避免了许多繁琐的复制处理,这样做虽然破坏了严格的分层思想,但却大幅度地节省了代码和数据存储空间,因此非常适合嵌入式应用。与其他轻型协议栈不同的是,LwIP不仅支持一般的网络协议,比如UDP协议、DHCP协议、PPP协议等,而且还支持多网络接口、IPv6和标准API 。

           

                 图3:LwIP运行机制

4.1 LwIP在uC/OS-II上的移植

  针对uC/OS-II和AVR的ICC编译器,LwIP的移植只需要编写arch文件夹下的3个文件——cc.h、sys_arch.h和sys_arch.c。其中cc.h中有与CPU和编译器有关的定义,包括数据结构和大小端存储方式等。其中关键代码区的保护用uC/OS-II中的相应函数替换一下即可。剩下的两个与操作系统有关的文件是移植工作的重点。

  为了增强移植性,LwIP专门把和操作系统有关的数据结构和函数放在一起组成操作系统封装层,为诸如定时、进程同步和消息传递等操作系统服务提供统一的接口,移植时仅需针对不同的操作系统来实现特定的操作系统封装层,这些是由sys_arch.h和sys_arch.c实现的。其中sys_arch.h主要定义与操作系统相关的数据结构——信号量、邮箱和进程号,这些在uC/OS-II中都有对应的实体,要注意的是LwIP中的邮箱对应于uC/OS-II中的消息队列。

  sys_arch.c中要实现和操作系统有关函数的定义,包括系统的初始化以及信号和邮箱的操作——创建、删除、投递和等待,这些功能只需要用uC/OS-II中相应的函数进行重新封装即可。另外,TCP/IP协议栈中需要许多定时器的功能,这在LwIP中是用sys_timeout结构体队列和相应的函数实现的 。每个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单片机上,实现了低成本的多任务嵌入式网络系统平台。

关键字:传输  视频  以太网 引用地址:基于AVR单片机多任务嵌入式Internet系统设计

上一篇:分布式系统内部以太网中的地址动态配置
下一篇:高速移动数据业务技术实现分析:HSPA对比EV-DO

推荐阅读最新更新时间:2024-05-13 18:15

OPPO 5G应用3D视频通话项目曝光,正决战核心前沿技术突破
今天早间,网络出现的一组照片和信息,显示OPPO正在基于5G网络,研究全新的3D视频通话技术。从曝光出的资料看,OPPO巧妙地把5G网络和3D图像技术结合起来,利用5G网络高速率的特性,传递大数据量的3D视频信号,实现了类似全息影像的效果,让视频通话犹如面对面一样。 图:OPPO利用5G和3D图像技术,研究3D视频通话技术 3D视频通话:未来可实现全息影像 可能很多消费者还不清楚这一技术的意义和用途。简单来说,就是未来如果OPPO 将此项技术落地,你与朋友之间打电话将不是语音信息,而是让千里之外的朋友,与你同处在一个空间里面对面地聊天。 比如,《星球大战》里面贯穿影片的全息影像,它让远在千里之外的人真实地呈现在眼前,就如同面
[手机便携]
小米MIX3 5G版“成绩”:实现5G在线播放8K视频
随着5G商用的临近,5K的“现身”频率也高了起来。今天,小米手机官方微博就官宣表示,小米联合诺基亚贝尔、中国联通及联通网研院,使用搭载高通骁龙855及X50调制解调器的小米MIX3 5G版,于上海成功实现了利用联通5G现网在线播放8K超高清视频。 针对画面效果,小米表示,相比4K视频,8K超高清视频在画面上有了质的飞跃,并实现了对实际场景的高度还原,也许在不久以后,就能在家里实时看上一场5G+8K VR/AR演唱会。 小米于2月24日在西班牙巴塞罗那召开了全球发布会,发布了小米MIX3 5G版。会上,小米还在现场联合欧洲运营商Orange,使用MIX3 5G版演示了5G视频通话,过程非常流畅,并强调这是“真5G”。这
[手机便携]
小米MIX3 5G版“成绩”:实现5G在线播放8K<font color='red'>视频</font>
基于DM6446处理器的视频运动车辆检测系统的实现
随着现代交通运输业的快速发展,道路上的车辆日益增多,而伴随而来的交通拥堵、道路使用效率不高等问题却给日常交通管理带来了重重困难。融合了计算机、电子等现代高新科技的智能交通系统(ITS:Intelligent Transport System)提供了解决方法。 运动车辆检测是ITS 的重要组成部分,本文探讨了以TI 的TMS320DM6446(简称DM6446)为嵌入式开发平台的交通视频信息采集和处理系统的设计,通过分析实时交通视频序列,采用差异积累背景建模、Otsu 自动阈值选取、形态学滤波及区域生长定位等技术,最终实现交通场景视频运动车辆的检测。 1 系统硬件构成 本系统选用的TMS320DM6446 是基于AR
[汽车电子]
基于DM6446处理器的<font color='red'>视频</font>运动车辆检测系统的实现
H.265标准下视频软解与硬解的对比
1.概念 从数字视频诞生以来,硬解码和软解码的说法一直伴随着它的发展。数字视频的软解码是指在通用CPU上通过专门的播放软件解码并播放视频;而硬解码则是指在专用的硬件解码模块解码视频,然后将解码数据送至显示屏播放。严格来说,并不存在纯粹的硬解码,因为即使有硬件协处理模块存在,整个解码过程也需要软件来控制。所以本文所讨论的是约定俗称的软解码和硬解码。 2.历史 早在20世纪80年代,数字视频商业化应用(Sony的D1格式, http://en.wikipedia.org/wiki/Digital_video#History )已经出现。那时的数字视频是未经压缩地存储在磁带上,所占空间非常大,其相关产品极其昂贵,普
[安防电子]
基于OMAP的嵌入式TCP/IP开发
随着人们对智能化产品需求的增加,未来的嵌入式产品,包括各种家电、通信、PDA、仪器仪表等设备正逐渐走向网络化,以共享互联网中庞大的信息资源,因此使嵌入式设备的网络化开发有广阔市场前景,由于嵌入式硬件资源有限,而传统的TCP/IP等网络通信协议对计算机存储器、运算速度的要求较高,所以不能直接应用,为此,必须开发一套适合嵌入式系统的、高度优化的、最为精简的TCP/IP协议栈。 开放式多媒体应用平台OMAP(Open Multimedia Application Platform)是美国德州仪器公司推出的高度集成的软硬件平台。OMAP具有独特的双芯结构,结合了DSP与RISC内核,可为无线多媒体设备提供独一无二的性能和功耗优势,OMA
[嵌入式]
未来视频监控:高清网络摄像机综述
  随着社会不断进步,经济快速发展和技术突飞猛进,公共秩序安全、生产安全、财产安全等越来越受到人们的重视,从而使以视频信息为特征的视频监控更为广泛地被应用在各行业领域,从传统的安防监控向管理和生产经营监控发展,从室内到无人值守特定场合应用的监控。   传统的监控模式已不能满足政府“平安城市”、金融系统、高等教育、监管、监狱、文博等行业对安防的需求,而拥有网络化、智能化、数字化、远程化特点的网络视频监控系统则成为新的应用趋势,并形成一个高效、安全、先进的网络视频监控体系。   在网络视频监控系统中,H.264编码压缩算法得以成功推广,随着用户的逐步认可、价格的降低及功能的完善,必然迎来高清网络摄像机主导未来视频监控领域的时代。
[安防电子]
“算法+硬件”融合改变无线传输格局
eeworld网午间报道:如今,诸如Oculus Rift和HTC Vive等最先进的VR系统都需要一根稍显麻烦的线缆,来降低延迟和确保高保真图像以及电能传输到头显。但用过的用户都对此深恶痛绝,线缆直接影响了沉浸感。这个问题激发了不少于七个解决方案,这些方案都致力在高端主机PC和头显之间建立无线链路。 去掉高端VR头显的线路可谓众望所归,但到现在都没有明显的解决方案。 问题归结为三个主要因素:带宽,延迟和价格。以前的无线视频技术满足不了VR的需求,于是2016年三大高端VR头显都还需要拖着根电线走来走去。 线缆一个最致命的缺陷是它损害了沉浸感,尤其在房间尺寸VR下,当你在VR世界走来走去的时候,突然踩上了线缆,瞬间毁所有。吃亏多了
[网络通信]
阿尔卡特-朗讯合并后首次大动作,OFC上宣称开创光纤传输里程碑
担心贝尔实验室会在阿尔卡特-朗讯合并中消失的分析家们,在光纤通信大会(OFC)上看到了实际上该公司可能会将双方的力量应用到其先进研究中的迹象。 采用朗讯和阿尔卡特的独特技术及Sumitomo开发的调制器,朗讯贝尔实验室和阿尔卡特研究与创新的合作小组在240公里的三覆盖范围网络上演示了25太位/秒的光纤传输。 由于测试系统使用Raman放大器,该团队能够在C和L频带内采用单色散补偿光纤实现全色散补偿,无需外部芯片或其它元件。每个80公里的光纤覆盖范围采用4个 Raman泵激光,试验中一起测试了三种覆盖范围。测试使用了160波长(C和L各80),和差分正交相移键控调制。 该团队还在OFC上公布了国防先进研究项目署的光电集成电路项
[焦点新闻]
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved