基于AVR单片机的多任务嵌入式Internet系统设计
时间:09-16
来源:互联网
点击:
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位单片机,具有以下特点 :
1 性价比高: AVR单片机内部集成了8路10位的ADC、PWM、E2PROM、WDT、RTC等,具有了片上系统(SOC)的雏形,大幅度降低了系统的整体体积和成本。
2 速度快:AVR单片机采用了先进的RISC体系架构,大多数指令可以在一个时钟周期内完成,理论上速度可以达到1MIPS/MHz。而且具有只需要两个时钟周期的硬件乘法器。
3 接口丰富:AVR单片机除可以进行并行扩展外,还具有USART、SPI和I2C串行总线。
4 ISP&IAP:其内部的可擦写FLASH存储器不仅可以进行在线下载,而且具有片上的BOOT程序实现在应用可编程,真正实现同时读写操作。
5 开发方便:AVR是第一款真正为C语言开发设计的单片机,具有多种编译器。而且具有JTAG接口,可以进行在线调试。
6 低功耗: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;
目前,嵌入式系统已经广泛渗透到人们的工作、生活中。从家用电器、信息终端、手持通信设备到仪器仪表、制造工业、过程控制等领域,嵌入式设备已随处可见。另一方面,近几年来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位单片机,具有以下特点 :
1 性价比高: AVR单片机内部集成了8路10位的ADC、PWM、E2PROM、WDT、RTC等,具有了片上系统(SOC)的雏形,大幅度降低了系统的整体体积和成本。
2 速度快:AVR单片机采用了先进的RISC体系架构,大多数指令可以在一个时钟周期内完成,理论上速度可以达到1MIPS/MHz。而且具有只需要两个时钟周期的硬件乘法器。
3 接口丰富:AVR单片机除可以进行并行扩展外,还具有USART、SPI和I2C串行总线。
4 ISP&IAP:其内部的可擦写FLASH存储器不仅可以进行在线下载,而且具有片上的BOOT程序实现在应用可编程,真正实现同时读写操作。
5 开发方便:AVR是第一款真正为C语言开发设计的单片机,具有多种编译器。而且具有JTAG接口,可以进行在线调试。
6 低功耗: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;
嵌入式 总线 MCU 单片机 AVR PIC ADC PWM MIPS C语言 相关文章:
- 嵌入式系统的定义与发展历史(11-15)
- 嵌入式系统亲密接触(11-22)
- 嵌入式系统设计中的USB OTG方案(02-01)
- 嵌入式线控驾驶系统开发过程中设计和测试考虑(02-02)
- 一个典型的嵌入式系统设计和实现 (02-02)
- DDR SDRAM在嵌入式系统中的应用(02-07)