毕业设计(论文)多路复合视频信号的采集与传输设计.doc

上传人:laozhun 文档编号:3981873 上传时间:2023-03-30 格式:DOC 页数:59 大小:1.65MB
返回 下载 相关 举报
毕业设计(论文)多路复合视频信号的采集与传输设计.doc_第1页
第1页 / 共59页
毕业设计(论文)多路复合视频信号的采集与传输设计.doc_第2页
第2页 / 共59页
毕业设计(论文)多路复合视频信号的采集与传输设计.doc_第3页
第3页 / 共59页
毕业设计(论文)多路复合视频信号的采集与传输设计.doc_第4页
第4页 / 共59页
毕业设计(论文)多路复合视频信号的采集与传输设计.doc_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《毕业设计(论文)多路复合视频信号的采集与传输设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)多路复合视频信号的采集与传输设计.doc(59页珍藏版)》请在三一办公上搜索。

1、目 录摘 要3ABSTRACT41 选题背景51.1 课题的来源51.2 题目的理论目的意义51.3 方案选择与论证61.4 指导思想102 嵌入式操作系统的移植112.1 嵌入式操作系统的发展112.2 嵌入式操作系统及其特点122.3 常用的嵌入式操作系统122.3.1 WINDOWS CE .NET122.3.2 嵌入式Linux122.3.3 VxWorks132.3.4 T-Kernel142.3.5 uC/OS-II152.4 uC/OS-II移植原理162.4.1 编译器的选择162.4.2 移植uC/OS-II162.4.3 编写OS_CPU.H172.4.4 编写Os_cpu

2、_c.c文件182.4.5 编写Os_cpu_a.s文件202.4.6 中断与时钟节拍213 基于ISP1161A1的USB HOST驱动233.1 USB总线传输协议233.1.1 包的格式233.1.2 USB总线数据传输类型243.2 ISP1161A1介绍253.2.1 ISP1161x芯片介绍253.2.2 ISP1161x软件模块263.2.3 ISP1161x 硬件模块273.2.4 ISP1161x 软件系统结构283.2.5 主机堆栈系统结构283.2.6 编程ISP1161x 的主机控制器293.3 USB驱动的软件实现374 以太网连接434.1 以太网控制器ENC28J

3、60434.2 ENC28J60驱动的软件实现464.3 基于ENC28J60以太网卡的以太网传输的架构485 实验电路与结果505.1系统设计的电路实物图505.2部分实验结果516 总 结546.1 毕业设计中遇到的困难及解决办法546.1.1 操作系统移植部分546.1.2 USB接口芯片ISP1161的驱动开发调试部分546.2 收获与展望56致 谢58参考文献59摘 要本文提出一种多路复合视频信号的采集与传输的设计方案。该方案在LPC2138微处理器上移植uCOS-II操作系统,采用USB接口芯片ISP1161A1的HOST方式连接USB摄像头进行视频数据的采集,然后,通过以太网接口

4、芯片ENC28J60接入以太网,进行多路复合视频信号的网络传输。本方案包括USB HOST驱动的开发、USB驱动层USBD的开发、以太网接口芯片ENC28J60的介绍以及底层硬件驱动的开发、TCP/UDP/IP协议的应用,对整个系统的设计进行了比较全面的论述。针对目前的情况,对一些难点技术进行深入学习,主要讨论以下几个方面的问题: 如何将一个uCOS-II操作系统移植到微处理器上;如何编写USB接口芯片的HC驱动程序;怎样设计USBD层;以及以太网传输的构建。关键字:uCOS-II操作系统,USB HOST,以太网传输,IP协议栈AbstractThis paper presents a mu

5、lti-channel composite video signal acquisition and transmission design. The program transplants uCOS-II operating system on the LPC2138 microprocessor, using the HOST ISP1161A1 as USB interface chip connected USB camera for video data acquisition, and then through the Ethernet interface chip ENC28J6

