嵌入式系统设计原理及应用课件存储系统2_第1页
嵌入式系统设计原理及应用课件存储系统2_第2页
嵌入式系统设计原理及应用课件存储系统2_第3页
嵌入式系统设计原理及应用课件存储系统2_第4页
嵌入式系统设计原理及应用课件存储系统2_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

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

文档简介

1、嵌入式系统设计嵌入式系统设计电子科技大学自动化工程学院电子科技大学自动化工程学院主要内容高速缓存(高速缓存(Cache)存储管理单元(存储管理单元(MMU)接口设计接口设计高速缓存高速缓存n在科研领域,C. J. Conti等人于1968年在描述360/85和360/91系统性能差异时最早引入了高速缓存(cache)一词nAlan Jay Smith于1982年的一篇论文中引入了空间局部性和时间局部性的概念。n最早介绍非阻塞缓存的论文之一来自David Kroft(1981年)。n1990年Norman Paul Jouppi在一篇论文中介绍了受害者缓存并研究了使用流缓冲器进行预取的性能。n在

2、工业领域,最早的有记载的缓存出现在IBM的360/85系统上nIntel的x86架构CPU从386开始引入使用SRAM技术的主板缓存,大小从16KB到64KB不等。486引入两级缓存。其中8KBL1缓存和CPU同片,而L2缓存仍然位于主板上,大小可达268KB。nAMD则从K6-III开始引入三级缓存。基于Socket 7接口的K6-III拥有64KB和256KB的同片封装两级缓存,以及可达2MB的三级主板缓存。n今天的CPU将三级缓存全部集成到CPU芯片上。多核CPU通常为每个核配有独享的一级和二级缓存,以及各核之间共享的三级缓存。高速缓存Cachen高速缓冲存储器中存放的是当前使用得最多的

3、程序代码和数据,即主存中部分内容的副本。n在嵌入式系统中Cache全部都集成在嵌入式微处理器内。n可分为数据Cache、指令Cache或混合Cache。n不同的处理器其Cache的大小不一样。n一般32位的嵌入式微处理器都内置Cache。高速缓存CachenCache命中: CPU每次读取主存时,Cache控制器都要检查CPU送出的地址,判断CPU要读取的数据是否在Cache中,如果在就称为命中。nCache未命中 读取的数据不在Cache中,则对主存储器进行操作,并将有关内容置入Cache。n写入方法:u通写(Write Through):写Cache时,Cache与对应主存内容同步更新。u

4、回写(Write Back):写Cache时,只有写入Cache 内容移出时才更新对应主存内容。CPU地址地址索引索引机构机构置换控制器置换控制器高速缓冲高速缓冲存储器存储器主主存存段(页)段(页)地址地址高位地址高位地址低位地址低位地址地址总线地址总线数据总线数据总线 Cache结构框图结构框图高速缓存结构高速缓存直接映射内存内存内存地址内存地址0123456789ABCDEF4单元直接映射单元直接映射cache0123n 指定内存单元映射到一个确定的Cache单元n 多个内存单元可以映射到同一个Cache单元高速缓存直接映射高速缓存组相连高速缓存组相连12高速缓存替换策略n 如果发生Cac

5、he未命中事件,必须从内存读取数据,并存储到某个Cache块中n 究竟存储到哪个Cache块?n替换策略n 直接映射Cachen根据内存地址唯一确定n 全相关/N路集相关n有多个可选择的块:如何决策?13高速缓存替换策略n 随机法(RAND法)u 随机替换存高速缓存储块 u简单、易于实现,命中率低n 先进先出法(FIFO法)u最先调入高速缓存的,最先替换u命中率较随机法高n 最近最少使用法(LRU)u选择最近最少的存储块替换u命中率最高高速缓存据一致性n CPU写高速缓存时,没有立即写主存储器n 输入输出端口的控制器或输入输出设别写主存储器,不写高速缓存15高速缓存写操作n 写直达策略(Wri

6、te Through)u同时写到内存和Cachen 写回策略(Write Back)u临时写到Cache,不马上写到内存u需要标志Cache是否已经被写过(Dirty)u数据替换或消失前,OS要把Cache内容写到内存n 写合并策略(Write Combine)u暂存连续数次写操作,再一次写入内存u用于多媒体程序:持续写一大块内存,视频解码等高速缓存性能优化n Byte a10244=./初始化 int sum=./初始化for(j=0; j4; j=+) for(i=0; i1024; i=+) sum+ = aij; 高速缓存性能优化n Byte a10244=./初始化 int sum=

7、./初始化for(i=0; i1024; i=+) for(j=0; j4;j=+) sum+ = aij; 内存管理单元 内存管理系统式嵌入式操作系统内核中重要的功能之一。由于处理器直接运行和处理的程序和数据只能放在内存中,因此内存的管理质量是否优良将直接影响系统。内存管理单元主要功能n 虚拟内存空间 操作系统采用虚拟内存功能使系统显得它有比实际大得多得内存空间,虚拟内存可以比系统中的物理内存大好多。n 内存保护 系统中每个进程都有自己的虚拟地址空间,这些虚拟内存空间相互之间完全分离,因此运行一个应用的进程不会影响其他的进程。同样,硬件的虚拟内存机制允许内存区域被写保护,这样就保护了代码和数

8、据不被恶意应用重写。内存管理单元主要功能n 内存映射 内存映射用来把映像和数据文件映像到一个进程的地址空间。在内存映射中,文件的内容被直接链接到进程的虚拟地址空间。n 公平物理内存分配 内存管理系统给予系统中运行的每个进程公平的一份系统物理内存。n 共享虚拟内存 尽管虚拟内存允许进程拥有分隔的虚拟地址空间,但有时还需要进程共享内存,如进程间通信需要共享内存。通用输入输出接口(GPIO)n 接口:是微处理器(CPU)与外界的连接部分(电路),是CPU与外界世界进行信息交换的中转站。接口技术研究的是CPU如何与外部世界进行最佳耦合与匹配,以实现双方高效、可靠地进行信息交换的技术。n 端口:在接口电

9、路中通常包含若干个寄存器,数据传送时,不同的信息送入不同的寄存器,能够用IN/OUT指令对其进行读/写操作的寄存器称为端口寄存器,简称“端口”n 端口分类:数据端口、状态端口和控制端口通用输入输出接口用途CPU接口接口外设外设数据数据数据数据控制信号控制信号控制信号控制信号状态信号状态信号状态信号状态信号可能是单向的可能是单向的接口在计算机系统中的位置和作用接口在计算机系统中的位置和作用通用输入输出接口通用输入输出接口接口电路基本结构框图接口电路基本结构框图这就是端这就是端口,接口口,接口的核心部的核心部分分通用输入输出接口通用输入输出接口25通用输入输出接口S3C2410输入输出端口是嵌入式

10、系统硬件平台的重要组成部分,通过输入输出端口可以连接各种类型的外部输入输出设备。我们常把在S3C2440A芯片中的输入输出端口称为GPIO端口。S3C2410芯片中共有117个GPIO端口,分为8组,GPA GPH,这8组GPIO端口均为多功能端口,端口功能可以编程设置,若选定某个GPIO端口的功能,用户应在主程序运行之前编程设置对应的控制寄存器,从而选定所需GPIO端口的功能。如果某个GPIO引脚不用于特定功能,那么该引脚就可以设置为普通的输入输出引脚。通用输入输出接口功能定义引脚名称引脚名称功能功能1功能功能2功能功能3GPA22输出输出nFCEGPA21输出输出nRSTOUTGPA20输

11、出输出nFREGPA19输出输出nFWEGPA18输出输出ALEGPA17输出输出CLEGPA16输出输出nGCS5GPA15输出输出nGCS4GPA14输出输出nGCS3GPA13输出输出nGCS2GPA12输出输出nGCS1引脚名称引脚名称功能功能1功能功能2功能功能3GPA11输出输出ADDR26GPA10输出输出ADDR25GPA9输出输出ADDR24GPA8输出输出ADDR23GPA7输出输出ADDR22GPA6输出输出ADDR21GPA5输出输出ADDR20GPA4输出输出ADDR19GPA3输出输出ADDR18GPA2输出输出ADDR17GPA1输出输出ADDR16GPA0输出输

12、出ADDR0端口端口A的引脚有两种功能的引脚有两种功能:v第第1种功能是作为普通的输出口;种功能是作为普通的输出口;v第第2种功能主要用作外接存储器的地址信号和存储块选择信号。种功能主要用作外接存储器的地址信号和存储块选择信号。 27通用输入输出接口功能定义引脚名称引脚名称功能功能1功能功能2功能功能3GPF7输入输入/输出输出EINT7GPF6输入输入/输出输出EINT6GPF5输入输入/输出输出EINT5GPF4输入输入/输出输出EINT4GPF3输入输入/输出输出EINT3GPF2输入输入/输出输出EINT2GPF1输入输入/输出输出EINT1GPF0输入输入/输出输出EINT0端口F的

13、GPIO引脚功能端口F的I/O引脚共有8个通用输入输出接口S3C2410通用输入输出接口通用输入输出接口接口控制接口控制GPFCON为通用端口为通用端口F组的管脚工作状态配置寄存器。组的管脚工作状态配置寄存器。GPFDAT端口数据寄存器端口数据寄存器GPFDAT寄存中的每一位的值代表管脚上的信号,如寄存中的每一位的值代表管脚上的信号,如GPF0管脚为低电平,则管脚为低电平,则GPFDAT0为为0。管脚内部上拉电阻使能!管脚内部上拉电阻使能!GPFUP端口上拉电阻使能寄存器端口上拉电阻使能寄存器表示表示GPFCON的第的第0、1位决定位决定GPF组的第组的第0跟管脚,例如为跟管脚,例如为00时,

14、该管脚用于输入,时,该管脚用于输入,01时表示该管脚用于输出,时表示该管脚用于输出,10时表示外部中断时表示外部中断0输入,输入,11则为保留。则为保留。GPFCON模式控制寄存器模式控制寄存器通用输入输出接口通用输入输出接口S3C2410S3C2410通用输入输出接口上拉电阻上拉电阻上拉电阻Vcc(高电平)(高电平)GPIO引脚引脚下拉电阻下拉电阻接地端接地端GPIO引脚引脚GPIO引脚引脚Vcc(高电平)(高电平)内部上拉电阻内部上拉电阻通用输入输出接口上拉电阻输入输出1K1K+5VBECCBE通用输入输出接口上拉电阻输入输出1K1K+5VBECCBE+5V上拉电阻通用输入输出接口推挽(p

15、ush-pull)u驱动能力强,可直接输出高电平驱动能力强,可直接输出高电平u电平转换速度快电平转换速度快u功耗大功耗大通用输入输出接口开漏(open-drain)u需外加上拉电阻输出高电平需外加上拉电阻输出高电平u电平转换速度慢电平转换速度慢u可实现可实现“线与线与”功能功能 端口E的GPE3位输出控制一个LED指示灯,GPE4位输出控制一个蜂鸣器,如图所示:端口F用作一个并行数据的输入,即作为一个普通的并行输入口。通用输入输出接口实例通用输入输出接口实例reg2410.h中关于GPIO的定义如下: #define rGPECON (*(volatile unsigned *)0 x5600

16、0040) /*端口E控制寄存器*/ #define rGPEDAT(*(volatile unsigned *)0 x56000044) /*端口E数据寄存器*/ #define rGPEUP (*(volatile unsigned *)0 x56000048) /*端口E上拉控制寄存器*/ #define rGPFCON(*(volatile unsigned *)0 x56000050) /*端口F控制寄存器*/ #define rGPFDAT(*(volatile unsigned *)0 x56000054) /*端口F控制寄存器*/ #define rGPFUP(*(volati

17、le unsigned *)0 x56000058) /*端口F上拉控制寄存器*/ #include “S3C2410.h” /*端口E的GPE4用作蜂鸣器输出控制端,宏定义蜂鸣器的开、关,高电平为鸣叫*/ #define beepon()rGPEDAT= rGPEDAT |0 x0010; #define beepoff()rGPEDAT= rGPEDAT &0 xffef; /*端口E的GPE3用作LED输出控制端,宏定义LED的亮、灭,低电平为亮/ #define ledlight()rGPEDAT= rGPEDAT&0 xfff7; #define ledclear()

