嵌入式系统原理与设计.docx
《嵌入式系统原理与设计.docx》由会员分享,可在线阅读,更多相关《嵌入式系统原理与设计.docx(22页珍藏版)》请在冰点文库上搜索。
嵌入式系统原理与设计
嵌入式系统原理与设计
第一章嵌入式处理器
1.嵌入式系统概念,组成
定义:
以应用为主,以计算机技术为基础,软硬件可裁剪,满足系统对功能..、
性能、可靠性、体积和功耗
..有严格要求的计算机
...系统。
组成:
硬件:
处理器、存储器、I/O设备、传感器
软件:
①系统软件②应用软件
2.嵌入式处理器分类,特点;嵌入式处理器与通用处理器区别;哈佛体系结构与风诺依曼体系结构;大端存储方式与小端存储方式。
分类:
①MPU微处理器。
一块芯片,没有集成外设接口。
内部主要由运算器,控制器,寄存器组成。
②MCU微控制器(单片机)。
一块芯片集成整个计算机系统。
③EDSP数字信号处理器。
特点:
运算速度快,擅长于大量重复数据处理
嵌入式处理器与通用计算机处理器的区别:
①嵌入式处理器种类繁多,功能多样
②嵌入式处理器能力相对较弱,功耗低
③嵌入式系统提供灵活的地址空间寻址能力
④嵌入式系统集成了外设接口
指令的存储结构
①哈佛体系结构:
指令和数据分开存储————————(嵌入式存储结构)
特征:
在同一机器周期内指令和数据同时传输
②冯·诺依曼体系结构:
指令和数据共用一个存储器——(通用式存数结构)
数据存储结构(多字节)
例题:
一个十六进制数12345678(h),在存储器中使用大端方式格式为(B)使用小端方式格式为(A)
小端方式
(A)
大端方式:
低地址存高位小端方式:
低地址存低位处理器决定存储方式
通用计算机(代表:
X86系列处理器)采用小端方式存储嵌入式计算机(代表:
ARM系列处理器)两者皆可,需设置
3.ARM指令集的命名;ARM内核的命名(包括命名规则)ARM指令集命名:
V1~V8
ARM内核命名:
ARM7,ARM920T,XSCALE(Intel),StrogARM,Cortex-A15命名规则:
ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{S}
{x}——系列(版本)
{y}——当数值为“2”时,表示MMU(内存管理单元){z}——当数值为“0”时,表示缓存Cache{T}——支持16位Thumb指令集{D}——支持片上Debug(调试){M}——内嵌硬件乘法器
大端方式
(B)
{I}——内嵌ICE(在线仿真器)——支持片上断点及调试点
{E}——支持DSP指令
{J}——支持Jazzle技术
{F}——支持硬件浮点
{S}——可综合版本
4.JTAG的概念及作用。
概念:
(JointTestActionGroup)联合测试行动小组→检测PCB和IC芯片标准。
作用:
(1)硬件基本功能测试读写(读写处理器内部寄存器/读写处理器外部存储单元/设置GPIO引脚状态)
(2)软件下载:
将运行代码下载到目标机RAM中
(3)软件调试:
设置断点和调试点
(4)FLASH烧写:
将运行最终代码烧写到FLASH存储器中。
5.什么是GPIO,S3C2410/2440GPIO的分组及个数;GPxCON寄存器,GPxDAT寄存器,GPxUP寄存器的功能,各位含义和用法;什么是上拉电阻和下拉电阻;例:
使4个LED小灯的LED1亮起来(会画电路图);例:
使用按键控制LED(会画电路图)。
GPIO概念:
(GeneralPurposeI/OPorts)通用输入/输出接口,即处理器引脚。
S3C2410共有117个引脚,可分成A——H共8个组,(GPA,GPB,…GPH组)S3C2440共有130个引脚,可分成A——J共9个组,(GPA,GPB,…,GPH,GPJ组)
①GPxCON寄存器(控制寄存器)——设置引脚功能
→GPACON(A组有23根引脚,一位对应一个引脚,共32位,拿出0~22位,其余没用)
(若某一位是)0:
(代表该位的引脚是一个)输出引脚
1:
地址引脚
→GPBCON——GPH/JCON(用法一致,两位设置一个引脚)
00:
输入引脚
01:
输出引脚
10:
特殊引脚
11:
保留不用
GPBCON3110
②GPxDAT寄存器(数据寄存器)——设置引脚状态及读取引脚状态若某一位对应的是输出引脚,写此寄存器相应位可令引脚输出高/低电平。
若某一位对应的是输入引脚,读取此寄存器可知相应引脚电平状态。
GPBDAT
311
③GpxUP——上拉电阻寄存器
0:
相应引脚使用内部上拉电阻1:
相应引脚不适用内部上拉电阻上拉电阻:
加在引脚和高电位间的电阻。
下拉电阻:
加在引脚和接地间的电阻。
上拉电阻
Vcc(高电平)接地端
(S3C2410大部分配有上拉电阻,可使用,也可不使用)①例:
使4个LED小灯中的LED1发亮
GPBCON:
311716151413121110…3210
…
GPB8GPB7GPB6GPB5
GPB1
GPB0
GPBDAT:
318765…3210
…
GPB8GPB7GPB6GPB5
GPBUP:
不使用上拉电阻程序:
#defineGPBCON(*(Volatileunsignedlong*)0x56000010)#defineGPBDAT(*(Volatileunsignedlong*)0x56000014)#defineGPB5_OUT(1<<(5*2))#defineGPB6_OUT(1<<(6*2))#defineGPB7_OUT(1<<(7*2))#defineGPB8_OUT(1<<(8*2))
intmain()
{
GPBCON&=~(0x0003FC00);
GPBCON|=0x00015400;
GPBDAT&=~(0x000001E0);
GPBDAT|=0x000001C0;
return0;
}
②使用按键控制LED
K1闭合,GPB11低电平
K1断开,GPB11高电平
GPGDAT11位,当GPB11为0时,低电平;当GPG11为1时,高电平。
考试肯定考的20分编程题!
!
!
S3C2410
#defineGPBCON(*(volatileunsignedlong*)0x56000010)#defineGPBDAT(*(volatileunsignedlong*)0x56000014)#defineGPGCON(*(volatileunsignedlong*)0x56000050)#defineGPGDAT(*(volatileunsignedlong*)0x56000054)#defineGPFCON(*(volatileunsignedlong*)0x56000060)#defineGPFDAT(*(volatileunsignedlong*)0x56000064)#defineGPB5_OUT1<<(5*2)#defineGPB6_OUT1<<(6*2)#defineGPB7_OUT1<<(7*2)#defineGPB8_OUT1<<(8*2)
K4
#defineGPG11_IN~(3<<(11*2))
#defineGPG3_IN~(3<<(3*2))
#defineGPF2_IN~(3<<(2*2))
#defineGPF0_IN~(3<<(0*2))
intmain(){
unsignedlongdwDat;
GPBCON&=~(0x0003FC00);
GPBCON|=0x00015400;
GPGCON&=~(0x00C000C0);
GPGCON|=0x00000000;
GPFCON&=~(0x00000033);
GPFCON|=0x00000000;
while
(1){
dwDat=GPGDAT;
if(dwDat&(1<<11))//如果表达式为真值,表示K1没被按下,与GPG11相连
GPBDAT|=(1<<5);//LED1熄灭
else
GPBDAT&=~(1<<5);//LED1点亮
if(dwDat&(1<<3))//如果表达式为真值,表示K2没被按下,与GPG3相连
GPBDAT|=(1<<6);//LED2熄灭
else
GPBDAT&=~(1<<6);//LED2点亮
if(dwDat&(1<<2))//如果表达式为真值,表示K3没被按下,与GPF2相连
GPBDAT|=(1<<7);//LED3熄灭
else
GPBDAT&=~(1<<7);//LED3点亮
if(dwDat&(1<<0))//如果表达式为真值,表示K4没被按下,与GPF0相连
GPBDAT|=(1<<8);//LED4熄灭else
GPBDAT&=~(1<<8);//LED4点亮}return0;
}
第二章嵌入式存储器
1.嵌入式存储器的分类,特点。
2.SRAM位存储电路的存储原理;DRAM位存储电路的存储原理;DRAM的优缺点;SDRAM芯片按BANK划分的优点;SDRAM读写操作;SDRAM突发传输作用;根据CL,BL的值绘制突发传输时序图。
SRAM存储电路:
写数据:
选通信号为高电平,T5,T
6导通如果写1,D发出高电平,D#发低电平
当选通信号失效,T1截止,T2导通,T3,T4做负载使用
一、分类
SRAM:
静态随即存储器(cache)存取速度会计,容量小,
造价高,不需刷新
DRAM:
动态随即存储器(内存)造价低,
存取速度稍慢,存储单元需刷新
SDRAM:
同步动态随
机存储器步时钟(上升沿或下降沿存
取数据)
DDRSDRAM:
(DualDataRate双倍速率)(上升沿和下降沿都可以读取数据)
FLASH:
闪存(外存)速度慢,容量大,造价低
NANDFLASH:
与非闪存
东芝数据
NORFLASH:
或非闪存
Intel代码
T4的内阻>>T2内阻
T3的内阻>>T1内阻
Q为高电平,由Vcc提供
Q#为低电平,由接地端提供
写1以及读取同理。
DRAM原理
写1:
数据线发高电平,电容有电势差会充电,充电满后,写入结束。
写0:
数据线发低电平,电容放点。
读:
有电流通过,读1。
无电流通过,读0。
刷新:
读数据时,电容放电需刷新重写。
电容容量小,易漏电,需定时刷新,
DRAM优缺点
优点:
结构简单,便于集成造价低耗电低。
缺点:
访问速度慢,需要动态刷新。
SDRAM芯片按BANK划分的优点:
1)提高存储器访问速度
2)节能(片选)
①SDRAM读操作:
1)发送行地址和行选通信号tRCD(表示行地址发出到列地址发出的时间间隔)
RCD也称为——
tRCD=2————表示延时间为2个时钟周期
2)发送列地址和列选通信号,以及数据读命令,从命令发出到数据出现在总线上有延迟,这个延迟成为CAS延迟。
用CL表示。
从发送地址到数据出现到总线上时长:
tRCD+CL
②SDRAM写操作
1)发送行地址和行选通新号tRCD
2)发送到列地址和列选通新号,以及写命令,同时数据通过数据总线传给芯片,不存在CL延时。
SDRAM突发传输(Burst)
作用;可以实现同一行的相邻存储单元连续传输,只需指定起始列地址和
突发长度,内存芯片自动对后面相应数量存储单元进行连续读写操作且不需要重复提供列地址。
下图为突发传输时序图
3.NORFLASH基本操作(读,写,擦除);W39L040A芯片引脚图;NANDFLASH基本操作(读,写,擦除,保护);K9F1208X0C页结构图和芯片引脚图。
NORFLASH1).W39L040A介绍
512K×8NorFLASH芯片
2).读操作:
(1)读普通数据:
CE#低,OE#低,WE#高A0-A18
发地址,数据被送往D0-D7
(2)读厂家ID:
CE#低,OE#低,WE#高A9~12V,A1A000b(3)读器件ID:
CE#低,OE#低,WE#高A9~12V,A1A001b3).擦除操作(必须先擦除后写),写数据“1”
BL=4→突发长度
CL=2→两个时钟周期7
(1)整片擦出:
CE#低,OE#高,WE#低,发出6个总线周期暗号
地址线:
5555h——2AAAh——5555h——5555h——2AAAh——5555h数据线:
AAh——55h——80h——AAh——55h——10h
发送完毕,芯片自动执行擦除操作,用时约6s
(2)块擦除:
CE#低,OE#高,WE#低,发出6个总线周期暗号
地址线:
5555h——2AAAh——5555h——5555h——2AAAh——SA数据线:
AAh——55h——80h——AAh——55h——30h
SA表块地址,擦除时间约0.7s
4).写操作(字节编程)将1变为“0”
CE#低,OE#高,WE#低,发出4个总线周期暗号
地址线:
5555h——2AAAh——5555h——AIN
数据线:
AAh——55h——A0h——DIN
发送完毕,芯片自动执行字节编程(烧写),最快9μs
NANDFLASH
1).读操作
①读上半页
发出命令00h→4个周期地址→经过15μs数据从页送往寄存器→从I/O读数据
②读下半页
01h→4个周期地址→经过15μs数据从页送往寄存器→从I/O读数据③读备用区
50h→4个周期地址→经过15μs数据从页送往寄存器→从I/O读数据
A0~A3A4~A7忽略
④多页连续读
页内最后一列被读出后,下一页数据自动被载入页寄存器
15μs
2).写操作(页编程)200μs80h→4个周期地址→写数据到页寄存器→10h→芯片自动写入通过R/B#(高结束)
6位(1结束)
CPU
通过FLASH状态寄存器第0位判断是否成功(0成功)3).块擦除4096块=212
60h→3个周期地址→D0h
2μs
A14~A16A9~A13忽略
A17~A24
A25
4).块保护
41h:
禁止写
命令42h:
禁止擦出
43h:
禁止写和擦出
41h~43h→80h→块地址(4个周期)→10h
200μsA0~A7全0
A9~A13A14~A16全0
A17~A24
A25
4.NORFLASH和NANDFLASH的比较。
①接口差别:
NOR提供足够的地址引脚寻址;
NAND采用8个位引脚传递命令、地址和数据。
②性能差别:
NOR地址线和数据线分开,传输效率高,读取速度比NAND快,但擦出和写入速度要比NAND慢得多。
③容量和成本:
NAND容量大于NOR容量,成本低与NOR。
④可靠性和耐用性:
NAND擦写次数约为100万次,NOR约为10万次;尺寸上NAND比NOR小8倍,NAND容易发生位翻转,可靠性略差。
⑤软件支持:
在NOR上运行代码不需要任何软件支持;在NAND上进行同样操作需要驱动程序,即内存技术驱动程序(MTD)
⑥市场取向比较:
NOR用于对数据可靠性要求比较高的代码存储应用,如通信产品和网路处理等领域;NAND则用于存储容量较高的MP3、存储卡、U盘等领域、
5.S3C2410/2440地址空间的划分(外部地址空间范围,内部地址空间范围,寄存器地址空间范围,外部地址空间的划分及用于寻址的地址线根数,SDRAM和NORFLASH的起始地址)。
1).外部地址空间划分
闲置——128M
SDRAM64M0x3000000~0x33FFFFFF——128M扩展串口AB——128M
10/100M网卡——128M10M网卡——128M
IDE接口控制块寄存器16字节——128MIDE接口命令寄存器16字节——128M
NorFLah2M0x00000000~0x00FFFFFF——128MCPU提供8个片选引脚nGCS0~nGCS7128M=227
CPU又引出27根引脚用于地址选择S3C2410
GPIO
117
其余全为专用引脚272
2).内部地址空间
存储控制器(SDRAM):
0x4800_0000~0x4800_0030中断控制器:
0x4A00_0000~0x4A00_001CNANDFLASH:
0x4E00_0000~0x4E00_0014UART:
0x5000_0000~0x5000_8028USB:
0x5200_0140~0x5200_026FI2C:
0x5400_0000~0x5400_000CA/D:
0x5800_0000~0x5800_0010
6.MMU的作用及地址转化(画图)。
MMU内存管理单元的作用:
①将逻辑地址转换成物理地址②控制内存的访问权限MMU地址转换原理:
①原理
②一级页表
物理地址
逻辑地址
一级页表项类型
三种地址转换方式
段式粗页表式细页表式
③段式转换
逻辑地址
物理地址
40950
·········4096页表项
4096=212
无效错误31物基20
1段类型31粗页表基地址1001粗页表类型31细页表基地址1211
细页表类型
④粗页表转换
粗页表256项28
二级页表(粗页表)页表项
粗页表转换:
粗页表——大页转换细页表——小页转换
1)粗页表——大页转换
逻辑地址
一级
无效错误31物基160大页类型31
物基121小页类型
31物基10微小页类型
一级页表项类型
2)粗页表——小页转换
xxxx1111xxxx0001xxxx0000
相同
·········
使用重复列表项
24=16
无效错误31物基201段类型31粗页表基地址1001粗页表类型31细页表基地址1201
细页表类型
逻辑地址
物理地址
基地址实际上是由9~16位决定的,只有xxxx改变任意一位才可以确定基地址
⑤细页表转换
转换方式:
细页表——大页细页表——小页细页表——微小页转换细页表1024页表项210细页表页表项与粗页表相同
细页表——大页转换
逻辑地址
物理地址
逻辑地址
细页表转换成小页表:
细页表转换成微小页表:
逻辑地址
物理地址
2=4
逻辑地址
物理地址
重复6位,没个页表项重复26=64页
第三章中断体系结构
1.ARM处理器的7种工作模式;CPSR寄存器。
1)CPU工作模式①用户模式:
正常②快速中断模式:
FIQ③中断模式:
IRQ④管理模式
⑤数据访问中止模式
⑥系统模式:
运行具有特权的操作系统任务
⑦未定义指令中止模式
2)工作模式使用的寄存器
ARM920T
31个通用寄存器+6个程序状态寄存器
逻辑地址
物理地址
N:
运算结果是否为负Z:
运算结果是否为0C:
进位/借位V:
溢出
I:
1:
禁止中断0:
使能中断F:
1:
禁止快中断0:
使能T:
1:
Thumb状态0:
ARM状态4...0:
工作模式:
10000用户10001快中
10010中断
2.中断处理过程。
①中断控制器汇聚中断信号,通知CPU
NZCVIFT40
......
765
R0R1...
R13R14R
CPSR程序计数
状态寄存器连接栈顶指针系统/用户
快中
CPSR中断
没有这两个
17个R
17+8(备)
(备)
②CPU保存运行环境,调用ISR(中断服务程序)处理中断③ISR读取中断控制器,识别中断流并执行相应处理④清除中断,恢复现场,继续执行
3.S3C2410中断优先级排序原理;中断优先级寄存器。
优先级寄存器(PRIORITY)
ARB_MODE设置仲裁器工作模式
4.各级中断请求寄存器之间的关系。
0:
ARB_SEL不变(表示设置仲裁器工作模式屏蔽)
1:
ARB_SEL自动变化
REQ4~REQ1REQ5~REQ0REQ5~REQ0REQ5~REQ0REQ5~REQ0REQ4~REQ1
6543
210
......
RINT0
8719
20ARB_SEL6
ARB_SEL0
第四章系