6、0 access to Ethernet, for multi-channel composite video signal transmission network. The program includes a USB HOST-driven development, USB driver layer USBD development, ENC28J60 Ethernet interface chip on the bottom and hardware-driven development, TCP / UDP / IP protocol to the applicat -ion of

7、the whole system design of a more comprehensive exposition. In view of the current situation, through some technical depth study, discuss on the following areas : How would one transplanted uCOS-II operating system to the microprocessor; how to prepare the USB interface chip HC Driver; how to design

8、 USBD layer; Ethernet transmission and Construction. Keywords: uCOS-II operating system, USB HOST, Ethernet Transfer, IP Protocol Stack1 选题背景1.1 课题的来源 USB(Universal Serial Bus ,通用串行总线) 是最近几年逐步在PC 领域广为应用的新型接口技术。作为计算机外围设备的一种标准接口,他以支持热插拔、接口通用性好、实时性强、传输方式多样、较高的传输速率、成本低、易于扩展且便于使用这些优点而受到许多硬件厂商的青睐,各种类型的USB

9、 设备产品,包括摄像头、键盘、鼠标、扫描仪、打印机以及存储设备大量涌入市场,应用如火如荼。但是要使这些设备像在Windows 中一样,运行在嵌入式系统中,就需要编写相应操作系统下的驱动程序,也叫BSP(板级支持包) 。在许多的应用中,多媒体相关的应用更是倍受人们关注,尤其是视频的相关技术。一般情况下可以采用摄像头或视频采集卡来完成视频的采集工作,由于使USB 接口的摄像头在PC 上的应用已经很广泛,而且成本低廉,所以在嵌入式uCOS-II系统中开发使用USB 摄像头来采集视频是很好的选择。为了能够进行基于下位机的视频采集与传输的设计学习与研究,增进本人对电子信息科学专业相关的较为常见的产品开发

10、设计的兴趣与了解,促进对嵌入式操作系统移植的学习,尤其是为了增加对USB摄像头的驱动、以太网络传输等技术开发流程的了解与熟悉,故选择了本设计题目。1.2 题目的理论目的意义视频信号的采集与传输是安全监控、生产线控制、信息监测等视频信息处理领域的技术基础。本设计主要是配合实现教室监控系统的下位机终端多路视频采集与传输控制部分,将视频数据传输到上位机由上位机进行分析处理,然后上位机将控制信息发回下位机,由下位机控制教室的照明灯,实现节能的目的。它主要有驱动USB摄像头进行视频图像采集、数据与处理、网络传输技术等多方面的内容。需要综合考虑视频信号采集、传输及控制等实现情况。本设计主要集中在USB协议

11、的软件编写,USB摄像头驱动的软件编写和以太网传输的开发部分,工作量和开发难度大,能够真正锻炼自己的水平,将自己四年所学提高到一个新的台阶。1.3 方案选择与论证多路视频信号的采集与传输有很多应用场合,并且基于USB摄像头的视频采集理论研究己经取得了一定的成果。系统主要有两大难题,第一是USB接口芯片应当选择具有Host主机模式的芯片,而大部分接口芯片多用作从机模式,USB主机模式的驱动编程要比从机模式复杂的多;第二是USB摄像头驱动开发难度大,因为大部分摄像头厂商因为商业原因,摄像头驱动开发需要的内部资料都保密;第三是多路信号的网络传输问题,因为视频信号实时性较强并且数据量较大,所以,既要实

12、现多路信号的传输实现,又要实现实时性网络传输。因此,关于多路复合视频信号采集与传输系统的研究仍在不断进行,其可行方案也多种多样。在选择设计方案时,我的认识是一个逐步提高的过程,但也走了很多弯路,在USB接口芯片选择方面主要可选方案有PDIUSBD12、CYPRESS公司的EZ-USB系列芯片、LPC214x集成USB功能的ARM芯片以ISP1161芯片等;在网络传输的方案选择上依次经历了:采用485总线协议进行传输、采用常用的RTL8239系列基于PCI协议的网卡传输以及现在采用的基于SPI总线协议ENC28J60以太网卡接口芯片方案。方案一:本方案采用USB摄像头进行视频数据采集、 以单片机

