首 页服务网点企业文化解决方案致远电子人才招聘联系我们技术论坛网站更新通知大学老师登记 ?
 NXP 32位ARM微控制器系列
LPC2000系列ARM
LH7(原夏普)系列ARM
ARM系列开发平台
ARM嵌入式系统教学
RealView MDK开发套件
MiniARM嵌入式工控模块
ARM嵌入式工控机
邮购价(1)
 Luminary Micro半导体系列
Stellaris系列ARM
经典配套外围器件
配套开发工具
应用设计
邮购价(2)
 NXP 8位单片机系列
LPC700系列单片机
LPC700配套开发工具
LPC900系列单片机
LPC900配套开发工具
80C51系列单片机
应用设计
邮购价(3)
 Actel FPGA系列
Fusion系列
ProASIC3系列
IGLOO系列
配套开发工具
邮购价(4)
 RAMTRON半导体
FRAM铁电简介
串行FRAM
并行FRAM
处理器外围电路
Versa 8051系列MCU
状态保持器
配套开发工具
邮购价(5)
 热门外围器件系列
CAN-bus器件
USB-bus器件
I2C-bus器件
NXP UART系列器件
LCD驱动器
数码管显示与键盘管理芯片
ESD保护器件
智能卡读写芯片
智能卡读写模块(Mifare)
语音模块
电源模块(DC-DC)
邮购价(6)
 NXP 汽车电子系列
汽车网络
 CATALYST 半导体系列
复位监控器件
内置E2PROM存储器的监控电路
串行E2PROM
可编程数字电位器
LED驱动器
LDO电源管理器件
应用设计
 Exar(原Sipex)半导体系列
选型指南
DC / DC升压型稳压器
DC / DC降压型稳压器
Exar UART系列器件
LDO电源管理器件
电源Blox组件
复位监控器件
USB电源控制开关
多协议接口器件
RS232接口器件
RS485接口器件
 Keil C51软件
Keil C51软件
 嵌入式系统产品系列
逻辑分析仪
USB-bus分析仪
CAN-bus分析仪
编程器
仿真器
80C51系列开发平台
FPGA系列开发平台
 其他产品
OEM/ODM产品
邮购价(7)
 工业通讯产品系列
CAN-bus总线产品
DeveiceNet网络产品
EtherNet网络产品
无线通讯系列
 智能楼宇/ODM/OEM
Mifare读卡模块
门禁控制系统
协议转换器
门禁考勤系统
读卡器/发卡器
门禁/考勤管理系统




ARM嵌入式系统软件开发实例(二)


(点击图片可放大)
ARM嵌入式系统软件开发实例(二)
作者:周立功 等编著
定价:53元
书号:7-81077-879-X
出版日期:200606
开本:787×960 1/16开
字数:840千字
购买联系: 北航出版社  网上购书
内容简介
      本书继承《ARM嵌入式系统软件开发实例(一)》的风格,详细介绍当前几大热点嵌入式系统软件模块的原理与实现。全书分为7章,每章介绍一种模块。第1章基于ISP1160A1 USB主机控制器,介绍ZLG/Host Stack主机协议栈的原理;第2章基于ZLG/Host Stack主机协议栈,开发USB大容量类设备主机端驱动应用实例;第3章详细分析SD/MMC大容量卡读/写软件包ZLG/SD的设计思想;第4章剖析Modbus RTU/ASCII协议,并详细介绍ZLG/Modbus协议栈的原理及应用;第5章介绍嵌入式系统的引导程序核心模块ZLG/BOOT软件包的设计思想及应用实例;第6章介绍支持多芯片的K9F2808驱动程序原理及应用;第7章介绍具有写平衡算法的NAND Flash驱动程序ZLG/FFS软件包原理及应用。
本书可作为《ARM嵌入式系统基础教程》的配套参考用书,也可作为嵌入式系统开发工程师的参考资料。
前    言


    

前言

