本书是一本讲述如何基于ARM7内核处理器进行嵌入式系统设计和开发的实用书籍。本书提供的实例全面涉及各种底层硬件驱动(如Flash ROM、SDRAM、Nandflash存储器、通用I/O、UART、定时器、LCD、I2C接口、A/D转换器、触摸屏及USB等)、μC/OSⅡ嵌入式操作系统、图形用户界面系统、文件系统和TCP/IP协议栈等嵌入式系统体系结构中的组成部件。书中通过28个实例对相关知识进行了有针对性的深入分析和详细解说,并为读者提供了可遵循的实践步骤,使读者能够在实际应用中深入掌握和实现这些技术和技巧。\r\n 本书内容丰富,深入浅出,实用性强,不仅适合作为高等学校嵌入式系统相关专业的实验、培训教材或教师参考用书,也适合从事嵌入式系统设计和开发工作的专业技术人士使用。
实例1 嵌入式系统开发实例——模拟PDA的实现\r\n 1.1 概述1\r\n 1.2 实例内容和目标\r\n 1.3 实例分析\r\n 1.3.1 系统构成的元素\r\n 1.3.2 硬件部分\r\n 1.3.3 软件部分\r\n 1.4 实现方法与步骤\r\n 1.4.1 连接硬件电路\r\n 1.4.2 程序目录和内容说明\r\n 1.4.3 下载并运行程序\r\n实例2 ARMSys平台开发环境及工具详解\r\n 2.1 概述\r\n 2.2 实例内容和目标\r\n 2.3 实例分析\r\n 2.3.1 ARMSys的组成结构\r\n 2.3.2 ARMSys的启动程序和地址空间分配\r\n 2.3.3 ARMSys提供的开发环境\r\n 2.3.4 应用开发步骤\r\n 2.3.5 SDT2.5的介绍\r\n 2.4 实现方法与步骤\r\n 2.4.1 编写或修改源程序代码\r\n 2.4.2 使用APM对工程进行编译\r\n 2.4.3 使用ADW进行仿真调试\r\n 2.4.4 在Windows 2000/ XP下使用JTAG.exe\r\n 2.4.5 USB口下载工具\r\n 2.4.6 代码固化\r\n实例3 Flash ROM器件应用\r\n 3.1 概述\r\n 3.2 实例内容和目标\r\n 3.3 实例分析\r\n 3.3.1 读操作\r\n 3.3.2 字写入操作\r\n 3.3.3 扇区/ 块/ 整片擦除操作\r\n 3.3.4 内部操作状态检测\r\n 3.4 实现方法与步骤\r\n 3.4.1 接口电路\r\n 3.4.2 硬件上的设置\r\n 3.4.3 寄存器的说明\r\n 3.4.4 SST39VF160的擦除\r\n 3.4.5 SST39VF160的写入\r\n 3.5 运行结果\r\n实例4 SDRAM器件应用\r\n 4.1 概述\r\n 4.2 实例内容和目标\r\n 4.3 实例分析\r\n 4.3.1 SRAM器件的结构特点\r\n 4.3.2 DRAM器件的结构特点\r\n 4.3.3 SDRAM器件的构成原理和应用特点\r\n 4.3.4 SDRAM器件IS42S16400简介\r\n 4.4 实现方法与步骤\r\n 4.4.1 地址分配\r\n 4.4.2 电路连接\r\n 4.4.3 寄存器设置\r\n 4.4.4 对IS42S16400的编程\r\n4.5 运行结果\r\n实例5 Nandflash存储器器件应用\r\n实例6 通用I/O口的应用——矩阵式键盘\r\n实例7 外部中断处理程序设计\r\n实例8 UART异步串行接口应用\r\n实例9 定时器应用\r\n实例10 实时日历时钟(RTC)应用\r\n实例11 LCD接口应用\r\n实例12 I2C接口应用\r\n实例13 A/D转换器应用\r\n实例14 触摸屏应用\r\n实例15 USB设备接口应用\r\n实例16 以太网控制器接口应用\r\n实例17 μC/OSⅡ的移植与应用\r\n实例18 μC/OSⅡ的多任务管理和任务间通讯\r\n实例19 μC/OSⅡ中断处理程序设计\r\n实例20 GUI系统的移植与应用\r\n
随着计算机技术逐渐渗透到各类电子产品当中,一种实用、高效的计算机系统——嵌入式系统不断展现出它独特的魅力。与桌面计算机不同,嵌入式计算机系统专门服务于特定需求,一般要求低成本、低耗费、轻型、高性能、高可靠性及可配置性。嵌入式系统日益广泛的应用也让人们看到了这项技术所蕴涵的巨大的市场潜力。市场的需求带动了对技术人才的需求,今天,大批的技术人员和学者的目光都被吸引到嵌入式系统的设计与开发这门技术上。
但是,嵌入式系统的设计与开发作为一项实践性很强的专业技术,光有理论知识是无法真正深刻理解和掌握的。而今,市场上一些有关嵌入式系统的书籍,多是理论的堆积和外文资料的翻译,这对于希望获得快速而有效的知识技能的嵌入式系统技术人员来说,无法通过对这些书籍的阅读,获得更有效的资讯,从而难以尽快地进入角色、建立起设计思路。
本书则试图打破这种状况,为读者提供直观、易懂且深入浅出的形式和内容。书中采用了列举实例的方式,深入浅出地揭示嵌入式系统技术在一些具体项目中的应用。这些实例都是可供实践和快速掌握的。
每个实例相当于一个小型项目。“实例内容和目标”类似于实际应用开发中的“功能需求”或“技术指标”,它首先为实例明确了一个具体的实现目标;之后,依据应用开发中的步骤,面对设计要求进行“实例分析”——采用什么样的设计思路,主要的知识有哪些,要进行哪几项工作等等;最后在“实现方法和步骤”中,则进行具体的工作——电路设计和编程。本书是由在嵌入式系统领域中工作多年的工程师依据自身经验编写而成,因此,在跟随本书实践的过程中,读者将感到有如亲身参与了实际的设计与开发。
书中不仅详细说明了如何验证各个实例,附带光盘中还包含了完整的可运行的实例源代码。通过对实例的运行,读者可以清楚地看到运行的现象或结果,从而留下直观和深刻的印象。
书中的实例以业界表现出色的ARM处理器(采用ARM7TDMI内核的、三星公司推出的S3C44B0X)及其外围电路为硬件基础,以简明内核式的μC/OSⅡ作为嵌入式操作系统进行介绍,同时对嵌入式系统开发中常用的GUI系统、文件系统、TCP/IP协议栈等都进行了全面的揭示,尽可能完整地讲述嵌入式系统设计与开发中运用到的知识和技术。
(1) 书中提供了哪些实例
本书提供了28个实例,这些实例涉及面较广,遵循着先总体、后具体,先硬件、后软件,先模块、后系统的思路编写。这样,方便了初学者从前往后顺序阅读,依次对每个实例进行学习和实践,循序渐进地掌握嵌入式系统开发技术。同时,本书的每一个实例又是相对独立的,建议具备一定专业技术和经验的读者,可以首先通过阅读实例2了解目标系统的构架,然后挑选自己感兴趣的实例进行研读。
实例1是一个概括性的实例,提出在进行一个典型嵌入式系统产品的开发中所涉及的基本组成元素和应采用的设计思路,建议读者首先阅读该实例,从而对嵌入式系统的设计与开发形成一个总体和直观的认识。
实例2对常用开发工具及书中实例所依托的目标系统进行了详细的介绍。通过阅读该实例,读者能够了解到如何开始进行与ARM处理器相关的嵌入式系统的开发,如何构建或运用目标系统平台。由于每个实例都是在一定的目标系统上运行的,因此建议读者仔细阅读本实例的相关部分,了解目标系统的基本硬件配置。该例还通过Hello World程序实例,引导初学者开始嵌入式系统探索的第一步。
从实例3开始,以三星公司的S3C44B0X处理器为例,介绍处理器内部功能部件的应用、基本外围电路设计与应用以及常用通讯接口的设计和应用。由于嵌入式系统产品都是紧密依托于硬件系统的,因此,对硬件系统有一个深刻的了解十分有助于产品的设计和开发。
从实例13开始,详细分析了扩展触摸屏、USB接口和以太网接口等外围部件及其接口的设计方法,其中以太网接口是作为后面TCP/IP协议栈应用实践的基础,触摸屏的驱动知识也与后面的GUI系统相关。
实例16到19深入探讨了μC/OSⅡ在ARM处理器系统中的应用,主要围绕3个内容进行应用举例:操作系统移植、多任务管理和通讯以及中断处理程序设计。
实例20到24围绕GUI(图形用户界面)进行应用举例,内容包括移植、图形文字显示、汉字显示、视窗控件和动画显示等。
实例25讲述如何将文件系统加入到系统中,并运用文件系统API函数对数据进行文件管理操作。
实例26到28,以以太网接口作为硬件基础,依次是TCP/IP协议栈中的ARP地址解析应用实例、IP和ICMP网络诊断应用实例及UDP数据传输应用实例。
(2) 如何调试和运行这些实例
本书中的28个实例都经过了严格验证,它们是在一款ARM7处理器开发平台——“ARMSys”上通过测试的[关于ARMSys开发平台的详细信息,可以从杭州立宇泰(原名立泰)电子有限公司的网站www.HZLitai.com.cn上获得]。经过适当的修改,这些实例也能够在其他典型的ARM7开发板上运行(以S3C44B0X为处理器)。建议读者拥有一个自己的开发平台,这样就可以对书中的实例进行实践了。
本书的实例2中详细介绍了ARMSys的体系结构,在对实例电路的讲述中也会采用ARMSys的电路结构。为了更好地学习本书的内容,建议读者通过这套开发平台,或通过自行设计和制作开发板来验证实例,作者在本书的附带光盘中提供了S3C44B0X开发板的原理图实例(光盘目录\\SCH\\)。
除了目标板,还需要一套ARM处理器专用的开发软件,例如ARM公司提供的ARM Software Development Toolkit 2.5(简称SDT2.5),就是一个集成开发环境。
每一个实例的源代码都放在本书附带光盘中的Source\\目录下,包括可以在SDT2.5下打开的工程文件和可进行程序固化的*.bin文件。在SDT2.5下,利用一个简易的并口转JTAG口电路模块就可以实现代码的下载与调试,这种方式的速度较慢,但是简易而且价格低。同样可以在光盘的SCH\\目录下找到JTAG板的电路原理图。
关于具体的开发环境的组建和开发步骤,在本书的实例2中将有详细的指导说明。
(3) 光盘资料介绍
Tools\\目录下包括ARM处理器开发工具软件包,内容有:IDE Trial\\集成开发环境软件试用版
JTAG\\JTAG协议转换程序
USB\\USB程序下载器安装程序
Programmer\\烧录工具Source\\目录下包括28个实例的工程文件、源程序文件、库文件和工程模板:ADCtestS3C44B0X内置A/D转换器应用实例
ARPscanARP地址解析应用实例
ColorLCDtest彩色LCD驱动实例
EINTtestS3C44B0X外部中断实例
Ethernet以太网底层函数编写实例
FAT16testFAT16文件系统应用实例
FlashtestFlash ROM读写实例
guiHelloworld GUI软件包Hello World应用实例
guiHZKGUI与汉字库的应用实例
guiMemDevGUI动画显示应用实例
guiScaleGUI绘制图形应用实例
guiWMGUI窗口控件应用实例
HelloworldHello World程序
IICtestI2C接口应用实例
IOtestI/O应用实例——矩阵式键盘扫描
Nandflashtest非线性Flash ROM读写应用实例
PDAtest模拟PDA应用实例
PingtestPING诊断工具应用实例
RTCtestS3C44B0X内置RTC应用实例
SDRAMtestSDRAM接口应用实例
Timertest 定时器应用实例
Touchtest触摸屏应用实例
UARTtestUART串行口应用实例
ucos_ex1μC/OSⅡ应用之一——多任务
ucos_ex2 μC/OSⅡ应用之二——任务间通讯
ucos_ex3μC/OSⅡ应用之三——中断服务程序
UDPtestUDP数据传输应用实例
USBN9603demoUSBN9603控制器的固件程序编写范例
USBtestUSB接口固件编程实例
template.apjSDT工程模板PCSoftware\\目录下包括上述实例中使用到的PC机软件或驱动程序:GUI Trial\\GUI库文件和字体转换工具
TCPLean\\运行在主机上的TCP/IP服务程序可执行文件(配合实例26~28)
USB\\运行在主机上的USB文本文件下载器(配合实例15)SCH\\目录下包括S3C44B0X处理器系统参考电路图(PDF格式)。
(4) 适合什么样的读者
本书的主要目的是向社会推广与嵌入式系统有关的知识和技术,内容编排是由浅入深的,适合不同程度的读者。入门的读者可以很快地掌握一些常用的技术并积累开发经验,专业读者则可从对某个专题实例的阅读和练习中,掌握相应的开发技术和技巧。
对本书有任何意见和建议,欢迎来信与作者联系:xujinggg120@263.net。
(5) 感谢
参加本书编写和审阅的还有周德兴、饶大立、路邀、丁立伟、郭炳予等,在此对他们的热情支持表示衷心感谢!对杭州立宇泰电子有限公司提供的优秀硬件平台支持表示感谢!
编著者
2004年8月