13、作为终端核心处理器将采集的视频数据向上位机传输,供上位机进行图像分析处理,并且接收上位机的命令进行相关控制操作。(1) 摄像头的选择:摄像头为整个系统的数据传输、分析、处理提供原始视频数据,因此摄像头的选择关系到之后对视频数据分析处理的好坏程度,极为重要;同时又考虑到本系统设计的目的是为教室照明灯的自动控制提供前端处理、传输以及最终控制,技术要求仅限于对图像的分析控制,而非图像的精确识别,因此对视频图像清晰度的要求不是非常严格,只需做到区域模糊识别的程度;同时,降低成本也是必须考虑的因素之一,如果采用带有数据采集卡的摄像头,不仅成本高,而且对视频精度的应用也是一种浪费;综上,本系统采用带有US

14、B接口的摄像头进行视频数据的采集。(2) 通信接口:采用RS-485,RS-485是一个多引出线串行通信接口,该接口可以最多负载128个驱动器和接收器,可以实现一台上位机与多台下位机之间的串行通信,最长传输距离可达1200m,适合于远距离传输。PC机与RS-485总线之间的接口可以采用S2-485标准转换芯片实现;单片机与485总线的接口可以采用MAX48x/49x系列收发器组成差分平衡系统,抗干扰能力强,适合于远距离传输。系统总体示意图见图1。(3) 通信协议设计:帧格式:包括呼叫帧、应答帧和数据帧。呼叫帧由上位机发出。格式为起始字符、下位机、地址和校验位。上位机通过呼叫帧来轮询各台下位机的

15、状态或者关闭轮询,同一时间内只与一台下位机进行通信。二者之间通过数据帧进行一对一的数据通信。应答帧:只能由下位机发出。当下位机收到呼叫帧后,便将本机地址以及当前状态发送给上位机。数据帧:上下位机都可以发送数据,数据帧是上下位机间进行大量数据传输的基本格式,在发数据帧之前上下位机之间已经建立的一对一的连接,为了通信的可靠性,进行数据传输时,仍然保留下位机的地址,因此数据帧的格式可以定义见表1。 表1-1 数据帧格式类 型 起始字符下位机地址 命令字段 数据序列 异或校验占用位数/bit 8 8 8 8*8 8(4) 通信模式:用标准异步串行通信模式,格式为1位起始位、8位数据位、1位停止位。S2

16、- 485PC机MAX48x/49x终端1MAX48x/49x终端2MAX48x/49x终端nR2R1RS-485总线图1-1485总线通信模式图(5)差错控制:用于传输数据的错误检查和错误纠正,以保证数据传输的准确性。呼叫阶段:当上位机发送呼叫帧后,如果在规定时间内没有收到下位机的应答帧,则上位机认为帧丢失并重发呼叫帧;如果连发送三次仍没有收到应答帧,则系统认为该下位机处于关机状态,上位机便开始执行其他任务。数据传输阶段:差错控制采用应答方式,即接收方向发送方回发特殊的控制命令码,作为正确与错误的确认标志;发送方接收到确认信息后就可以确定数据是否已经正确发送,是否需要重新发送。特别情况下,当

17、数据传输过程中帧完全丢失,则发送方会无休止的等待接收方的确认信息,为了解决这一问题,可以采用看门狗定时器,当发送方发送数据后超过一定时间没有收到确认信息,就认为是数据丢失,自动重发数据。同时,最大重发次数设定为3次,超过3次就认为是串行通信线路出现故障,上位机进行故障报警。本方案采用485总线传输数据,最多可以达到128路数据,但是数据传输速率较慢,不能很好地满足视频数据的实时性传输的要求,因此本方案没被采用。方案二: 本方案与方案一的不同之处主要在于网络传输部分,本方案决定采用以太网进行数据传输,网络传输协议主要采用TCP/UDP/IP协议,网卡主要采用基于PCI协议的RTL8239网卡。本