1. ARM嵌入式系统的发展趋势
       由于网络与通信技术的发展,嵌入式系统在经历了近20年的发展历程后,又进入了一个新的历史发展阶段,即从普遍的低端应用进入到一个高、低端并行发展,并且不断提升低端应用技术水平的时代,其标志是近年来32位MCU的发展。
       32位MCU的应用不会走8位机百花齐放、百余种型号系列齐上阵的道路,这是因为在8位机的低端应用中,嵌入对象与对象专业领域十分广泛而复杂;而当前32位MCU的高端应用则多集中在网络、通信和多媒体技术领域,32位MCU将会集中在少数厂家发展的少数型号系列上。
       在嵌入式系统高端应用的发展中,曾经有众多的厂家参与,很早就有许多8位嵌入式MCU厂家实施了8位、16位和32位机的发展计划。后来,8位和32位机的技术扩展侵占了16位机的发展空间。传统电子系统智能化对8位机的需求使这些厂家将主要精力放在8位机的发展上,形成了32位机发展迟迟不前的局面。当网络、通信和多媒体信息家电业兴起后,出现了嵌入式系统高端应用的市场;而在嵌入式系统的高端应用中,进行多年技术准备的ARM公司适时地推出了32位ARM系列嵌入式微处理器,以其明显的性能优势和知识产权平台扇出的运行方式,迅速形成32位机高端应用的主流地位,以至于使不少传统嵌入式系统厂家放弃了自己的32位发展计划,转而使用ARM内核来发展自己的32位MCU。甚至在嵌入式系统发展史上做出卓越贡献的Intel公司以及将单片微型计算机发展到微控制器的PHILIPS公司,在发展32位嵌入式系统时都不另起炉灶,而是转而使用ARM公司的嵌入式系统内核来发展自己的32位MCU。
       网络、通信、多媒体和信息家电时代的到来,无疑为32位嵌入式系统高端应用提供了空前巨大的发展空间;同时,也为力不从心的8位机向高端发展起到了接力作用。一般来说,嵌入式系统的高、低端应用模糊地界定为: 高端用于具有海量数据处理的网络、通信和多媒体领域,低端则用于对象系统的控制领域。然而,控制系统的网络化、智能化的发展趋势要求在这些8位机的应用中提升海量数据处理能力。当8位机无法满足这些提升要求时,便会转而求助32位机的解决办法。因此,32位机的市场需求发展由两方面所致: 一方面是高端新兴领域(网络、通信、多媒体和信息家电)的拓展;另一方面是低端控制领域应用在数据处理能力的提升要求。
       后PC时代的到来以及32位嵌入式系统的高端应用吸引了大量计算机专业人士的介入,加之嵌入式系统软/硬件技术的发展,导致了嵌入式系统应用模式的巨大变化,即使嵌入式系统应用进入到一个基于软/硬件平台、集成开发环境的应用系统开发时代,并带动了SoC技术的发展。
       在众多嵌入式系统厂家参与下,基于ARM系列处理器的应用技术会在众多领域取得突破性进展。Intel公司将ARM系列向更高端的嵌入式系统发展;而PHILIPS公司则在向高端嵌入式系统发展的同时,向低端的8位和16位机的高端应用延伸。Intel公司和PHILIPS公司的发展都体现了各自的特点,并充分发挥了各自的优势。因此,在32位嵌入式系统的应用中,ARM系列会形成ARM公司领军,众多厂家参与,计算机专业、电子技术专业以及对象专业人士共同推动的局面,形成未来32位嵌入式系统应用的主流趋势。这种集中分工的技术发展模式有利于嵌入式系统的快速发展。
       面对这种形势,近年来,嵌入式系统业界人士掀起了广泛学习嵌入式系统理论及应用开发的热潮,相关的出版物和培训班如雨后春笋不断出现。无论是原有的嵌入式系统业界人士,还是刚进入嵌入式系统的人们,都渴望了解嵌入式系统理论,掌握嵌入式系统的应用技术。高等院校面对这种形式,也迫切需要开设相应的课程。因此,为了满足高等院校嵌入式系统教学以及社会上各种培训的需要,作者结合几年来在嵌入式系统领域教学与开发的经验和特点,编写了本套《ARM嵌入式系统系列教程》。

2. 本套教程的组成
       本套教程由理论教材、实验教材和学习指导3部分(共5册)组成,且配套的所有教学实验平台都是基于PHILIPS公司的LPC2000系列ARM微控制器(基于ARM7TDMIS核心)而设计。

       理论教材
          《ARM嵌入式系统基础教程》
              ——含开放式多媒体教学课件,可自行添加或删减内容
       实验教材
          《ARM嵌入式系统实验教程(一)》
              ——含开放式多媒体实验教学课件,可自行添加或删减内容
              ——配套EasyARM2200教学实验平台
          《ARM嵌入式系统实验教程(二)》
              ——含开放式多媒体实验教学课件,可自行添加或删减内容
              ——配套SmartARM2200教学实验平台
          《ARM嵌入式系统实验教程(三)》
              ——含开放式多媒体实验教学课件,可自行添加或删减内容
              ——配套MagicARM2200教学实验平台
       辅导资料
          《ARM嵌入式系统学习指导》

       上述5本图书构成了一个完整的,可根据不同教学特点及时进行裁剪、配套的教材体系。

       除此之外,还将我们近年来在ARM嵌入式系统领域的应用开发成果编辑成两册在北京航空航天大学出版社出版。选用本套教程作为教学或培训教材的师生以及工程技术开发人员,可选用下面两本图书作为参考资料。这两本参考资料可对ARM嵌入式系统的应用开发人员提供进一步的帮助。

       参考资料
          《ARM嵌入式系统软件开发实例 (一) 》
          《ARM嵌入式系统软件开发实例 (二) 》

