微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 行业新闻动态 > 高性能混合信号ARM——ADuC7xxx原理与应用开发

高性能混合信号ARM——ADuC7xxx原理与应用开发

时间:07-03 来源:与非网 点击:
ARM(Advanced RISC Machines)在微处理器与嵌入式行业内耳熟能详,这是由于ARM相比于其它微处理器(或单片机)具有高性能、低成本和功耗低等一系列特点。而ARM本身的生产又独具特色,ARM作为微处理器行业的一家知名企业,该企业只设计了多个系列高性能、廉价、耗能低的RISC 处理器、相关技术及软件,而生产却由其它公司完成,ARM 将其技术授权给世界上许多著名的半导体、软件和OEM 厂商,每个厂商得到的都是独一无二的ARM 相关技术及服务,利用这种合作关系,ARM 很快成为许多全球性RISC标准的缔造者。
ADI(Analog Devices, Inc.)作为业界广泛认可的数据转换和信号调理技术全球领先的供应商,拥有遍布世界各地的60,000客户,他们事实上代表了全部类型的电子设备制造商。ADI公司作为高性能模拟集成电路(IC)制造商庆祝公司在此行业全球领先40多年,其产品广泛用于模拟信号和数字信号处理领域。
10年前,ADI公司将高精度ADC和DAC等模拟接口电路与89C52内核集成到一个芯片上,诞生了一个崭新的器件系列――ADuC8xx,并冠名为"微转换器"(MicroConverter)。在同时具备89C52和ADI所擅长的数据转换和信号调理技术优势的同时,ADuC8xx系列还独具在线编程、调试等特点,在工业测控、仪器仪表和各种嵌入式系统中得到广泛的应用。
现在,ADI公司又被授权生产ARM微处理器,发展出性能远远超出ADuC8xx的又一个崭新系列微处理器――ADuC7xxx系列,青胜于蓝,在具备ADuC8xx众多突出优点的同时,ADuC7xxx系列在速度、功耗、ADC的精度与速度等更胜一筹,还增加了可编程门阵列等新外设和功能,在测控、机电一体化等领域必将大展宏图,因此,ADuC7xxx系列又被称为"精密模拟微控制器"。作者从事单片机与微处理器的教学和科研有20多年,对ADuC7xxx系列微处理器情有独钟,把她作为主流器件介绍给学生们和在科研中应用,取得了很好的效果。
好的东西总是希望大家分享,因此,我们把自己近年来的一些体会,再搜集了一些资料,编写出这本书,希望能够给大家一些帮助,在科研和新产品开发上多一个利器。
参加本书编写的有:刘玉良、卢宗武、高剑明、王慧敏、王慧泉、赵喆、张丽君、李娜等。此外,本书的编写还参考了大量的资料,对这些资料的作者表示衷心的感谢。在本书的编写过程中得到ADI公司、IAR公司的大力支持,电子工业出版社的张榕同志也给了热情的支持与帮助,作者借此机会向他们表示感谢。
由于作者水平有些,书中难免有这样或那样的错误,希望能够得到读者的指教,我们共同做好ADuC7xxx系列ARM的开发和应用。


作者
2008年10月1日于北洋园



目 录
第一章 概述 1
1.1 计算机的历史 1
1.2 计算机的应用 4
1.3 计算机的发展 5
1.4 单片微型计算机概述 6
1.5 ARM简介 8
1.5.1 ARM的产品系列 9
1.5.2 ARM微处理器的应用选型 10
1.5.3 ADuC702x的主要特点 11

第二章 计算机的组成与数据格式 13
2.1 计算机的硬件系统 13
2.2 计算机的软件系统 15
2.3 计算机的相关术语 17
2.4 计算机的性能评测 18
2.5 数制与运算 19
2.5.1 数制的基本概念 19
2.5.2 数制之间的转换 20
2.5.3 各种信息在计算机内的表示 20
2.5.4 计算机的运算基础 25