18、架构的优点是可以采用通用PCI接口网卡,成本低,维护简单,如果网卡出现问题,可以轻易的更换网卡;更重要的是较之方案一,实现了通用的以太网传输功能, uCOS-II操作系统 RTL8239以太网卡IP 层TCP/UDP 层RTL8239网卡驱动以太网传输管理层 以太网 图1-3 以太网传输的架构图传输路数多,借助交换机、路由器等工具传输距离远,可以与主机进行实时通信,并且由于以太网的飞速发展,传输速率正不断提高,可扩展的空间较大,单就目前的速率来看,传输速率已经很快了。但是也存在着开发的不足之处,该网卡是基于PCI总线协议的网卡,而PCI总线驱动在所有总线驱动之中开发难度是最大的,在毕业设计这有

19、限的时间里,很难做好。鉴于以上原因,本方案也未被采用。方案三:本方案与方案二唯一的不同之处就是,采用Microchip公司新生产的10 BASE-T 的ENC28J60以太网卡接口芯片,该芯片集成MAC地址,采用最高速度可达10 Mb/s 的SPI 接口设计,与方案二相比,SPI接口驱动的开发难度小,开发周期短,而且成本低。因此,本设计决定采用该方案。 ENC28J60LPC2138 CS MISO MOSI SCK INT2 TX/RX缓冲器 MAC PHY 以太网变 压器 RJ45 图1-4 ENC28J60与LPC2138接口图本方案的总体硬件结构如图1-5:系统硬件结构:USB摄像头

20、ISP1161 USB接口芯片 微处理器 LPC2138 ENC28J60 以太网卡 以太网 图1-5 系统硬件结构图系统软件实现结构:ISP1161硬件 ENC28J60硬件 uCOS-II操作系统 ISP1161 驱动 ENC28J60 驱动 USB 协议栈 摄像头驱动 视频采集管理 TCP/UDP/IP协议栈 网络传输管理 图1-6 系统软件实现图1.4 指导思想综上所述系统的实现应该在移植uCOS-II操作系统前提下,以USB2.0协议为指导,继承现有以太网传输协议IP协议栈技术基础上,从硬件芯片设备的选取,USB接口芯片驱动开发,USB驱动开发,摄像头驱动开发,网卡驱动开发等五个主要

21、方面进行。由于是结合硬件设备的来设计的。着重解决以下问题:1)基于ISP1161A1 USB接口芯片的驱动开发,对异步传输的PTD头以及ATL缓冲区的编程实现,尤其是对同步传输的PTD头以及ITL缓冲区的软件编程实现。从而实现ISP1161驱动与USB协议的融合。2)摄像头驱动程序的开发,是本设计中的重点与难点,工作量大,关键是各个摄像头生产厂商对摄像头资料保密,驱动开发难度大,应通过大量实验解决。3)基于ENC28J60芯片的网卡驱动程序编写是网络传输的基础,只有实现了底层驱动才能实现多路复合数据的网络传输功能,着重开发、调试底层网卡驱动。2 嵌入式操作系统的移植2.1 嵌入式操作系统的发展

22、嵌入式系统的出现至今已经有30多年的历史。纵观嵌入式技术的发展过程,大致经历了四个阶段。(1)无操作系统的嵌入式算法阶段这一阶段的嵌入式系统是以单芯片为核心的系统,具有与一些监测、伺服、指示设备相配合的功能。一般没有明显的操作系统支持,而是通过汇编语言编程对系统进行直接控制。主要特点是系统结构和功能都相对单一,针对性强,无操作系统支持,几乎没有用户接口。(2)简单监控式的实时操作系统阶段这一阶段的嵌入式系统主要以嵌入式式器为基础、以简单监控式操作系统为核心。系统的特点是:处理器种类繁多,通用性比较弱;开销小,效率高;一般配备系统仿真器,具有一定的兼容性和扩展性;用户界面不够友好,主要用来控制系