3. 本套教程的特点
       本套教程可面对不同教学或培训需要,并配备有相对应的教学实验平台,配有开放式多媒体教学课件,具有完整性、实践性强及便于教学等特点。
       完整性——体现在理论教材、实验教材、辅导资料及参考资料的完全配套性;
       实践性强——体现在所提供的教学实验系统是成熟且易于上手的软/硬件应用平台;
       便于教学——体现在针对不同教学要求,能方便地选择教学与实验教材的最佳组合,无论是理论教材,还是实验教材都配有多媒体教学课件。

4. 本套教程各册内容简介
       《ARM嵌入式系统基础教程》本套教程中的理论课教材。以PHILIPS公司LPC2000系列ARM微控制器为例,深入浅出地介绍嵌入式系统开发的各个方面。共分3部分: ① 理论部分: 主要介绍嵌入式系统相关的概念及开发方法; ② 基础部分: 主要介绍ARM7体系结构、指令系统及LPC2000系列ARM微控制器的结构原理; ③ 应用部分: 主要介绍如何设计嵌入式系统,包括硬件的设计、μC/OSII的移植、建立软件开发平台的方法及嵌入式系统开发平台的应用。
       《ARM嵌入式系统实验教程(一)》本套教程中的实验课教材之一。以具有丰富硬件资源的EasyARM2200教学实验平台为基础,以ADS 1.2集成开发环境、μC/OSII操作系统以及各种中间件为软件平台,搭建经济实用的ARM嵌入式系统教学实验体系。共分5章,共有47个实验例子。第1章全面介绍EasyARM2200教学实验平台的设计原理以及各种跳线、接口的使用说明。第2章重点介绍ADS 1.2集成开发环境的使用,包括建立工程、添加源文件、编译链接设置以及AXD调试操作等,并介绍LPC2200专用工程模板及EasyJTAG仿真器的安装与使用。第3章为基础实验,包含32个实验。第4章为基于μC/OSII操作系统的实验,包含6个实验。第5章为综合实验,包含9个实验。
       《ARM嵌入式系统实验教程(二)》本套教程中的实验课教材之二。以具有丰富硬件资源的SmartARM2200教学实验平台为硬件基础,使用2.2英寸TFT LCD显示屏作为人机界面,使用μC/OSII和μCLinux双操作系统、开源的MiniGUI图形用户界面等各种中间件为软件平台,搭建高性价比的ARM嵌入式系统教学实验体系,同时还非常适合构建手持便携式产品教学与开发示范平台,如掌上游戏机、PDA、POS机、手持式电度表抄表器、智能卡系列产品手持式数据录入器、酒店点菜器以及手持式测量仪器仪表等。
       《ARM嵌入式系统实验教程(三)》本套教程中的实验课教材之三。以具有丰富硬件资源的MagicARM2200为教学实验平台,使用5.2英寸STN LCD触摸显示屏作为人机界面,使用μC/OSII和μCLinux双操作系统、开源的MiniGUI图形用户界面等各种中间件为软件平台,搭建ARM嵌入式系统教学实验体系,完全覆盖了EasyARM2200 与SmartARM2200教学实验平台几乎所有的软/硬件功能模块。
       《ARM嵌入式系统学习指导》为读者提供学习指导和课外补充,答疑解惑。对本套教程中的理论教材和3本实验教材中的习题进行解答,并对理论教材中的重点和难点进行剖析,还补充了许多相关资料作为课外补充读物。两本参考资料的内容简介如下:
       《ARM嵌入式系统软件开发实例(一)》详细介绍当前几大热点ARM嵌入式系统软件模块的原理及其在ARM7上的实现。分为5章,每一章介绍一种模块。第1章介绍FAT文件系统的基础知识,以及兼容FAT12、FAT16和FAT32的文件系统模块ZLG/FS的源码分析。第2章介绍USB从模块驱动程序的设计思想及实现过程。第3章详细介绍CF卡和IDE硬盘相应的软件模块ZLG/CF的设计思想及实现过程。第4章详细介绍TCP/IP及相应的软件模块ZLG/IP的设计思想及实现过程。第5章介绍GUI的基础知识及GUI模块ZLG/GUI的设计思想及实现过程。
       《ARM嵌入式系统软件开发实例(二)》详细介绍当前几大热点ARM嵌入式系统软件模块的原理及其在ARM7上的实现。如USB1.1(ISP1181B)/HOST(ISP1160/1161)、1英寸微型1/1.5/2 GB硬盘、SD卡等软件的开发思想与源码分析。

