ARM7_LPC2400_1_
- 格式:pdf
- 大小:656.09 KB
- 文档页数:13
目 录第1章嵌入式系统概述 (7)1.1 嵌入式系统 (7)1.1.1 现实中的嵌入式系统 (7)1.1.2 嵌入式系统的定义特点 (7)1.1.3 嵌入式系统的未来 (8)1.2 嵌入式处理器 (9)1.2.1 简介 (9)1.2.2 分类 (9)1.3 嵌入式操作系统 (11)1.3.1 简介 (11)1.3.2 基本概念 (12)1.3.3 使用实时操作系统的必要性 (14)1.3.4 实时操作系统的优缺点 (15)1.3.5 常见的嵌入式操作系统 (15)1.4 思考与练习 (17)第2章 ARM7体系结构 (18)2.1 ARM简介 (18)2.1.1 RISC结构特性 (18)2.1.2 常用ARM处理器系列 (19)2.2 ARM7TDMI (21)2.2.1 简介 (21)2.2.2 存储器的字与半字 (21)2.2.3 三级流水线 (22)2.3 ARM的模块、内核和功能框图 (23)2.4 ARM处理器状态 (26)2.5 ARM处理器模式 (27)2.6 ARM内部寄存器 (28)状态下的寄存器 (28)2.6.1 ARM2.6.2 Thumb状态下的寄存器 (33)2.7 当前程序状态寄存器 (36)2.7.1 条件代码标志 (36)2.7.2 控制标志位 (36)2.7.3 保留位 (38)2.8 ARM体系的异常、中断及其向量表 (38)2.8.1 异常入口/出口汇总 (38)2.8.2 异常向量表 (39)2.8.3 异常优先级 (40)2.8.4 异常中断的进入与退出 (40)2.8.5 复位异常 (41)2.8.6 IRQ中断请求异常 (41)2.8.7 FIQ快速中断请求异常 (42)2.8.8 未定义的指令异常 (43)2.8.9 中止异常 (43)2.8.10 SWI软件中断异常 (44)2.8.11 中断延迟 (44)2.9 ARM7体系的存储系统 (45)2.9.1 地址空间 (45)2.9.2 存储器格式 (46)2.9.3 非对齐的存储器访问 (47)2.10 思考与练习 (48)第3章 ARM7TDMI(-S)指令系统 (49)3.1 ARM处理器寻址方式 (49)3.2 指令集介绍 (52)3.2.1 ARM指令集 (53)3.2.2 Thumb指令集 (74)3.3 思考与练习 (79)第4章 LPC2400系列ARM硬件体系结构 (81)4.1 LPC2400系列ARM简介 (81)4.1.1 概述 (81)4.1.2 器件信息 (81)4.1.3 特性 (81)4.1.4 结构 (83)4.2 引脚描述 (88)4.2.1 概述 (88)4.2.2 LPC2400系列ARM管脚封装 (89)4.2.3 LPC2458管脚配置信息 (89)4.2.4 LPC2460/68管脚配置信息 (106)4.2.5 LPC2470/78管脚配置信息 (126)4.2.6 LPC2460/70引导控制 (148)4.3 系统控制模块 (150)4.3.1 系统控制模块功能汇总 (150)4.3.2 寄存器描述 (150)4.3.3 复位 (150)4.3.4 其它系统控制和状态标志 (154)4.3.5 代码安全 & 调试——代码安全保护 (155)4.4 时钟系统 (157)4.4.1 时钟系统概述 (157)4.4.2 寄存器描述 (158)4.4.3 振荡器 (159)4.4.4 时钟源相关 (161)4.4.5 PLL的使用 (162)4.4.6 时钟分频器 (173)4.5 功率控制 (176)4.5.1 空闲模式 (176)4.5.2 睡眠模式 (177)4.5.3 掉电模式 (177)4.5.4 三种节电模式的对比 (178)4.5.5 外设功率控制 (178)4.5.6 寄存器描述 (178)4.6 LPC2400系列ARM存储器寻址 (181)4.6.1 概述 (181)4.6.2 片内Flash程序存储器(LPC2458/68/78) (182)4.6.3 片内SRAM (182)4.6.4 存储器映射和外设寻址 (184)4.6.5 存储器映射 (186)4.6.6 APB外设地址 (189)4.6.7 存储器重映射及引导块(Boot Block) (191)4.6.8 存储器映射控制 (196)4.6.9 预取指中止和数据中止异常 (197)4.7 外部存储器控制器(EMC) (198)4.7.1 简介 (198)4.7.2 EMC结构 (202)4.7.3 静态EMC与外部存储器的接口 (204)4.7.4 SDRAM简介 (210)4.7.5 SDRAM驱动基础 (214)4.7.6 EMC寄存器 (224)4.8 存储器加速模块(MAM) (244)4.8.1 概述 (244)4.8.2 MAM工作原理 (244)4.8.3 MAM的操作模式 (247)4.8.4 MAM配置 (248)4.8.5 寄存器描述 (248)4.8.6 MAM使用注意事项 (249)4.8.7 MAM应用示例 (249)4.9 引脚连接模块 (250)4.9.1 寄存器描述 (250)4.9.2 应用示例 (265)4.10 向量中断控制器(VIC) (265)4.10.1 简介 (265)4.10.2 特性 (266)4.10.3 结构图 (266)4.10.4 中断源 (266)4.10.5 寄存器描述 (269)4.10.6 中断处理 (280)4.10.7 FIQ中断 (280)4.10.8 向量IRQ中断 (284)4.11 外部中断输入 (286)4.11.1 概述 (286)4.11.2 寄存器汇总 (287)4.11.3 中断设置 (289)4.12 GPDMA控制器 (292)4.12.1 LPC2400内部DMA控制器简介 (292)4.12.2 GPDMA控制器(GPDMA)特性 (295)4.12.3 GPDMA功能描述 (296)4.12.4 DMA系统连接 (300)4.12.5 GPDMA寄存器汇总 (300)4.12.6 寄存器描述 (301)4.12.7 地址的产生 (313)4.12.8 分散/聚集 (314)4.12.9 中断请求 (317)4.12.10 DMA中断设置 (318)4.12.11 GPDMA数据流 (318)4.12.12 流控制 (320)4.12.13 编程模型 (320)4.13 LPC2400系列ARM最小系统设计 (323)4.13.1 最小系统组成 (323)4.13.2 完整最小系统原理图 (329)第5章 LPC2400功能部件——基础篇 (331)5.1 通用输入/输出口(GPIO) (331)5.1.1 概述 (331)5.1.2 引脚描述 (332)5.1.3 寄存器描述 (332)5.1.4 GPIO使用注意事项 (346)5.1.5 GPIO中断设置 (349)5.1.6 GPIO应用示例 (350)5.2 通用异步收发器(UART) (355)5.2.1 概述 (355)5.2.2 特性 (355)5.2.3 引脚描述 (355)5.2.4 典型应用电路 (357)5.2.5 UART结构 (358)5.2.6 寄存器描述 (360)5.2.7 UART中断 (383)5.2.8 使用示例 (388)5.3 I2C接口 (396)5.3.1 特性 (396)5.3.2 引脚描述 (396)5.3.3 LPC2400系列ARM I2C功能概述 (397)5.3.4 I2C总线规范 (397)5.3.5 LPC2400系列ARM的I2C接口描述 (402)5.3.6 I2C操作模式 (403)5.3.7 寄存器描述 (413)5.3.8 常用I2C器件 (417)5.3.9 I2C接口中断 (420)5.3.10 I2C总线的一个例子 (421)5.3.11 应用软件包 (421)5.4 SPI控制器 (430)5.4.1 特性 (430)5.4.2 引脚描述 (430)5.4.3 引脚连接设置 (431)5.4.4 描述 (431)5.4.5 结构 (433)5.4.6 寄存器描述 (434)5.4.7 SPI接口中断 (438)5.4.8 操作模式 (438)5.5 SSP控制器 (442)列ARM SSP概述 (442)5.5.1 LPC24005.5.2 特性 (442)5.5.3 引脚描述 (442)5.5.4 总线描述 (444)5.5.5 寄存器描述 (450)5.5.6 SSP接口中断设置 (456)5.5.7 使用示例 (459)5.6 定时器/计数器 (465)5.6.1 概述 (465)5.6.2 特性 (465)5.6.3 引脚描述 (466)5.6.4 寄存器描述 (467)5.6.5 结构 (467)5.6.6 定时器中断设置 (477)5.6.7 定时器操作举例 (480)5.6.8 使用示例 (480)5.7 脉冲宽度调制器(PWM) (484)5.7.1 概述 (484)5.7.2 特性 (484)5.7.3 引脚描述 (485)5.7.4 结构 (486)5.7.5 寄存器描述 (488)5.7.6 基本操作 (497)5.7.7 PWM中断 (499)5.7.8 使用示例(以PWM1为例) (501)附录1LPC2400系列ARM中断源 (503)附录2书稿修订历史 (506)目录第5章 LPC2400功能部件——基础篇(续) (7)5.1 实时时钟 (7)5.1.1 概述 (7)5.1.2 特性 (7)5.1.3 结构 (7)5.1.4 RTC中断 (7)5.1.5 闰年计算 (9)5.1.6 寄存器描述 (9)5.1.7 混合寄存器组 (10)5.1.8 报警寄存器组 (14)5.1.9 完整时间寄存器 (15)5.1.10 时间计数器组 (17)5.1.11 RTC时钟的产生 (18)5.1.12 基本操作 (20)5.1.13 RTC使用注意事项 (21)5.1.14 RTC外部32KHz振荡器元件的选择 (21)5.1.15 蓄电池SRAM (22)5.1.16 RTC中断设置 (22)5.1.17 使用示例 (25)5.2 A/D转换器(ADC) (25)5.2.1 特性 (25)5.2.2 描述 (26)5.2.3 引脚描述 (26)5.2.4 寄存器描述 (26)5.2.5 基本操作 (31)5.2.6 ADC中断设置 (32)5.3 D/A转换器(DAC) (33)5.3.1 特性 (33)5.3.2 引脚描述 (33)5.3.3 寄存器描述 (34)5.3.4 操作 (34)5.3.5 应用举例 (34)5.4 看门狗定时器 (35)5.4.1 特性 (35)5.4.2 描述 (35)5.4.3 结构 (36)5.4.4 寄存器描述 (36)5.4.5 使用示例 (39)5.4.6 WDT中断 (40)5.5 Flash存储器编程——IAP (41)Boot (42)5.5.1 Flash5.5.2 ISP-在系统编程 (45)5.5.3 IAP-在应用编程 (53)第6章I2S控制器 (60)6.1 LPC2400系列ARM I2S 概述 (60)6.2 特性 (60)6.3 引脚描述 (61)6.4 总线描述 (61)6.5 寄存器描述 (62)6.6 中断、DMA请求、FIFO控制器 (68)6.7 I2S数据发送 (68)6.8 使用示例 (73)6.8.1 I2S初始化 (73)6.8.2 I2S发送数据 (74)6.8.3 I2S接收数据 (75)第7章 LCD控制器 (79)7.1 LCD控制器简介 (79)7.2 综述 (79)LCD控制器器件信息 (80)7.3 LPC247x7.3.1 特性 (80)7.3.2 支持的显示屏 (80)7.3.3 支持的色彩模式 (80)7.3.4 可编程的参数 (82)LCD控制器基础 (82)7.4 LPC247x7.4.1 液晶屏基础知识 (82)7.4.2 图象显示基础知识 (83)7.4.3 LCD控制器数据流 (88)7.4.4 LCD控制器相关功能模块 (89)7.4.5 LCD控制器时序 (112)LCD控制器寄存器 (117)7.5 LPC247x7.5.1 LCD控制器总体配置相关寄存器 (118)7.5.2 LCD控制器时序配置相关寄存器 (121)7.5.3 显示屏地址相关寄存器 (125)7.5.4 调色板寄存器(LCD_PAL) (127)7.5.5 光标控制相关寄存器 (128)7.5.6 LCD中断相关寄存器 (133)7.6 LCD控制器典型操作 (135)7.7 小结 (139)7.8 术语缩写说明 (139)第8章 SD/MMC卡及软件包 (141)8.1 SD/MMC卡的外部物理接口 (141)8.1.1 SD模式 (142)8.1.2 SPI模式 (143)8.1.3 卡信号时序 (144)8.2 SD/MMC卡的内部结构 (144)8.2.1 SD/MMC卡存储器阵列的划分 (145)8.2.2 SD/MMC卡相关寄存器 (146)8.3 SD/MMC卡SD总线协议简介 (158)8.3.1 SD总线协议简介 (158)8.3.2 SD/MMC卡的初始化 (161)8.3.3 读卡的方法 (163)8.3.4 写卡的方法 (163)8.4 ZLG/SD软件包总体设计思想 (164)8.4.1 设计目标 (164)8.4.2 软件包整体设计思想 (164)8.5 SD模式命令与应答函数的实现 (165)8.5.1 SD模式命令简介 (165)8.5.2 SD模式命令与应答函数的作用 (170)8.5.3 SD总线命令与应答时序 (170)8.5.4 SD总线命令与应答函数的实现 (172)8.5.5 SD总线命令使用例子 (177)8.6 SD/MMC卡的初始化的实现 (178)8.6.1 SD/MMC卡初始化流程图 (178)8.6.2 初始化硬件并给卡上电的实现 (181)8.6.3 获取卡信息的实现 (182)8.6.4 计算访问卡超时时间的实现 (185)8.6.5 设置卡相关参数的实现 (188)8.7 SD/MMC卡的读操作 (189)8.7.1 单块读的方法 (189)8.7.2 单块读的时序 (189)8.7.3 SD/MMC卡单块读函数的实现 (189)8.7.4 在LPC2400系列ARM上实现接收数据块的方法 (191)8.7.5 SD/MMC卡多块读函数的实现 (198)8.8 SD/MMC卡的写操作 (199)8.8.1 单块写的方法 (199)8.8.2 单块写的时序 (199)8.8.3 SD/MMC卡写函数实现流程图 (200)8.8.4 在LPC2400系列ARM实现向卡写数据的方法 (202)8.8.5 SD/MMC卡多块写函数的实现 (207)8.8.6 擦除操作 (209)8.9 ZLG/SD软件包的使用说明 (210)8.9.1 软件包的结构说明 (210)8.9.2 软件包的功能配置 (210)8.9.3 软件包的硬件配置 (211)8.9.4 软件包提供的API函数 (213)第9章 CAN控制器 (217)9.1 特性 (217)9.1.1 通用CAN特性 (217)9.1.2 CAN控制器特性 (217)9.1.3 接收滤波器特性 (217)9.2 管脚描述 (217)9.3 CAN控制器结构 (218)9.3.1 APB接口模块(AIB) (218)9.3.2 接口管理逻辑(IML) (218)9.3.3 发送缓冲器(TXB) (218)9.3.4 接收缓冲器(RXB) (219)9.3.5 错误管理逻辑(EML) (220)9.3.6 位时序逻辑(BTL) (220)9.3.7 位流处理器(BSP) (220)9.3.8 CAN控制器自测试 (220)9.4 CAN模块的存储器映射 (221)9.4.1 模式寄存器 (224)9.4.2 命令寄存器 (225)9.4.3 全局状态寄存器 (227)9.4.4 中断和捕获寄存器 (229)9.4.5 中断使能寄存器 (233)9.4.6 总线时序寄存器 (234)9.4.7 错误报警界限寄存器 (235)9.4.8 状态寄存器 (236)9.4.9 接收帧状态寄存器 (237)9.4.10 接收标识符寄存器 (238)9.4.11 接收数据寄存器A (239)9.4.12 接收数据寄存器B (239)9.4.13 发送帧信息寄存器 (239)9.4.14 发送标识符寄存器 (241)9.4.15 发送数据寄存器A (241)9.4.16 发送数据寄存器B (241)9.5 CAN控制器操作 (242)9.5.1 错误处理 (242)9.5.2 睡眠模式 (242)9.5.3 中断 (242)9.5.4 发送优先级 (243)9.6 集中CAN寄存器 (243)9.6.1 集中发送状态寄存器 (243)9.6.2 集中接收状态寄存器 (243)9.6.3 集中其它状态寄存器 (244)9.7 全局验收滤波器 (244)9.8 验收滤波器模式 (244)9.8.1 验收滤波器关闭模式 (245)9.8.2 验收滤波器旁路模式 (245)9.8.3 验收滤波器工作模式 (245)9.8.4 FullCAN模式 (245)9.9 ID查找表RAM的各个区 (245)9.10 ID查找表RAM (246)9.11 验收滤波器寄存器 (247)9.11.1 验收滤波器模式寄存器 (247)9.11.2 区配置寄存器 (248)9.11.3 状态寄存器 (250)9.12 配置和查找算法 (251)9.13 FullCAN模式 (252)9.13.1 FullCAN报文的分布 (253)9.13.2 FullCAN中断 (254)9.13.3 FullCAN中断的置位和清零机制 (256)9.14 验收滤波器表格和ID索引值举例 (259)9.15 CAN驱动的编写 (264)9.15.1 CAN的初始化 (264)9.15.2 CAN的帧发送 (268)9.15.3 CAN的帧接收(查询方式) (270)9.15.4 CAN的帧接收(中断方式) (273)第10章以太网控制器 (276)10.1 概述 (276)10.2 以太网MAC和PHY (276)10.3 特性 (277)10.4 结构与操作 (278)10.5 DMA引擎功能 (279)10.6 DMA操作概述 (279)10.7 以太网包 (279)10.8 综述 (280)10.8.1 功能描述 (280)10.8.2 外部的PHY器件 (281)10.9 管脚描述 (281)10.10 寄存器与软件接口 (282)10.10.1 寄存器映射 (282)10.10.2 以太网MAC寄存器 (283)10.10.3 控制寄存器 (292)10.10.4 接收过滤寄存器 (301)10.10.5 以太网模块控制寄存器 (303)10.11 描述符和状态格式 (306)10.11.1 接收描述符和状态 (306)10.11.2 发送描述符和状态 (311)10.12 以太网模块功能描述 (315)10.12.1 概述 (315)10.12.2 AHB接口 (315)10.12.3 总线错误 (315)10.12.4 中断逻辑 (315)10.12.5 直接存储器访问(DMA) (316)10.12.6 以太网模块初始化 (318)10.12.7 发送过程 (325)10.12.8 接收过程 (329)10.12.9 发送重试 (334)10.12.10 状态Hash CRC计算 (335)10.12.11 模式 (335)10.12.12 IEEE802.3/条款31流控制 (335)10.12.13 半双工模式背压 (337)10.12.14 接收过滤 (337)10.12.15 功能管理 (339)10.12.16 LAN上唤醒 (339)10.12.17 接收和发送的使能与禁能 (340)10.12.18 发送填充和CRC (341)10.12.19 超长帧和帧长度检验 (342)10.12.20 统计计数器 (342)10.12.21 MAC状态向量 (342)10.12.22 复位 (342)10.12.23 以太网错误 (344)10.13 AHB带宽 (344)10.13.1 DMA访问 (344)10.13.2 CPU访问的类型 (345)10.13.3 总带宽 (345)10.14 CRC计算 (345)附录1 LPC2400系列ARM中断源 (347)附录2 书稿修订历史 (349)。