23、统负载以及监控应用程序运行。(3)通用的嵌入式实时操作系统阶段以通用型嵌入式实时操作系统为标志的嵌入式系统,如VxWorks、pSos、Windows CE就是这一阶段的典型代表。这一阶段嵌入式系统的特点是:能运行在各种不同的微处理器上;具有强大的能用型操作系统的功能,如具备了文件和目录管理、多任务、设备驱动支持、网络支持、图形窗口以及用户界面等功能;具有丰富的API和嵌入式应用软件。(4)以Internet为标志的嵌入式系统伴随着通用型嵌入式实时操作系统的发展,面向Internet网络和特定应用的嵌入式操作系统正日益引起人们的重视,成为重要的发展方向。嵌入式系统与Internet的真正结合、

24、嵌入式操作系统与应用设备的无缝结合代表着嵌入式操作系统发展的未来。2.2 嵌入式操作系统及其特点嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的,适用于对功能、可靠性、成本、体积、功耗等综合性能有严格要求的专用计算机系统。嵌入式系统通常具有可裁剪性,实时性,可靠性等特点。即嵌人式系统具有高可靠性;在恶劣的环境或突然断电的情况下,系统仍然能够正常工作;许多嵌人式应用要求实时性,这就要求嵌入式操作系统具有实时处理能力;嵌入式系统和具体应用有机地结台在一起,它的升级换代也是和具体产品同步进行;嵌入式系统中的软件代码要求高质量、高可靠性;一般都固化在只读存储器中或间存

25、中,也就是说软件要求固态化存储,而不是存储在磁盘等载体中。2.3 常用的嵌入式操作系统2.3.1 WINDOWS CE .NETWINDOWS CE .NET是一个功能强大的实时嵌入式操作系统,也是微软第一个能够全面支持中文的WINDOWS CE操作系统,适用于快速构建新一代内存少体积小的智能设备,例如手持式设备、智能电话、机顶盒、零售点设备和显示器等。不仅如此,WINDOWS CE .NET也为构建智能移动设备的开发人员提供了新一代的功能强大嵌入式系统平台,它允许开发人员优化操作系统的内存占用,最小可以降至200K左右。为了使开发人员能构建功能最丰富的移动设备,WINDOWS CE .NET

26、提供了对最新无线技术的支持,例如蓝牙技术和零配置的802.11,而且它还通过MICROSOFT INTERNET EXPLORER 5.5、WINDOWS MEDIA (TM) 8 和DIRECTX 8提供了全面的多媒体和WEB浏览体验。WINDOWS CE .NET支持各种处理器产品家族,包括X86、XSCALE、ARM、MIPS和SH系列,因此它允许开发人员为他们自己的项目选择最理想的硬件。2.3.2 嵌入式Linux随着微处理器的产生,价格低廉、结构小巧的CPU和外设连接提供了稳定可靠的硬件架构,那么限制嵌入式系统发展的瓶颈就突出表现在了软件方面。尽管从八十年代末开始,陆续出现了一些嵌入

27、式操作系统,比较著名的有Vxwork、pSOS、Neculeus和Windows CE。但这些专用操作系统都是商业化产品,其高昂的价格使许多低端产品的小公司望而却步;而且,源代码封闭性也大大限制了开发者的积极性。另外,结合国内实情,当前国家对自主操作系统的大力支持,也为源码开放的LINUX的推广提供的广阔的发展前景。还有,对上层应用开发者而言,嵌入式系统需要的是一套高度简练、界面友善、质量可靠、应用广泛、易开发、多任务,并且价格低廉的操作系统。在不久的将来,从冰箱到收音机都会内置处理器。因为Linux的开放性,许多人认为Linux非常适合多数Internet设备。他们认为Linux可以支持不同

