《嵌入式系统设计与实例开发课件.pptx》由会员分享,可在线阅读,更多相关《嵌入式系统设计与实例开发课件.pptx(117页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、冯诺依曼体系结构和哈佛体系结构CISC与RISC影响CPU性能的因素存储器系统I/O接口一、嵌入式系统硬件基础一、嵌入式系统硬件基础第1页/共117页典型嵌入式系统基本组成硬件典型嵌入式系统基本组成硬件MPUMPU微处理器微处理器电源电源模块模块时钟时钟复位复位FlashFlashRAMRAMROMROMUSBUSBLCDLCDKeyboardKeyboard外围电路外围电路OtherOther外设外设第2页/共117页1.1 冯冯诺依曼体系结构模型诺依曼体系结构模型指令寄存器指令寄存器控制器控制器数据通道数据通道输入输入输出输出中央处理器中央处理器存储器存储器程序程序指令指令0 0指令指令1
2、 1指令指令2 2指令指令3 3指令指令4 4数据数据数据数据0 0数据数据1 1数据数据2 2第3页/共117页1.2 哈佛体系结构哈佛体系结构指令寄存器控制器数据通道输入输出中央处理器程序存储器指令0指令1指令2数据存储器数据0数据1数据2地址指令地址数据第4页/共117页1.3 CISC和和RISCCISCCISC:复杂指令集(:复杂指令集(Complex Instruction Set ComputerComplex Instruction Set Computer)具有大量的指令和寻址方式具有大量的指令和寻址方式8/28/2原则:原则:80%80%的程序只使用的程序只使用20%20%
3、的指令的指令大多数程序只使用少量的指令就能够运行。大多数程序只使用少量的指令就能够运行。RISCRISC:精简指令集(:精简指令集(Reduced Instruction Set Computer)Reduced Instruction Set Computer)在通道中只包含最有用的指令在通道中只包含最有用的指令确保数据通道快速执行每一条指令确保数据通道快速执行每一条指令使使CPUCPU硬件结构设计变得更为简单硬件结构设计变得更为简单 第5页/共117页1.4 影响影响CPU性能的因素:流水线、超标量和缓存性能的因素:流水线、超标量和缓存流水线技术:几个指令可以并行执行 提高了CPU的运行效
4、率 内部信息流要求通畅流动译码取指执行add译码取指执行sub译码取指执行cmp时间AddSubCmp第6页/共117页超标量执行超标量执行超标量执行:超标量CPU采用多条流水线结构 执行1预取指令CACHE译码2译码1执行2执行1预取译码2译码1执行2流水线1流水线2数据第7页/共117页高速缓存(高速缓存(CACHE)1 1、为什么采用高速缓存、为什么采用高速缓存 微处理器的时钟频率比内存速度提高快得多,高速缓存可以微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高内存的平均性能。提高内存的平均性能。2 2、高速缓存的工作原理、高速缓存的工作原理 高速缓存是一种小型、快速的存储器,它
5、保存部分主存内容高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝。的拷贝。CPU高速缓存控制器CACHE主存数据数据地址第8页/共117页总线和总线桥总线和总线桥CPU低速设备桥数据高速总线存储器高速设备高速设备低速总线第9页/共117页1.5 存储器系统存储器系统RAMRAM:随机存取存储器,:随机存取存储器,SRAMSRAM:静态随机存储器,:静态随机存储器,DRAMDRAM:动态随机存储器:动态随机存储器 1 1)SRAMSRAM比比DRAMDRAM快快 2 2)SRAMSRAM比比DRAMDRAM耗电多耗电多 3 3)DRAMDRAM存储密度比存储密度比SRAMSRAM高得多
6、高得多 4 4)DRMDRM需要周期性刷新需要周期性刷新ROMROM:只读存储器:只读存储器FLASHFLASH:闪存:闪存第10页/共117页SRAM和和DRAM1)SRAM 2)DRAMCSR/WAddrDataCSR/WCASDataRASAddr第11页/共117页输入输出接口输入输出接口lI/OI/OlA/DA/D、D/AD/Al键盘键盘lLCDLCDl存储器接口存储器接口l设备接口设备接口第12页/共117页例如例如USBUSBUSB:Universal Serial Bus,通用串行总线大家生活中常见的与USB有关的东西有:uU盘、移动硬盘、无驱型的MP3(U盘)uUSB接口的键
7、盘、Mouse、打印机、数码相机即插即用,热插拨,系统不需重启便可工作,且易于扩展(127个)USB2.0以低成本实现高达480Mb/s的传输率(USB1.1的全速设备可达12Mb/s)接口标准统一、端口供电第13页/共117页一个典型的一个典型的USBUSB通讯系统通讯系统HOST系统HUBDEVICEDDEVICE应用软件+驱动程序Ms.Win+接口芯片HUBU盘其他数据采集器驱动代码+嵌入式处理器+HOST芯片HUBU盘其他数据采集器通用系统模型PC机中的情况嵌入式系统应用第14页/共117页二、嵌入式系统软件基础二、嵌入式系统软件基础操作系统的分类嵌入式实时操作系统前台与后台多任务,任
8、务优先级,调度非占先式与占先式、可重入型函数第15页/共117页3.1 操作系统的分类操作系统的分类(1)顺序执行系统:系统内只含有一个程序,独占CPU的运行时间,按语句顺序执行该程序,直至执行完毕,另一程序才能启动运行。如DOS操作系统。(2)分时操作系统:系统内同时可以有多个程序运行,把CPU的时间分按顺序分成若干片,每个时间片内执行不同的程序。如UNIX(3)实时操作系统:系统内有多个程序运行,每个程序有不同的优先级,只有最高优先级的任务才能占有CPU的控制权。第16页/共117页按实时性分类按实时性分类强实时系统,其系统响应时间在毫秒或微秒级(数控机床);一般实时系统,其系统响应时间在
9、毫秒几秒的数量级上,其实时性的要求比强实时系统要差一些(电子菜谱的查询)。弱实时系统,其系统响应时间约为数十秒或更长(工程机械)。第17页/共117页1)循环轮询系统:(Polling Loop)最简单的软件结构是循环轮询,程序依次检查系统的每一个输入条件,一旦条件成立就进行相应的处理。Initialize()While(true)if(condition_1)action_1();if(condition_2)action_2();if(condition_n)acition_n();按软件结构分类按软件结构分类第18页/共117页2)事件驱动系统:(Event-Driven system)
10、事件驱动系统是能对外部事件直接响应的系统。它包括前后台、实时多任务、多处理器等,是嵌入式实时系统的主要形式。应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看成后台行为(background)。中断服务程序处理异步事件,这部分可以看成前台行为(foreground)。后台也可以叫做任务级,前台也叫中断级。例如,很多基于微处理器的产品采用前后台系统设计,如微波炉、电话机、玩具等。从省电的角度出发,平时微处理器处在停机状态,所有的事都靠中断服务来完成。第19页/共117页前后台系统(后台循环、前台中断)前后台系统(后台循环、前台中断)ISRISR后台 前台ISR时间第20页
11、/共117页代码的临界区也称为临界区,指处理时不可分割的代码。一旦这部分代码开始执行,则不允许任何中断打入。在进入临界区之前要关中断,而临界区代码执行完以后要立即开中断(在任务切换时,地址、指令、数据等寄存器堆栈保护)。代码的临界区代码的临界区第21页/共117页多任务(任务、进程和线程)多任务(任务、进程和线程)CPUCPU寄存器寄存器任务任务控制控制块块1 1任务任务控制控制块块2 2任务任务控制控制块块n n休眠、就绪、运行、挂起、被中断休眠、就绪、运行、挂起、被中断任务任务1 1任务任务2 2任务任务n nCPUCPU寄存器寄存器第22页/共117页一个任务,也称作一个线程,是一个简单
12、的运行程序。每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。多任务运行的实现实际上是靠CPU(中央处理单元)在许多任务之间转换、调度。CPU只有一个,轮番服务于一系列任务中的某一个。多任务运行使CPU的利用率得到最大的发挥,并使应用程序模块化。在实际应用中,多任务的最大特点是,开发人员可以将很复杂的应用程序层次化综合实验(时钟、位图、USB、KEY)。第23页/共117页任务的状态任务的状态第24页/共117页系统内核(系统内核(Kernel)与调度(与调度(Scheduler)多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU
13、时间,并且负责任务之间的通信。内核提供的基本服务是任务切换。内核本身也增加了应用程序的额外负荷,代码空间增加ROM用量,内核本身的数据结构增加了RAM的用量。内核本身对CPU的占用时间一般在2到5个百分点之间。调度(Scheduler)是内核的主要职责之一,就是要决定该轮到哪个任务运行了。多数实时内核是基于优先级调度法的。每个任务根据其重要程度的不同被赋予一定的优先级。基于优先级的调度法指,CPU总是让处在就绪态的优先级最高的任务先运行。第25页/共117页任务优先级任务优先级静态优先级 应用程序执行过程中诸任务优先级不变,则称之为静态优先级。在静态优先级系统中,诸任务以及它们的时间约束在程序
14、编译时是已知的 动态优先级 应用程序执行过程中,任务的优先级是可变的,则称之为动态优先级。实时内核应当避免出现优先级反转问题。第26页/共117页优先级反转优先级反转第27页/共117页信号量信号量(Semaphore)信号量是60年代中期Edgser Dijkstra 发明的。信号量实际上是一种约定机制,在多任务内核中普遍使用.信号量用于:u控制共享资源的使用权(满足互斥条件)u标志某事件的发生u使两个任务的行为同步信号与信号量在英文中都叫做Semaphore,并不加以区分,而说它有两种类型,二进制型(binary)和计数器型(counting)第28页/共117页死锁死锁(或抱死或抱死)D
15、eadlock 死锁也称作抱死,指两个任务无限期地互相等待对方控制着的资源。设任务T1正独享资源R1,任务T2在独享资源T2,而此时T1又要独享R2,T2也要独享R1,于是哪个任务都没法继续执行了,发生了死锁。最简单的防止发生死锁的方法是让每个任务都:先得到全部需要的资源再做下一步的工作用同样的顺序去申请多个资源释放资源时使用相反的顺序 第29页/共117页本节提要本节提要1 13 32 24 4嵌入式系统硬件基础嵌入式系统硬件基础嵌入式嵌入式BSP的基本概念的基本概念嵌入式系统软件基础嵌入式系统软件基础嵌入式系统设计方法嵌入式系统设计方法5 5一个嵌入式设计方法实例一个嵌入式设计方法实例第3
16、0页/共117页嵌入式系统的软/硬件框架第31页/共117页基于知识平台的开发方法基于知识平台的开发方法第32页/共117页嵌入式系统设计步骤系统需求分析:确定设计任务和设计目标,并提炼出设计规格说明书,作为正式设计指导和验收的标准。系统的需求一般分功能性需求和非功能性需求两方面。功能性需求是系统的基本功能,如输入输出信号、操作方式等;非功能需求包括系统性能、成本、功耗、体积、重量等因素。体系结构设计:描述系统如何实现所述的功能和非功能需求,包括对硬件、软件和执行装置的功能划分以及系统的软件、硬件选型等。一个好的体系结构是设计成功与否的关键。硬件/软件协同设计:基于体系结构,对系统的软件、硬件
17、进行详细设计。为了缩短产品开发周期,设计往往是并行的。应该说,嵌入式系统设计的工作大部分都集中在软件设计上,采用面向对象技术、软件组件技术、模块化设计是现代软件工程经常采用的方法。系统集成:把系统的软件、硬件和执行装置集成在一起,进行调试,发现并改进单元设计过程中的错误。系统测试:对设计好的系统进行测试,看其是否满足规格说明书中给定的功能要求。第33页/共117页嵌入式开发工具与开发环境嵌入式开发工具与开发环境第34页/共117页嵌入式软件开发流程嵌入式软件开发流程第35页/共117页开发平台简介开发平台简介第36页/共117页几种常用的开发方法几种常用的开发方法指令集模拟器 一种利用PC机端
18、的仿真开发软件模拟调试的方法。驻留监控软件 驻留监控程序运行在目标板上,PC机端调试软件可通过并口、串口、网口与之交互,以完成程序执行、存储器及寄存器读写、断点设置等任务JTAG仿真器 通过ARM芯片的JTAG边界扫描口与ARM核进行通信,不占用目标板的资源,是目前使用最广泛的调试手段在线仿真器 使用仿真头代替目标板上的CPU,可以完全仿真ARM芯片的行为。但结构较复杂,价格昂贵,通常用于ARM硬件开发中第37页/共117页需求分析与评估功能定义与软硬件选型概要设计与软硬件划分软硬件协同详细设计集成调试维护与升级设计步骤设计步骤第38页/共117页谢 谢 各 位第39页/共117页嵌入式系统设
19、计与实例开发嵌入式系统设计与实例开发ARMARM与与 C/OS-C/OS-基于基于ARMARM的硬件系统结构设计的硬件系统结构设计第40页/共117页本节提要本节提要1 13 32 25 54 46 6基于基于ARM的硬件系统体系结构的硬件系统体系结构存储器接口设计存储器接口设计网络接口设计网络接口设计I/OI/O接口设计接口设计人机交互接口设计人机交互接口设计其它通讯接口设计其它通讯接口设计第41页/共117页基于ARM的硬件设计主要介绍基于ARM7的嵌入式硬件开发平台的设计方法,包括结构、主要接口、存储器选用方案以及外设、显示等方面的内容。嵌入式硬件开发平台的体系结构外围存储器接口设计方法
20、键盘、LCD等人机交互接口的设计触摸屏的设计以太网设计CAN总线设计第42页/共117页Samsung S3C44B0XSamsung S3C44B0X微处理器是三星公司专为手持设备和一般应用提供的高性价比和高性能的微控制器解决方案,它使用ARM7TDMI核,工作在66MHZ。为了降低系统总成本和减少外围器件,这款芯片中还集成了下列部件:8KB Cache、外部存储器控制器、LCD控制器、4个DMA通道、2通道UART、1个多主I2C总线控制器、1个IIS总线控制器,5通道PWM定时器及一个内部定时器、71个通用I/O口、8个外部中断源、实时时钟、8通道10位ADC等。第43页/共117页基于
21、ARM的嵌入式硬件平台体系结构第44页/共117页芯片体系结构第45页/共117页S3C44B0X存储系统的特征l支持数据存储的大支持数据存储的大/小端选择小端选择(通过外部引脚进行选择通过外部引脚进行选择)l地址空间:具有地址空间:具有8 8个存储体,每个存储体可达个存储体,每个存储体可达32Mb32Mb,总,总共可达共可达256Mb256Mb。l对所有存储体的访问大小均可进行改变(对所有存储体的访问大小均可进行改变(8 8位位1616位位3232位)位)l8 8个存储体中,个存储体中,Bank0Bank0Bank5Bank5可支持可支持ROMROM、SRAMSRAM;Bank6Bank6、
22、Bank7Bank7可支持可支持ROMROM、SRAMSRAM和和FPFPEDOEDOSDRAMSDRAM等。等。l7 7个存储体的起始地址固定,个存储体的起始地址固定,1 1个存储体的起始地址可个存储体的起始地址可变。变。第46页/共117页复位后的S3C44B0X的存储器映射表 第47页/共117页系统的存储空间分配Bank0:两片512KFlash,放置系统引导程序,系统上电复位后,PC指针自动指向Bank0的第一个单元,进行系统自举。Bank1:K9F2808(三星 16Mbyte Flash),非线性寻址。具体的时序可以参考K9F2808的datasheetBank2:USBN960
23、3。USB设备端接口芯片,占用系统外部中断0。8位数据总线。Bank3、Bank4未接设备。可以供扩展使用Bank5:RTL8019AS,ISA总线兼容的10M以太网(PHYMAC层)控制芯片。占用系统外部中断1,16位数据总线第48页/共117页Bank6:SDRAM,起始地址为0 xC000000。在SDRAM中,前512Kbyte的空间划分出来,作为系统的LCD显示缓冲区使用(更新其中的数据,就可以更新LCD的显示)。系统的程序存储空间从0 xC080000开始。也就是,引导系统的时候,需要把system.bin文件复制到0 xC080000开始的地址空间,把PC指针指向0 xC0800
24、00。Bank7:未使用。可以扩展另一片SDRAM,或者其他的外设。系统的同步串行口(SIO),连接着触摸屏控制芯片FM7843(与ADS7843完全兼容)。在同步串行口上,还可以扩展其他的芯片。靠IO口控制设备的片选信号(CS)来防止设备的冲突。注:系统的扩展接口上,A0的标号,连接在S3C44B0X的ADDR1上,后面的地址依次向后错位。第49页/共117页本节提要本节提要1 13 32 25 54 46 6基于基于ARM的硬件系统体系结构的硬件系统体系结构存储器接口设计存储器接口设计网络接口设计网络接口设计I/OI/O接口设计接口设计人机交互接口设计人机交互接口设计其它通讯接口设计其它通
25、讯接口设计第50页/共117页S3C44B0X与FLASH的连接(Half Word方式)第51页/共117页使用Bank0上的两片512Kb2来放置系统BIOS,系统上电以后,PC指针自动指向Bank0的第一个单元,开始进行系统自举。系统自举完成以后,便从硬盘中将系统文件和用户应用程序复制到SDRAM内存中执行。Bank1上接16M非线性Flash,当做系统硬盘使用,可以构造文件系统,存放海量数据。用SDRAM当作系统内存,只有Bank6/Bank7能支持SDRAM,所以将SDRAM接在Bank6上。如果同时使用Bank6/Bank7,则要求连接相同容量的存储器,而且其地址空间在物理上是连续
26、的。存储器接口设计第52页/共117页关于BOOT ROMBank0:系统的启动ROM(Flash Rom)。在系统复位的时候,处理器的PC(程序计数器)指针指向0 x0地址。在Bank0的起始地址的程序,就是系统的初始化程序。此程序的主要任务是:1、管理处理器的中断服务程序处理器的中断是从0 x0地址开始,引导ROM负责把这一部分的中断映射到另一个区域,以便系统处理。具体的做法,可以参考44binit.s里面的代码。(这部分代码是三星主页可以提供,它把系统的中断,映射到了不同的指针所指向的地址空间(主要就是系统RAM的空间)。第53页/共117页2、初始化硬件平台,配置其他的BankS3C4
27、4B0X的Bank0是通过外部的一个管脚提供的上拉、下拉电阻来配置的。主要包括:数据位数(8位、16位、32位),数据格式(大端、小端)。而其他的Bank的配置,以及读写周期等信息是靠Bank0内部的代码配置相应的寄存器来实现的。同时,系统的引导Rom也负责配置系统的其他的一些寄存器,比如,系统的PLL(锁频环)配置,系统的IO口等一些端口功能的配置等等。第54页/共117页3、系统自动检测引导Rom负责检测系统的启动所必须的外设是否正常。主要是系统的SDRAM的检测。4、系统的软件设置,更新系统(system.bin)用户可以在系统启动的时候,按任意键,进入系统的软件设置状态。通过引导Rom
28、设置或者查看系统的一些软件信息。包括:通过开启USB端口;更新系统文件system.bin;LCD显示测试;演示程序的装载测试;键盘测试;触摸屏的坐标校准;触摸屏测试;以太网地址的设置等第55页/共117页本节提要本节提要1 13 32 25 54 46 6基于基于ARM的硬件系统体系结构的硬件系统体系结构存储器接口设计存储器接口设计网络接口设计网络接口设计I/O接口设计接口设计人机交互接口设计人机交互接口设计其它通讯接口设计其它通讯接口设计第56页/共117页嵌入式开发板与PC机的串行通讯嵌入式开发板和PC机的通讯电缆可以按照如图所示的方式连接。第57页/共117页I/O接口设计 I/O接口
29、电路也简称接口电路。它是主机和外围设备之间交换信息的连接部件(电路)。它在主机和外围设备之间的信息交换中起着桥梁和纽带作用。设置接口电路的必要性:a)解决CPU和外围设备之间的时序配合和通信联络问题。b)解决CPU和外围设备之间的数据格式转换和匹配问题。c)解决CPU的负载能力和外围设备端口选择问题。第58页/共117页I/O接口的编址方式1)I/O接口独立编址:这种编址方式是将存储器地址空间和I/O接口地址空间分开设置,互不影响。设有专门的输入指令(IN)和输出指令(OUT)来完成I/O操作。2)I/O接口与存储器统一编址方式:这种编址方式不区分存储器地址空间和I/O接口地址空间,把所有的I
30、/O接口的端口都当作是存储器的一个单元对待,每个接口芯片都安排一个或几个与存储器统一编号的地址号。也不设专门的输入/输出指令,所有传送和访问存储器的指令都可用来对I/O接口操作。第59页/共117页两种编址方式有各自的优缺点1)独立编址方式:主要优点:内存地址空间与I/O接口地址空间分开,互不影响,译码电路较简单,并设有专门的I/O指令,所以编程序易于区分,且执行时间短,快速性好。缺点:只用I/O指令访问I/O端口,功能有限且要采用专用I/O周期和专用I/O控制线,使微处理器复杂化。2)统一编址方式主要优点:访问内存的指令都可用于I/O操作,数据处理功能强;同时I/O接口可与存储器部分共用译码
31、和控制电路。缺点:一是I/O接口要占用存储器地址空间的一部分;二是因不用专门的I/O指令,程序中较难区分I/O操作。第60页/共117页S3C44B0X的I/O接口ARM系统完成I/O功能的标准方法是使用存储器映射I/O。这种方法使用特定的存储器地址。当从这些地址加载或向这些地址存储时,它们提供I/O功能。典型情况下,从存储器映射I/O地址加载用于输入,而向存储器映射I/O地址存储用于输出。S3C44B0X有71 个多功能输入输出管脚,构成了7个I/O接口:两个9位的输入/输出接口(E和F)两个8位的输入/输出接口(D和G)一个16位的输入/输出接口(C)一个10位的输出接口(A)一个11位的
32、输出接口(B)第61页/共117页本节提要本节提要1 13 32 25 54 46 6基于基于ARM的硬件系统体系结构的硬件系统体系结构存储器接口设计存储器接口设计网络接口设计网络接口设计I/OI/O接口设计接口设计人机交互接口设计人机交互接口设计其它通讯接口设计其它通讯接口设计第62页/共117页键盘接口设计键盘模块键盘可能用来输入数字型数据或者选择控制设备的操作模式。键盘有两种方案:一是采用现有的一些芯片实现键盘扫描;再就是用软件实现键盘扫描。嵌入式控制器的功能很强,可能允分利用这一资源。第63页/共117页一个瞬时接触开关(按钮)放置在每一行与线一列的交叉点。矩阵所需的键的数目显然根据应
33、用程序而不同。每一行由一个输出端口的一位驱动,而每一列由一个电阻器上拉且供给输入端口一位。键盘扫描阵列第64页/共117页键盘扫描过程就是让微处理器按有规律的时间间隔查看键盘矩阵,以确定是否有键被按下。每个键被分配一个称为扫描码的唯一标识符。应用程序利用该扫描码,根据按下的键来判定应该采取什么行动。消抖算法:组合键处理键盘扫描方法第65页/共117页/得到按键的扫描码,格式为0 xXYZWU16 GetScanKey()U16 key;U8 i,temp;for(i=1;i0 x10;i=1)/I/O口送出数据rPDATD|=0 xf;rPDATD&=i;key4);return key;键盘
34、扫描程序第66页/共117页LCD接口设计LCD显示模块液晶显示是一种被动的显示,它不能发光,只能使用周围环境的光。它显示图案或字符只需很小能量。液晶显示所用的液晶材料是一种兼有液态和固体双重性质的有机物,它的棒状结构在液晶盒内一般平行排列,但在电场作用下能改变其排列方向。LCD的背光:EL(场致发光):2000-3000小时和LED光源:字符模式,50000小时第67页/共117页LCD的显示方式反射型LCD:底偏光片后面加了一块反射板,它一般在户外和光线良好的办公室使用。透射型LCD:底偏光片是透射偏光片,它需要连续使用背光源,一般在光线差的环境使用。透反射型LCD:是处于以上两者之间,底
35、偏光片能部分反光,一般也带背光源,光线好的时候,可关掉背光源;光线差时,可点亮背光源使用LCD。第68页/共117页反射型LCD的结构第69页/共117页LCD通常由两种方式,一种是带有驱动芯片的LCD模块,基本上属于半成品如果有需要,也可以直接使用芯片上的内置LCD控制器来构造显示模块,它可以支持彩色/灰度/单色三种模式,灰度模式下可支持4级灰度和16级灰度,彩色模式下最多支持256色,LCD的实际尺寸可支持到320X240。LCD的驱动方式第70页/共117页嵌入式处理器与LCD的连接嵌入式处理器LCD模块数据总线寄存器选择使能信号第71页/共117页 从系统结构上来讲,由于显示器模块中已
36、经有显示存储器。显存中的每一个单元对应LCD上的一个点,只要显存中的内容改变,显示结果便进行刷新。于是便存在两种刷新:1直接根据系统要求对显存进行修改,一种是只需修改相应的局部就可以,不需要判断覆盖等;另一种就是有覆盖问题,计算起来比较复杂,而且每做一点小的屏幕改变就进行刷新,将增加系统负担。2 专门开辟显示内存,在需要刷新时候由程序进行显示更新。这样,不但可以减轻总线负荷,而且也比较合理,在有需要的时候进行统一的显示更新,界面也可以比较美观,不致由于无法预料的刷新动作导致显示界面闪烁。LCD的显示控制第72页/共117页前后台双重显示缓存的显示模块结构 第73页/共117页触摸屏接口设计触摸
37、屏的分类电阻式触摸屏 表面声波触摸屏 红外式触摸屏 电容式触摸屏第74页/共117页电阻式触摸屏分为四线电阻和五线电阻触摸屏电阻技术触摸屏是一种对外界完全隔离的工作环境,故不怕灰尘、水汽和油污,可以用任何物体来触摸,比较适合工业控制领域及办公室内有限人的使用。第75页/共117页四线电阻触摸屏原理第76页/共117页测量原理在触摸点X、Y坐标的测量过程中,测量电压与测量点的等效电路图所示,图中P为测量点 XVYY第77页/共117页触摸屏芯片第78页/共117页FM(ADS)7843的特点实现触摸屏的驱动选择控制(X、Y通道)对于输入电压或附加电压进行AD转换同步串行接口最大转换速率125KH
38、z可编程控制8位或者12位转换模式工作电压2.7V-5.0V两个附加的输入端口第79页/共117页FM7843与ARM的连接第80页/共117页AD7843的工作时序Arm同步串口(SIO)向ADS7843发送控制字转换完成后从ADS7843串口读出电压转换值 A/DA/D转换时序(每次转换需要转换时序(每次转换需要2424个时钟周期)个时钟周期)第81页/共117页触摸屏的驱动#define ADS7843_CTRL_START0 x80#define ADS7843_GET_X0 x50#define ADS7843_GET_Y0 x10#define ADS7843_CTRL_12MOD
39、E0 x0#define ADS7843_CTRL_8MODE0 x8#define ADS7843_CTRL_SER0 x4#define ADS7843_CTRL_DFR0 x0#define ADS7843_CTRL_DISPWD0 x3/Disable power down#define ADS7843_CTRL_ENPWD0 x0/enable power down#define ADS7843_PIN_CS(16)/GPF6#define ADS7843_PIN_PEN(15)/GPG5/#define ADS7843_PIN_BUSY(16)/触摸屏动作/#define TCHS
40、CR_ACTION_NULL0#define TCHSCR_ACTION_CLICK1/触摸屏单击#define TCHSCR_ACTION_DBCLICK2/触摸屏双击#define TCHSCR_ACTION_DOWN3/触摸屏按下#define TCHSCR_ACTION_UP4/触摸屏抬起#define TCHSCR_ACTION_MOVE5/触摸屏移动#define TCHSCR_IsPenNotDown()(rPDATG&ADS7843_PIN_PEN)void TchScr_init(void);void TchScr_GetScrXY(int*x,int*y);第82页/共11
41、7页函数TchScrGetScrXY(int*x,int*y)的结构第83页/共117页本节提要本节提要1 13 32 25 54 46 6基于基于ARM的硬件系统体系结构的硬件系统体系结构存储器接口设计存储器接口设计网络接口设计网络接口设计I/OI/O接口设计接口设计人机交互接口设计人机交互接口设计其它通讯接口设计其它通讯接口设计第84页/共117页以太网接口的基本知识 1、传输编码曼彻斯特编码差分曼彻斯特编码第85页/共117页以太网协议 以太网MAC层物理传输帧(IEEE802.3)PRSDDASATYPEDATAPADFCS56位位8位位48位位48位位16位位不超过不超过1500字节
42、字节可选可选32位位PRPR:同步位,收发双方的时钟同步,也指明传输的速率(同步位,收发双方的时钟同步,也指明传输的速率(10M10M、100M100M)SDSD:分隔位分隔位,表示下面跟着的是真正的数据表示下面跟着的是真正的数据,而不是同步时钟而不是同步时钟DADA:目目的地址的地址,以太网的地址为以太网的地址为4848位地址。如果为都为位地址。如果为都为F,F,则是广播地址则是广播地址SASA:源地址源地址,48,48位位,表明该帧的数据是哪个网卡发的表明该帧的数据是哪个网卡发的,即发送端网卡地址即发送端网卡地址TYPETYPE:类型字段,表明该帧的数据是什么类型。如:类型字段,表明该帧的
43、数据是什么类型。如:0800H 0800H 表示数据为表示数据为IPIP 包,包,0806H0806H表示数据为表示数据为ARPARP包,包,814CH814CH是是SNMPSNMP包,包,8137H8137H为为IPX/SPXIPX/SPX包包 DATADATA:数据段,该段数据不能超过:数据段,该段数据不能超过15001500字节。字节。PADPAD:填充位。以太网帧传输的数据包最小不能小于填充位。以太网帧传输的数据包最小不能小于6060字节字节,当数据段不当数据段不 足足4646字节时,后面补字节时,后面补000000.(000000.(当然也可以补其它值当然也可以补其它值)FCS:32
44、FCS:32位位CRCCRC数据校验位。该校验由网卡自动完成数据校验位。该校验由网卡自动完成第86页/共117页以太网的数据传输特点PR,SD,PAD,FCS这几个数据段是由网卡自动产生的;只需要理解DA、SA、TYPE、DATA四个段的内容所有数据位的传输由低位开始(传输的位流使用曼彻斯特编码)以太网的冲突退避算法是由硬件自动执行的DA+SA+TYPE+DATA+PAD最小为60字节,最大为1514字节以太网卡可以接收三种地址的数据,一个是广播地位,一个是多播地址(在嵌入式的环境中一般不用),一个是它自已的地址任何两个网卡的物理地址都是不一样的,是世界上唯一的,网卡地址由专门机构分配。第87
45、页/共117页嵌入式的以太网方案嵌入式处理器网卡芯片(RTL8019)对嵌入式处理器没有特殊要求,通用性强处理器和网络数据交换通过外部总线,速度慢,不适合于100M网络带有以太网络接口的嵌入式处理器处理器面向网络应用处理器和网络数据交换通过内部总线,速度快第88页/共117页RTL8019的原理框图第89页/共117页嵌入式网络接口的特点与常规的网卡设计思路不同的是,在嵌入式系统中,系统的精简一直是个主要的原则。RTL8019AS作为网卡,时需要一片EEPROM作为配置存储器,来确定通讯的端口地址,中断地址,网卡的物理地址,工作模式,制造厂商等信息;而在嵌入式系统中,可以使用RTL8019AS
46、的默认配置和一些管脚作为网卡的初始化方法。这样可以节省配置存储器,减小嵌入式硬件平台的体积。第90页/共117页基于RTL8019在嵌入式以太网设计1 RTL8019AS的初始化 RTL8019支持即插即用模式和非即插即用模式。在嵌入式系统中,网卡的外设通常是不经常插拔的,所以,为了系统的精简,配置RTL8019为非即插即用模式。有着固定的中断,有着固定的端口地址,假设是端口是0 x300(这里的端口是相对于ISA总线来说的端口,对于ARM的总线,需要重新计算地址)。这些配置可以通过RTL8019的外部管脚,在系统上电复位的时候,自动配置起来。第91页/共117页关于RTL8019的RAMRT
47、L8019含有16K字节的RAM,地址为0 x4000-0 x7fff(指的是RTL8019内部的存储地址,是RTL8019工作用的存储器,可以通过远程DMA访问),每256个字节称为一页,共有64页。页的地址就是地址的高8位,页地址为0 x40-0 x7f。这16k的ram的一部分用来存放接收的数据包,一部分用来存储待发送的数据包 第92页/共117页2 通过RTL8019AS发送数据 作为一个集成的以太网芯片,数据的发送校验,总线数据包的碰撞检测与避免是由芯片自己完成的。我们只需要配置发送数据的物理层地址的源地址、目的地址、数据包类型以及发送的数据就可以了。第93页/共117页3、通过RT
48、L8019AS接收数据在RTL8019的初始化程序中已经设置好了接收缓冲区的位置,并且配置好了中断的模式。当有一个正确的数据包到达的时候,RTL8019会产生一个中断信号,在ARM中断处理程序中,接收数据。数据的接收比较简单,即通过远端DMA把数据从RTL8019的RAM空间读回ARM中处理。第94页/共117页TCP/IP 协议的层次应用层应用层(Application)BSD套接字套接字(BSD Sockets)传输层传输层(Transport)TCP、UDP网络层网络层(Network)IP、ARP、ICMP、IGMP数据链路层数据链路层(Data Link)IEEE802.3 Ethe
49、rnet MAC物理层物理层(Physical)第95页/共117页嵌入式以太网中主要处理的协议ARP(Address Resolation Protocol)地址解析协议 ICMP(Internet Control Messages Protocol)网络控制报文协议IP(Internet Protocol)网际协议TCP(Transfer Control Protocol)传输控制协议UDP(User Datagram Protocol)用户数据包协议第96页/共117页ARP地址解析协议网络层用32 bit的IP地址来标识不同的主机,而链路层使用48 bit的物理(MAC)地址来标识不同
50、的以太网接口。只知道目的主机的IP地址并不能发送数据帧给它,必须知道目的主机网络接口的MAC地址才能发送数据帧。ARP的功能是实现从IP地址到对应物理地址的转换。源主机发送一份包含目的主机IP地址的ARP请求数据帧给网上的每个主机,称作ARP广播,目的主机的ARP收到这份广播报文后,识别出这是发送端在寻问它的IP地址,于是发送一个包含目的主机IP地址及对应的MAC地址的ARP回答给源主机。每台主机上都有一个ARP高速缓存,存放最近的IP地址到硬件地址之间的映射记录。通常每一项的生存时间为20分钟第97页/共117页ICMP网络控制报文协议 IP层的附属协议,IP层用它来与其他主机或路由器交换错