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

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

时间:11-03 来源:互联网 点击:
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;

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

网站地图

Top