28、的设备,支持不同的配置。Linux对厂商不偏不倚而且成本极低,能够很快成为用于各种设备的操作系统。如今,业界已经达成共识:即嵌入式Linux是大势所趋,其巨大的市场潜力与酝酿的无限商机必然会吸引众多的厂商进入这一领域。嵌入式操作系统主要有 Palm OS,Windows CE,EPOC, LinuxCE, QNX, ECOS,LYNX,高端嵌入式系统要求许多高级的功能,如图形用户界面和网络支持 。很多高端RTOS供应商已经提供了这些功能,但其价格也很高端,一般人难以接受。微软的Windows CE也有此类功能,却不具备大多数嵌入式系统要求的实时性能,而且难以移植,也曾经有人想以DOS为基础用单

29、独的第三方工具拼凑一个系统,但这种努力将是白费。现在需要的是一个便宜、成熟并且提供高端嵌入式系统所必须特性的操作系统,嵌入式Linux操作系统以价格低廉、功能强大又易于移植而正在被广泛采用,成为新兴的力量,所以,众多商家纷纷转向了嵌入式Linux。Linux为嵌入操作系统提供了一个极有吸引力的选择,它是个和Unix相似、以核心为基础的、完全内存保护、多任务多进程的操作系统。支持广泛的计算机硬件,包括X86,Alpha,Sparc,MIPS,PPC,ARM,NEC,MOTOROLA等现有的大部分蕊片。程式源码全部公开,任何人可以修改并在GNU通用公共许可证(GNU General Public

30、License)下发行,这样,开发人员可以对操作系统进行定制,再也不必担心像MS windows操作系统中后门的威胁。同时由于有GPL的控制,大家开发的东西大都相互兼容,不会走向分裂之路。Linux用户遇到问题时可以通过Internet向网上成千上万的Linux开发者请教,这使最困难的问题也有办法解决。Linux带有Unix用户熟悉的完善的开发工具,几乎所有的Unix系统的应用软件都已移植到了Linux上。Linux还提供了强大的网络功能,有多种可选择窗口管理器(X windows)。其强大的语言编译器gcc、g+等也可以很容易得到。不但成熟完善、而且使用方便。2.3.3 VxWorksVxW

31、orks是专门为实时嵌入式系统设计开发的操作系统内核,为程序员提供了高效的实时多任务调度、中断管理,实时的系统资源以及实时的任务间通信。在各种CPU平台上提供了统一的编程接口和一致的运行特性,尽可能的屏蔽了不同CPU 之间的底层差异。应用程序员可以将尽可能多的精力放在应用程序本身,而不必再去关心系统资源的管理。基于VxWorks操作系统的应用程序可以在不同CPU平台上轻松移植。VxWorks 是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统。WRS 公司组建于1981年,是一个专门从事实时操作系统开发与生产的软件公司,该公司在实时

32、操作系统领域被世界公认为是最具有领导作用的公司。VxWorks 是一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,1997年4月在火星表面登陆的火星探路者上也使用了VxWorks。VxWorks是一种功能强大而且比较复杂的操作系统,包括了进程管理、存储管理、设备管理、文件系统管理、网络协议及系统应用等几个部分。VxWorks只占用了很小的存储空间,并可高度裁减,保证

33、了系统能以较高的效率运行。所以,仅仅依靠人工编程调试,很难发挥它的功能并设计出可靠、高效的嵌入式系统,必须要有与之相适应的开发工具。TornadoII就是为开发VxWorks应用系统提供的集成开发环境,TornadoII中包含的工程管理软件,可以将用户自己的代码与VxWorks的核心有效的组合起来,可以按用户的需要裁剪配置VxWorks内核;vxSim原型仿真器可以让程序员不用目标机的情况下,直接开发系统原型,作出系统评估;功能强大的CrossWind调试器可以提供任务级和系统级的调试模式,可以进行多目标机的联调;优化分析工具可以帮助程序员从多种方式真正地观察、跟踪系统的运行,排除错误,优化性