5. 本套教程的读者对象以及如何配套选用
       本套教程适用于高等院校测控技术与仪器设计、智能化控制、电子工程、机电一体化、自动化以及计算机等专业开设嵌入式系统课程的教材,也可用作各种嵌入式系统应用开发工程技术人员的培训教材。
       各高等学校及嵌入式系统应用开发工程技术人员,可以根据自己的需求及实验室的状况配套选用本套教程。作者给出了3种基本方案供参考,学校在建立实验室时也可以组合使用。
      (1) 经济型方案
教材: 《ARM嵌入式系统基础教程》、《ARM嵌入式系统实验教程(一)》。
实验器材: 计算机、EasyJTAG仿真器、EasyARM2200教学实验平台(包含主芯片为PDIUSBD12的USB1.1 PACK)、CF卡(选件)、硬盘(选件)、SMG240128A液晶模块(选件)、WH153PA12微型热敏打印机(选件)以及其他电子实验常用设备(如万用表、面包板等)。
参考资料: 《ARM嵌入式系统学习指导》、《ARM嵌入式系统软件开发实例(一)》。
软件: ADS1.2、μC/OSII V2.52和ZLGGUI。
      (2) 高性价比方案
教材: 《ARM嵌入式系统基础教程》、《ARM嵌入式系统实验教程(二)》。
实验器材: 计算机、EasyJTAG仿真器、SmartARM2200教学实验平台(包含主芯片为PDIUSBD12的USB1.1 PACK、2.2英寸TFT LCD高清晰度彩色显示屏)、ISP1181B的USB1.1 PACK(选件)、ISP1160或ISP1161的USB HOST PACK(选件)、CF卡(选件)、SD卡(选件)、普通硬盘或1英寸微型硬盘(选件)、WH153PA12微型热敏打印机(选件)以及其他电子实验常用设备(如万用表、面包板等)。
参考资料: 《ARM嵌入式系统学习指导》、《ARM嵌入式系统软件开发实例(一)》和《ARM嵌入式系统软件开发实例(二)》。
软件: ADS1.2、GCC、μC/OSII V2.52、μClinux 2.4和MiniGUI。
      (3) 全功能型方案
教材: 《ARM嵌入式系统基础教程》、《ARM嵌入式系统实验教程(三)》。
实验器材: 计算机、EasyJTAG仿真器、MagicARM2200教学实验平台(包含主芯片为PDIUSBD12 的USB1.1 PACK、ISP1160 或ISP1161的USB HOST PACK、双路CANbus接口、5.2英寸STN LCD触摸显示屏)、ISP1181B的USB1.1 PACK(选件)、CF卡(选件)、SD卡(选件)、GPS/GPRS模块(选件)、MODEM(选件)、普通硬盘或1英寸微型硬盘(选件)、WH153PA12微型热敏打印机(选件)以及其他电子实验常用设备(如万用表、面包板等)。
参考资料: 《ARM嵌入式系统学习指导》、《ARM嵌入式系统软件开发实例(一)》、《ARM嵌入式系统软件开发实例(二)》。
软件: ADS1.2、GCC、μC/OSII V2.52、μClinux 2.4和MiniGUI。

6. 本套教程的网络辅助
       作者在其网站(www.zlgmcu.com)上将开辟“跟我学ARM”和“应用设计”等辅导专栏,帮助读者深入浅出地学习ARM嵌入式系统;并结合大学生的课程设计与毕业设计做好ARM嵌入式系统的软/硬件开发,有针对性地不断更新各种资料。读者也可在该栏目上发表应用文章,交流学习心得。我们相信,本套《ARM嵌入式系统系列教程》的出版一定会对国内32位嵌入式系统的教学与实践起到推动作用;通过这些努力,一定会使我国嵌入式系统应用提升到一个更高的水平,并推动32位嵌入式系统的普及。

       我们也真诚地欢迎广大读者给我们来信(zlg3@zlgmcu.com),将您对本套图书的意见及修改建议及时提供给我们,以便在本套图书再版时修订。我们真诚希望能够得到广大读者持续不断的支持。


       作者
       2004年10月