第三章 ARM7TDM内核 27
3.1 结构、功能与信号 28
3.2 编程模式 30
3.3 操作模式选择 31
3.4 寄存器 32
3.5 异常 33
3.5.1 FIQ 34
3.5.2 IRQ 34
3.5.3 异常中断 34
3.5.4 软件中断 35
3.5.5 无定义的指令陷阱 35
3.5.6 向量总结 36
3.5.7 异常优先级 36
3.5.8 中断响应时间 36
3.6 复位 37

第四章 ADuC702x系列的概况与存储器结构 38
4.1 ADuC702x系列的主要型号 39
4.2 ADuC702x系列的封装与引脚 40
4.3 存储器结构 52
4.3.1 FLASH/EE存储器 52
4.3.2 SRAM 53
4.3.3 存储器映象寄存器 53
4.4 非易失性FLASH/EE存储器 59
4.4.1 FLASH/EE存储器的可靠性 59
4.4.2 FLASH/EE存储器的编程 60
4.5 从SRAM和FLASH/EE存储器中执行程序的耗时 64
4.6 复位与存储器重新映射 64
4.7 外部储存器接口 66

第五章 数字外设与接口 70
5.1 PWM 70
5.1.1 40根引脚封装器件 71
5.1.2 PWM模块的说明 71
5.1.3 输出控制单元 75
5.1.4 门控驱动单元 76
5.1.5 关闭PWM系统 77
5.1.6 PWM系统的存储器映象寄存器 77
5.2 GPIO(通用IO口) 79
5.3 串口多路器 84
5.3.1 UART串口 84
5.3.2 可网络寻址的UART模式 89
5.4 SPI串口 91
5.5 I2C兼容接口 94
5.5.1 I2C串口时钟的产生 94
5.5.2 从机地址 94
5.5.3 I2C串口寄存器 95
5.6 可编程逻辑门阵列(PLA) 100

第六章 模拟外设与接口 105
6.1 ADC(模数转换器) 105
6.1.1 转移函数 105
6.1.2 典型操作 106
6.1.3 MMR接口 107
6.1.4 转换操作 110
6.1.5 驱动模拟输入端 112
6.1.6 校准 112
6.1.7 温度传感器 113
6.1.8 能隙参考电源 113
6.2 DAC(数模转换器) 114
6.3 电源监视器(PSM) 116
6.4 比较器 116
6.4.1 迟滞性 117
6.4.2 比较器接口 117

第七章 定时、中断及其他控制逻辑 118
7.1 时钟系统 118
7.1.1 外部石英振荡器 118
7.1.2 外部时钟的选择 119
7.2 功耗控制 119
7.3 定时器 121
7.3.1 定时器0(RTOS定时器) 122
7.3.2 定时器1(通用定时器) 123
7.3.3 定时器2(闹钟定时器) 125
7.3.4 定时器3(看门狗定时器) 126
7.4 外部内存接口 129
7.5 中断系统 132
7.5.1 IRQ 133
7.5.2 FIQ 135
7.5.3 可编程中断 135

第八章 硬件系统设计 137
8.1 电源 137
8.1.1 IOVDD供电电源的灵敏度 138
8.1.2 线性稳压电源 138
8.1.3 接地和PCB各层的布置 138
8.3 时钟振荡器 140
8.4 上电复位操作 140
8.5 硬件系统的典型设计 141

第九章 ADuC702x的开发工具 142
9.1 概述 142
9.2 EWARM集成开发环境及其配套仿真器 143
9.2.1 EWARM简介 143
9.2.2 在EWARM 中生成一个新项目 149
9.2.3 程序的编译和连接 152
9.2.4 用C-SPY 调试应用程序 155
9.2.5 EWARM Flash Loader开发指南 161
9.3 ARM ADS集成开发环境 168
9.3.1 命令行开发工具 169
9.3.2 ARM运行时库 178
9.3.3 GUI开发环境(Code Warrior和AXD) 179
9.3.4 实用程序 182
9.3.5 ADS支持的软件 182
9.3.6 使用ADS创建工程 182
9.3.7 使用命令行工具编译应用程序 189
9.3.8 用AXD进行代码调试 191

