基于RAM处理器的网络数据传输技术的研究分析报告.docx
《基于RAM处理器的网络数据传输技术的研究分析报告.docx》由会员分享,可在线阅读,更多相关《基于RAM处理器的网络数据传输技术的研究分析报告.docx(40页珍藏版)》请在冰豆网上搜索。
基于RAM处理器的网络数据传输技术的研究分析报告
基于RAM处理器的网络数据传输技术的研究分析报告
摘要
基于ARM处理器的网络数据传输技术结合了嵌入式设备工作稳定,实时性好,集成度高,环境适应能力强,成本低等优点与网络覆盖广泛及接口具有良好通用性的优点,在各种数据传输现场中具有越来越广泛的应用前景。
本文是基于RAM处理器的网络数据传输技术的研究,网络数据以图像数据的传输为例,并且研究对象采用了通过网络传输图像数据的应用系统,所以本文提出在单芯片上实现全局控制+轻量级RTOS内核+精简TCP/IP协议栈的系统架构方式,设计一个基于S3C2440开发板的网络图像数据实时传输的嵌入式系统。
关键词:
网络数据传输嵌入式LinuxTCP/IP协议
第一章绪论
1.课题的背景及其意义
数据信号获取以及转移可以采用直接存储在采集现场本地,收集一段时间的数据后由工作人员到采集现场将数据取回,或者通过某种途径实时传输到后端,前者对实时性要求比较高的场合以及某些较为危险的工业现场缺乏实用价值,后者能实时将采集的数据信号传输到控制端,较为及时地反映出采集现场的实际情况,无疑具有更多的灵活性与实用价值,同时由于Internet的广泛的覆盖以及接口的通用性,传输的方式通过网络来进行,将会使成本降低并且让系统规划的难度减小的优势。
采用通过网络实时传输数据的方式可以采用传统的PC+数据采集卡的方式或者基于具备网络功能的嵌入式设备的方式,前者虽然具备实现简单,功能多样化的优点,但也存在体积庞大,稳定性低,在恶劣环境中难以工作,成本较高,功能不可裁减等劣势,相比较而言,嵌入式设备具备工作稳定,易于携带和安装,操作灵活的特点,同时还具有实时性好,集成度高,环境适应能力强,系统成本低,同时也易于根据实际需要进行功能的添加与裁减等优点,在各种数据信号获取的各种应用场合,将得到越来越广泛的应用,是今后的一个发展趋势。
在网络中传输图像数据,由于网络的传输速率有限,为了实现图像数据的稳定传输,必须对图像进行压缩,无损压缩的压缩比比较低,对降低码率的贡献有限,所以在对图像质量没有精确要求的情况下通常采用有损压缩算法。
由于嵌入式系统具有计算能力有限的特性,而这是设计面向一般PC或者工作站的图像压缩算法所不需要考虑的,其压缩算法有其固有的特点,需要单独对其进行研究。
目前针对嵌入式系统进行图像压缩的工作,主要集中在对动态图像实时压缩算法实现的研究和基于专用图像压缩芯片构架实用系统上,对于对成本敏感,每秒需要传输的图像的帧数只要求在若干帧以内的场合下适用的压缩算法的研究还鲜有所闻,随着工业以太网技术和Internet的迅速发展,越来越多图像获取设备将接入网络,这种较为低端的网络图像传输设备的应用将越来越广泛,对于其上的图像压缩算法的进行一定的探讨,实现一个同时具备网络功能和图像压缩功能的嵌入式设备,对该领域进行一次有益的探索与尝试,是一项很有意义的工作。
2.本文所做工作
本文第二章介绍了相关的背景知识,包括嵌入式系统,图像的网络传输,以及两者相结合的讨论。
第三章从系统架构的角度对实现的系统进行描述,介绍了系统总体方案,芯片选型的考虑和系统集成的具体工作。
第四章重点介绍了TCP/IP协议以及相关协议,为下一章的的网络传输TCP/IP协议的设计做好理论铺垫。
第五章全面地介绍了系统的软件设计工作,包括操作系统的移植过程,嵌入式TCP/IP协议的设计,以及在应用层实现网络图像数据传输。
第六章对全文进行简明的总结,并对该领域的研究进行展望。
第二章嵌入式系统及图像的网络传输
2.1嵌入式系统概述
2.1.1嵌入式系统的定义
根据IEEE(国际电气和电子工程师协会)的定义,嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置(devicesusedtocontrol,monitor,orassisttheoperationofequipment,maehineryorplants)。
嵌入式系统定义:
是现代科学的多学科互相融合的以应用技术产品为核心,以计算机技术为基础,以通信技术为载体,以消费类产品为对象,引入各类传感器,进入Internet网络连接,适应应用环境的产品。
2.1.2嵌入式系统的特点
(1)嵌入式系统通常是面向特定应用的。
嵌入式系统的专用性很强,其中的软件系统和硬件的结合非常紧密,一般需要针对硬件进行系统的移植,同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的“升级”是完全不同的概念。
(2)系统精简。
嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。
(3)高实时性嵌入式操作系统。
这是嵌入式软件的基本要求,而且软件要求固态存储,以提高速度。
软件代码要求高质量和高可靠性、实时性。
(4)为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。
(5)嵌入式软件开发走向标准化。
为了合理地调度多任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS(RealTimeOperatingSystem)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。
(6)嵌入式系统本身不具备自主开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。
开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。
2.1.3嵌入式系统的组成
嵌入式系统包括硬件和软件两部分。
图2.1嵌入式系统的组成框图
1.专用硬件包括嵌入式处理器、存储器和I/O端口及外围设备等。
其核心是嵌入式处理器。
嵌入式处理器一般具备以下4个特点:
①对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核的执行时间减少到最低限度;
②具有功能很强的存储区保护功能。
这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断;
③可扩展的处理器结构,以能最迅速地开发出满足应用的最高性能的嵌入式微处理器为准;
④嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备,靠电池供电的嵌入式系统更是如此。
2.应用软件是实现嵌入式系统功能的关键,包括操作系统软件和应用程序。
有时设计人员把这两种软件组合在一起。
应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。
嵌入式系统软件的特征如下:
①软件要求固态化存储。
为了提高执行速度和系统可靠性,嵌入式系统中的软件一般固化在存储器芯片或单片机本身中,而不存贮于磁盘等载体中;
②软件代码高质量、高可靠性。
尽管半导体技术的发展使处理器速度不断提高、片上存储器容量不断增加,但在大多数应用中,存储空间仍然是宝贵的,还存在实时性的要求。
为此要求程序编写和编译工具的质量要高,以减少程序二进制代码长度、提高执行速度;
③系统软件(OS)的高实时性是基本要求。
在多任务嵌入式系统中,对重要性各不相同的任务进行统筹兼顾的合调度是保证每个任务及时执行的关键,单纯通过提高处理器速度是无法完成和没有效率的,这种任务调度只能由优化编写的系统软件来完成。
2.1.4嵌入式Linux
本文选择的嵌入式系统为Linux。
嵌入式Linux支持多种体系结构,有强大的网络功能支持,支持多文件系统,有丰富的外设驱动,此外Linux还具备一整套工具链,使用户容易自行建立嵌入式系统的开发环境、交叉运行环境,并且可以跨越嵌入式系统开发中仿真工具的障碍。
一般开发嵌入式操作系统的程序调试和跟踪都是使用仿真器来实现的,而使用Linux系统做原型的时候,可以绕过这个障碍,直接使用内核调试器来做操作系统的内核调试和查错。
嵌入式应用系统的体系结构可用图2.2分层方式描述:
第五层
嵌入式应用软件
第四层
中间支撑软件层
第三层
硬件无关的操作系统内核层
第二层
硬件抽象层(HAL)
第一层
硬件系统
图2.2嵌入式应用系统的体系结构
分层体系结构层与层之间的依赖关系是上层完全依赖于下层,这种依赖主要是由明确定义的接口来实现的,能很好的满足体系结构的要求。
2.1.5嵌入式系统开发与调试
由于开发平台受到存储容量和功能的限制,嵌入式应用的开发和调试需要借助一套专门的开发工具和软硬件环境来完成。
硬件环境包括:
具有文件传送功能的宿主机,具有编译调试功能的仿真器。
软件包括:
操作系统软件、编译调试软件、文件传输软件等。
嵌入式应用系统设计完成以后,一般不具备在其上进行进一步开发的能力,如果要进行功能的扩充和改进,必须在宿主机上进行重新设计。
嵌入式应用软件开发可以通过两种途径进行:
一种是直接利用汇编和嵌入式高级语言对硬件编程,由于嵌入式程序具有直接在CPU芯片上运行的能力,这种程序只需要在其开发调试仿真器环境下编译运行通过后直接下载ROM即可;第二种是为了利用CPU的强大功能,便于对硬件和软件的管理,引入嵌入式的操作系统和相应的编译环境,由操作系统来管理软硬件资源(存储管理,文件管理,进程管理,中断管理等)。
由于操作系统对高级语言(C语言)的支持和其强大的网络功能,我们可以进行高级语言的编程,屏蔽对低层的直接访问,使得具有复杂功能的应用程序的编写和实现变得更加容易和方便。
2.2基于嵌入式系统的图像的网络传输
在网络中传输图像数据,由于网络的传输速率有限,为了实现图像数据的稳定传输,必须对图像数据进行压缩,无损压缩的压缩比比较低,对降低码率的贡献有限,所以在对图像质量没有精确要求的情况下通常采用有损压缩算法。
由于嵌入式系统具有计算能力有限的特性,需要基于该特点考虑具有适用性和实用性的压缩算法。
目前针对嵌入式系统进行图像压缩的工作,主要集中在以下的两个方面:
(1)动态图像的实时压缩:
要求对视频信号进行实时的压缩,压缩算法基于通用的标准,应用为视频监控系统或者视频会议系统,标准为MPEG-2,MPEG-4,H.264等,一般使用高端数字信号处理器如TI的6200系列或者Philps的Trimedia来实现算法,配合处理能力强的高端控制器如ARM9,XScale,使用嵌入式Linux或者嵌入式WindowsXP作为操作系统,或者是使用高中端处理器配合视频压缩专用芯片来构架系统,这种技术的典型应用是银行系统中的24小时实时监控录像,特点是对实时性要求高,要求压缩后重建的图像质量好,对成本较不敏感。
(2)静态图像的高质量压缩:
要求重建后的图像与原图相差极小,一般使用无损压缩或者根据JPEG2000标准进行低压缩比有损压缩,使用中档数字信号处理器如TI的6711配合中档处理器。
典型应用是医学图像采集与存储系统,特点为对重建的图像质量要求高。
2.3嵌入式网络传输的图像压缩算法
本文所考虑的应用方向是在嵌入式系统上的压缩算法,因此采用基于零树小波编码的算法。
该算法具有以下特点:
(1)算法思想简洁,易于通过程序实现,并且可以通过对原有算法某些步骤的改善与省略实现精简的目的;
(2)零树小波编码是一种嵌入式编码,编码所得的比特流按其重要性排序,可以在任意一点结束编码,允许精确度达到一个目标压缩率和目标比特率,而仍能确切地产生同样的图像。
基于零树小波编码的算法进行图像压缩大体需要经过以下步骤:
(1)选择小波基及其对应的小波滤波器;
(2)输入待压缩图像点值序列;
(3)给出分解层数L和图像数据向量长度k;
(4)对源图像采用分解算法进行小波变换,得到不同层次不同图号的子图;
(5)根据不同层次不同子图的特点,对相应小波系数的各个部分进行嵌入式编码。
反过来,在恢复图像(图像解压缩)时,需先根据密码书还原出各层小波系数,最后利用重构算法对还原后的小波系数进行反变换以重建源图像。
本章小结
本章对嵌入式系统的定义、特点以及本文所采用的嵌入式操作系统Linux进行介绍,并介绍了嵌入式网络与图像获取结合的优点,同时分析了图像采集速率要求不高的嵌入式系统上实现的压缩算法的特点,得出零树小波算法作为其压缩算法较佳的结论。
第三章基于嵌入式系统的图像网络传输的系统设计
本文设计的系统是面向成本敏感,每秒需要传输的图像的帧数只要求在若干帧以内的场合下适用的嵌入式图像网络传输应用,前面章节己经说明该系统的理想实现模式是在一个中档处理器上运行一个非标准的静态图像压缩算法程序来实现压缩。
从系统设计的角度来考察,设计工作包括系统总体方案的考虑,硬件平台的搭建与系统软件实现。
3.1系统结构设计
本系统结构框图如下:
图3.1系统结构框图
由于系统同时需要进行图像压缩,数据的网络传输,这些功能模块之间存在并行执行的可能性,引入操作系统,基于操作系统的多任务模式,利用操作系统提供的任务间通信机制对应用程序进行设计有利于降低应用程序的设计难度与提高其执行效率。
由于系统资源有限,网络功能的实现在软件上由一个功能精简的嵌入式TCP/IP协议栈来实现,该协议栈是TCP/IP协议栈的一个功能子集,只保留一些对于系统必须的协议(关于该协议栈的考虑,将在软件设计部分详细分析)。
网络接入方式的考虑,考虑到以太网技术的的优点:
成本低;速度在近年得到较大提高以及因普遍应用形成了广泛支持(以太网是世界上应用最多的网络,包括各种工业用网络,有超过93%的网络节点为以太网。
)。
选择以太网作为网络接入方式使得系统具有较高的通用性与较强的适应性。
从系统的功能考虑,硬件平台的架构基于主控芯片+以太网控制器+其他必要外设,每一模块的功能界定清晰,通过一定的接口设计工作各模块之间可以很好地实现协调工作。
系统设计根据设计的目标确定了本系统设计的框架,软件与硬件的大体结构,是系统实现的基础。
下面将对硬件架构与软件设计的具体实现进行说明。
3.2硬件平台设计
图3.2硬件结构框图
硬件平台设计的首要工作是选择主控芯片,对于本文设计系统,主控芯片是一个具有中等控制能力与计算能力的处理器,性价比较高,具备尽量多的系统所需的片上外设。
基于这样的考虑,选择ARM系列的三星公司的S3C2440处理器作为系统的主控芯片。
3.2.1S3C2440体系结构及特点
ARM(AdvancedRISCMachine)是基于精简指令集的一种计算机体系结构实现,ARM系列的处理器当前有ARM7,ARM9,ARM9E,ARM10等多个产品。
所有的ARM处理器都共享ARM通用的基础体系结构,所以开发者在不同的ARM处理器上做操作系统移植时,将可以节省工作量,这无疑将大大降低软件开发成本。
三星公司推出的S3C2440A处理器,是一个16/32位的RISC微处理器。
内含ARM920T内核,ARM920T实现了MMU,AMBA,BUS和Harvard高速缓冲体系结构,其低功耗且全静态设计特别适合对成本和功耗敏感型的应用。
S3C2440微处理器提供了一系列完整的系统外围设备,有Camera接口,LCD控制器,FLASH控制器,SDRAM控制器,A/D转换控制器,看门狗定时器等。
图3.3S3C2440结构框图
其中的ARM920T处理器内核采用哈佛结构,5级流水线(包括取指、分析、执行、访存、写存);分立的指令和数据Cache都是16KB,8个字的数据总线;采用增强的ARM体系V4的MMU,以提供对指令和数据地址的翻译和访问许可检查;支持ARM调试结构,包含了辅助软件和硬件调试的逻辑电路;还具有协处理器支持。
ARM920T的功能模块如图3.4所示:
ARM920T处理器的编程模型包括ARM9TDMI内核以及以下增加和更改。
1.ARM920T处理器包含了两个协处理器:
CP14:
允许软件访问调试通信通道。
CP15:
系统控制协处理器,提供附加的寄存器,用来配置和控制ARM920T的Cathe、MMU、保护系统、时钟模式和其他系统操作,可以使用MCRM和RC访问CP15定义的寄存器。
2.提供了外部协处理器界面,允许在同一片上布置相关的协处理器,例如:
一个浮点运算单元。
可以用适当的协处理器指令访问任何一个挂接在外部协处理器界面上的协处理器的寄存器和并进行操作。
3.取指,读/写数据的内存访问可以放到Cahte中或缓冲器(Buffer)中。
4.内存管理单元(MMU)页表常驻主存,用来描述虚存到物理内存的转换、访问许可、Cathe和写缓冲配置等。
页表被操作系统软件所创建,任何时候,一个存储访问导致TLB丢失时,ARM920TMMU硬件都会自动访问页表。
5.ARM920T有一个调试界面接口,允许使用硬件和软件调试工具实时跟踪指令和数据。
图3.4ARM920T功能块图
1.S3C2440A中集成了以下片上功能:
1.2V内核供电,1.8V/2.5V/3.3V存储器供电,3.3V外部I/O供电,具备16KB的I—Cache和16KB的D—Cache/MMU;
外部存储控制器(SDRAM控制和片选逻辑);
LCD控制器(最大支持4K色STN和256K色TFT)提供1通道LCD专用DMA;
4通道DMA并有外部请求引脚;
3通道UART(IrDA1.0,16字节TxFIFO,和16字节RxFIFO);
2通道SPI;
1通道主从ⅡC—BUS;
1通道ⅡS—BUS音频编解码器接口;
AC’97解码器接口;
兼容SD主接口协议1.0版和MMC卡协议2.11兼容版;
2端口USB主机/1端口USB设备(1.1版);
4通道PWM定时器和1通道内部定时器/看门狗定时器;
8通道10比特ADC和触摸屏接口;
具有日历功能的RTC;
相机接口(最大4096*4096像素的投入支持;2048*2048像素的投入,支持缩放);
130个通用I/0口和24通道外部中断源;
功耗控制模式:
具有普通,慢速,空闲和掉电模式;
具有PLL片上时钟发生器。
2.S3C2440地址空间分配:
S3C2440支持两种启动模式:
一种是从NANDFLASH启动;一种是从NORFLASH启动。
在这两种启动模式下,各片选的存储空间分配是不同的,这两种启动模式的存储分配图如下:
图3.5(a)图是nGCS0片选的NORFLASH启动模式下的存储分配图;
(b)图是NANDFLASH启动模式下的存储分配图。
在NANDFLASH模式启动下,内部的4KBytesBootsRAM被映射到nGCS0片选的空间;在NORFLASH启动模式下,与nGCS0相连的外部存储器NORFLASH就被映射到nGCS0片选的空间。
SDRAM地址空间:
0x30000000~0x34000000。
3.S3C2440总电源电路:
图3.6S3C2440总电源电路图
本系统主要采用2片SDRAM和1片Flash做为储存器。
SDRAM具有存取速度快的特点,适用于被访问频率较高的场合。
由于本系统需要传输,存储大量的数据,因此采用一片32位32MB的SDRAM专门存储这些数据。
另一片32MB的SDRAM供整个系统使用。
Flash存储器的特点是掉电不易丢失数据,适用于存放永久性数据。
本系统采用64MB的NANDFlash来固化操作系统内核,应用程序以及其他永久性数据。
由于S3C2440没有内置的以太网控制器,所以采用了低功耗,性能优越的16位以太网网控制器——CS8900,它负责处理有关以太网数据桢的发送和接收。
3.3软件设计
软件设计工作主要包括系统启动代码编写,各外设驱动程序编写,操作系统选择及移植,嵌入式TCP/IP协议栈编写,应用程序设计等,其中启动代码,外设驱动程序(包括DMA,TIMER,中断控制器,串口等)实现较为简单,不再占用论文篇幅进行详细介绍。
操作系统选择及移植,嵌入式TCP/IP协议栈编写,应用程序设计的内容较多,且体现了本文主要的工作,为其单独安排在第五章进行介绍。
本章小结
本章介绍了基于嵌入式系统的图像网络传输的系统设计的工作,主要讨论了总体方案的考虑与硬件和软件平台的设计,介绍了本文所采用的芯片S3C2440处理器。
第四章TCP/IP协议概述
4.1网络分层结构
为了减少协议设计的复杂性,大多数网络都按层(layer)或级(level)的方式来组织,每一层都建立在它的下层之上。
不同的网络,其层的数量、各层的名字、内容和功能都不尽相同。
但在所有的网络中,每一层的目的都是向它的上一层提供一定的服务,而把如何实现这一服务的细节对上一层加以屏蔽。
关于协议分层,有两个思想占据了该领域的主导地位。
第一个思路基于国际标准化组织ISO早期所做的工作,称为ISO的OSI开放系统互联参考模型(opensysteminterconnectionreferencemodel);第二个就是TCP/IP参考模型。
4.1.1OSI七层参考模型
图4.1OSI七层网络模型结构
OSI参考模型是关于如何把开放式系统(即为了与其他系统通信而相互开放的系统)连接起来的。
模型共有七层,现将其各主要功能分述如下:
物理层(physicallayer):
涉及到通信在信道上传输的原始比特流,主要处理机械的、电气的和过程的接口,以及物理层下的物理传输介质等问题。
数据链路层(datalinklayer):
主要任务是加强物理层传输原始比特的功能,使之对网络层显现为一条无错线路。
传输以帧的格式实现。
其中还有一个特殊的子层——介质访问子层,它主要控制对共享信道的访问。
网络层(networklayer):
关键问题是确定分组从源端到目的端如何选择路由。
传输层(transportlayer):
基本功能是从会话层接收数据,并且在必要时把它分成较小的单元,传递给网络层,并确定到达对方的各段信息准确无误。
通常会话层每请求建立一个传输连接,传输层就为其创造一个独立的网络连接。
会话层(sessionlayer):
允许不同机器上的用户建立会话关系,其服务有管理对话、令牌管理、同步等。
表示层(presentationlayer):
完成某些特定的功能,如用一种大家一致同意的标准方法对数据编码。
应用层(applicationlayer):
包含大量人们普遍需要的协议,如文件传输。
OSI模型的数据传输,是一个关键的概念,虽然数据的实际传输方向是垂直的,但每一层在编程时却好像数据一直是水平传输的。
4.1.2TCP/IP参考模型
广泛地讲,TCP/IP软件分成五个概念层次,建立在第五层上的是四个软件层,图4.2给出了这些概念性层次结构以及在这些层次之间传输的数据形式。
图4.2TCP/IP网络层次模型及各层之间传输数据形式
应用层(applicationlayer):
在这个最高层,用户调用应用程序通过TCP/IP互联网来访问可用的服务。
与各个运输层协议交互的应用程序负责接受和发送数据。
传输层(transportlayer):
基本任务是提供应用程序之间的通信服务,这种通信又叫端到端通信。
不但要系统地管理信息的流动,还要提供可靠的传输服务,以确保数据到达无差错,无乱序。
网络层(internetlayer):
用来处理机器之间的通信问题。
其传输格式表现为IP数据报,还要根据需要发出和接受ICMP(Internet控制报文协议)差错和控制报文。
网络接口层(networkinterfacelayer):
又称数据链路层,负责接受IP数据报并把数据报通过选定的网络发送出去。
它包括一个设备驱动程序,也可能包括一个复杂的子系统,使用自己的数据链路协议