前 言

  本书介绍的几个软件包模块都是用于嵌入式系统之间、嵌入式系统与其他系统之间、嵌入式系统与人之间的互相沟通和数据交换。鉴于ARM核在嵌入式系统中的地位,这些模块首选在PHILIPS公司的通用ARM7微控制器LPC2200系列上调试通过,并可以很容易移植到基于其他处理器核的嵌入式系统上。
本书各个章节的内容均由各个嵌入式软件模块的编写者完成,详细地介绍了相应嵌入式软件模块的实现思想和方法。
各个章节内容安排如下:
第1章——ZLG/Host Stack主机栈设计思想。首先简单介绍USB体系的工作模式,然后详细介绍ISP1160A1芯片的特性及其应用,最后详细讲述ZLG/Host Stack主机协议栈的设计思想。
随着大量支持USB的个人电脑的普及,USB逐步成为PC机的标准接口已经是大势所趋。在嵌入式系统中,USB主机接口也成了嵌入式产品中的常用接口部件。由于USB主机协议比较复杂,因此短时间内很难在嵌入式产品中成熟地使用USB主机接口。通过ZLG/Host Stack软件包,可使您的嵌入式系统迅速支持USB主控制器接口。
第2章——大容量设备类驱动设计实例。详细介绍大容量存储类的BulkOnly和CBIOnly传输协议,并介绍UFI命令集与SCSI命令集在大容量存储类应用中兼容的几个常用命令,同时提出基于ZLG/Host Stack主机栈上大容量存储类主机端程序设计的思想及软件实现。
U盘、USB移动硬盘、MP3播放器和数码相机等设备都使用USB大容量存储类协议,通过该驱动就可以实现对以上设备进行读/写操作。U盘作为数据的载体,目前已广泛应用于嵌入式行业,而某些电子产品读/写U盘的要求在国家标准中已成了强制性的要求。在嵌入式的电子产品中,实现对U盘文件的读/写,成了许多厂家技术攻关的难题。
第3章——ZLG/SD软件包原理分析。详细介绍SD/MMC卡的外部物理接口、内部结构和卡内部寄存器,并在此基础上,深入分析SD/MMC卡SPI协议以及读/写SD/MMC卡的具体实现方法,形成ZLG/SD软件包。本软件包既可以运行于前/后台系统,也可以运行于嵌入式实时操作系统μC/OSII。
SD/MMC卡是一种容量大(最大可达4 GB)、性价比高、体积小、访问接口简单的存储卡。SD/MMC卡现在大量应用于数码相机、MP3和手机等设备,在现实生活中随处可见。在本软件包的基础上,再加上文件管理系统,便可以将SD/MMC卡当作一个“小硬盘”来使用。
第4章——ZLG/Modbus协议栈设计思想。剖析Modbus RTU/ASCII协议,并详细介绍ZLG/Modbus协议栈的原理及应用。
Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其他设备之间可以通信。它已经成为一种通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
第5章——ZLG/BOOT原理及应用。详细介绍基于ARM7的简单的BootLoader核心代码——ZLG/BOOT的原理及应用。
BootLoader程序是引导嵌入式操作系统的程序,是重要的嵌入式软件,比较难以编写。本章以ZLG/BOOT为例,介绍ARM7上BootLoader程序的核心部分,让读者了解BootLoader的思想机制。读者可以通过ZLG/BOOT构建独具特色的BootLoader程序。
第6章——K9F2808U0C驱动程序。本章以K9F2808U0C为例,介绍NAND Flash的硬件设计和驱动程序的编写。
通过分析K9F2808U0C驱动程序,详细说明硬件驱动程序与硬件配置分离的编程思想,介绍一个硬件驱动程序同时支持多个相同(或相似)器件的方法。
第7章——ZLG/FFS原理与应用。介绍基于NAND Flash文件系统的一种实现方法。
ZLG/FFS是ZLG/FS的一个驱动程序,与ZLG/FS一起可以实现基于NAND Flash的文件系统。通过分析ZLG/FFS原理,详细说明“写平衡”和“坏块管理”的一种实现方法,以解决在不可靠的存储介质上可靠存储数据的问题。
本书介绍的嵌入式软件模块均由广州致远电子有限公司资深工程师设计,并会不断地升级软件,力求软件越来越完善。
参与本书编写和工作的主要人员有陈明计、周立山、郑明远、黄绍斌、陈锡炳、甘达、叶皓贲、严寒亮、戚军、岳宪臣和朱旻等。全书由周立功负责规划、内容安排、定稿与修改。
感谢北京航空航天大学出版社的大力支持,使本书得以快速出版;感谢广大读者对《ARM嵌入式系统系列教程》的支持。
由于作者水平有限,书中难免有疏忽、不恰当,甚至错误的地方,恳请各位老师及同行指正。

       作者
       2006年1月