第十章 ADuC702x的应用实例 194
10.1 微型12导心电图机 194
10.1.1 硬件设计 194
10.1.2 心电图机嵌入式系统的软件开发 204
10.1.3 心电图机PC机辅助软件的开发 213
10.1.4 心电信号的数据处理 220
10.2 μC/OS-II的移植 226
10.2.1 μC/OS-II到ARM7内核的移植 226
10.2.2 ADUC7026针对移植的特殊设计 227
10.2.3 移植的测试和实现 230
10.3 基于ADuC7026与RTI8019AS的网络数据采集系统 230
10.3.1 系统硬件设计 231
10.3.2 软件设计 232
10.3.3 验证方法及结论 233
10.4 多通道IP电参数测量仪 233
10.4.1 硬件部分 234
10.4.2 软件部分 236
10.4.3 实验数据 238
10.4.4 小结 238

附录A:ARM7TDMI(-S)指令集及编程 239
A.1 ARM 处理器寻址方式 240
A.1.1 寄存器寻址 240
A.1.2 立即寻址 240
A.1.3 寄存器偏移寻址 240
A.1.4 寄存器间接寻址 241
A.1.5 基址寻址 241
A.1.6 多寄存器寻址 241
A.1.7 堆栈寻址 242
A.1.8 块拷贝寻址 242
A.1.9 相对寻址 242
A.2 ARM指令集 243
A.2.1 指令格式 243
A.2.2 ARM 存储器访问指令 245
A.2.3 ARM 数据处理指令 250
A.2.4 ARM 跳转指令 255
A.2.5 ARM 协处理器指令 255
A.2.6 ARM 杂项指令 257
A.2.7 ARM 伪指令 260
A.3 Thumb 指令集 262
A.3.1 Thumb 指令集与ARM 指令集的区别 262
A.3.2 Thumb 存储器访问指令 263
A.3.3 Thumb 数据处理指令 265
A.4 伪指令 274
A.4.1 符号定义伪指令 274
A.4.2 数据定义伪指令 277
A.4.3 汇编控制伪指令 283
A.4.5 杂项伪指令 285
A.4.6 ARM 伪指令 290
A.4.7 Thumb 伪指令 291
A.5 ARM 汇编程序设计 292
A.5.1 文件格式 292
A.5.2 ARM 汇编的一些规范 292
A.5.3 子程序的调用 295
A.5.4 数据比较跳转 296
A.5.5 循环 296
A.5.6 数据块复制 296
A.5.7 栈操作 297
A.5.8 特殊寄存器定义及应用 297
A.5.9 查表操作 297
A.5.10 长跳转 298
A.5.11 对信号量的支持 298
A.5.12 伪指令使用 298
A.5.13 一个完整的例子 298
A.5.14 外设控制 299
A.5.15 三级流水线介绍 299
A.6 C与汇编混合编程 300
A.6.1 内嵌汇编 300
A.6.2 内嵌汇编的指令用法 302
A.6.3 内嵌汇编器与armasm 汇编器的差异 302
A.6.4 内嵌汇编注意事项 302
A.6.5 访问全局变量 304
A.6.6 C 与汇编相互调用 304
A.6.7 C 程序调用汇编程序 306
A.6.8 汇编程序调用C 程序 306
A.7 ARM 指令集列表 307
A.8 Thumb 指令集列表 310
A.9 汇编预定义变量及伪指令 312
A.9.1 预定义的寄存器和协处理器名 312
A.9.2 内置变量列表 312
A.9.3 CPSR 和SPSR 分配图 315

附录B:参考文献 318

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top