第1部分 M·CORE微控制器的结构及原理 1
第1章 微控制器及其应用技术概述 1
1.1微控制器的特点 1
目录 1
1.2微控制器技术的发展 2
1.3M·CORE系列微控制器 4
1.3.1MMC2107的特点及组成 4
1.3.2MMC2107的引脚描述 7
1.3.3MMC2107的系统存储器地址映射 10
2.1.1M·CORE处理器的微结构 12
第2章 M·CORE M210中央处理单元(CPU) 12
2.1M·CORE处理器综述 12
2.1.2M·CORE处理器的编程模型 14
2.1.3M·CORE的数据格式 15
2.1.4M·CORE处理器的寄存器 16
2.2M·CORE处理器指令系统简述 20
2.2.1指令类型和寻址方式 20
2.2.2指令系统一览表 23
2.3.1异常响应过程及从异常返回 26
2.3M·CORE处理器的异常处理 26
2.3.2异常向量 27
2.3.3异常的优先级 28
2.3.4异常类型 29
第3章 芯片配置模块 33
3.1芯片配置模块的作用及MCU操作模式 33
3.1.1芯片配置模块的作用 33
3.1.2操作模式 33
3.2.1复位配置与复位配置采样 35
3.2复位配置 35
3.2.2配置采样电路 36
3.3芯片配置模块的寄存器及其功能描述 36
3.3.1芯片配置寄存器(CCR) 36
3.3.2复位配置寄存器(RCON) 38
3.3.3芯片标识寄存器(CIR) 39
第4章 复位控制模块和看门狗定时器 41
4.1复位控制模块 41
4.1.1复位控制器和复位源 41
4.1.2复位控制器的寄存器 41
4.1.3复位控制器的功能描述 43
4.2.1看门狗定时器的作用及结构框图 45
4.2看门狗定时器 45
4.2.2看门狗定时器的寄存器及其功能描述 46
第5章 时钟模块 49
5.1时钟模块框图及功能概述 49
5.1.1引脚信号 49
5.1.2系统时钟模式 50
5.1.3系统时钟模式的选择 50
5.2PLL频率合成器的操作原理 51
5.2.3增频因子分频器(MFD) 52
5.2.1相位和频率检测器(PFD) 52
5.2.2充电泵、滤波器和压控振荡器 52
5.3低功耗方式 53
5.3.1低功耗指令 53
5.3.2Wait和Doze方式 53
5.3.3Stop方式 54
5.3.4PLL的Stop方式 54
5.4有关寄存器 54
5.4.1合成器控制寄存器(SYNCR) 54
5.4.2合成器状态寄存器(SYNSR) 56
5.5系统时钟的模式与系统时钟的生成 58
5.6PLL锁定检测 58
5.6.1锁定检测过程 59
5.6.2PLL的失锁状况 59
5.6.3PLL失锁的复位 60
5.7丢失时钟的检测 60
5.7.1替代时钟 60
5.7.2丢失时钟的复位 61
5.8复位期间的时钟 61
第6章 中断控制模块 62
6.1中断源表 63
6.2寄存器及其功能描述 63
6.2.1强制中断寄存器(IFRH和IFRL) 63
6.2.2中断优先级选择及优先级选择寄存器 64
6.2.3中断挂起寄存器(IPR) 65
6.2.4快速中断请求和正常中断请求有关的寄存器 65
6.3功能说明 68
6.3.1快速和正常中断请求 68
6.3.2自动向量中断和向量中断 68
6.3.4中断的配置 69
6.3.3低功耗模式时中断控制器的操作 69
第7章 端口模块与边沿端口模块 71
7.1端口模块 71
7.1.1端口引脚分配 71
7.1.2I/O端口寄存器一览表 72
7.1.3端口模块的寄存器及功能 73
7.2边沿端口模块 75
7.2.1边沿端口模块的框图和概述 75
7.1.4端口数字I/O时序 75
7.2.2边沿端口模块的寄存器和功能描述 76
7.2.3低功耗模式下边沿端口模块的操作情况 78
第8章 外部总线接口及片选模块 80
8.1外总线接口(EBI) 80
8.1.1EBI的信号 80
8.1.2EBI的数据传送 81
8.1.3EBI数据传送时序 82
8.1.4EBI的仿真支持 84
8.2.2片选通道控制寄存器(CSCR0~CSCR3) 86
8.2.1片选通道的组成框图 86
8.2片选模块 86
8.2.3片选逻辑功能说明 88
第9章 可编程中断定时器模块 91
9.1可编程中断定时器模块概述 91
9.2PIT的寄存器及功能描述 92
9.3PIT功能描述 94
第10章 定时器模块 96
10.1定时器模块的组成结构 96
10.1.3TIM寄存器一览表 97
10.1.2TIM模块的引脚 97
10.1.1定时器模块的组成框图 97
10.1.4定时器通道的输入捕获和输出比较功能选择 98
10.2定时器计数器和预分频器 99
10.2.1定时器计数器 99
10.2.2预分频器 100
10.3输入捕获功能 101
10.3.1输入捕获通道的结构框图 101
10.3.2输入捕获通道的功能及有关的寄存器 102
10.4.1输出比较通道的结构框图 104
10.4.2输出比较通道的功能及有关的寄存器 104
10.4输出比较功能 104
10.5脉冲累加器 108
10.5.1脉冲累加器的结构框图 108
10.5.2脉冲累加器的工作原理及寄存器描述 108
10.6定时器模块的通用I/O端口 110
10.7与TIM模块整体控制有关的寄存器 111
10.8低功耗操作模式 113
11.1.2SCI寄存器列表 114
11.1.1SCI引脚 114
11.1SCI的结构及基本传送规则 114
第11章 串行通信接口(SCI) 114
11.1.3数据传送格式 115
11.1.4波特率的发生 116
11.1.5接收数据采样 116
11.1.6波特率容限 118
11.2发送器及其有关寄存器的功能 119
11.2.1发送器框图 119
11.2.2发送有关的寄存器 120
11.2.3发送过程及发送状态 123
11.3.2接收有关的寄存器 125
11.3.1接收器框图 125
11.3接收器及其有关寄存器的功能 125
11.3.3接收过程及接收状态 126
11.3.4唤醒功能 128
11.4其它功能 130
11.4.1通用I/O端口引脚及引脚属性 130
11.4.2单线操作和环路操作 131
11.4.3SCI的低功耗方式 133
第12章 串行外围接口(SPI)模块 134
12.1SPI的组成结构及互连 134
12.1.1SPI的寄存器 135
12.1.2SPI的引脚配置及功能 137
12.2SPI功能描述 140
12.2.1一次传送过程 140
12.2.2SPI传送格式及时序 141
12.2.3两种SPI错误条件 143
12.2.4SPI的低功耗方式 144
第13章 队列式A/D转换器(QADC) 146
13.1QADC引脚功能及模拟通道 146
13.1.1QADC引脚功能 147
13.1.2外部多路与非多路操作及模拟通道分配 148
13.2.1转换周期的时间 151
13.2模拟子系统 151
13.2.2DAC阵列、比较器和SAR 152
13.3数字控制子系统 152
13.3.1队列的设定 153
13.3.2队列的优先权及执行序 154
13.3.3单扫描模式 154
13.3.4连续扫描方式 157
13.3.5QADC的时钟发生器和周期/间隔定时器 159
13.3.6转换命令字表和结果字表 160
13.4QADC的寄存器 161
13.4.1QADC寄存器的地址映射 162
13.4.2QADC模块配置寄存器(QADCMCR) 162
13.4.3QADC通用数字端口有关的寄存器 163
13.4.4QADC的控制寄存器 164
13.4.5QADC的状态寄存器 167
13.4.6转换命令字(CCW) 170
13.4.7结果寄存器 171
13.5QADC的低功耗模式与Debug模式 171
13.5.1低功耗模式 171
13.5.2Debug模式 172
14.2MMC2107片内SRAM 173
14.2MMC2107片内FLASH 173
14.2.1MMC2107片内FLASH的结构 173
第14章 MMC2107片内存储器 173
14.2.2CMFR模块地址映像和寄存器定义 174
14.2.3CMFR操作功能描述 179
15.1异步串行接口的互连方法 189
15.1.2通过RS—232C接口互连 189
15.1.1直接互连 189
第15章 异步串行接口的互连及应用举例 189
第2部分 嵌入式系统常用外围及硬件设计 189
15.1.3通过RS—422(RS—485)接口互连 192
15.2异步串行传送中常用的芯片及电路 192
15.2.1RS—232C电平转换芯片 192
15.2.2RS—422及RS—485电平转换芯片 196
第16章 同步串行总线及应用举例 199
16.1SPI总线及应用举例 199
16.1.1具有SPI接口的串行EEPROM X25097 199
16.1.2具有SPI接口的A/D转换器MAX186 204
16.1.3由SPI连接的多机系统 206
16.2MICROWIRE/PLUS总线及其操作方法 208
16.2.1MICROWIRE/PLUS接口的组成 208
16.2.2MICROWIRE/PLUS接口的操作 208
16.2.3MICROWIRE/PLUS接口的传送时序 210
16.3I2C总线的工作原理 210
16.3.1I2C总线的接口及数据传送 210
16.3.2时钟同步及总线仲裁 213
16.3.3寻址方法及地址字节 215
17.1.1液晶显示原理 219
17.1液晶显示系统概述 219
第17章 液晶显示模块及液晶控制器 219
17.1.2液晶显示器的驱动与控制接口 221
17.1.3液晶显示模块 224
17.1.4基于S1D13305的液晶显示系统 226
17.2S1D13305 LCD控制器的接口与时序 227
17.2.1S1D13305 LCD控制器的引脚 227
17.2.2S1D13305 LCD控制器的接口 229
17.2.3访问时序 232
17.2.4微处理器访问的同步性 235
17.3命令集 237
17.3.1命令集总表 238
17.3.2系统控制类命令及相应控制功能 238
17.3.3显示控制类命令 245
17.3.4画图控制类命令和存储器控制类命令 253
17.4字符发生器 255
17.4.1内部CG ROM、外CG ROM和外CG RAM 255
17.4.2字符发生器的空间容量 257
17.4.3字符发生器访问地址的形式 257
17.5.1显示扫描与显示存储器 259
17.5显示控制功能 259
17.5.2光标控制 263
17.6应用说明 265
17.6.1初始化参数和初始化过程 265
17.6.2显示模式设置举例 269
17.6.3显示技巧举例 272
17.6.416×16点阵图形显示 273
17.6.5显示屏驱动程序设计 274
第18章 触摸屏及触摸屏控制器 282
18.1触摸屏的分类及原理 282
18.1.1触摸屏的分类 282
18.1.2电阻式触摸屏的触摸转换原理 284
18.2.1触摸屏控制器ADS7846的功能概述 285
18.2电阻式触摸屏控制器 285
18.2.2ADS7846的测量原理 287
18.2.3ADS7846的数字接口 292
18.2.4ADS7846使用注意事项 297
18.2.5ADS7846应用举例及触摸屏控制程序设计 299
19.1存储器类型的选择 305
19.1.1存储器类型选择时应考虑的主要因素 305
第19章 存储器接口设计 305
19.1.2常用存储器类型 306
19.2EBI存储扩展接口设计 308
19.2.1K4S560832A芯片简介 308
19.2.2MMC2107微控制器SDRAM接口设计 316
19.3仓储式存储器扩展接口设计 320
19.3.1K9F1208U0M芯片简介 320
19.3.2Flash存储接口设计 328
19.4串行存储器接口设计 336
19.4.1AT25010芯片简介 336
19.4.3MMC2107对AT25010的访问 337
19.4.2MMC2107与AT25010的连接 337
第3部分 嵌入式系统的开发环境与软件开发 340
第20章 M·CORE软件开发与开发工具 340
20.1嵌入式系统软件开发 340
20.2嵌入式系统开发工具需求 341
20.3M·CORE系统开发工具 342
20.3.1M·CORE系统开发工具 343
20.3.2M·CORE的ABI 345
20.3.3M·CORE软件开发过程与开发工具的结合 345
21.1.1EVB2107评估板的组成与结构 347
21.1EVB2107评估板 347
第21章 开发板及EBDI 347
21.1.2EVB2107评估板存储空间映像 348
21.1.3EVB2107评估板开关设置 349
21.1.4片选CS1#仿真 350
21.1.5EVB2107评估板用户扩展区域和用户扩展连接器 351
21.1.6EVB2107自检 352
21.1.7EVB2107评估板软件环境 353
21.2EBDI接口 353
21.2.1EBDI的特点 353
21.2.4EBDI的连接 354
21.2.2EBDI配套设备 354
21.2.3EBDI指示灯 354
21.2.5引脚定义和信号说明 355
21.2.6EBDI自检 356
第22章 M·CORE的常用工具软件 357
22.1Pioobug监视器的用法 357
22.1.1Picobug监视器命令集 357
22.1.2Picobug监视器命令使用举例 358
22.1.3S记录文件格式 360
22.2SysDS下载器的用法 362
22.3GNU开发工具包的组成及使用 364
22.3.1GNU汇编器和预汇编器 365
22.3.2GNU C/C++编译器和C预编译器 367
22.3.3GNU连接器 368
22.3.4GNU源程序级调试工具(GDB) 368
22.3.5GNU二进制工具程序 371
22.3.6GNU函数库 377
22.3.7GNU开发包使用 377
23.1CodeWarrior IDE的特点与组成 381
23.1.1CodeWarrior IDE的特点 381
第23章 CodeWarrior集成开发环境IDE 381
23.1.2CodeWarrior IDE组成 382
23.2CodeWarrior IDE的使用 384
23.2.1建立CodeWarrior IDE工程文件 384
23.2.2修改工程文件及源程序 386
23.2.3生成可执行代码 387
23.2.4目标代码调试 393
24.1.2基本数据类型 398
24.1.1寄存器引用 398
24.1MMC2107程序设计基础 398
第24章 MMC2107程序设计 398
24.1.3组合数据类型 399
24.1.4函数调用参数传递寄存器 399
24.2MMC2107汇编语言源程序语法 400
24.2.1汇编程序语法格式 400
24.2.2伪指令 402
24.2.3高级语言源程序中嵌入汇编语句 403
24.3MMC2107中断程序设计 403
24.3.1MMC2107中断控制资源 404
24.3.2MMC2107中断程序设计方法 405