计算机三级嵌入式系统开发技术考点总结_第1页
计算机三级嵌入式系统开发技术考点总结_第2页
计算机三级嵌入式系统开发技术考点总结_第3页
计算机三级嵌入式系统开发技术考点总结_第4页
计算机三级嵌入式系统开发技术考点总结_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机三级嵌入式系统开发技术考点总结嵌入式系统硬件组成概述嵌入式最小硬件系统:嵌入式处理器运行必备条件的硬件电路与嵌入式处理器共同构成了嵌入式最小硬件系统。嵌入式最小硬件系统组成:嵌入式处理器、时钟电路、电源电路、复位电路、存储器、调试测试接口电源电路:嵌入式系统常用的电源模块式交流变直流(AC-DC)模块、直流到直流(DC-DC)模块以及低压差稳压器(LDO)。稳压器包括普通稳压器和低压差稳压器LDO。78XX系列属于普通稳压器,LM2576/2596为开关稳压芯片,CCAT6219/AS2815/1117/2908等属于低压差稳压器。稳压器最大的特点是低噪声、低成本、纹波小、精度高、电路简单。时钟电路:几乎所有的嵌入式处理器本质上均为同步时序电路,需要时钟信号才能按照节拍正常工作。复位电路:嵌入式处理器都有一个系统复位引脚为nRESET或RESET,n表示低电平复位,不带n的表示高电平复位。JTAG测试接口:联合测试行为小组(JTAG)是一种国际标准测试协议,主要用于芯片内部测试以及对系统进行仿真和调试。测试访问口:TAP基于ARM内核的电性嵌入式应用系统硬件组成:嵌入式最小硬件系统、前向通道、后向通道、人机交互通道、以及相互互联通信通道等组成。前向通道,即输入接口,包随机存取存储器包括静态和动态两种形式,即SRAM和DRAM,都是易失性存储器。目前嵌入式处理器内嵌的数据存储器基本都采用SRAM,外部扩展的存储器大都采用DRAM及改进型(DDRSDRAM、DDR2SDRAM、DDR3、DDR4)只读存储器MROM、PROM、EPROM、EEPROM、FlashROM、NORFlash和NANDFlashNANDFlashROM以页(行)为单位随机存取,速度慢,变成复杂,大多作为数据存储器使用。(数码相机、MP3随身听记忆卡、U盘)NORFlashROM以字节为单位随机存取,写入和擦除速度较慢。铁电存储器:非易失,可取代SRAM和Flash存储器磁性存储器:可取代Flash存储器存储器主要性能指标存储器的存取速度、存储容量、带宽容量:对于内存容量而言,单位之间换算以2^10=1024倍表示,对于外存容量(磁盘、U盘、Flash存储卡),以10^3=1000倍表示。内存储器容量取决于存储单元的个数和存储器各单元的位数:内存容量=单元总数*数据位数/单元存储芯片的容量完全取决于存储器芯片的地址线条数和数据线的位数。V=2^m*n(L:单元个数,n:数据线位条数,m:地址条数,m=log2L)存取时间:从CPU给出有效的存储器地址开始到存储器读出数据所需要的时间。带宽:存储器每秒可传输的最大数据总量。并行总线的存储器带宽:带宽=总线频率*数据宽度/8*传输次数/总线周期(B/s)串行总线带宽=总线频率*1/10以10位为一个数据帧(含一字节数据)片内存储器片内Cache、片内FlashROM(嵌入式微控制器内部集成的程序存储器)、片内SRAM(集成的数据存储器,SRAM属于易失性存储器)、片内E2PROM(作为长期保存重要数据的存储器,属于非易失性)、片内FRAM(具有RAM和ROM的全部特点,是当前嵌入式微控制器内部的主要存储器之一)片外存储器外部存储器的扩展是靠ARM内核提供的高带宽外部存储器控制器接口完成的。片外程序存储器:NORFlash、NANDFlash片外数据存储器:SDRAM、DDR/DDR2/DDR3/DDR4外部存储设备SM卡、CF卡、MMC、SD卡、记忆棒、XD卡、U盘、微硬盘3.4I/O接口及常用I/O设备通用I/O接口GPIO嵌入式系统外部通信接口基于UART的RS-232/RS-485接口RS-232接口:传输距离可以达到15m左右,无法消除共模干涉。RS-485接口:采用差分信号传输方式,具有很强的抗共模干扰能力,传输距离可达1200m,不能构成多主系统CAN总线接口广泛应用于工控领域以及要求抗干扰和实时性强的场合;采用差分创术,控制器内置CRC教研,传输可靠性强,可构成多主多从系统;CAN总线的数据帧由7不同的域组成:帧起始、仲裁域、控制域、数据域、CRC域、应答域。帧结尾,其中数据域的长度可选为0-8B以太网通信接口:分为基于内置以太网控制器的以太网接口(以太网控制器MAC层,物理层PHY层的收发器电路)和不带内置以太网控制器的以太网接口常用无线通信接口GPS、GPRS、WiFi、蓝牙以及通用射频通信模块等GPS模块:必须具备GPS终端、传输网络和监控平台三个要素。GPRS模块:以封包(Packet,也称为分组)方式进行数据传输。WiFi模块:使用IEEE802.11系列协议,内置无线网络协议IEEE802.11协议栈以及TCP/IP协议栈,能够实现用户串口、TTL电平、USB接口或SPI接口数据到无线网络之间的转换。蓝牙模块:支持设备短距离通信(10m内)的无线低速(1Mb/s)通信技术,基于串口UART或USB其他无线模块:射频无线收发模块,如Si4432嵌入式系统的软件组成嵌入式系统与通用计算机系统的软件的相同之处指的是:嵌入式系统具备引导加载程序、外部设备驱动程序、操作系统、文件系统、网络协议栈、图形用户界面、数据库、各种各样的应用程序等区别:嵌入式系统的软件配备没有通用计算机那样多;通用计算机的软件系统无疑以操作系统为核心,不可或缺;对于数据库、图形用户界面、因特网浏览器、媒体播放器等基于操作系统的外围工具软件,如果运行在通用计算机上则具有内部结构细致化、运行效率高效化、代码重量化的特点。嵌入式操作系统RTOS:实时操作系统IEEE:美国电气电子工程师协会实时系统的属性时间约束性。分为硬实时系统、软实时系统。常见的系统大多是软实时系统。可预测性;可靠性按响应时间将实时系统分为三类:强实时系统:响应时间在毫秒级或微秒及。普通实时系统:响应时间一般在几秒;弱实时系统:响应时间一般在数十秒。实时操作系统IEEE的实时UNIX分委会认为实时操作系统应该具备7个特征:1.具有异步I/O和中断处理能力2.任务切换时间和中断延迟时间确定3.优先级中断和调度4.抢占式调度5.内存锁定6.连续文件7.同步RTOS的三个主要实时指标:响应时间(中断延迟时间和任务切换时间)、吞吐量(在给定时间内,实时系统可以处理的事件总数)、生存事件(输入数据的有效等待时间)嵌入式操作系统概述嵌入式操作系统(EOS)是嵌入式系统中的软件。与通用计算机的操作系统相比较具有可移植、强调实时性能、内核精简、抢占式多任务处理、使用可重入函数、可配置、可裁剪、高可靠性等特点。嵌入式操作系统可粗略地分为内核、驱动程序、服务模块与行命令解释程序几大部分。内核有广义和狭义两种解释。广义:指装入在存储器里的嵌入式软件中的操作系统部分。狭义:指嵌入式操作系统中负责多任务管理及任务间通信的多任务处理部分。它执行任务创建与初始化、任务调度、时钟管理、中断管理。内存管理等。例如μCOS-II就是典型的纯内核例子。主流嵌入式操作系统TinyOS:开源,深度轻量级,先进先出调度,用于无线传感器网络μC/OS-II/III:小型嵌入式操作系统内核,不含设备驱动程序和文件系统。开源,用于工控领域。iOS:苹果公司,微内核,系统结构分为4个层次:核心操作系统、核心服务层、媒体层、触摸框架层,系统运行占用约512MB。iOS与苹果公司的MacOSX操作系统一样,也是以DarwinOS为基础的,因此同样属于类Unix的商业操作系统。WindowsEmbeddedCompact8:即以前的WinCE操作系统。属于大型嵌入式操作系统。可用于手持设备。。具有HAL和OAL。WindowsPhone8:前驱产品是2003年问世的WindowsMobile。用于手机操作系统。VxWorks:目前公认为实时性最强、可靠性最高的一种嵌入式实时操作系统。广泛应用于航空航天、通信和国防领域。属于大型商用操作系统,具有配套的Tornado集成开发环境。嵌入式Linux:普通Linux操作系统移植到嵌入式硬件平台上的版本。开源、不存在黑箱技术,安卓操作系统:以Linux为基础,半开放源代码操作系统,属于大型操作系统,通过AndroidSDK使用Java作为编程语言来开发Android应用程序。eCOS:免费和开源的实时操作系统,使用于嵌入式系统和那些只需要一个进程多个线程的应用项目。QNX:实时,可扩充,内核小巧,速度快,可应用于虚拟机。嵌入式操作系统分类(1)按源代码规模分类:分为小型和大型,区别是源代码行数数量大小,超过10000行语句为大型,否则为小型。(2)按内核大小分类:小内核和大内核,前者最小内核8KB,后者最小320KB。(3)按照能否免费获得源代码分类:开放源代码和不开放源代码,开源系统:μCLinux、RTLinux、NucleusPlus、ECOS、μC/OS-II(4)按照实时性能分类:分为强实时型和普通实时型。强实时:VxWorks、片SOS、μCOS-II等,普通实时:WindowsEmbedded、μCLinux、Symbian等。(5)按照内核结构分类:单内核和微内核。单内核又称宏内核,内部含有进程管理、调度器、时间管理、设备管理、文件管理等模块。耦合度高,通过函数调用实现模块之间通信。如Unix、嵌入式Linux、WinCE、MacOS、AndroidOS和DOS