目    录

目录

第1章 ZLG/Host Stack主机栈设计思想
1.1 USB主机概述1
1.1.1 什么是USB1
1.1.2 USB系统构成2
1.1.3 USB主机是怎样工作的4
1.1.4 USB分组标识5
1.1.5 USB标准设备请求5
1.1.6 USB设备描述符8
1.1.7 USB设备枚举的数据传输过程11
1.2 ISP1160/ISP1161A1 USB主机控制器概述17
1.3 结构图及引脚描述18
1.3.1 ISP1160内部结构图18
1.3.2 引脚分配及描述20
1.4 功能描述24
1.5 微处理器总线接口25
1.5.1 可编程I/O(PIO)寻址模式25
1.5.2 DMA模式25
1.5.3 PIO模式下访问控制寄存器26
1.5.4 PIO模式下访问FIFO缓冲区RAM27
1.5.5 DMA模式下访问FIFO缓冲区RAM28
1.5.6 中断29
1.6 主机控制器(HC)31
1.6.1 HC的四种USB状态31
1.6.2 USB通路的产生32
1.6.3 PTD数据结构33
1.6.4 HC内部FIFO缓冲区RAM结构36
1.6.5 HC操作模式42
1.6.6 微处理器的装载44
1.6.7 下行口的内部下拉电阻44
1.6.8 过流检测及电源开关控制45
1.6.9 挂起与唤醒48
1.7 HC寄存器49
1.7.1 HcRevision寄存器51
1.7.2 HcControl寄存器51
1.7.3 HcCommandStatus寄存器53
1.7.4 HcInterruptStatus寄存器54
1.7.5 HcInterruptEnalbe寄存器56
1.7.6 HcInterruptDisalbe寄存器57
1.7.7 HcFmInterval寄存器58
1.7.8 HcFmRemaining寄存器59
1.7.9 HcFmNumber寄存器60
1.7.10 HcLSThreshold寄存器61
1.7.11 HcRhDescriptorA寄存器63
1.7.12 HcRhDescriptorB寄存器64
1.7.13 HcRhStatus寄存器66
1.7.14HcRhPortStatus\[1∶2\]寄存器67
1.7.15 HcHardwareConfiguration寄存器71
1.7.16 HcDMAConfiguration寄存器72
1.7.17 HcTransferCounter寄存器72
1.7.18 HcμPInterrupt寄存器73
1.7.19 HcμPInterruptEnable寄存器74
1.7.20 HcChipID寄存器75
1.7.21 HcScratch寄存器76
1.7.22 HcSoftwareReset寄存器77
1.7.23 HcITLBufferLength寄存器77
1.7.24 HcATLBufferLength寄存器78
1.7.25 HcBufferStatus寄存器79
1.7.26 HcReadBackITL0Length寄存器79
1.7.27 HcReadBackITL1Length寄存器80
1.7.28 HcITLBufferPort寄存器81
1.7.29 HcATLBufferPort寄存器82
1.8 HCD主机驱动设计概述83
1.8.1 ISP1160软件模型83
1.8.2 ISP1160硬件模型84
1.9 USB主机端软件结构84
1.10 操作ISP1160的主机控制器86
1.10.1 软件访问硬件组件86
1.10.2 HC控制和状态寄存器86
1.10.3 典型硬件初始化次序92
1.11 主机控制驱动程序操作流程103
1.11.1 访问ATL缓冲区103
1.11.2 访问ITL缓冲区106
1.11.3 设置PTD以供传输106
1.12 数据结构总览108
1.12.1 设备描述信息结构体109
1.12.2 端点描述信息结构体110
1.12.3 传输描述符结构体111
1.13 主机控制器驱动程序115
1.13.1 前台操作115
1.13.2 后台操作124
1.13.3 中断服务程序140
1.14 USB驱动程序144
1.14.1 设备枚举144
1.14.2 设备移除157
1.14.3 数据传输160
1.14.4 类设备管理166
1.15 USB主机任务173
1.16 用户使用API函数181
1.16.1 USB Host Stack初始化181
1.16.2 查找函数182
1.16.3 数据传输函数186
1.16.4 扩展函数192
第2章 大容量设备类驱动设计实例
2.1 大容量存储类概述195
2.2 驱动模型概述197
2.2.1 使用数据结构197
2.2.2 大容量设备初始化199
2.2.3 删除大容量设备208
2.2.4 大容量类命令块处理210
2.2.5 命令API函数211
2.3 BulkOnly传输220
2.3.1 单批量BulkOnly传输协议220
2.3.2 标准描述符222
2.3.3 命令/数据/状态协议226
2.3.4 主机/设备数据传输229
2.4 单批量传输的软件实现231
2.4.1 软件操作流程231
2.4.2 大容量协议类请求232
2.4.3 单批量命令块处理234
2.4.4 复位恢复240
2.5 CBIOnly传输241
2.5.1 CBI协议概述241
2.5.2 CBI功能特性242
2.5.3 标准请求247
2.5.4 设备类请求252
2.6 CBI传输的软件实现254
2.7 UFI指令介绍与软件实现256
2.7.1 UFI子类命令257
2.7.2 UFI子类命令块的结构258
2.7.3 查询命令258
2.7.4 读命令261
2.7.5 读容量命令263
2.7.6 写命令265
2.7.7 请求判别命令267
2.7.8 判别数据269
2.8 大容量驱动用户手册272
2.8.1 初始化配置272
2.8.2 API函数272
第3章 ZLG/SD软件包原理分析
3.1 SD/MMC卡的外部物理接口275
3.1.1 SD模式276
3.1.2 SPI模式277
3.1.3 卡信号时序279
3.2 SD/MMC卡的内部结构279
3.2.1 SD/MMC卡存储器阵列的划分280
3.2.2 SD/MMC卡相关寄存器281
3.3 访问SD/MMC卡的硬件电路设计294
3.3.1 SPI总线296
3.3.2 卡供电控制296
3.3.3 卡检测电路296
3.4 ZLG/SD软件包总体设计思想296
3.4.1 设计目标297
3.4.2 软件包整体设计思想297
3.5 SD/MMC卡读/写软件包配置头文件298
3.6 SD/MMC读/写软件包硬件抽象层的实现300
3.6.1 SD/MMC卡电源控制300
3.6.2 初始化访问卡的硬件条件301
3.6.3 设置SPI接口的时钟频率303
3.6.4 用SPI接口发送1字节303
3.6.5 从SPI接口接收1字节304
3.6.6 CS信号304
3.6.7 卡完全插入卡座与卡写保护检测305
3.7 SPI总线协议及SD/MMC卡命令层的实现305
3.7.1 SPI总线协议305
3.7.2 SPI总线协议命令集309
3.7.3 SPI总线命令与应答的实现313
3.8 SD/MMC卡读/写软件包应用层的实现318
3.8.1 卡初始化318
3.8.2 获取SD/MMC卡的相关信息322
3.8.3 SD/MMC卡的读操作328
3.8.4 SD/MMC卡的写操作335
3.8.5 等待忙函数343
3.8.6 SD/MMC卡的其他操作344
3.9 SD/MMC卡读/写软件包的结构说明347
3.9.1 SD/MMC卡读/写软件包的硬件配置347
3.9.2 SD/MMC卡读/写软件包提供的API函数347


