新書推薦:
《
笼中王国 : 18世纪法国的珍禽异兽与社会文化
》
售價:NT$
340.0
《
思考的框架3 巴菲特芒格马斯克推崇的思维方式 风靡华尔街的思维训练法 沙恩·帕里什 著
》
售價:NT$
295.0
《
被记忆的西周史(中山大学中珠学术译丛)
》
售價:NT$
690.0
《
森林疗法:拥抱大自然、获得幸福的季节性方法
》
售價:NT$
340.0
《
希腊人(伊恩·莫里斯文明史系列)
》
售價:NT$
845.0
《
亚马逊六页纸 如何高效开会、写作、完成工作
》
售價:NT$
349.0
《
世界巨变:严复的角色(王中江著作系列)
》
售價:NT$
500.0
《
塔西佗(全二册)(二十世纪人文译丛)
》
售價:NT$
1800.0
|
編輯推薦: |
从使用嵌入式微处理器芯片的角度出发,系统全面地描述了基于ARM核的S3C2440AS3C2410AS3C44B0X三款微处理器芯片内部组成,片内各控制器、接口、设备组成及工作原理,片外配套芯片、设备的接口技术及应用。 详细描述了系统程序员能够看到的微处理器组成及程序员模型,ARM指令系统,汇编语言特性及编程基础。 配备大量的图、表、例、程序和习题,便于读者学习。 适合用做高等院校嵌入式系统、计算机等专业作为嵌入式系统组成原理及应用、嵌入式系统原理及接口技术课程的教材,也可供准备从事或正在从事嵌入式硬件产品设计开发、系统软件开发、使用到微处理器片内的接口控制器总线设备的应用程序开发的研发人员参考。
|
內容簡介: |
近年来,国内教学科研单位的嵌入式教学实验平台以及开发平台使用基于ARM核的S3C2440A、S3C2410A、S3C44B0X微处理器芯片较为广泛。本书以这三款微处理器为例,系统全面地描述微处理器组成及程序员模型,ARM指令系统,汇编语言特性及编程基础,主存储器及Nand Flash存储器组成,芯片内部各控制器、接口、外设的组成和原理,以及与开发应用相关的技术。另外,通过举例描述这三款微处理器与片外配套芯片或设备的接口技术及应用。 本书从使用嵌入式微处理器角度出发,注重实现技术,内容新颖,实用性强,书中有大量的图、表、例和程序,每章都附有习题,便于读者学习。 本书适用于高等院校嵌入式系统、计算机等专业的本科生作为嵌入式系统组成原理及应用、嵌入式系统原理及接口技术课程的教材使用,也可作为研究生的参考教材,还可作为培训教材或研发人员的参考书使用。
|
目錄:
|
目录Contents第1章嵌入式系统组成简介1
1.1嵌入式系统定义、发展历程、应用举例、主要特点1
1.1.1嵌入式系统定义1
1.1.2嵌入式系统发展历程1
1.1.3嵌入式系统应用举例2
1.1.4嵌入式系统主要特点3
1.2嵌入式系统硬件组成及软件组成举例4
1.2.1嵌入式系统硬件组成举例4
1.2.2嵌入式系统软件组成举例4
1.3嵌入式微处理器简介6
1.3.1嵌入式微处理器分类6
1.3.2主流嵌入式微处理器简介8
1.4嵌入式操作系统简介11
1.4.1嵌入式操作系统主要特点11
1.4.2主流嵌入式操作系统简介12
1.5ARM系列嵌入式微处理器简介16
1.5.1ARM系列处理器核的命名规则与性能16
1.5.2ARM指令集结构版本和变异19
1.6本章小结22
1.7习题23
第2章微处理器组成及程序员模型24
2.1S3C2440A微处理器概述24
2.2S3C2440A微处理器组成与引脚信号25
2.2.1S3C2440A微处理器组成25
2.2.2S3C2440A芯片封装及引脚编号与引脚
信号名29◆基于ARM的嵌入式系统原理及应用目录2.2.3S3C2440A特殊功能寄存器简介30
2.3ARM920T核31
2.3.1ARM920T简介31
2.3.2ARM920T指令系统特点31
2.3.3ARM920T功能模块32
2.4程序员模型34
2.4.1处理器操作状态34
2.4.2存储器格式和数据类型34
2.4.3处理器操作方式36
2.4.4寄存器37
2.4.5程序状态寄存器40
2.4.6异常42
2.4.7Reset46
2.5S3C2410A微处理器组成46
2.6本章小结47
2.7习题47
第3章ARM指令系统49
3.1ARM指令系统概述49
3.2ARM指令集50
3.2.1ARM指令集概述50
3.2.2ARM指令集指令的条件执行51
3.3ARM存储器访问指令52
3.3.1字、无符号字节装入存储指令52
3.3.2半字装入存储指令、带符号字节半字装入指令54
3.3.3块数据传送指令56
3.3.4单个数据交换指令60
3.4ARM数据处理指令61
3.4.1ARM数据处理指令概述61
3.4.2ARM数据处理指令程序举例69
3.5ARM分支指令71
3.5.1分支并且转换状态指令71
3.5.2分支、分支并且连接指令72
3.6ARM程序状态寄存器传送指令73
3.7ARM乘法指令75
3.7.1乘、乘累加指令75
3.7.2长乘、长乘累加指令76
3.8ARM软件中断指令77
3.9ARM协处理器指令78
3.9.1协处理器介绍78
3.9.2协处理器数据操作指令79
3.9.3协处理器数据传送指令80
3.9.4协处理器寄存器传送指令82
3.10Thumb指令集83
3.10.1Thumb指令集特点83
3.10.2移位并传送、加减、传送比较加减立即数指令85
3.10.3ALU操作指令86
3.10.4高寄存器组操作、分支并且转换状态指令86
3.10.5装入存储指令87
3.10.6装入地址、加偏移量到SP、压栈出栈、多寄存器装入存储
指令88
3.10.7条件分支、软件中断、无条件分支、长分支并且连接指令89
3.11本章小结90
3.12习题90
第4章ARM汇编语言特性与编程基础95
4.1ARM汇编语言特性95
4.1.1行格式、预定义名和内建变量95
4.1.2ARM伪指令与Thumb伪指令97
4.1.3符号与指示符101
4.1.4与代码有关的指示符105
4.1.5与数据定义有关的指示符107
4.1.6符号定义指示符114
4.1.7汇编控制指示符120
4.1.8报告指示符124
4.1.9表达式和操作符125
4.2ARM汇编语言编程基础128
4.2.1汇编语言和汇编器128
4.2.2调用子程序128
4.2.3条件执行129
4.2.4装入常数到寄存器130
4.2.5装入地址到寄存器133
4.2.6装入和存储多个寄存器指令138
4.2.7多路分支139
4.2.8宏定义、宏调用及宏替换举例140
4.3本章小结141
4.4习题141
第5章主存储器及Nand Flash存储器组成144
5.1S3C2440AS3C2410A存储器控制器144
5.1.1S3C2440A与存储器相关的特性144
5.1.2与存储器芯片连接的S3C2440A引脚信号含义及使用146
5.1.3S3C2440A存储器总线周期定时关系举例152
5.1.4S3C2440A存储器控制器特殊功能寄存器156
5.2S3C2440AS3C2410A存储器组成举例162
5.2.1使用Nor Flash芯片作为引导ROM162
5.2.2使用SDRAM芯片举例167
5.3S3C2410A存储器控制器与以太网控制器连接举例178
5.4S3C2410A存储器控制器初始化设置举例178
5.5S3C44B0X存储器组成举例181
5.5.1存储器控制器概述181
5.5.2存储器控制器选择大小端数据格式及数据总线宽度182
5.5.3存储器控制器特殊功能寄存器183
5.5.4存储器组成举例184
5.5.5存储器控制器初始化设置举例184
5.6K9F1208U0M Nand Flash芯片应用基础185
5.6.1两种引导模式185
5.6.2Nand Flash概述186
5.6.3K9F1208U0M Nand Flash芯片特点及结构186
5.6.4K9F1208U0M Nand Flash芯片命令集和状态寄存器191
5.6.5K9F1208U0M Nand Flash芯片操作举例192
5.6.6K9F1208U0M使用注意事项193
5.7S3C2410A Nand Flash存储器组成举例194
5.7.1S3C2410A Nand Flash控制器194
5.7.2S3C2410A Nand Flash控制器特殊功能寄存器196
5.7.3S3C2410A Nand Flash存储器组成举例198
5.7.4S3C2410A读Nand Flash程序举例198
5.8S3C2440AS3C44B0X Nand Flash存储器组成举例200
5.8.1S3C2440A Nand Flash控制器200
5.8.2S3C2440A Nand Flash存储器组成举例201
5.8.3S3C44B0X Nand Flash存储器组成举例202
5.9本章小结202
5.10习题202
第6章时钟与电源管理、DMAC及总线主设备优先权205
6.1功耗管理、时钟与电源管理概述205
6.1.1CMOS电路的功耗与功耗管理基础205
6.1.2S3C2440A时钟与电源管理概述207
6.1.3时钟与电源管理用到的S3C2440A引脚信号207
6.2S3C2440A时钟发生器208
6.2.1时钟发生器框图208
6.2.2时钟源的选择209
6.2.3锁相环210
6.2.4时钟控制逻辑211
6.3S3C2440A电源管理213
6.3.1电源管理模式的转换213
6.3.2电源管理模式214
6.3.3S3C2440A电源引脚217
6.4S3C2440A时钟与电源管理特殊功能寄存器218
6.5S3C2410AS3C44B0X时钟与电源管理222
6.5.1S3C2410A时钟与电源管理222
6.5.2UBoot对S3C2410A时钟与电源管理特殊功能寄存器初始设置
代码223
6.5.3S3C44B0X时钟与电源管理224
6.5.4S3C44B0X时钟与电源管理特殊功能寄存器设置程序举例225
6.6DMA基础225
6.6.1DMA含义225
6.6.2DMAC控制输入传输举例226
6.6.3总线主设备、从设备228
6.7S3C2440AS3C2410A DMA传输228
6.7.1DMA概述228
6.7.2存储器到外设DMA传输举例229
6.7.3DMA用到的S3C2440A引脚信号231
6.8S3C2440AS3C2410A DMA请求、有限状态机和协议231
6.8.1硬件DMA请求与软件DMA请求231
6.8.2用于DMA操作的有限状态机232
6.8.3外部DMA请求响应协议233
6.8.4UnitBurst传输、数据尺寸与自动重装235
6.8.5外部DMA请求响应协议传输举例236
6.9S3C2440AS3C2410A DMA特殊功能寄存器237
6.10S3C2410A DMA存储器到存储器传输测试举例241
6.11S3C44B0X DMA传输245
6.11.1DMA概述245
6.11.2ZDMABDMA操作246
6.11.3外部DMA请求响应协议247
6.11.4DMA传输模式249
6.11.5DMA请求源选择 250
6.12总线主设备优先权251
6.12.1S3C2440AS3C2410A总线主设备优先权251
6.12.2S3C44B0X总线主设备优先权251
6.13本章小结252
6.14习题252
第7章GPIO端口及中断控制器255
7.1S3C2440AS3C2410A GPIO端口及其他寄存器概述、引脚信号255
7.1.1GPIO端口及其他寄存器概述255
7.1.2与GPIO端口及其他寄存器相关的S3C2440AS3C2410A引脚
信号256
7.2S3C2440AS3C2410A GPIO端口控制258
7.3S3C2440AS3C2410A GPIO端口特殊功能寄存器259
7.3.1端口A~端口J寄存器组259
7.3.2其他寄存器267
7.4S3C2410A GPIO端口定义、设置、应用程序举例275
7.4.1GPOI端口特殊功能寄存器在程序中定义275
7.4.2GPIO端口初始设置举例277
7.4.3GPIO端口应用程序举例277
7.5S3C44B0X GPIO端口279
7.6S3C2440AS3C2410A与中断有关的寄存器、中断处理过程280
7.6.1与中断有关的寄存器280
7.6.2中断处理过程282
7.7S3C2440AS3C2410A中断控制器操作、中断源及中断优先权283
7.7.1中断控制器操作283
7.7.2中断源284
7.7.3中断优先权产生模块285
7.8S3C2440AS3C2410A中断控制器特殊功能寄存器287
7.9S3C2410A中断程序举例293
7.10S3C44B0X中断控制器300
7.10.1中断控制器概述及G组端口寄存器、外部中断控制登记
寄存器300
7.10.2中断控制器操作303
7.10.3中断源304
7.10.4中断优先权产生模块305
7.10.5用于IRQ的向量中断方式306
7.10.6向量与非向量中断方式程序举例306
7.10.7中断控制器特殊功能寄存器308
7.11本章小结315
7.12习题315
第8章脉宽调制定时器、实时时钟及看门狗定时器318
8.1脉宽调制定时器318
8.1.1S3C2440AS3C2410A脉宽调制定时器概述318
8.1.2S3C2440AS3C2410A脉宽调制定时器操作321
8.1.3S3C2440AS3C2410A脉宽调制定时器特殊功能寄存器326
8.1.4S3C2410A脉宽调制定时器应用举例328
8.1.5S3C44B0X脉宽调制定时器331
8.2实时时钟332
8.2.1S3C2440AS3C2410A实时时钟概述332
8.2.2S3C2440AS3C2410A实时时钟组成与操作332
8.2.3S3C2440AS3C2410A实时时钟特殊功能寄存器334
8.2.4S3C2410A实时时钟程序举例338
8.2.5S3C44B0X实时时钟340
8.3看门狗定时器340
8.3.1看门狗定时器概述340
8.3.2S3C2440AS3C2410A看门狗定时器操作341
8.3.3S3C2440AS3C2410A看门狗定时器特殊功能寄存器342
8.3.4S3C2410A看门狗定时器程序举例343
8.3.5S3C44B0X看门狗定时器346
8.4本章小结346
8.5习题347
第9章ADC与触摸屏接口、片外DAC连接举例349
9.1ADC与触摸屏接口基础知识349
9.1.1ADC基础知识349
9.1.2四线电阻式触摸屏接口基础知识350
9.2S3C2440AS3C2410A ADC与触摸屏接口概述352
9.2.1概述352
9.2.2主要特点353
9.2.3ADC与触摸屏接口用到的S3C2440AS3C2410A引脚信号353
9.3S3C2440AS3C2410A ADC与触摸屏接口操作353
9.3.1功能框图353
9.3.2触摸屏应用举例353
9.3.3功能描述355
9.4S3C2440AS3C2410A ADC与触摸屏接口特殊功能寄存器356
9.5S3C2410A ADC与触摸屏接口程序举例360
9.5.1ADC程序举例360
9.5.2ADC与触摸屏接口程序举例361
9.6S3C44B0X ADC与片外触摸屏控制器363
9.6.1S3C44B0X ADC概述363
9.6.2S3C44B0X ADC组成与操作364
9.6.3S3C44B0X ADC特殊功能寄存器366
9.6.4S3C44B0X ADC特殊功能寄存器使用举例367
9.6.5S3C44B0X与片外触摸屏控制器ADS7843连接举例368
9.7微处理器片外DAC连接举例372
9.7.1DAC硬件基础372
9.7.2S3C2410A与DAC芯片连接举例374
9.8本章小结374
9.9习题375
第10章微处理器片内串行传输模块376
10.1UART377
10.1.1串行异步通信基础377
10.1.2S3C2410A UART组成及操作380
10.1.3S3C2410A UART与RS232C接口连接举例383
10.1.4S3C2410A UART与红外收发器连接举例385
10.2IIC总线接口386
10.2.1IIC总线接口概述386
10.2.2S3C2410A IIC总线接口特点388
10.2.3S3C2410A IIC总线接口组成及操作方式中的功能关系388
10.2.4S3C2410A IIC总线接口4种操作方式392
10.3IIS总线接口392
10.3.1常用IIS总线接口概述392
10.3.2S3C2410A IIS总线接口概述393
10.3.3S3C2410A IIS总线接口组成和发送接收方式394
10.3.4S3C2410A IIS音频串行接口数据格式395
10.4SPI总线接口396
10.4.1常用SPI总线接口概述396
10.4.2S3C2410A SPI总线接口特点及引脚信号398
10.4.3S3C2410A SPI总线接口组成和操作399
10.4.4S3C2410A SPI传输格式400
10.5S3C44B0X SIO接口401
10.5.1S3C44B0X SIO概述401
10.5.2S3C44B0X SIO接口模块组成401
10.5.3S3C44B0X SIO通常方式操作402
10.5.4S3C44B0X SIO发送接收定时图402
10.6本章小结402
10.7习题403
第11章微处理器片内其他模块405
11.1MMCSDSDIO主控制器406
11.1.1MMCSDSDIO卡概述406
11.1.2S3C2410A MMCSDSDIO主控制器概述410
11.1.3S3C2410A MMCSDSDIO主控制器组成411
11.1.4MMCSD总线协议412
11.1.5S3C2410A MMCSD卡初始化及数据传输416
11.2LCD控制器417
11.2.1液晶显示基础知识417
11.2.2S3C2410A LCD控制器概述422
11.2.3S3C2410A LCD控制器特点422
11.2.4S3C2410A LCD控制器外部接口信号423
11.2.5S3C2410A LCD控制器组成423
11.3USB主控制器及设备控制器424
11.3.1USB基础424
11.3.2USB通信协议概述434
11.3.3USB总线枚举过程举例439
11.3.4S3C2410A USB主控制器440
11.3.5S3C2410A USB设备控制器440
11.4CAMERA接口443
11.4.1彩色电视制式及电视系统中传输的信号443
11.4.2ITUR BT.601建议简介445
11.4.3ITUR BT.656建议简介448
11.4.4OV9650彩色CAMERACHIP芯片简述450
11.4.5S3C2440A CAMERA接口453
11.4.6CAMERA接口与OV9650 CAMERACHIP连接举例455
11.5AC97控制器456
11.5.1AC97简介456
11.5.2AC97规范简介457
11.5.3AC97 Codec芯片UCB1400简介464
11.5.4S3C2440A AC97控制器465
11.5.5AC97控制器与AC97 Codec连接举例468
11.6本章小结468
11.7习题469
附录AS3C2440A引脚编号与对应的引脚信号名471
附录BS3C2440A引脚信号名与对应功能描述汇总表474
附录C英汉名词术语对照汇总表480
参考文献488
|
內容試閱:
|
前言 Foreword基于ARM7、ARM9核的微处理器芯片目前仍然是市场上出货量最大的芯片,其主要原因是这些芯片中使用的技术已经经过市场上大量产品的验证。由于这些微处理器芯片在市场上广泛地使用,因此可以确保产品设计者能够获得广泛的技术支持,从而最大限度地减少开发过程中出现的问题并缩短产品上市时间。这些芯片出货量大的另外一个原因是嵌入式系统往往嵌入在机械设备中,基于成本考虑,对嵌入式微处理器的要求不是速度越快越好,而是够用就行。此外,基于ARM7、ARM9核的微处理器是学习更高档次嵌入式微处理器的基础和入门,国内也有大量的教学实验及开发平台。本书主要内容可以分为三部分。第1章描述了嵌入式系统组成,并对嵌入式微处理器、操作系统作了简介。第2~9章以S3C2440A、S3C2410A、S3C44B0X微处理器为例,系统、全面地描述微处理器的组成及程序员模型,ARM指令系统,汇编语言特性及编程基础,主存储器及Nand Flash存储器组成,时钟与电源管理、DMAC及总线主设备优先权,GPIO端口及中断控制器,脉宽调制定时器、实时时钟及看门狗定时器,ADC与触摸屏接口、片外DAC连接举例,包括它们的特殊功能寄存器含义及编程举例。第10、11章描述S3C2440A、S3C2410A、S3C44B0X片内UART(通用异步收发器)、IIC(内部集成电路总线)、IIS(集成电路内部声音总线)、SPI(串行外设接口)、SIO(串行输入输出)、MMCSDSDIO主控制器、LCD控制器、USB主控制器及设备控制器、CAMERA接口、AC97控制器,包括它们的组成和原理。建议在开设计算机组成原理或微机接口技术、C语言课程以后开设本课程。感谢本书编写、出版过程中给予我帮助的每一个人,尤其感谢李惠林女士,在稿件交付出版社前,承担了书稿的全部录入、校对、编排工作,并在统稿过程中提出了许多修改意见;感谢清华大学出版社袁勤勇主任在书名确定、稿件篇幅等方面给出的修改意见。在本书的编写过程中,除了书末列出的参考文献外,还参考和引用了一些公司的公开技术资料、随机资料和程序,如ARM公司、三星公司和国内的博创公司。在此向这些文献的撰写者表示感谢。另外,书中一些名词术语在不引起读者误读的情况下,没有强行统一,因为在不同的参考文献中,例如标准(规范、协议)、微处理器厂商、配套芯片厂商的资料中,同一个名词术语可能会有不同的写法。虽然作者试图通过多次核对参考文献的内容,来减少书中可能会出现的错误或作者自己理解、描述不准确的地方,但由于作者水平限制,书中难免存在疏漏和不当之处,敬请广大专家和读者批评指正。联系邮箱: cslyw@imu.edu.cn。
刘彦文2016年7月◆基于ARM的嵌入式系统原理及应用
第5章chapter5
主存储器及Nand Flash存储器组成本章主要内容如下:(1) 主存储器组成,包括: S3C2440AS3C2410A存储器控制器,描述了其特性、引脚信号、总线周期、特殊功能寄存器; S3C2440AS3C2410A存储器组成举例,描述了使用Nor Flash芯片作为引导ROM的一个具体实例,使用SDRAM芯片的一个具体实例; S3C2410A存储器控制器的另外用法与以太网控制器连接举例; S3C2410A存储器控制器初始化举例; S3C44B0X存储器组成举例。(2) Nand Flash存储器组成,包括: K9F1208U0M Nand Flash芯片应用基础; S3C2410A Nand Flash存储器组成举例,包括Nand Flash控制器及与芯片的连接、读Nand Flash程序举例; S3C2440AS3C44B0X Nand Flash存储器组成举例。5.1S3C2440AS3C2410A存储器控制器嵌入式微处理器芯片S3C2440AS3C2410A内部集成的主存储器控制器(简称存储器控制器),有着相同的特性。以下对S3C2440A存储器控制器的描述,同样适用于S3C2410A。本书中,主存储器的概念与过去习惯称为内存的概念相同,以下在不引起误读的情况下,简称为存储器。存储器由微处理器片内的存储器控制器、总线控制器及片外的存储器芯片组成。5.1.1S3C2440A与存储器相关的特性S3C2440A存储器控制器提供了访问存储器的控制信号,另外还提供了与存储器相关的地址总线、数据总线等总线控制器信号。◆基于ARM的嵌入式系统原理及应用第◆5章主存储器及Nand Flash存储器组成S3C2440A与存储器相关的特性如下: 存储器采用字节编址的方法,即存储器中每个单元为一字节(8位二进制数),每个单元有一个单独的物理地址; 通过软件选择,系统支持大小端数据存储格式; 全部可寻址空间为1GB,分为8个bank(体),每个bank为128MB; 使用nGCS0~nGCS7作为对应的各bank选择信号; 系统支持存储器与IO端口统一寻址,SFR Area(特殊功能寄存器区)为IO端口寻址空间; bank0~bank7中每个bank的数据总线宽度可单独编程,bank0通过编程可以设置为1632位数据总线,bank1~bank7通过编程可以分别设置成81632位数据总线; 每个bank的存储器访问周期可编程; 支持各bank产生等待信号(nWAIT),用来扩展总线周期; bank0~bank5可以使用ROM(含EEPROM、Nor Flash等)和SRAM,bank6和bank7可以使用ROMSRAMSDRAM; bank0~bank6开始地址固定; bank6的bank大小可编程,bank7开始地址和bank大小可编程; 对SDRAM,在POWER_OFF(S3C2410A为powerdown)模式,支持自己刷新(selfrefresh)模式; 支持使用Nor Flash或Nand Flash、EEPROM等作为引导ROM。S3C2440AS3C2410A Reset后存储空间如图51所示。图51S3C2440AS3C2410A Reset后存储空间图51中表示bank6和bank7实际安装的存储器容量可以各为2MB、4MB128MB。由于bank6的终止地址不同,bank7的起始地址也不同。要求bank6和bank7实际安装的容量相同,详见表51。表51bank6bank7起址和终址地址2MB4MB8MB16MB32MB64MB128MBbank6起址0x3000_00000x3000_00000x3000_00000x3000_00000x3000_00000x3000_00000x3000_0000终址0x301f_ffff0x303f_ffff0x307f_ffff0x30ff_ffff0x31ff_ffff0x33ff_ffff0x37ff_ffffbank7起址0x3020_00000x3040_00000x3080_00000x3100_00000x3200_00000x3400_00000x3800_0000终址0x303f_ffff0x307f_ffff0x30ff_ffff0x31ff_ffff0x33ff_ffff0x37ff_ffff0x3fff_ffff并不是要求必须同时安装bank6和bank7存储器芯片,也可以只安装bank6而不安装bank7存储器芯片。另外,各bank具体安装的存储器芯片容量可以小于等于128MB。图51中最上方的OM\[1:0\],表示在Reset期间,由于连接到S3C2440A的操作模式输入引脚OM\[1:0\]逻辑电平的不同,决定了使用Nand Flash作为引导ROM与否,以及在不使用Nand Flash作为引导ROM时,bank0数据总线的宽度或处于测试模式,详见表52。表52OM\[1:0\]的含义OM1(操作模式1)OM0(操作模式0)含义00使用Nand Flash作为引导ROM模式01bank0数据总线宽度为16位10bank0数据总线宽度为32位11测试模式对应于图51左半部,在不使用Nand Flash作为引导ROM时,需要使用bank0(nGCS0片选信号驱动)中安装的芯片作为引导ROM。由于在第一次访问引导ROM前必须先确定bank0数据总线的宽度,所以,bank0的数据总线宽度要求由Reset时的OM\[1:0\]引脚输入逻辑电平确定,而bank1~bank7各个bank的数据总线宽度可以通过对特殊功能寄存器编程确定。5.1.2与存储器芯片连接的S3C2440A引脚信号含义及使用〖*2〗1. 与存储器芯片连接的S3C2440A引脚信号S3C2440A片内存储器控制器一般可以与片外ROM(如Nor Flash)、SRAM和SDRAM芯片连接。S3C2440A与存储器相关的引脚信号一般可以分为两组: 一组是S3C2440A总线控制器引脚信号;另一组是S3C2440A存储器控制器引脚信号,分别见表53和表54。表53S3C2440A总线控制器引脚信号信号IO含义OM\[1:0\]I在S3C2440A的OM\[1:0\]引脚上连接上拉电阻或下拉电阻,Reset期间逻辑电平分别表示: 00: 使用Nand Flash引导;01: bank0数据总线16位;10: bank0数据总线32位;11: 测试模式ADDR\[26:0\]OADDR\[26:0\](地址总线),输出对应bank的存储器地址DATA\[31:0\]IODATA\[31:0\](数据总线),在存储器读期间输入数据,在存储器写期间输出数据。实际使用的总线宽度在81632位中可选择nGCS\[7:0\]OnGCS\[7:0\](General Chip Select,通用片选),当存储器地址是在一个bank地址范围内时,ADDR\[29:27\]对应的nGCS\[n\]被激活。访问周期数和bank大小可编程nWEOnWE(写允许)信号有效,指示当前总线周期是写周期nOEOnOE(输出允许)信号有效,指示当前总线周期是读周期(存储器输出允许)nXBREQInXBREQ(Bus Hold Request,总线保持请求)信号有效,表示允许另外的总线主设备请求控制局部总线,响应信号为nXBACKnXBACKOnXBACK(Bus Hold Acknowledge,总线保持响应)信号有效,指示S3C2440A已经出让了局部总线控制权给另外的总线主设备nWAITInWAIT信号有效,表示请求扩展当前总线周期。只要nWAIT为低电平,继续扩展当前总线周期。如果系统中不使用nWAIT信号,则该引脚接上拉电阻注: 表中OM\[1:0\]、nXBREQ、nXBACK并未与存储器芯片连接,仅仅是总线控制器引脚信号。表53中地址总线为ADDR\[26:0\],而图51中地址总线为ADDR\[29:0\],其中ADDR\[29:27\]参与译码,产生nGCS\[7:0\]或nSCS\[1:0\]信号。表54S3C2440A SDRAMSRAMROM存储器控制器引脚信号信号IO含义nSRASOSDRAM行地址(Row Address)选通nSCASOSDRAM列地址(Column Address)选通nSCS\[1:0\]OSDRAM片选(Chip Select)DQM\[3:0\]OSDRAM数据屏蔽(Data Mask)SCLK\[1:0\]OSDRAM时钟SCKEOSDRAM时钟允许nBE\[3:0\]O高字节低字节允许(在16bit SRAM情况下)nWBE\[3:0\]O写字节允许(ROM)如果bank6、bank7连接SDRAM芯片,则片选信号使用nSCS0、nSCS1。如果bank6、bank7连接ROMSRAM芯片,则片选信号使用nGCS6、nGCS7。2. 地址总线与存储器芯片地址引脚的连接地址总线中的ADDR\[29:27\]参与译码产生nGCS\[7:0\]或nSCS\[1:0\]信号,某一时刻只有一个信号有效。而地址总线中的ADDR\[26:0\]应该与各bank的存储器芯片对应引脚连接。但ADDR1和ADDR0在某个bank实际使用的数据总线宽度不同的情况下,可能不连接到存储器芯片;并且地址总线中的ADDR\[26:0\]与存储器芯片地址引脚的连接也可能不是一一对应关系,详见表55。在本章,地址总线中的ADDR\[26:0\]有时也简单写作A\[26:0\]。表55地址总线与存储器芯片引脚连接方法存储器芯片地址引脚某bank数据总线宽度为8位时连接的地址总线某bank数据总线宽度为16位时连接的地址总线某bank数据总线宽度为32位时连接的地址总线A0ADDR0ADDR1ADDR2A1ADDR1ADDR2ADDR3A2ADDR2ADDR3ADDR4A3ADDR3ADDR4ADDR5表55中,当某bank数据总线宽度为8位时,地址总线中的ADDR0与芯片地址引脚A0连接,ADDR1与A1连接,依此类推,一一对应连接。表55中,当某bank数据总线宽度为16位时,地址总线中的ADDR0不与存储器芯片连接,而用ADDR1与芯片地址引脚A0连接;当某bank数据总线宽度为32位时,地址总线中的ADDR\[1:0\]不与存储器芯片连接,而用ADDR2与芯片地址引脚A0连接。S3C2440A存储器是按字节编址的,也就是说存储器的一个存储单元,保存的内容为1字节;每个存储单元有一个唯一、确定的地址。为了与81632位数据总线相适应,地址总线中的ADDR1、ADDR0才有表55中连接或不连接的几种情况,其含义与80x86中存储器数据总线宽度不同时,存储器分体、地址总线最低两位使用或不使用的含义是一样的。3. 存储器数据总线宽度的确定对不同的应用场合或设备,使用的嵌入式系统数据总线的宽度可能有不同的要求。S3C2440A支持81632位数据总线宽度。同一个bank的数据总线宽度必须相同,不同bank的数据总线宽度可以不同,并且有以下特征: bank0在不使用Nand Flash时,数据总线宽度可以选择16位或32位,由OM\[1:0\]输入引脚在Reset时的逻辑电平决定; bank1~bank7中的每个bank的数据总线宽度可以分别设置,可选择8位、16位或32位中的一种,设置方法在特殊功能寄存器中讲述。4. bank0与ROM芯片的连接在不使用Nand Flash作为引导ROM时,参考图51左半部分,使用bank0作为引导ROM区,可以连接Nor Flash或EEPROM芯片。由于Nor Flash片内带有SRAM接口,因此可以直接与存储器控制器连接。另外,Nor Flash芯片价格比EEPROM低,所以通常使用Nor Flash芯片较多。加电之前,bank0数据总线宽度必须通过OM\[1:0\]提前设置好,只能设置为16位或32位。另外,使用信号nGCS0作为bank0的选择信号。对于图52和图53,应注意地址总线、数据总线与芯片引脚连接方法的不同;区别什么情况下使用nWE或nWBE\[3:0\]信号。图52bank0使用16位数据总线时与ROM芯片的连接图53bank0使用32位数据总线时与ROM芯片的连接
1 bank0使用16位数据总线与ROM芯片的连接图52表示bank0与2片ROM、数据总线为16位时的连接。ROM指Nor Flash或EEPROM。(2) bank0使用32位数据总线与ROM芯片的连接图53表示bank0与4片ROM、数据总线为32位时的连接。5. bank1~bank7与SRAM芯片的连接图54(a)给出了使用一片SRAM、16位数据总线,连接到bank1的一个例子。图54(b)给出了使用两片SRAM、32位数据总线,连接到bank1的一个例子。图54bank1使用1632位数据总线时与SRAM芯片的连接虽然bank0~bank7都允许连接SRAM,但bank0实际很少连接SRAM,而bank6和bank7常常与SDRAM连接。图54中,nBE3、nBE2、nBE1和nBE0分别连接到芯片的nUB和nLB引脚,表示选择高字节(nUB)或低字节(nLB)。这是由于在32位数据总线时,一次总线访问周期可以控制只传送1字节、半字(2字节)或字(4字节)数据的原因。6. bank6或bank7与SDRAM芯片的连接在SDRAM芯片内部,通常分为2个体或4个体,也用Bank表示,但与存储器的bank不同。SDRAM芯片内部的体,一般称为片内bank。另外,SDRAM地址还分行地址和列地址,行地址的长度(位数)可以与列地址的长度(位数)相等(对称地址)或不等(非对称地址)。S3C2440A特殊功能寄存器中允许设置列地址长度,详见5.1.4节中BANKCON6和BANKCON7寄存器含义。从S3C2440A送出的地址,高位部分连接到SDRAM芯片的片内Bank选择引脚BA,具体连接方法见表56及图55和图56。1 SDRAM片内bank选择引脚与地址总线的连接表56给出了当S3C2440A存储器bank实际大小不同、数据总线宽度不同、芯片容量不同、芯片内部构成和使用的芯片数量不同时,片内Bank选择引脚BA与高位地址总线连接的例子。表56中第一行的含义为: 当S3C2440A的bank6使用SDRAM,bank实际大小为8MB时,并且该bank总线宽度为16位,使用的芯片容量为64Mb,芯片内部为1M16位4bank,只用一片,那么地址总线ADDR\[22:21\]与芯片的片内bank选择引脚表56芯片内bank选择引脚BA与高位地址总线的连接存储器bank实际大小存储器bank数据总线宽度芯片容量芯片内部构成使用的片数芯片内bank选择引脚BA使用的地址总线8MB16位64Mb(1M16位4bank)1片ADDR\[22:21\]16MB32位64Mb(1M16位4bank)2片ADDR\[23:22\]32MB32位16位32位8位16位64Mb128Mb256Mb(4M8位2bank)4片(4M8位4bank)2片(2M16位4bank)2片(8M8位4bank)1片(4M16位4bank)1片ADDR\[24\]ADDR\[24:23\]64MB32位16位32位8位128Mb256Mb512Mb(4M8位4bank)4片(8M8位4bank)2片(4M16位4bank)2片(16M8位4bank)1片ADDR\[25:24\]128MB32位16位32位256Mb512Mb(8M8位4bank)4片(16M8位4bank)2片(8M16位4bank)2片ADDR\[26:25\]BA1、BA0连接。具体连接如图55所示。图55bank6使用16位数据总线时与SDRAM芯片的连接表56中第2行的含义解释方法同上,连接如图56所示。图56bank6使用32位数据总线时与SDRAM芯片的连接另外,也可以通过计算,直接算出哪几条高位地址总线应该和芯片的bank选择引脚连接。例如,存储器bank实际大小为32MB,32MB寻址空间使用的地址总线为ADDR\[24:0\],如果存储器芯片片内有2个bank,则bank选择只使用1位地址总线,即最高位ADDR\[24\];如果存储器芯片片内有4个bank,则bank选择使用最高2位地址总线ADDR\[24:23\],与芯片的bank选择引脚连接。读者使用这种方法可以对表56中各行进行验证。(2) bank6使用16位数据总线与SDRAM芯片的连接图55中存储器bank实际大小为8MB,使用1片,片内为1M16位4bank芯片。8MB需要23条地址总线,即ADDR\[22:0\],其中ADDR\[22:21\]与芯片BA1、BA0连接;由于数据总线为16位,所以地址总线ADDR\[0\]不与芯片连接;地址总线ADDR\[12:1\]分两次分别传送行地址信号和列地址信号。为简单起见,图55和图56中用A23~A1代替ADDR23~ADDR1。(3) bank6使用32位数据总线与SDRAM芯片的连接图56中存储器bank实际大小为16MB,由两片组成,每片为1M16位4bank。由于数据总线为32位,所以地址总线ADDR\[1:0\]不与芯片连接。图55中DQM1、DQM0用于表示对数据总线D15~D8、D7~D0屏蔽与否;图56中DQM3、DQM2、DQM1、DQM0用于表示对数据总线D31~D24、D23~D16、D15~D8、D7~D0屏蔽与否。在存储器访问周期读写1字节、半字(2字节)或字(4字节)数据时,这些信号的状态不同。5.1.3S3C2440A存储器总线周期定时关系举例S3C2440A存储器控制器有13个特殊功能寄存器,它们中的一些寄存器通过设置不同的值可以允许禁止nWAIT,也可以改变ROMSRAMSDRAM的总线读写周期的时间长度等。另外,虽然特殊功能寄存器不能控制nXBREQnXBACK的定时关系,但是也在这一节一并给予介绍。1. nXBREQnXBACK与其他信号之间的定时关系nXBREQ称为总线保持请求信号,低电平表示S3C2440A芯片外部其他的总线主设备请求控制局部总线,响应信号为nXBACK。nXBACK称为总线保持响应信号,低电平表示S3C2440A允许其他的总线主设备控制和占用局部总线,这时S3C2440A不对数据总线、地址总线和存储器控制器输出信号(SCKE、nGCS、nOE、nWE和nWBE)进行控制。S3C2440A与这些总线和信号之间处于高阻状态,与SCLK之间也处于高阻状态。当nXBREQ信号由低电平变为高电平时,表示S3C2440A片外其他总线主设备不再请求控制局部总线,经过一个CLK周期,响应信号nXBACK也变为高电平,S3C2440A恢复对数据总线、地址总线和存储器控制器输出信号的控制。图57给出了nXBREQnXBACK与其他信号之间的定时关系。图57nXBREQnXBACK与其他信号之间的定时关系2. nWAIT引脚信号对总线读写周期的影响在5.1.4节中,通过对 BWSCON寄存器中的WS7、WS6、、WS1设置不同的值,表示允许bank7、bank6、、bank1使用WAIT(等待)功能与否。换句话说,除bank0外,其他各bank,如果存储器芯片工作速度比总线读写周期规定的时间所要求的速度慢时,对应bank存储器应该发出nWAIT信号到S3C2440A,S3C2440A在规定的存取周期(Tacc)前一个周期结束处,检测nWAIT信号,如果为低电平,则将相应信号扩展一个HCLK时长,然后继续检测nWAIT,直到这个信号变为高电平,则不再扩展相应信号。如图58所示,存取周期Tacc=4,在第3个存取周期结束处,S3C2440A采样nWAIT引脚信号,如果为低电平,则扩展相应信号。图58S3C2440A外部nWAIT信号对总线读周期的影响(Tacc=4)图58为总线读周期。nWAIT对总线写周期的影响与图58相似,不再画出。
|
|