34、能。2.3.4 T-KernelT-Kernel源自于日本东京大学坂村健博士于1984年提出的计算机操作系统规范TRON(The Real-time Operating System Nucleus)。IRON的目的是想构筑一种理想的计算机结构,实现新的计算体系“泛在计算环境”(Ubiquitous Computing)。即将微型计算机嵌入到日常生活中的所有机器、设备、工具中,通过网络相互通信,协调运行,以实现高度计算机化的社会环境。通过20年的发展,全球微处理器操作系统系统市场上大约60%的份额被TRON占据。为了实现更为理想的实时操作系统的嵌入式计算结构,TRON项目启动了T-Engine

35、项目计划。 “T-Engine”是为在短时间内高效开发实时嵌入式系统而设计的,由标准化硬件结构(T-Engine)与标准开源实时操作系统核心(T-Kernel)组成的嵌入式系统的开放式标准平台。 在T-Engine开发过程中,搭载的CPU为可变的,而规定了其硬件结构规范、操作系统核心界面规范、对象数据格式规范等要素,使TRON在标准化的基础结构上,具备充分的外围资源及开发环境。从而将CPU从基础结构中独立出来,在T-Kernel上开发的中间件可不依存于CPU结构而移植。 这样,通过使用高质量的标准化硬件和软件,使得系统稳定,尺寸小,易于开发和调试,很容易使其直接成为商品,可在短时间内投向市场。

36、T-Kernel整个系统是基于子系统的微内核结构。系统中的每一个模块都是一个独立的子系统。这使T-Kernel中的功能模块易于扩展和裁减而不会相互影响,基于这种结构,在T-Kernel之上开发易于移植的标准中间件成为可能。为了适应于大规模的嵌入式软件开发,2006年11月,T-Engine Forum推出了T-Kernel/Standard Extend的源码和规范,在T-Kernel的基础上扩展了进程管理,文件系统和网络协议栈等功能模块,在T-Kernel高实时性的内核上,加强了处理信息和数据的能力。2.3.5 uC/OS-IIC/OS-II的前射是C/OS,最早出自于1992年美国嵌入式系

37、统专家Jean J.Labrosse在嵌入式系统编程杂志的5月和6月刊上刊登的文章连载,并把C/OS的源码发布在该杂志的BBS上。当时就有500多人下载了这份源码。世界上数以千计的工程技术人员将C/OS应用到了各个领域,如照相机业、发动机控制、网络接入设备、高速公路电话系统、ATM机和工业机器人等。许多大学用C/OS作教材,用于实时系统教学。1998年,作者决定出版C/OS的第二本书C/OS-II The Real Time Kernel,并设立了正式的网站:www. C/OS-II.com,给C/OS-II增加了一些新的功能,并且增加了约200页的解释。C/OS和C/OS-II是专门为计算机

38、的嵌入式应用设计的,绝大部分代码是用C语言编写的。CPU硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU上。只要有标准的ANSI的C交叉编译器,有汇编器、连接器等软件工具,就可以将C/OS嵌入到开发的产品中。C/OS具有执行效率高、占用空间小、实时性能优良和可扩展性能等特点,最小内核可编译至2KB。C/OS-II已经移植到了几乎所有知名的CPU上。C/OS-II是一个可移植、固化、裁减的占先式实时多任务内核,它使用标准的ANSIC语言编写,并包含一段汇编语言代码,使之可供不同架构的微处理器使用。它的主要特点如下: C/OS-II

39、的每个任务都有自己单独的栈,使用C/OS-II的占空间校验函数,可确定每个任务到底需要多少栈空间。 优先级可剥夺的实时多任务操作系统。 可处理和调度56个用户任务,任务的优先级可以动态调整。 提供任务间通信、同步使用的信号量、邮箱和消息队列。 具有良好的可裁剪性,可减小系统的ROM和RAM大小。中断管理,中断可以使正在执行的任务暂时挂起。如果优先级高的任务被中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行。中断嵌套层数可达255层。本方案的操作系统的选择C/OS-II操作系统是源码公开的实时操作系统,通过对各种操作系统各自的特点和性能进行分析和比较,C/OS-II为一种合适的RTOS操作