第4章 ZLG/Modbus协议栈设计思想
4.1 Modbus协议概述351
4.1.1 协议描述352
4.1.2 数据编码354
4.1.3 Modbus数据模式354
4.1.4 Modbus寻址模式355
4.1.5 Modbus事务处理的定义356
4.2 数据链路层357
4.2.1 Modbus主/从原则357
4.2.2 Modbus编址规则358
4.2.3 Modbus帧描述358
4.2.4 主站/从站状态图358
4.2.5 主/从通信时序图360
4.3 ZLG/Modbus协议栈设计思想361
4.3.1 Modbus数据链路层361
4.3.2 主站协议栈363
4.3.3 从站协议栈373
4.4 两种串行传输模式377
4.4.1 RTU传输模式378
4.4.2 RTU模式数据链路软件实现383
4.4.3 ASCII传输模式387
4.4.4 ASCII模式数据链路软件实现391
4.5 指令系统395
4.5.1 功能码分类395
4.5.2 Modbus协议栈功能代码处理397
4.5.3 0x01读取线圈状态399
4.5.4 0x02读取输入状态404
4.5.5 0x03读保持寄存器409
4.5.6 0x04读取输入寄存器413
4.5.7 0x05写单个线圈417
4.5.8 0x06写单个寄存器421
4.5.9 0x15写多个线圈425
4.5.10 0x16写多寄存器430
4.5.11 0x16屏蔽写寄存器434
4.5.12 0x17读/写多寄存器438
4.5.13 其他功能代码443
第5章 ZLG/BOOT原理及应用
5.1 概述444
5.1.1 什么是ZLG/BOOT444
5.1.2 ZLG/BOOT的特点444
5.2 启动配置文件的编写445
5.3 命令445
5.3.1 格式及注意点445
5.3.2 load命令446
5.3.3 set命令446
5.3.4 sfr命令448
5.3.5 run命令449
5.4 ZLG/BOOT调用的外部函数与配置选项449
5.5 使用范例——BootLoader for SmartARM2200的使用450
5.5.1 简介450
5.5.2 特点450
5.5.3 目录结构451
5.5.4 默认IP设置451
5.5.5 修改用户IP设置451
5.5.6 使用此BootLoader引导μClinux452
5.6 使用范例——BootLoader for SmartARM2200的实现458
5.6.1 main()函数458
5.6.2 用户主任务459
5.6.3 人机界面461
5.7 ZLG/BOOT原理466
5.7.1 函数列表466
5.7.2 总流程图466
5.7.3 数据结构468
5.7.4 Boot()472
5.7.5 Readline()475
5.7.6 Cmdload()476
5.7.7 CmdSfr(),CmdSfrh()和CmdSfrb()478
5.7.8 CmdRun()479
5.7.9 CmdSet()480
5.7.10 Start_Boot481
第6章 K9F2808U0C驱动程序
6.1 K9F2808芯片介绍483
6.1.1 引脚描述483
6.1.2 功能框图和阵列结构图485
6.1.3 操作486
6.1.4 K9F2808U0C指针操作487
6.1.5 页面读操作488
6.1.6 页面编程489
6.1.7 块擦除490
6.1.8 读状态490
6.1.9 读ID491
6.1.10 复位492
6.1.11 NAND Flash技术注意事项492
6.2 硬件连接494
6.3 驱动程序的编写495
6.3.1 编写规划495
6.3.2 数据结构495
6.3.3 函数列表496
6.3.4 使用范例499
6.3.5 K9fxx08ReadID()500
6.3.6 K9fxx08ReadStatus()501
6.3.7 K9fxx08SectorRead()502
6.3.8 K9fxx08SectCRead()504
6.3.9 K9fxx08SectorProgram()505
6.3.10 K9fxx08SectorCProgram()507
6.3.11 K9fxx08BlockErase()509
6.3.12 K9fxx08SecCopy()510
6.3.13 K9fxx08BlockCheck()510
6.3.14 K9fxx08SectorCheck()511
6.3.15 K9fxx08SectCCheck()513
第7章 ZLG/FFS原理与应用
7.1 ZLG/FS概述515
7.1.1 ZLG/FS的特点515
7.1.2 已实现的特性516
7.1.3 暂时未实现的特性516
7.2 ZLG/FFS概述516
7.3 ZLG/FS v1.10驱动程序编写规范517
7.3.1 驱动程序模板517
7.3.2 关于config.h521
7.3.3 参数521
7.3.4 逻辑盘初始化523
7.3.5 卸载逻辑盘523
7.3.6 读扇区523
7.3.7 写扇区524
7.3.8 获取驱动程序接口版本号524
7.3.9 检测命令是否存在524
7.3.10 低级格式化524
7.3.11 释放扇区524
7.3.12 获得设备总扇区数525
7.3.13 获得每扇区字节数525
7.3.14 查看介质是否改变525
7.3.15 获取每块扇区数525
7.3.16 读数据块525
7.3.17 写数据块526
7.4Z LG/FFS的外部接口526
7.4.1 保存ZLG/FFS硬件信息的结构体变量526
7.4.2 ZLG/FFS v1.00驱动程序编程规范527
7.4.3 硬件驱动之K9F2808U0C530
7.4.4 在ZLG/FS v1.10中使用ZLG/FFS531
7.5 ZLG/FFS物理盘存储结构532
7.5.1 物理盘数据结构图532
7.5.2 系统标志域数据结构533
7.5.3 物理盘坏块表534
7.5.4 物理扇区备用数据存储区数据结构535
7.6 ZLG/FFS原理与源码分析536
7.6.1 坏块管理536
7.6.2 把逻辑扇区映射到物理扇区537
7.6.3 写平衡的实现538
7.6.4 擦除物理块541
7.6.5 ZLG/FFS主函数544
7.6.6 DISK_INIT请求547
7.6.7 卸载逻辑盘555
7.6.8 读扇区555
7.6.9 写扇区557
7.6.10 低级格式化571
7.6.11 释放扇区577
7.6.12 获得设备总扇区数580
7.6.13 其他请求580
参考文献582

 
 
    首 页 | 公司介绍 | 服务网点 | 解决方案 | 人才招聘 | 致远电子 | 客户服务 | 联系我们
版权所有 © 广州周立功单片机发展有限公司