18、rGPEDAT= rGPEDAT|0 x0008;通用输入输出接口实例void main() INT16U temp; /定义变量用来判断并口输入是否有效 INT8U oldportf=0 xff, newportf; rGPECON=(rGPECON|0 x00000140)&0 xfffffd7f); /初始化端口E,使GPE4、GPE3为输出 beepoff(); /关蜂鸣器 rGPFCON=rGPFCON&0 x0000; /初始化端口F,使所有位均为输入 Newportf=rGPFDAT; /读端口F,用于判断输入的变化通用输入输出接口实例 while(1) if(n

19、ewportf!=oldportf) /若端口F的引脚有一位为低电平 ledlight(); /LED指示灯亮 beepon(); /蜂鸣器发声 Delay(3000); /延时 beepoff(); /关蜂鸣器 ledclear(); /LED指示灯灭 通用输入输出接口实例定时器定时器/ /计数器计数器clockclock定时器定时器/ /计数器计数器PLLPLL鉴频鉴相器鉴频鉴相器(PFD)(PFD)(鉴相器鉴相器:PD):PD):对输入的参考信号和反馈回路的信号进行频率和相位的比较,输出一个代表两者差异的信号至低通滤波器低通滤波器低通滤波器(LPF):(LPF):将输入信号中的高频成分滤