。微内核:内核小巧,接口一致,松散耦合,人物间通信机制为消息机制,以消息传递方式相传。如:Symbian、VxWorks、QNX、μC/OS-II、iOS等,iOS前身是在DarwinOS基础上研发的iPhoneOS,是一个类Unix操作系统,属于微内核架构。嵌入式操作系统的仿真平台一般指嵌入式系统开发过程中使用的指令集模拟器、仿真软件或者虚拟机管理软件。如ARM公司的Armulator和清华大学研发的SkyEye都是ARM指令集模拟器,更奇安达的为VMware虚拟机,可搭建嵌入式Linux的仿真开发平台。硬件抽象层、板级支持包和引导加载程序底层软件主要就是指硬件抽象层、板级支持包和启动引导程序。硬件抽象层(HAL)WindowsNT。板级支持包(BSP)由美国风和公司(VxWorks研发商)提出。一般而言,音质VxWorks操作系统有四种操作类型:宿主机移植、体系结构移植、目标板移植、升级以前Tornado集成开发环境版本的BSP到最新版本。硬件抽象层(HAL)热点:是嵌入式硬件电路板的最基本软件,基本上是用标准C编写的,负责嵌入式操作系统移植,需集中精力在HAL上座关键代码的编程工作,从而加速操作系统的移植。含有HAL的操作系统:RTAL、eCOS、μITRON和NiosII。板级支持包BSPHAL和BSP的异同:对于同样的一个电路板,HAL一般只有一个,但是不同的操作系统拥有不同的BSP;移植一个操作系统A到一块新的电路板,为了构造BSP,需要改写的源代码基于两种来源,一种是操作系统A在类似电路板的BSP,另一种是这块电路板的HAL。BSP含有电路板的全套初始化程序,包括操作系统初始化,它要为操作系统的正常运行做好准备,而HAL通常也包括硬件初始化程序,但是不完整,例如不包括操作系统的初始化处理。引导加载程序嵌入式系统加电后执行的第一批最初操作成为引导或者自举(Boot),对应的程序成为引导程序或者引导加载程序(Bootloader)。引导加载程序主要完成内存加电自检、外设存在自检、内存地址映射、初始化外围设备、内存寻址定位、加载和启动操作系统。典型嵌入式系统启动顺序:(1)上电后,Bootloader将执行基本的硬件自检、初始化硬件控制寄存器、初始化SDRAM等工作(2)Bootloader将OS内核映像文件从非挥发存储介质(如Flash)中复制到SDRAM中,并将控制权转交给OS。(3)OS内核执行创建页表、驱动外设、初始化中断控制系统等OS的流程,最终创建应用程序执行环境甚至图形用户界面。Bootloader的两个执行阶段stage1的基本步骤:基本硬件初始化,为加载stage2准备RAM空间,拷贝stage2的执行代码到RAM空间中,设置栈区指针SP,跳转到stage2的C程序入口点。硬件初始化一般包括:关闭WatchDog、关中断、设置CPU的速度和时钟频率、RAM初始化等。stage2的基本步骤:启动加载模式下Bootloader的stage2操作流程:初始化本阶段要使用到的硬件设备,检测系统内存映射,将内存映像和根文件系统映像从Flash上读到RAM空间中,为内核设置启动参数,调用内核。下载模式下Bootloader的stage2操作流程:初始化本阶段要使用到的硬件设备,主要是串口、网口和Flash存储器等;等待用户输入行命令以进入下载模式,否则直接进入启动加载模式;通过串口终端与调试主机建立连接,提供人机交互接口;接收用户输入,通过串口或者网口进行文件下载,将文件写入Flash存储器保存;下载完毕,继续等待用户输入或者重启系统。嵌入式Linux的Bootloader执行步骤初始化处理器及外设的硬件资源配置;建立内存空间的映射管理,使能MMU,将系统的外存和内存地址变换激活,为最终调用操作系统内核做好准备;装载操作系统映像到内存;对Flash存储器编程;运行操作系统;传递系统启动参数;命令行解析和输入/输出控制。U-Boot被认为是功能全面、具有灵活性以及应用广泛的开放源代码Bootloader,目前由DENX公司维护。就目前来说,U-Boot对PowerPC系列处理器的支持最为丰富,对Linux的支持最为完善,国内ARM9实验箱通常使用U-boot作为Bootloader,引导多种嵌入式操作系统。嵌入式Linux操作系统Linux是目前唯一可免费获得的、能为多用户提供多任务、多线程功能的大型操作系统。最初以Unix为原型,以实现POSIX标准为目标,是最好的类Unix操作系统。嵌入式Linux:MontanaVistaLinux、μClinux、RTLinux(硬实时)、RTAI从顶视图看,嵌入式Linux操作系统主要由用户进程、OS服务组件和Linux内核三大子系统组成。用户进程:在Linux系统上运行的应用程序集合。OS服务组件:位于Linux操作系统内核之上的一层服务模块或者实用程序集合,例如行命令解释程序(Shell)、窗口系统(例如XWindows、QT)、内核编程接口等。Linux内核:主要作用:进程管理与调度、内存管理、文件管理、网络接口和进程间通信。由5个子系统组成:进程调度SCHED、内存管理MM、虚拟文件系统VFS、网络接口NET、进程间通信IPC。嵌入式操作系统μC/OS-IIμC/OS-II的基本特点μC/OS-II是抢占式实时操作系统内核,不涉及硬件驱动程序。只能管理64个任务,目前版本保留8个任务给系统,这样用户编写的应用程序最多可以有56个任务。不支持时间片轮转调度法,赋予每个任务的优先级是不同的,每个任务拥有自用栈。使用μC/OS-II的栈空间校验函数可以确定每个任务到底需要多少栈空间。μC/OS-II的层次位置μC/OS-II嵌入式应用系统开发具有面向任务的特点。任务中的功能处理可以通过调用API函数实现,也可以通过中断服务例程ISR实现。应用程序接口层(API)主要包括文件系统、TCP/IP网络协议栈、图形用户界面、中文系统、嵌入式数据库、因特网Web浏览器等。μC/OS-II的代码结构与初始化大部分代码由标准C语言写成。μC/OS-II主要由三大类程序文件构成,这三大类程序按照硬件和应用相关性分为:与处理器类型无关的代码、与应用程序有关的代码和与硬件平台移植相关的代码。按照功能还可以把这些文件分成核心模块、预处理模块、进程间通信(IPC)模块、内存管理模块、任务与调度管理模块、时间管理模块以及移植模块。μC/OS-II的启动过程:Bootloader执行完毕后,调用应用程序主文件(main()函数)。main()函数在执行过程中,除了用户函数和硬件初始化函数外,按照以下次序执行3个主要的μC/OS-II函数:1.操作系统初始化OSInt();2.任务创建OSTaskCreat();3.任务调度开始OSStart()。一旦OSStart()函数开始执行,就标志着μC/OS-II进入了多任务调度的正常运行状态。OSInit函数先建立最初的任务就绪表,然后建立4个空白的数据链表。这些内存的空白数据区开辟之后,OSInt创建第1个任务,这就是空闲任务(IdleTask),优先级设为最低(取常量OS_LOWEST_PRIO的值),创建之后进入就绪态。条件满足的话,OSInt还创建一个统计任务OSTaskStat,也让进入就绪态,OSTaskStat优先级取为OS_LOWEST_PRIO-1(次低级)。在main.c代码文件中还有两个μC/OS-II的函数,其中OSTaskCreate函数创建用户定义的一个任务,OSStart启动μC/OS-II多任务调度。在μC/OS-II多任务调度启动前,用户至少要使用OSTaskCreate函数建立一个应用任务。μC/OS-II任务的创建:可以使用OSTaskCreate函数或者OSTaskCreateExt函数。一个任务通常是一个无限的循环,有函数返回类型,有形式参数变量,但是任务绝不会返回的,故返回参数必须定义为void。μC/OS-II的内核μC/OS-II是嵌入式操作系统领域中的最小内核之一,只提供任务调度、任务间通信(ITC)与同步、任务管理、时间管理、内存管理、等基本功能。抢占式任务调度、多任务通信。临界区:指处理时不可分割的代码。一旦执行,不允许任何中断。在进入临界区之前必须关中断,执行完临界区代码之后要立即开中断。μC/OS-II调用OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()两个宏来执行关中断和开中断。μC/OS-II的任务状态μC/OS-II操作系统可以定义的最大任务数是64个,最高优先级定为0,最低优先级取值为实际定义的最大任务数减1.任务建立之后,拥有优先级、执行函数、自用栈空间和任务控制块(TCB),运行时能够完全控制CPU的操作以及全部用户可访问寄存器的操作。绝大多数情况下μC/OS-II的每个任务都是一个无限的循环。每个任务处在以下5个状态之一:休眠态、就绪态(记录在就绪任务集中)、运行态、挂起态和被中断态。任务控制块OS_TCB:内核对任务的管理通过任务控制块OS_TCB进行。OS_TCB全部驻留在RAM。OS_TCB数据结构中的OSTCBX、OSTCBY、OSTCBBitX、OSTCBBitY4个变量用于加速任务进入就绪态的过程或进入等待事件发生状态的过程。μC/OS-II的任务调度μC/OS-II的就绪任务登记在就绪表中。就绪表由两个变量OSRdyGrp和OSRdyTbl[]构成。μC/OS-II总是运行处于就绪态任务中优先级最高的那一个,由调度器(Scheduler)确定哪个任务优先级最高,下面应该执行哪一个任务。任务级的调度是由函数OSSched()完成的,是任务调度的前导函数;中断级的调度是由另一个函数OSIntExit()完成的。μC/OS-II的任务切换也称为上下文切换、文境切换,实际含义是任务的CPU寄存器内容切换。完成任务切换所需要的时间取决于CPU有多少寄存器要入栈。μC/OS-II的中断处理μC/OS-II允许中断嵌套,嵌套层数可达255层。中断服务子程序执行事件处理有两种方法。一种方法是通过OSMBoxPost()、OSQPost()、OSSemPost()等函数去通知真正做该事件处理的那个任务,让任务完成中断事件的处理。另外一种是由中断服务子程序本身完成事件处理。调用中断退出函数OSIntExit()标志着中断服务子程序的终结,OSIntExit()将中断嵌套层数计数器减1。中断级任务切换函数OSIntCtxSw()。μC/OS-II的时间管理μC/OS-II能够提供周期性时钟信号,用于实现任务的正确延时和超时确认,节拍率应在每秒10次到100次之间,即10-100Hz,时钟节拍率越高,系统的额外负荷就越重。用户必须在多任务系统启动以后再激活时钟节拍信号发生器,也就是在调用OSStart()之后,即在调用OSStart()之后做的第一件事是初始化定时器中断。μC/OS-II的汇编语言时钟节拍中断服务子程序名称是OSTickISR。OSTimtick()函数执行时以调用可由用户定义的时钟节拍接口函数OSTimTickHook()开始,这个接口函数扩展了时钟节拍函数OSTimtick(),给用户一个完成特定处理的机会。μC/OS-II的任务间通信主要有三种:利用宏OS_ENTER_CRITICAL()和OS_EXIT_CRITECAL()来关闭中断和打开中断。利用函数OSSchedLock()和OSSchekUnlock()对μC/OS-II中的任务调度函数上锁和开锁。利用信号量OS_EVENT_TYPE_SEM、互斥信号量OS_EVENT_TYPE_MUTEX、邮箱OS_EVENT_TYPE_MBOX或消息队列OS_ENENT_TYPE_Q进行任务间通信。事件控制块ECB:用于实现信号量管理、互斥型信号量管理、消息邮箱以及消息队列管理的ITC功能函数的基本数据结构。OSEventType:定义了事件的具体类型。OSEventCnt:当事件是一个信号量时,OSEventCnt是用于信号量的计数器。μC/OS-II的事件控制块有4种类型,需要使用4个不同的函数来创建,分别是OSSemCreate()、OSMutexCreate()、OSMboxCreate()、OSQCreate()。信号量控制下的任务间通信:在μC/OS-II韩静霞,使用信号量进行任务间通信室,首先应该使用信号量创建函数OSSemCreate来创建一个信号量,并且对该信号量赋以初始计数值。如果信号量是用来表示一个或者多个事件的发生,那么该信号量的初始值应设为0。如果信号量是用于对共享资源的访问,那么该信号量的初始值应设为1。如果该信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论