本书针对ATMEL公司基于ARM核的AT91系列微控制器,介绍其器件的特点、内部结构、内部资源以及开发方法。全书共10章,包括AT91系列微控制器芯片结构原理、AT91评估板和集成函数库、ARM编程模型和指令集、内部资源的程序设计、硬件的开发平台和uClinux操作系统软件平台以及各种ARM开发工具等。AT91微控制器是ATMEL公司继AT89,AT90(AVR)系列单片机后,推出的基于国际领先32位RISC处理器核ARM的高端嵌入式系统芯片。它的特色是具有大容量Flash存储器的芯片,并提供C语言源码的丰富的AT91库函数。它是国内主流的ARM核芯片。\r\n 本书内容比较全面,编程举例详细,可作为嵌入式系统应用技术人员的参考手册和嵌入式系统课程的参考用书。
第一章 ATMEL微控制器系列\r\n\r\n1.1 ATMEL微控制器简介\r\n1.2 AT91系列微控制器特点\r\n1.3 AT91系列微控制器结构\r\n\r\n第二章 ARM嵌入式处理器体系结构\r\n\r\n2.1 ARM处理器结构\r\n2.1.1 ARM介绍\r\n2.1.2 ARM7TDMI处理器核\r\n2.1.3 ARM体系结构\r\n2.1.4 框图、内核和功能图\r\n2.1.5 ARMTDMI 输入/输出信号\r\n2.2 ARM编程模型\r\n2.2.1 数据类型\r\n2.2.2 处理器模式\r\n2.2.3 处理器工作状态\r\n2.2.4 寄存器组织\r\n2.2.5 异常\r\n2.2.6 存储器和存储器映射I/O\r\n2.2.7 中断延迟\r\n2.2.8 复位\r\n2.3 ARM基本寻址方式\r\n2.3.1 寄存器寻址\r\n2.3.2 立即寻址\r\n2.3.3 寄存器移位寻址\r\n2.3.4 寄存器间接寻址\r\n2.3.5 变址寻址\r\n2.3.6 多寄存器寻址\r\n2.3.7 堆栈寻址\r\n2.3.8 块拷贝寻址\r\n2.3.9 相对寻址\r\n\r\n第三章 ARM指令集和汇编程序设计\r\n\r\n3.1 ARM指令集\r\n3.1.1 指令集编码\r\n3.1.2 条件执行\r\n3.1.3 指令分类说明\r\n3.2 Thumb指令集\r\n3.2.1 Thumb指令集与ARM指令集的区别\r\n3.2.2 指令集编码\r\n3.2.3 指令分类说明\r\n3.3 汇编语言程序设计\r\n3.3.1 预定义变量\r\n3.3.2 伪指令和指示符\r\n3.3.3 ARM汇编程序规范\r\n3.3.4 ARM汇编程序设计\r\n3.3.5 宏定义和使用\r\n3.3.6 混合编程\r\n\r\n第四章 AT91系列微控制器概览\r\n\r\n4.1 AT91X40系列微控制器基本型\r\n4.1.1 特点\r\n4.1.2 总体结构\r\n4.1.3 引脚配置\r\n4.1.4 产品纵览\r\n4.1.5 片内外围\r\n4.2 带Flash的AT91X40系列器件\r\n4.2. 1 AT91FR40162\r\n4.2.2 AT91FR4042\r\n4.2.3 AT91FR4081\r\n4.2.4 AT91F40816\r\n4.3 AT91M42800A\r\n4.3.1 特点\r\n4.3.2 总体结构\r\n4.3.3 引脚配置\r\n4.3.4 产品纵览\r\n4.3.5 片内外围\r\n4.3.6 内部资源的用户接口\r\n4.4 AT91M43300\r\n4.4.1 特点\r\n4.4.2 总体结构\r\n4.4.3 引脚配置\r\n4.5 AT91M63200\r\n4.5.1 特点\r\n4.5.2 总体结构\r\n4.5.3 引脚配置\r\n4.5.4 产品纵览\r\n4.5.5 内部资源的用户接口\r\n4.6 AT91M55800A\r\n4.6.1 特点\r\n4.6.2 总体结构\r\n4.6.3 引脚配置\r\n4.6.4 产品纵览\r\n4.6.5 片内外围\r\n4.6.6 内部资源的用户接口\r\n\r\n第五章 AT91系列微控制器的内部资源\r\n\r\n5.1 外部总线接口\r\n5.2 中断控制器\r\n5.3 并行口和串行口\r\n5.3.1 并行口\r\n5.3.2 串行口\r\n5.3.3 串行外围接口SPI\r\n5.3.4 多处理器接口MPI\r\n5.4 定时器\r\n5.4.1 定时器/计数器\r\n5.4.2 看门狗定时器\r\n5.4.3 实时时钟RTC\r\n5.4.4 系统定时器ST\r\n5.5 A/D和D/A转换器\r\n5.5.1 A/D转换器\r\n5.5.2 D/A转换器\r\n5.6 电源管理\r\n5.6.1 电源管理控制器PMC\r\n5.6.2 先进电源管理控制器APMC\r\n5.6.3 省电模块PS\r\n5.7 特殊功能寄存器SF\r\n\r\n第六章 ATMEL的ARM开发环境\r\n\r\n6.1 AT91评估板\r\n6.1.1 概述\r\n6.1. 2 评估板设置\r\n6.1.3 评估板上软件\r\n6.1.4 评估板上元器件\r\n6.2 AT91集成函数库\r\n6.2.1 AT91库的定义规则\r\n6.2.2 AT91 库的层次结构\r\n6.2.3 AT91库的使用\r\n6.3 AT91内部资源的库函数编程\r\n6.3.1 并行口编程\r\n6.3.2 串行口编程\r\n6.3. 3 定时器/计数器编程\r\n6.3.4 A/D转换器编程\r\n6.3.5 D/A转换器编程\r\n6.3.6 先进中断控制器编程\r\n6.3.7 实时时钟计数器编程\r\n6.4 AT91函数库\r\n6.4.1 省电模块\r\n6.4.2 SPI接口\r\n6.4.3 EBI接口\r\n6.4.4 I2C接口\r\n\r\n第七章 ARM 开发工具和开发流程\r\n\r\n7.1 ARM 开发工具\r\n7.1.1 ARM开发工具综述\r\n7.1.2 ARM SDT\r\n7.1.3 ARM ADS\r\n7.1.4 MULTI 2000\r\n7.1.5 Nucleus UDB\r\n7.1.6 visionCLICK/visionXD\r\n7.1.7 Hitool for ARM\r\n7.1.8 Embest IDE\r\n7.1.9 BDI 1000/BDI 2000\r\n7.1.10 MultiICE\r\n7.1.11 JEENI仿真器\r\n7.1.12 TRACE32ICD\r\n7.1.13 visionPROBE/visionICE II\r\n7.2 Hitool for ARM开发系统\r\n7.2.1 ARM的开发方案\r\n7.2.2 Hitool for ARM 软件产品特征\r\n7.2.3 Hitool for ARM功能及使用\r\n7.3 嵌入式系统开发流程\r\n7.4 Angel调试监控程序\r\n7.4.1 Angel概述\r\n7.4.2 Angel系统的组成\r\n7.4.3 Angel系统的资源需求\r\n7.4.4 Angel操作\r\n7.4.5 Angel接口\r\n7.4.6 Angel的通信结构\r\n7.4.7 Angel调试协议\r\n7.5 启动代码\r\n\r\n第八章 AT91微控制器开发平台\r\n\r\n8.1 MICETEK的AT91微控制器开发平台\r\n8.1.1 EV40评估板的组成\r\n8.1.2 评估板的各模块功能介绍\r\n8.1.3 片选信号设置及外围地址空间分配\r\n8.1.4 以太网接口程序设计\r\n8.2 BMR的AT91微控制器开发平台\r\n8.2.1 NetCARM7的结构\r\n8.2.2 开发套件特点\r\n8.2.3 NetCARM7开发板硬件资源\r\n8.2.4 系统软件的移植\r\n\r\n第九章 uClinux嵌入式操作系统开发平台\r\n\r\n9.1 uClinux 简介\r\n9.2 uClinux 源代码结构\r\n9.3 Hitool for uClinux开发套件\r\n\r\n第十章 ATMEL基于ARM的专用标准产品\r\n\r\n10.1 Internet电器\r\n10.2 无线数据通信\r\n10.3 数码相机\r\n10.4 高速无线通信\r\n\r\n附录A ATMEL公司带ARM核的芯片\r\n\r\n附录B AT91库函数说明\r\n\r\nB.1 并行I/O接口\r\nB.2 串行口USART\r\nB.3 定时器/计数器\r\nB.4 A/D转换器\r\nB.5 D/A转换器\r\nB.6 先进中断控制器\r\nB.7 实时时钟计数器\r\nB.8 省电模块\r\nB.9 SPI接口\r\nB.10 EBI接口\r\nB.11 I2C接口\r\n\r\n附录C ARM指令集、ARM寻址方式和Thumb指令集速查表\r\n\r\n参考文献
随着Internet的普及,我们已进入了网络时代,进入了后PC时代。不仅用PC机能上网,而且用各种各样的嵌入式设备都可以上网。后PC时代出现了信息电器,如掌上电脑、个人数字助理(PDA)、可视电话、移动电话、TV机顶盒、电视会议机和数码相机等嵌入式设备。能上网的嵌入式设备需要加上TCP/IP网络协议。由于8/16位单片机的速度不够快以及内存不够大,较难满足嵌入式设备的上网要求,因此ATMEL公司推出高端嵌入式系统用的32位微控制器AT91系列。AT91系列微控制器是继ATMEL公司成功推出AT89系列Flash单片机和AT90系列AVR单片机后的又一通用微控制器系列,即32位单片机。本书采用国际通用的称呼--微控制器。AT91系列微控制器采用ARM公司的ARM7TDMI处理器核。
ARM公司在32位RISC处理器市场占有率超过了75 %。ARM公司的成功之处在于它是知识产权供应商,是设计公司。ARM公司本身不生产芯片,靠转让设计许可,由合作伙伴公司来生产各具特色的芯片。ARM商业模式的强大之处在于其价格合理,在全世界范围的合作伙伴超过100个,其中包括半导体工业的著名公司。ARM公司专注于设计,其内核耗电少、成本低、功能强,特有16/32位双指令集。ARM已成为移动通信、手持计算和多媒体数字消费等嵌入式解决方案的RISC实际标准。
ATMEL公司是率先在32位微控制器中使用ARM核的公司。它的AT91系列产品继承了AT89和AT90系列的结构特点,片内具有我们熟悉的Flash存储器、定时器/计数器、并行口、串行口和中断控制器等。ATMEL公司还提供AT91集成函数库,用C语言和汇编语言设计并提供源代码,非常便于芯片的编程。本书力求使读者对AT91系列微控制器有一全面的了解,内容选材尽量丰富、完整,并介绍其开发工具和开发平台。全书共10章,各章节内容安排如下:
第一章简要介绍ATMEL微控制器系列,包括AT89系列、AT90系列和AT91系列的最主要的特性。
第二章介绍ARM公司和ARM处理器结构。从体系结构的角度介绍ARM的编程模型,即它的寄存器组织和工作模式;介绍ARM指令集所采用的基本寻址方式。
第三章分类介绍ARM指令集和Thumb指令集。每类指令都尽量完整地介绍其句法,并给出指令的例子;还特别对ARM独特的每条指令的条件执行进行说明。
第四章全面介绍AT91系列微控制器的所有器件,给出其特点、总体结构及引脚配置等。
第五章为AT91系列微控制器各种内部资源的描述、寄存器说明和用户接口,把第四章介绍的器件的相同外围部件提出来进行分类说明。
第六章全面介绍ATMEL公司提供的开发环境,包括各器件的评估板、集成函数库和ATMEL工程师使用库函数编写的内部资源测试程序。
第七章介绍各种开发工具和具体的开发流程,还给出Angel调试监控程序和最重要的启动代码部分。
第八章给出两种AT91系列微控制器开发平台,由MICETEK公司和BMR公司提供。平台上移植了开放源代码的uClinux和uC/OS嵌入式操作系统。
第九章介绍uClinux嵌入式操作系统开发平台。
第十章为几种ATMEL公司的专用标准产品的介绍,包括Internet电器、无线数据通信和数码相机等。
附录中包含ATMEL公司带ARM核的芯片以及指令集速查表。
过去大量的是8/16位单片机的应用,这只是嵌入式系统的初级阶段。伴随着网络时代的来临,出现了机顶盒、路由器和调制解调器等Internet设备。总之,Internet的基础设施都是嵌入式系统,而且在高端嵌入式应用中,32位微控制器现在已是很常见的了。国内的IT产品的开发应该更新理念,即:逐步采用32位高性能的CPU;采用C等高级语言编程;采用RTOS及其平台进行开发;采用模块化方式从事项目开发应用。32位微控制器可以满足IT产品的开发要求,缩短产品的上市时间,为加强运算的嵌入式应用提供了高度的灵活性和高性能价格比的解决方案。
ATEML公司非常注重单片机的应用推广工作。AT91系列微控制器是国内最早打出广告的ARM核产品,是国内主流的ARM核芯片。本书是受ATMEL公司施膺先生之邀,在ATMEL北京办事处和上海办事处的工程师叶勇建、林明先生大力支持和帮助下完成的。ARM中国公司谭军博士及MICETEK上海祥佑数码有限公司桑桐梁、严永红和BMR北京麦克泰软件公司曹旭华先生提供了宝贵资料。北京航空航天大学出版社何立民教授和马广云博士对本书编写极为关心,并提出宝贵建议。在此谨向他们深表谢意。
本书是把《ARM嵌入式处理器结构与应用基础》(北京航空航天大学出版社出版)一书的ARM核落实到具体芯片,希望能让大家了解和使用ARM核芯片。愿本书能对32位微控制器在国内应用推广工作起到一定促进作用。因目前国内可参考的中文资料少,词汇使用上难免不确切,望国内同行指正。
作者