20、除,保留直流部分送至压控振荡器。压控振荡器压控振荡器(VCO):(VCO):输出一个周期信号,其频率由输入电压所控制。反馈回路反馈回路: :将压控振荡器输出的信号送回至鉴频鉴相器。通常压控振荡器的输出信号的频率大于参考信号的频率,因此需在此加入分频器(DIV)以降低频率。定时器定时器/ /计数器计数器原理原理定时器定时器/ /计数器计数器S3C2410S3C2410定时器/计数器定时器实例n 计数器初值=定时器时间间隔/(1/(PCLK/(预分频系数+1)/(分割器值)n 定时器计数脉冲频率=PCLK/(预分频系数+1)/(分割器值)n 定时器计数脉冲周期=1/定时器计数脉冲频率(1Hz=1/

21、s)n 计数器初值=定时器时间间隔/定时器计数脉冲周期定时器/计数器定时器的用途 定时器是操作系统的心脏,操作系统的任务的调度和时间的计算都依赖于定时器时 间 片t4t2t3t2t1t3t2t1高低时 间先优级注 :表 示 抢 占 , 表 示 任 务 完 成 。定时器/计数器PWMOw wtuoUd- -Ud2p pp pa1a2a3定时器/计数器捕获器看门狗看门狗作用:当系统程序出现错乱,引起系统程序死循环时,产生复位信号,迫使系统复位,恢复系统正常运行。原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗(喂狗),那么看门狗计数器就会溢出从而

22、引起看门狗中断,造成系统复位。看门狗内部看门狗1.计算主控程序循环一次的耗时。2.设置定时器。设置定时周期大于主程序循环周期,设置溢出中断。3.设计定时器溢出所对应的中断服务程序。此子程序只须一条指令, 把计算机拖回整个程序的第一行,对单片机重新进行初始化并获得正确的执行顺序。4.设计“喂狗”程序:在主循环手动装载计数缓冲寄存器。看门狗软件看门狗看门狗外部看门狗看门狗双时限看门狗S3C2410的RTC实时时钟 在一个嵌入式系统中,通常采用RTC来提供可靠的系统时间,包括时、分、秒和年、月、日、星期等,而且要求在系统处于关机状态下它也能够正常工作(通常采用后备电池供电)。 它的外围也不需要太多的

23、辅助电路,典型的就是只需要一个高精度的32.768KHz晶体和电阻电容等。实时时钟S3C2410的RTC基本特性l 时钟数据采用BCD编码l 能够对闰年的年月日进行自动处理l 具有报警功能l 具有独立的电源输入 l 提供毫秒级时钟中断,可作为内核时钟实时时钟内部实时时钟实时时钟内部结构(1)闰年产生器 这个模块可以决定每个月的最后日期是28、29、30还是31,并可以根据是否是闰年来决定日期。实时时钟模块构成(2)读/写寄存器 设置RTCON寄存器的0位来表示读和写RTC模块中的寄存器。为了显示秒,分,小时,日期,月和年,CPU会从BCDSEC、BCDMIN、BCDHOUR、BCDDAY、BC

24、DDATE、BCDMON和BCDYEAR寄存器读取数据。 由于多个寄存器的读取,可能产生1秒钟的偏离。解决的方法是,当读取到的BCDSEC等于0时,用户应该再读取一次BCDYEAR到BCDSEC的值。 (3)节拍中断 RTC节拍时间用于中断请求。TICNT寄存器具有1个中断使能位,其中的计数值n (1n127)用于中断。 Period = (n+1) / 128秒 节拍中断功能可以作为RTOS(实时操作系统)内核的时间节拍。实时时钟模块构成(4)备用电池和报警功能 RTC逻辑模块可以通过一个备用电池供电。即使系统关闭,也能够提供电能保证RTC模块正常工作。 在掉电模式或正常工作模式下,RTC能

25、够在指定的时间产生一个报警信号。在正常工作模式下,报警中断被激活。十进数8421-BCD码余3-BCD码2421-A码(M10)D C B AC3 C2 C1 C0a3 a2 a1 a000 0 0 00 0 1 10 0 0 010 0 0 10 1 0 00 0 0 120 0 1 00 1 0 10 0 1 030 0 1 10 1 1 00 0 1 140 1 0 00 1 1 10 1 0 050 1 0 11 0 0 00 1 0 160 1 1 01 0 0 10 1 1 070 1 1 11 0 1 00 1 1 181 0 0 01 0 1 11 1 1 091 0 0 11

26、 1 0 01 1 1 1BCD码的主要优点是在机器格式与人可读的格式之间转换容易实时时钟BCD码实时时钟寄存器实时时钟外部实时时钟芯片实时时钟读写时序实时时钟读写时序实时时钟读写时序人机接口定义人机接口定义 人机交互接口( HumanMachine Interaction ),是计算机和人机交互设备之间的交接界面,通过接口可以实现计算机与外设之间的信息交换。人机交互设备是计算机系统中最基本的设备之一,是人和计算机之间建立联系、交换信息的外部设备,常见的人机交互设备可分为输入设备和输出设备两类。 常见人机接口常见人机接口常见人机接口常见人机接口常见人机接口常见人机接口嵌入式系统人机接口嵌入式系

27、统人机接口嵌入式系统人机接口嵌入式系统人机接口嵌入式系统人机接口嵌入式系统人机接口嵌入式系统人机接口嵌入式系统人机接口按键开关电路按键开关电路 按键开关电路是指通过外力使电路瞬时接通的开关,在许多场合都有应用。比如大多数处理器的RESET电路都用到了按键开关,它通过按键产生一个瞬时的低电压,CPU感知这个低电压后重启。输入接口输入接口独立键盘独立键盘输入接口独立键盘行扫描法:行扫描法: 先由行线送出数据先由行线送出数据, ,送全送全“0 0” 然后读进列线,判有无键按下。然后读进列线,判有无键按下。如果确定有键按下,行线再次送出数据,每次送出数据中只如果确定有键按下,行线再次送出数据,每次送出

28、数据中只有一位有一位“0 0”,判断按键的位置并算出键值,顺序扫描。,判断按键的位置并算出键值,顺序扫描。输入接口输入接口矩阵键矩阵键盘接口盘接口 (a)线反转法第一步)线反转法第一步 (b)线反转法第二步)线反转法第二步输入接口输入接口矩阵键矩阵键盘接口盘接口键盘的可靠性消除抖动电路I/O接接口口+5v+5v消除抖动电路消除抖动电路开关开关单片机单片机抖动时间抖动时间10ms开关动作时间开关动作时间100ms“ 1 ”“ 0 ”10ms输入接口输入接口矩阵键矩阵键盘接口盘接口输入接口输入接口矩阵键矩阵键盘接口盘接口解决连击现象的几种方法:解决连击现象的几种方法: 解决连击的关键是一次按键只让