40、系统,C/OS-II支持当前流行的大部分嵌入式CPU,具有很好的可移植特性。C/OS-II支持从8位到32位的CPU移植。C/OS-II由于本身内核就很小,经过裁剪后的代码最小可以小于2KB,所需的最小数据RAM空间可以为4KB,因此它们对硬件的要求很低,具有极高的经济性。因此本设计移植C/OS-II操作系统。2.4 uC/OS-II移植原理所谓移植就是使一个实时内核能在某个微处理器或微控制器上运行。C/OS-II中任务的定义接近线程的概念,它是一个独立的按优先级运行的处理过程。C/OS-II实现了对任务的可剥夺式的调度管理,内核会最先运行最高优先级的任务,其它的任务会依据自身的优先级来完成任

41、务调度。在这个过程中,当前运行的任务会被优先级更高的就绪任务抢占以获得处理器时间,从而更好地实现了实时系统功能。2.4.1 编译器的选择目前,针对ARM处理器核的C语言编译器有很多,如SDT、ADS、IAR、TASKING和GCC等。SDT和ADS均为ARM公司自己开发,ADS为SDT的升级版,GCC虽然支持广泛,但与ADS相比编译效率较低,对充分发挥芯片性能很不利。因此,本设计决定采用ADS编译程序和调试。2.4.2 移植uC/OS-IIC/OS-II的软件体系结构包括应用程序软件、与应用相关的代码、与处理器无关和相关的代码。应用程序软件是用户根据需求来编写的代码。要使同一个内核能适用于不同

42、硬件体系,就需要在内核和硬件之间有一个中间层,这就是与处理器相关的代码,处理器不同,这部分代码也不同。移植操作系统需要用C和汇编语言编写与处理器相关的代码,产生可重入代码要求。用C语言编写六个简单的函数(OS_CPU_C.C),移植一系列的类型定义以确保其可移植性,在结构常量OS_STK_GROWTH中指定堆栈的生长方式、复用系统服务代码、增加软中断服务接口来协调移植代码之间的通讯等功能。C/OS-II的软件体系结构如图1所示:OS_CPU_A为处理器相关代码的移植文件,采用ARM的汇编语言描述。 OS_CPU_C为系统管理代码的移植文件,采用C语言描述。 OS_CPU_H为系统通用量设置的移

43、植文件,采用C语言描述。其中OS_CPU_A.ASM在某些情况下不需要,但极其罕见。而且移植代码往往也会使用部分汇编语言来提高移植代码的效率。移植需要在OS_CPU.H包含几个类型的定义和几个常数的定义;在OS_CPU_C和OS_CPU_A.ASM中包含几个函数的定义和时钟节拍中断服务程序的代码。每个应用都包含独特的includes.h文件。核心代码(处理器相关) S_CORE.C核心代码 OS_MBOX.C消息队列 OS_MEM.C存储管理 OS_MUTEX.C互斥管理 OS_Q.C消息管理 OS_SEM.C信号量 OS_TASK.C任务管理 OS_TIME.C时间管理 设置代码(应用相关)

44、 OS_FLAG.C INCLUDES.H OS_CPU_A.ASM OS_CPU.C OS_CPU.H 应用程序 图2-1 C/OS-II的软件体系结构图2.4.3 编写OS_CPU.H(1) 不依赖编译的数据类型 C/OS-II不使用C语言中的short、int、long等数据类型的定义,因为他们与微处理器类型有关,隐含着不可移植性。用移植性强的整数数据类型代替,代码如下:typedef unsigned char BOOLEAN; /* 布尔变量 */typedef unsigned char INT8U; /* 无符号8位整型变量 */typedef signed char INT8S; /* 有符号8位整型变量 */typedef unsigned short INT16U; /* 无符号16位整型变量 */typedef signed short INT16S; /* 有符号16位整型变量 */typedef unsigned int INT32U; /* 无符号32位

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号