29、它响应一次,解决连击的关键是一次按键只让它响应一次,为此要分别检测到按键按下和释放的时刻。为此要分别检测到按键按下和释放的时刻。 1)按下键盘就执行。执行完后等待操作者释按下键盘就执行。执行完后等待操作者释放按键,未释放前不再执行指定功能,从而避免放按键,未释放前不再执行指定功能,从而避免了一次按键重复执行的现象;了一次按键重复执行的现象; 2)在按键释放后再执行指定功能,同样可以在按键释放后再执行指定功能,同样可以避免连击,但给人一种反应迟钝的感觉,因此不避免连击,但给人一种反应迟钝的感觉,因此不常采用。常采用。 输入接口键盘接口芯片自动消除抖动自动消除抖动连击键计数连击键计数1.2 键盘的

30、分类键盘和鼠标都可以使用键盘和鼠标都可以使用PS/2接口,按照接口,按照PC99颜色规范,鼠标通常颜色规范,鼠标通常是是浅绿色接口,键盘浅绿色接口,键盘是是紫色接口。紫色接口。输入接口输入接口编码键盘编码键盘输入接口红外遥控器常用的红外遥控系统一般分发射和接收两个部分。应用编/解码专用集成电路芯片来进行控制操作,如下图所示。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。 红外线遥控系统框图 发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管;由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它便发出的是红外线而不是可见光。目前大量的使用的红外发光二极管发出的红外线波长为940nm左右。输入接口输入接口红外遥控器红外遥控器输入接口红外遥控器输入接口触摸屏 电阻屏电阻屏电容屏电容屏输入接口电阻屏 电阻式触摸屏是最常用的触摸屏类型,利用压力感应来进行控制。它的主要部分是一块与显示器表面非常配合的电阻薄膜屏。电阻式触摸屏剖面示意图电阻式触摸屏剖面示意图输入接口电阻屏四线电阻式触摸屏除了可以得到触点的四线电阻式触摸屏除了可以得到触点的X/Y坐标,还可以测得触点的压力,这是因坐标,还可以测得触点的压力,这是因为为top layer施压后,上下层施

温馨提示

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

最新文档

评论

0/150

提交评论