虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

管理<b>信息</b>

  • 驱动程序与应用程序的接口

    有两种方式可以让设备和应用程序之间联系:1. 通过为设备创建的一个符号链;2. 通过输出到一个接口WDM驱动程序建议使用输出到一个接口而不推荐使用创建符号链的方法。这个接口保证PDO的安全,也保证安全地创建一个惟一的、独立于语言的访问设备的方法。一个应用程序使用Win32APIs来调用设备。在某个Win32 APIs和设备对象的分发函数之间存在一个映射关系。获得对设备对象访问的第一步就是打开一个设备对象的句柄。 用符号链打开一个设备的句柄为了打开一个设备,应用程序需要使用CreateFile。如果该设备有一个符号链出口,应用程序可以用下面这个例子的形式打开句柄:hDevice = CreateFile("\\\\.\\OMNIPORT3",  GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ,  NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ,NULL);文件路径名的前缀“\\.\”告诉系统本调用希望打开一个设备。这个设备必须有一个符号链,以便应用程序能够打开它。有关细节查看有关Kdevice和CreateLink的内容。在上述调用中第一个参数中前缀后的部分就是这个符号链的名字。注意:CreatFile中的第一个参数不是Windows 98/2000中驱动程序(.sys文件)的路径。是到设备对象的符号链。如果使用DriverWizard产生驱动程序,它通常使用类KunitizedName来构成设备的符号链。这意味着符号链名有一个附加的数字,通常是0。例如:如果链接名称的主干是L“TestDevice”那么在CreateFile中的串就该是“\\\\.\\TestDevice0”。如果应用程序需要被覆盖的I/O,第六个参数(Flags)必须或上FILE_FLAG_OVERLAPPED。 使用一个输出接口打开句柄用这种方式打开一个句柄会稍微麻烦一些。DriverWorks库提供两个助手类来使获得对该接口的访问容易一些,这两个类是CDeviceInterface, 和 CdeviceInterfaceClass。CdeviceInterfaceClass类封装了一个设备信息集,该信息集包含了特殊类中的所有设备接口信息。应用程序能有用CdeviceInterfaceClass类的一个实例来获得一个或更多的CdeviceInterface类的实例。CdeviceInterface类是一个单一设备接口的抽象。它的成员函数DevicePath()返回一个路径名的指针,该指针可以在CreateFile中使用来打开设备。下面用一个小例子来显示这些类最基本的使用方法:extern GUID TestGuid;HANDLE OpenByInterface(  GUID* pClassGuid,  DWORD instance,  PDWORD pError){  CDeviceInterfaceClass DevClass(pClassGuid, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  CDeviceInterface DevInterface(&DevClass, instance, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  cout << "The device path is "    << DevInterface.DevicePath()    << endl;   HANDLE hDev;  hDev = CreateFile(   DevInterface.DevicePath(),    GENERIC_READ | GENERIC_WRITE,    FILE_SHARE_READ | FILE_SHARE_WRITE,    NULL,    OPEN_EXISTING,    FILE_ATTRIBUTE_NORMAL,    NULL  );  if (hDev == INVALID_HANDLE_VALUE)    *pError = GetLastError();  return hDev;} 在设备中执行I/O操作一旦应用程序获得一个有效的设备句柄,它就能使用Win32 APIs来产生到设备对象的IRPs。下面的表显示了这种对应关系。Win32 API  DRIVER_FUNCTION_xxxIRP_MJ_xxx  KDevice subclass member function CreateFile  CREATE  Create ReadFile  READ  Read WriteFile  WRITE  Write DeviceIoControl  DEVICE_CONTROL  DeviceControl CloseHandle  CLOSECLEANUP  CloseCleanUp 需要解释一下设备类成员的Close和CleanUp:CreateFile使内核为设备创建一个新的文件对象。这使得多个句柄可以映射同一个文件对象。当这个文件对象的最后一个用户级句柄被撤销后,I/O管理器调用CleanUp。当没有任何用户级和核心级的对文件对象的访问的时候,I/O管理器调用Close。如果被打开的设备不支持指定的功能,则调用相应的Win32将引起错误(无效功能)。以前为Windows95编写的VxD的应用程序代码中可能会在打开设备的时候使用FILE_FLAG_DELETE_ON_CLOSE属性。在Windows NT/2000中,建议不要使用这个属性,因为它将导致没有特权的用户企图打开这个设备,这是不可能成功的。I/O管理器将ReadFile和WriteFile的buff参数转换成IRP域的方法依赖于设备对象的属性。当设备设置DO_DIRECT_IO标志,I/O管理器将buff锁住在存储器中,并且创建了一个存储在IRP中的MDL域。一个设备可以通过调用Kirp::Mdl来存取MDL。当设备设置DO_BUFFERED_IO标志,设备对象分别通过KIrp::BufferedReadDest或 KIrp::BufferedWriteSource为读或写操作获得buff地址。当设备不设置DO_BUFFERED_IO标志也不设置DO_DIRECT_IO,内核设置IRP 的UserBuffer域来对应ReadFile或WriteFile中的buff参数。然而,存储区并没有被锁住而且地址只对调用进程有效。驱动程序可以使用KIrp::UserBuffer来存取IRP域。对于DeviceIoControl调用,buffer参数的转换依赖于特殊的I/O控制代码,它不在设备对象的特性中。宏CTL_CODE(在winioctl.h中定义)用来构造控制代码。这个宏的其中一个参数指明缓冲方法是METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, 或METHOD_NEITHER。下面的表显示了这些方法和与之对应的能获得输入缓冲与输出缓冲的KIrp中的成员函数:Method  Input Buffer Parameter  Output Buffer Parameter METHOD_BUFFERED  KIrp::IoctlBuffer KIrp::IoctlBuffer METHOD_IN_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_OUT_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_NEITHER  KIrp::IoctlType3InputBuffer KIrp::UserBuffer 如果控制代码指明METHOD_BUFFERED,系统分配一个单一的缓冲来作为输入与输出。驱动程序必须在向输出缓冲放数据之前拷贝输入数据。驱动程序通过调用KIrp::IoctlBuffer获得缓冲地址。在完成时,I/O管理器从系统缓冲拷贝数据到提供给Ring 3级调用者使用的缓冲中。驱动程序必须在结束前存储拷贝到IRP的Information成员中的数据个数。如果控制代码不指明METHOD_IN_DIRECT或METHOD_OUT_DIRECT,则DeviceIoControl的参数呈现不同的含义。参数InputBuffer被拷贝到一个系统缓冲,这个缓冲驱动程序可以通过调用KIrp::IoctlBuffer。参数OutputBuffer被映射到KMemory对象,驱动程序对这个对象的访问通过调用KIrp::Mdl来实现。对于METHOD_OUT_DIRECT,调用者必须有对缓冲的写访问权限。注意,对METHOD_NEITHER,内核只提供虚拟地址;它不会做映射来配置缓冲。虚拟地址只对调用进程有效。这里是一个用METHOD_BUFFERED的例子:首先,使用宏CTL_CODE来定义一个IOCTL代码:#define IOCTL_MYDEV_GET_FIRMWARE_REV \CTL_CODE (FILE_DEVICE_UNKNOWN,0,METHOD_BUFFERED,FILE_ANY_ACCESS)现在使用一个DeviceIoControl调用:BOOLEAN b;CHAR FirmwareRev[60];ULONG FirmwareRevSize;b = DeviceIoControl(hDevice, IOCTL_MYDEV_GET_VERSION_STRING,  NULL, // no input  注意,这里放的是包含有执行操作命令的字符串指针  0, FirmwareRev,      //这里是output串指针,存放从驱动程序中返回的字符串。sizeof(FirmwareRev),& FirmwareRevSize,  NULL // not overlapped I/O );如果输出缓冲足够大,设备拷贝串到里面并将拷贝的资结束设置到FirmwareRevSize中。在驱动程序中,代码看起来如下所示:const char* FIRMWARE_REV = "FW 16.33 v5";NTSTATUS MyDevice::DeviceControl( KIrp I ){  ULONG fwLength=0;  switch ( I.IoctlCode() )  {    case IOCTL_MYDEV_GET_FIRMWARE_REV:      fwLength = strlen(FIRMWARE_REV)+1;      if (I.IoctlOutputBufferSize() >= fwLength)      {        strcpy((PCHAR)I.IoctlBuffer(),FIRMWARE_REV);        I.Information() = fwLength;         return I.Complete(STATUS_SUCCESS);      }      else      {              }    case . . .   } }

    标签: 驱动程序 应用程序 接口

    上传时间: 2013-10-17

    上传用户:gai928943

  • 单片机应用技术选编9

    单片机应用技术选编(9) 目录 第一章 专题论述1.1 集成电路进入片上系统时代(2)1.2 系统集成芯片综述(10)1.3 Java嵌入技术综述(18)1.4 Java的线程机制(23)1.5 嵌入式系统中的JTAG接口编程技术(29)1.6 EPAC器件技术概述及应用(37)1.7 VHDL设计中电路简化问题的探讨(42)1.8 8031芯片主要模块的VHDL描述与仿真(48)1.9 ISP技术在数字系统设计中的应用(59)1.10 单片机单总线技术(64)1.11 智能信息载体iButton及其应用(70)1.12 基于单片机的高新技术产品加密方法探讨(76)1.13 新一代私钥加密标准AES进展与评述(80)1.14 基于单片机的实时3DES加密算法的实现(86)1.15 ATA接口技术(90)1.16 基于IDE硬盘的高速数据存储器研究(98)1.17 模拟比较器的应用(102) 第二章 综合应用技术2.1 闪速存储器硬件接口和程序设计中的关键技术(126)2.2 51单片机节电模式的应用(131)2.3 分布式实时应用的两个重要问题(137)2.4 分布式运算单元的原理及其实现方法(141)2.5 用PLD器件设计逻辑电路时的竞争冒险现象(147)2.6 IRIG?B格式时间码解码接口卡电路设计(150)2.7 一种基于单片机时频信号处理的实用方法(155)2.8 射频接收系统晶体振荡电路的设计与分析(161)2.9 揭开ΣΔ ADC的神秘面纱(166)2.10 过采样高阶A/D转换器的硬件实现(172)2.11 A/D转换的计算与编程(176)2.12 一种提高单片机内嵌式A/D分辨力的方法(179)2.13 单片微型计算机多字节浮点快速相对移位法开平方运算的实现(182)2.14 单片微型计算机多字节浮点除法快速扫描运算的实现(186)2.15 DSP芯片与触摸屏的接口控制(188)第三章 操作系统与软件技术3.1 嵌入式系统中的实时操作系统(192)3.2 嵌入式系统的开发利器——Windows CE操作系统(197)3.3 介绍一种实时操作系统DSP/BIOS(203)3.4 实时操作系统用于嵌入式应用系统的设计(212)3.5 实时Linux操作系统初探(217)3.6 Linux网络设备驱动程序分析与设计(223)3.7 在51系列单片机上实现非抢先式消息驱动机制的RTOS(229)3.8 用结构化程序设计思想指导汇编语言开发(236)3.9 单片机高级语言C51与汇编语言ASM51的通用接口(240)3.10 ASM51无参数化调用C51函数的实现(245)3.11 TMS320C3X的汇编语言和C语言及混合编程技术(249)3.12 TMS320C6000嵌入式系统优化编程的研究(254)3.13 TMS320C54X软件模拟实现UART技术(260)3.14 W78E516及其在系统编程的实现(265)3.15 键盘键入信号软件处理方法探讨(272)3.16 单片机系统中数字滤波的算法(276)第四章 网络、通信与数据传送 4.1 实时单片机通信网络中的内存管理(284)4.2 CRC16编码在单片机数据传输系统中的实现(288)4.3 在VC++中用ActiveX控件实现与单片机的串行通信(293)4.4 利用Windows API函数构造C++类实现串行通信(298)4.5 用Win32 API实现PC机与多单片机的串行通信(304)4.6 GPS接收机与PC机串行通信技术的开发与应用(311)4.7 TCP/IP协议问题透析(316)4.8 单片机的MODEM通信(328)4.9 无线串行接口电路设计(335)4.10 通用无线数据传输电路设计(340)4.11 FX909在无线高速MODEM中的应用(343)4.12 蓝牙——短距离无线连接新技术(348)4.13 蓝牙技术——一种短距离的无线连接技术(351)4.14 蓝牙芯片及其应用(357)4.15 BlueCoreTM01蓝牙芯片的特性与应用(361)4.16 内嵌微控制器的无线数据发射器的特性及应用(365)第五章 新器件及其应用技术5.1 一种全新结构的微控制器——Triscend E5(372)5.2 PSD8XXF的在系统编程技术(376)5.3 PSD813F1及其接口编程技术(382)5.4 一种优越的可编程逻辑器件——ISP器件(387)5.5 ISPPLD原理及其设计应用(393)5.6 ispPAC10在系统可编程模拟电路及其应用(397)5.7 在系统可编程器件ispPAC80及其应用(404)5.8 采用ispLSI1016设计高精度光电码盘计数器(408)5.9 基于ADμC812的一种仪表开发平台(413)5.10 基于P87LPC764的ΣΔ ADC应用设计方法(418)5.11 MP3解码芯片组及其应用(431)5.12 射频IC卡E5550原理及应用(434)5.13 HD7279A键盘显示驱动芯片及应用(439)5.14 基于SPI接口的ISD4104系列语音录放芯片及其应用(444)5.15 解决DS1820通信误码问题的方法(450)5.16 数字电位器在测量放大器中的应用(455)第六章 总线及其应用技术6.1 按平台模式设计的虚拟I2C总线软件包VIIC(462)6.2 虚拟I2C总线软件包的开发及其应用(470)6.3 RS485总线的理论与实践(479)6.4 RS232至RS485/RS422接口的智能转换器(484)6.5 实用隔离型RS485通信接口的设计(489)6.6 几种RS485接口收发方向转换方法(495)6.7 LonWorks总线技术及发展(498)6.8 LonWorks网络监控的简单实现(505)6.9 现场总线CANbus与RS485之间透明转换的实现(509)6.10 居室自动化系统中的X10和CE总线(513)6.11 通用串行总线USB(519)6.12 USB2.0技术概述(524)6.13 带通用串行总线USB接口的单片机EZUSB(530)6.14 嵌入式处理器中的慢总线技术应用(536)6.15 SPI串行总线在单片机8031应用系统中的设计与实现(540)第七章 可靠性及安全性技术7.1 软件可靠性及其评估(546)7.2 网络通信中的基本安全技术(554)7.3 数字语音混沌保密通信系统及硬件实现(560)7.4 伪随机序列及PLD实现在程序和系统加密中的应用(565)7.5 增强单片机系统可靠性的若干措施(569)7.6 FPGA中的空间辐射效应及加固技术(573)7.7 一种双机备份系统的软实现(577)7.8 计算机系统容错技术的应用(581)7.9 容错系统中的自校验技术及实现方法(585)7.10 基于MAX110的容错数据采集系统的设计(589)7.11 冗余式时钟源电路(593)7.12 微机控制系统的抗干扰技术应用(599)7.13 单片开关电源瞬态干扰及音频噪声抑制技术(604)7.14 单片机应用系统程序运行出轨问题研究(608)7.15 分布式系统故障卷回恢复技术研究与实践(613)第八章 典型应用实例8.1 基于单片机系统采用DMA块传输方式实现高速数据采集(620)8.2 GPS数据采集卡的设计(624)8.3 一种新型非接触式IC卡识别系统研究(629)8.4 自适应调整增益的单片机数据采集系统(633)8.5 利用光纤发射/接收器对实现远距离高速数据采集(639)8.6 一种频率编码键盘的设计与实现(645)8.7 高准确度时钟程序算法(649)8.8 旋转编码器的抗抖动计数电路(652)8.9 利用X9241实现高分辨率数控电位器(656)8.10 基于AD2S80A的高精度位置检测系统及其在机器人控制中的应用(661)第九章 文章摘要一、专题论述(670)1.1 微控制器的发展趋势(670)1.2 系统微集成技术的发展(670)1.3 多芯片组件技术及其应用(671)1.4 MCS51和80C51系列单片机(671)1.5 PSD813器件在单片机系统中的应用(671)1.6 主辅单片机系统的设计及应用(671)1.7 一种双单片机结构的微机控制器(671)1.8 用PC机直接开发单片机系统(672)1.9 单片机系统大容量存储器扩展技术(672)1.10 高性能微处理器性能模型设计(672)1.11 闪速存储器的选择与接口(672)1.12 串行存储器接口的比较及选择(672)1.13 移位寄存器分析方法的研究(673)1.14 GPS的时频系统(673)1.15 一种基于C语言的虚拟仪器系统实现方法(673)1.16 智能家庭网络研究综述(673)1.17 用C51实现电力部多功能电能表通信规约(674)1.18 测控系统中采样数据的预处理(674)1.19 数据采集系统动态特性的总体评价(674)1.20 一个高速准确的手写数字识别系统(674)1.21 日本理光实时时钟集成电路发展历史及现状(675)1.22 单片开关电源的发展及其应用(675)二、综合应用技术(676)2.1 MCS51系列单片机在SDH系统中的应用(676)2.2 公共闪存接口在Flash Memory程序设计中的应用(676)2.3 应用IA MMXTM技术的离散余弦变换(676)2.4 串行实时时钟芯片DS1302程序设计中的问题与对策(676)2.5 数字传感器及其应用(677)2.6 电阻式温度传感器的系列化设计及其应用(677)2.7 温度传感器及其与微处理器接口(677)2.8 AD7416数字温度传感器及其应用(677)2.9 隔离放大器及其应用(677)2.10 高速A/D转换器动态参数(678)2.11 V/F变换在单片机系统中的应用(678)2.12 微处理器内嵌式模数转换器在精密仪器中的应用研究(678)2.13 电子秤非线性自动修正方法(678)2.14 光耦传输的非线性校正(678)2.15 高斯滤波器在实时系统中的快速实现(679)2.16 用在系统可编程模拟器件实现双二阶型滤波器(679)2.17 最小二乘法在高精度温度测量中的应用(679)2.18 提高实时频率测量范围和精度新方法(679)2.19 具有微控制器的智能仪表设计与应用(679)2.20 用C语言编程的数据采集系统(680)2.21 大动态范围浮点A/D数据采集器的设计(680)2.22 基于PCI高速数据采集系统(680)2.23 一种基于PC机的高速16位并行数据采集接口(680)2.24 数据采集系统中增强型并行接口(EPP)电路的设计(681)2.25 用增强型并行接口EPP协议扩展计算机的ISA接口(681)2.26 基于增强型并行接口EPP的便携式高速数据采集系统(681)2.27 增强型并行接口EPP协议及其在CAN监控节点中的应用(681)2.28 利用增强型并行接口协议传输图像文件(681)2.29 用并行接口进行数据采集(682)2.30 高信噪比的VFC/DPLL数据采集装置(682)2.31 高精度数字式转速测量系统的研究(682)2.32 用单片机测量相位差的新方法(682)2.33 交流采样在电力系统中应用(682)2.34 同步图形存储器IS42G32256的电源与应用(683)2.35 IBM?PC处理10MHz高速模拟信号的研究(683)2.36 MCS51系列单片机存储容量扩展方法(683)2.37 用单片机实现数字相位变换器的设计方法(683)2.38 一种新的可重配置的串口扩展方案(683)2.39 VB环境下对双端口RAM物理读写的实现(684)2.40 双CPU实现远程多键盘鼠标交互(684)2.41 两种电阻时间变换器设计与分析(684)2.42 液晶显示器的接口和编程技巧(684)2.43 一种简单的电机变频调速方案及其应用(684)2.44 基于单片机的火控系统符号产生器电路原理设计(685)2.45 A/D转换器性能的改善方法(685)2.46 快速小波变换算法与信噪分离(685)2.47 80C196MC/MD单片机多个中断程序的同步问题(685)三、操作系统及软件技术(686)3.1 嵌入式软件技术的现状与发展动向(686)3.2 什么是嵌入式实时操作系统(686)3.3 实时多任务系统中的一些基本概念(686)3.4 一个源码公开的实时内核(687)3.5 Windows CE的实时性分析(687)3.6 串口通信多线程实现的分析(687)3.7 基于中间件的开发研究(688)3.8 Windows 95下实时控制软件设计的研究(688)3.9 Windows NT 4.0下设备驱动程序的开发与应用(688)3.10 Windows 98 下硬件中断驱动程序的开发(688)3.11 Windows下实时数据采集的实现(688)3.12 Win 95 下虚拟设备驱动程序设计开发(689)3.13 Win 95 环境下测控软件中端口读写的快速实现(689)3.14 Linux系统中ARP的编程实现技术(689)3.15 Linux中System V进程通信机制及访问控制技术的改进(689)3.16 VC++6.0中动态创建MSComm控件的问题及对策(689)3.17 在Visual Basic下使用I/O接口程序(690)3.18 VB应用程序速度的优化技术(690)3.19 嵌入式实时操作系统在机车微机测控软件开发中的应用(690)3.20 结构化程序方法在汇编语言中的应用(690)3.21 AVR单片机编程特性的应用研究(690)3.22 一种有效的51系列单片机软件仿真器(691)3.23 PIC单片机软件模拟仿真时输入信号的激励方式(691)3.24 基于LabVIEW的分布式VXI仪器教学实验系统设计(691)四、网络、通信及数据传输(692)4.1 单片机网络的组成与控制(692)4.2 实现ARINC 429数字信息传输的方案设计(692)4.3 结合电力线载波和电话通信的报警网络系统(692)4.4 网络电子密码锁监控系统的设计与实现(692)4.5 IRIG?E标准FM?FM解调器的有关技术(693)4.6 基于TCP/IP的多媒体通信实现(693)4.7 基于TCP/IP的多线程通信及其在远程监控系统中的应用(693)4.8 基于Internet的远程测控技术(693)4.9 Windows 95串行通信的几种方式及编程(693)4.10 在Windows 95下PC机和单片机的串行通信(693)4.11 基于80C196KC微处理器的高速串行通信(694)4.12 使用PC机并行口与下位单片机通信的方法(694)4.13 双向并口通信的开发(694)4.14 DSP和计算机并口的高速数据通信(694)4.15 一种高可靠性的PC机与单片机间的串行通信方法(694)4.16 单片机与PC机串行通信的实现方法(695)4.17 89C51单片机I/O口模拟串行通信的实现方法(695)4.18 TMS320C50与PC机高速串行通信的实现(695)4.19 DSP和PC机的异步串行通信设计(695)4.20 基于MCS单片机与PC机串行通信电平转换(695)4.21 一种简单的光电隔离RS232电平转换接口设计(695)4.22 ISA总线工业控制机与单片机系统的数据交换(696)4.23 RS232/422/485综合接口(696)4.24 基于RS485接口的单片机串行通信(696)4.25 在VC++中利用ActiveX控件开发串行通信程序(696)4.26 上位机和多台下位机的485通信(696)4.27 计算机与CAN通信的一种方法(697)4.28 用VB语言实现对端口I/O的访问(697)4.29 异种单片机共享片外存储器及其与微机通信的方法(697)4.30 单片机与MODEM接口技术及其在智能仪器中的应用研究(697)4.31 采用MCS51单片机实现CPFSK调制(697)4.32 一种新型编码芯片及其驱动程序的设计方案(698)4.33 DTMF远程通信的软硬件实现技术(698)4.34 采用DTMF方式通信的电度表管理系统(698)4.35 基于TAPI的电话语音系统设计方法(698)4.36 语音芯片APR9600及其在电话遥控系统中的应用(699)4.37 串行红外收发模块及其控制器在红外抄表系统中的应用(699)4.38 HSP50214B PDC及其在软件无线电中的应用(699)4.39 变速率CDMA系统软件无线电多用户接收机(699)五、新器件及应用技术(700)5.1 全帧读出型面阵CCD光电传感器在图像采集中的应用(700)5.2 光电码盘四倍频分析(700)5.3 H8/300H系列单片机及其应用(700)5.4 PIC 16F877单片机的键盘和LED数码显示接口(700)5.5 PIC16F877单片机实现D/A转换的两种方法(701)5.6 P89C51RX2 的PCA原理及设计(701)5.7 ADμC812中串口及其应用(701)5.8 INTEL96系列单片机中若干问题的讨论(701)5.9 关于INTEL96系列单片机中HSO事件的设置(701)5.10 MAX3100与PIC16C5X系列单片机的接口设计(702)5.11 单片MODEM芯片在远程数据通信中的应用(702)5.12 MX919在无线高速MODEM中的应用(702)5.13 高速串行数据收发器CY7B923/933及应用(702)5.14 双口RAM与FIFO芯片在数据处理系统中应用的比较(702)5.15 MAX202E在串行通信中的应用(703)5.16 线性隔离放大器ISO122的原理及应用(703)5.17 AD606对数放大器的研究与应用(703)5.18 电流/电压转换芯片MAX472在永磁直流电动机虚拟测试系统中的应用… (703)5.19 高精度模数转换器AD676的原理及应用(703)5.20 DS2450 A/D转换器的特性与应用(704)5.21 80C196KC内部A/D转换器的使用(704)5.22 一种16~24位分辨率D/A转换器的设计(704)5.23 串行A/D转换器TLC2543与TMS320C25的接口及编程(704)5.24 A/D转换器ICL7135积分特性应用(704)5.25 高精度A/D转换器AD7711A及应用(705)5.26 多路A/D转换器AD7714及其与M68HC11单片机接口技术(705)5.27 用AD7755设计的低成本电能表(705)5.28 20位Σ?Δ立体声ADA电路TLC320AD75C的接口电路设计(705)5.29 24位A/D转换器ADS1210/1211及其应用(706)5.30 模数转换器AD7705及其接口电路(706)5.31 串行A/D转换器ADS7812与单片机的接口技术(706)5.32 串行A/D转换器TLC548/549及其应用(706)5.33 采样率可变16通道16位隔离A/D电路(706)5.34 TLC549在交流有效值测量中的应用(707)5.35 温度传感器DS18B20的特性及程序设计方法(707)5.36 DS1820及其高精度温度测量的实现(707)5.37 采用DS1820的电弧炉炉底温度监测系统(707)5.38 并行实时时钟芯片DS12887及其应用(707)5.39 利用实时时钟X1203开启单片机系统(708)5.40 时钟芯片DS1302及其在数据记录中的应用(708)5.41 串行显示驱动器PS7219及与单片机的接口技术(708)5.42 MAX7219在PLC中的应用(708)5.43 一种实用的LED光柱显示器驱动方法(708)5.44 基于电能测量芯片ADE7756的智能电度表设计(709)5.45 TSS721A在自动抄表系统中的应用(709)5.46 电流传感放大器MAX471/MAX472的原理及应用(709)5.47 8XC552模数转换过程及其自动调零机制(709)5.48 旋转变压器数字转换器AD2S83在伺服系统中的应用(709)5.49 具有串行接口的I/O扩展器EM83010及其应用(710)5.50 新型LED驱动器TEC9607及其应用(710)5.51 新型语音识别电路AP7003及其应用(710)六、总线技术(711)6.1 现场总线技术的发展及应用展望(711)6.2 CAN总线点对点通信应用研究(711)6.3 基于CAN总线的数据通信系统研究(711)6.4 基于CAN总线的分布式数据采集与控制系统(711)6.5 基于CAN总线的分布式铝电解智能系统(711)6.6 CAN总线在通信电源监控系统中的应用(712)6.7 CAN总线在弧焊机器人控制系统中的应用(712)6.8 CAN总线及其在喷浆机器人中的应用(712)6.9 基于CAN控制器的单片机农业温室控制系统的设计(712)6.10 现场总线国际标准与LonWorks在智能电器中的应用(712)6.11 基于LON总线技术的暖通空调控制系统(712)6.12 通用串行总线(USB)及其芯片的使用(713)6.13 USB在数据采集系统中的应用(713)6.14 用MC68HC05JB4开发USB外设(713)6.15 8x930Ax/Hx USB控制器芯片及其在数字音频中的应用(713)6.16 基于MC68HC(9)08JB8芯片的USB产品——键盘设计(713)6.17 I2 C总线在LonWorks网络节点上的应用(714)6.18 Neuron3150的并行I/O接口对象及其应用(714)6.19 新型串行E2PROM 24LC65在LonWorks节点中的应用(714)6.20 利用I2C总线实现DSP对CMOS图像传感器的控制(714)6.21 在I2C总线系统中扩展LCD显示器(714)6.22 基于Windows环境的GPIB接口设计实现(714)6.23 微机PCI总线接口的研究与设计(715)6.24 通用串行总线(USB)原理及接口设计(715)6.25 CAN总线与1553B总线性能分析比较(715)6.26 利用USB接口实现双机互联通信(715)6.27 一种带USB接口的便携式语音采集卡的设计(715)七、可靠性技术(716)7.1 电磁干扰与电磁兼容设计(716)7.2 计算机的防电磁泄漏技术(716)7.3 低辐射计算机系统的设计实现(716)7.4 静电测量及其程序设计(716)7.5 电子产品生产中的静电防护技术(716)7.6 电子测控系统中的屏蔽与接地技术(717)7.7 微机控制系统的抗干扰技术(717)7.8 如何提高单片机应用产品的抗干扰能力(717)7.9 工业控制计算机系统中的常见干扰及处理措施(717)7.10 GPS用于军用导航中的抗干扰和干扰对抗研究(717)7.11 基于开放式体系结构的数控机床可靠性及抗干扰设计(717)7.12 变频器应用技术中的抗干扰问题(718)7.13 单片机的软件可靠性编程(718)7.14 单片微机的软件抑噪方案(718)7.15 SmartLock并口单片机软件狗加密技术(718)7.16 单片机系统中复位电路可靠性设计(718)7.17 测控系统中实现数据安全存储的实用技术(718)7.18 高精度仪表信号隔离电路设计(719)7.19 基于AT89C2051单片机的防误操作智能锁(719)7.20 Email的安全问题与保护措施(719)7.21 双机容错系统的一种实现途径(719)7.22 单片机应用系统抗干扰设计综述(719)7.23 微机控制系统中的干扰及其抑制方法(720)7.24 智能仪表的抗干扰和故障诊断(720)八、应用实践(721)8.1 AT89C51在银行利率显示屏中的应用(721)8.2 基于8xC196MC实现的磁链轨迹跟踪控制(721)8.3 基于80C196KC的开关磁阻电机测试系统(721)8.4 80C196KB单片机在绕线式异步电动机启动控制中的应用(721)8.5 GPS时钟系统(721)8.6 一种由AT89C2051单片微机实现的功率因数补偿装置(722)8.7 数据采集系统芯片ADμC812及其在温度监测系统中的应用(722)8.8 用AVR单片机实现蓄电池剩余电量的测量(722)8.9 基于SA9604的多功能电度表(722)8.10 数字正交上变频器AD9856的原理及其应用(722)8.11 基于MC628的可变参数PID控制方法的实现(723)8.12 Windows 98下远程数据采集系统设计(723)8.13 一种新式微流量计的研究(723)8.14 一种便携式多通道精密测温仪(723)8.15 一种高精度定时器的设计及其应用(723)8.16 智能湿度仪设计(724)8.17 固态数字语音记录仪的设计与实现(724)8.18 多功能语音电话答录器的设计(724)8.19 白炽灯色温测量装置电路设计(724)8.20 交直流供电无缝连接电源控制系统设计(724)8.21 小型电磁辐射敏感度自动测试系统的设计(725)8.22 生物电极微电流动态检测装置(725)8.23 二种铂电阻4~20 mA电流变送器电路(725)8.24 基于单片机的智能型光电编码器计数器(725)8.25 嵌入式系统中利用RS232C串口扩展矩阵式键盘(725)8.26 电压矢量控制PWM波的一种实时生成方法(725)8.27 便携式电能表校验装置现场使用分析(726)8.28 用单片机实现大型电动机的在线监测(726)8.29 PLC在L型管弯曲机电控系统中的应用(726)8.30 用EPROM实现步进电机的控制(726)8.31 一种手持设备的智能卡实现技术(726)8.32 钞票颜色识别系统的设计(727)8.33 数字锁相环在位置检测中的应用(727)九、DSP及其应用技术(728)9.1 数字信号处理器DSPs的发展(728)9.2 用TMS320C6201实现多路ITU?T G.728语音编码标准(728)9.3 采用DSP内核技术进行语音压缩开发(728)9.4 TMS320C80与存储器接口分析(728)9.5 TMS320C32浮点DSP存储器接口设计(728)9.6 TMS320VC5402 DSP的并行I/O引导装载方法研究(729)9.7 TMS320C30系统与PC104进行双向并行通信的方法(729)9.8 基于TMS320C6201的G.723.1多通道语音编解码的实现(729)9.9 基于TMS320C6201的多通道信号处理平台(729)9.10 基于两片TMS320C40的高速数据采集系统(729)9.11 使用TMS320C542构成数据采集处理系统(730)9.12 基于TMS320C32的视觉图像处理系统(730)9.13 用ADSP?2181和MC68302实现MPEG?2传送复用器(730)9.14 基于DSP的PC加密卡(730)9.15 TMS320C2XX及其在宽带恒定束宽波束形成器中的应用(730)9.16 DS80C320单片机在无人机测控数据采编器中的应用(731)9.17 基于TMS320F206 DSP的图像采集卡设计(731)9.18 基于定点DSP的实时语音命令识别模块(731)9.19 基于TMS320C50的语音频谱分析仪(731)9.20 利用DSP实现的专用数字录音机(731)9.21 基于DSP的全数字交流传动系统硬件平台设计(732)9.22 ADSP2106x中DMA的应用(732)9.23 软件无线电中DSP应用模式的分析(732)9.24 快速小波变换在DSP中的实现方法(732)十、PLD及EDA技术应用(733)10.1 可编程器件实现片上系统(733)10.2 VHDL语言在现代数字系统中的应用(733)10.3 用VHDL设计有限状态机的方法(733)10.4 ISP-PLD在数字系统设计中的应用(733)10.5 基于FPGA技术的新型高速图像采集(734)10.6 Protel 99SE电路仿真(734)10.7 可编程逻辑器件(PLD)在电路设计中的应用(734)10.8 基于FPGA的全数字锁相环路的设计(734)10.9 基于EPLD器件的一对多打印机控制器的研制(734)10.10 一种VHDL设计实现的有线电视机顶盒信源发生方案(735)10.11 一种并行存储器系统的FPGA实现(735)10.12 SDRAM接口的VHDL设计(735)10.13 采用ISP器件设计可变格式和可变速率的通信数字信号源(735)10.14 利用FPGA技术实现数字通信中的交织器和解交织器(735)10.15 XC9500系列CPLD遥控编程的实现(736)10.16 PLD器件在红外遥控解码中的应用(736)10.17 利用XCS40实现小型声纳的片上系统集成(736)10.18 可编程逻辑器件的VHDL设计技术及其在航空火控电子设备中的应用… (736)10.19 DSP+FPGA实时信号处理系统(736)10.20 CPLD在IGBT驱动设计中的应用(737)10.21 基于FPGA的FIR滤波器的实现(737)10.22 用可编程逻辑器件取代BCD?二进制转换器的设计方法(737)

    标签: 单片机 应用技术

    上传时间: 2014-04-14

    上传用户:gtf1207

  • 微机原理与接口课件

    微处理器及微型计算机的发展概况  第一代微处理器是以Intel公司1971年推出的4004,4040为代表的四位微处理机。      第二代微处理机(1973年~1977年),典型代表有:Intel 公司的8080、8085;Motorola公司的M6800以及Zlog公司的Z80。     第三代微处理机 第三代微机是以16位机为代表,基本上是在第二代微机的基础上发展起来的。其中Intel公司的8088。8086是在8085的基础发展起来的;M68000是Motorola公司在M6800 的基础发展起来的;     第四代微处理机 以Intel公司1984年10月推出的80386CPU和1989年4月推出的80486CPU为代表,     第五代微处理机的发展更加迅猛,1993年3月被命名为PENTIUM的微处理机面世,98年PENTIUM 2又被推向市场。 INTEL CPU 发展历史Intel第一块CPU 4004,4位主理器,主频108kHz,运算速度0.06MIPs(Million Instructions Per Second, 每秒百万条指令),集成晶体管2,300个,10微米制造工艺,最大寻址内存640 bytes,生产曰期1971年11月. 8085,8位主理器,主频5M,运算速度0.37MIPs,集成晶体管6,500个,3微米制造工艺,最大寻址内存64KB,生产曰期1976年 8086,16位主理器,主频4.77/8/10MHZ,运算速度0.75MIPs,集成晶体管29,000个,3微米制造工艺,最大寻址内存1MB,生产曰期1978年6月. 80486DX,DX2,DX4,32位主理器,主频25/33/50/66/75/100MHZ,总线频率33/50/66MHZ,运算速度20~60MIPs,集成晶体管1.2M个,1微米制造工艺,168针PGA,最大寻址内存4GB,缓存8/16/32/64KB,生产曰期1989年4月 Celeron一代, 主频266/300MHZ(266/300MHz w/o L2 cache, Covington芯心 (Klamath based),300A/333/366/400/433/466/500/533MHz w/128kB L2 cache, Mendocino核心 (Deschutes-based), 总线频率66MHz,0.25微米制造工艺,生产曰期1998年4月) Pentium 4 (478针),至今分为三种核心:Willamette核心(主频1.5G起,FSB400MHZ,0.18微米制造工艺),Northwood核心(主频1.6G~3.0G,FSB533MHZ,0.13微米制造工艺, 二级缓存512K),Prescott核心(主频2.8G起,FSB800MHZ,0.09微米制造工艺,1M二级缓存,13条全新指令集SSE3),生产曰期2001年7月. 更大的缓存、更高的频率、 超级流水线、分支预测、乱序执行超线程技术 微型计算机组成结构单片机简介单片机即单片机微型计算机,是将计算机主机(CPU、    内存和I/O接口)集成在一小块硅片上的微型机。 三、计算机编程语言的发展概况 机器语言  机器语言就是0,1码语言,是计算机唯一能理解并直接执行的语言。汇编语言  用一些助记符号代替用0,1码描述的某种机器的指令系统,汇编语言就是在此基础上完善起来的。高级语言  BASIC,PASCAL,C语言等等。用高级语言编写的程序称源程序,它们必须通过编译或解释,连接等步骤才能被计算机处理。 面向对象语言  C++,Java等编程语言是面向对象的语言。 1.3 微型计算机中信息的表示及运算基础(一) 十进制ND有十个数码:0~9,逢十进一。 例 1234.5=1×103 +2×102 +3×101 +4×100 +5×10-1加权展开式以10称为基数,各位系数为0~9,10i为权。 一般表达式:ND= dn-1×10n-1+dn-2×10n-2 +…+d0×100 +d-1×10-1+… (二) 二进制NB两个数码:0、1, 逢二进一。 例 1101.101=1×23+1×22+0×21+1×20+1×2-1+1×2-3 加权展开式以2为基数,各位系数为0、1, 2i为权。 一般表达式:  NB = bn-1×2n-1 + bn-2×2n-2 +…+b0×20 +b-1×2-1+… (三)十六进制NH十六个数码0~9、A~F,逢十六进一。 例:DFC.8=13×162 +15×161 +12×160 +8×16-1 展开式以十六为基数,各位系数为0~9,A~F,16i为权。 一般表达式: NH= hn-1×16n-1+ hn-2×16n-2+…+ h0×160+ h-1×16-1+… 二、不同进位计数制之间的转换 (二)二进制与十六进制数之间的转换  24=16 ,四位二进制数对应一位十六进制数。举例:(三)十进制数转换成二、十六进制数整数、小数分别转换   1.整数转换法“除基取余”:十进制整数不断除以转换进制基数,直至商为0。每除一次取一个余数,从低位排向高位。举例: 2. 小数转换法“乘基取整”:用转换进制的基数乘以小数部分,直至小数为0或达到转换精度要求的位数。每乘一次取一次整数,从最高位排到最低位。举例:  三、带符号数的表示方法 机器数:机器中数的表示形式。真值: 机器数所代表的实际数值。举例:一个8位机器数与它的真值对应关系如下:  真值: X1=+84=+1010100B     X2=-84= -1010100B   机器数:[X1]机= 01010100    [X2]机= 11010100(二)原码、反码、补码最高位为符号位,0表示 “+”,1表示“-”。 数值位与真值数值位相同。 例  8位原码机器数:  真值:   x1  = +1010100B     x2    =- 1010100B      机器数: [x1]原  = 01010100  [x2]原 = 11010100原码表示简单直观,但0的表示不唯一,加减运算复杂。 正数的反码与原码表示相同。       负数反码符号位为 1,数值位为原码数值各位取反。 例 8位反码机器数:          x= +4: [x]原= 00000100 [x]反= 00000100     x= -4: [x]原= 10000100  [x]反= 111110113、补码(Two’s Complement)正数的补码表示与原码相同。       负数补码等于2n-abs(x)8位机器数表示的真值四、 二进制编码例:求十进制数876的BCD码 876= 1000 0111 0110 BCD  876= 36CH = 1101101100B 2、字符编码    美国标准信息交换码ASCII码,用于计算      机与计算机、计算机与外设之间传递信息。 3、汉字编码 “国家标准信息交换用汉字编码”(GB2312-80标准),简称国标码。 用两个七位二进制数编码表示一个汉字 例如“巧”字的代码是39H、41H汉字内码例如“巧”字的代码是0B9H、0C1H1·4  运算基础 一、二进制数的运算加法规则:“逢2进1”       减法规则:“借1当2”       乘法规则:“逢0出0,全1出1”二、二—十进制数的加、减运算        BCD数的运算规则 循十进制数的运算规则“逢10进1”。但计算机在进行这种运算时会出现潜在的错误。为了解决BCD数的运算问题,采取调整运算结果的措施:即“加六修正”和“减六修正”例:10001000(BCD)+01101001(BCD)        =000101010111(BCD)                1 0 0 0 1 0 0 0       +  0 1 1 0 1 0 0 1           1 1 1 1 0 0 0 1        +  0 1 1 0 0 1 1 0     ……调整          1 0 1 0 1 0 1 1 1                                        进位  例:  10001000(BCD)- 01101001(BCD)= 00011001(BCD)                   1 0 0 0 1 0 0 0            -   0 1 1 0 1 0 0 1             0 0 0 1 1 1 1 1         -                    0 1 1 0   ……调整             0 0 0 1 1 0 0 1  三、 带符号二进制数的运算 1.5 几个重要的数字逻辑电路编码器译码器计数器微机自动工作的条件程序指令顺序存放自动跟踪指令执行1.6 微机基本结构微机结构各部分组成连接方式1、以CPU为中心的双总线结构;2、以内存为中心的双总线结构;3、单总线结构CPU结构管脚特点  1、多功能;2、分时复用内部结构  1、控制; 2、运算; 3、寄存器; 4、地址程序计数器堆栈定义 1、定义;2、管理;3、堆栈形式

    标签: 微机原理 接口

    上传时间: 2013-10-17

    上传用户:erkuizhang

  • 基于Web和GIS的灾害预警信息管理系统

    针对国家突发公共事件应急体系建设规划的要求,设计了一种基于Web和GIS的灾害预警信息管理系统,建立了同一地理空间下的省、地市、县三级灾害信息管理与发布的预警机制。研制了基于GSM/GPRS通信的预警信息语音发布一体机和图文LED电子屏,通过短信和语音的将预警信息大范围发布。本系统已在多省市不同领域广泛应用,尤其是在气象信息管理与发布领域发挥了重要作用。

    标签: Web GIS 预警 信息管理系统

    上传时间: 2013-10-20

    上传用户:ardager

  • 高校科研信息管理系统的设计与开发

    随着计算机以及现代化技术的发展,现代高等学校对开发科研信息管理系统对加强科研管理有着非常迫切的需要。论文在高校科研管理系统需求分析的基础上,对系统主要模块以及数据库进行了分析和设计,实现了该系统。论文最后对高校科研管理系统做出总结和展望。

    标签: 科研 信息管理系统

    上传时间: 2013-11-13

    上传用户:思琦琦

  • TKS仿真器B系列快速入门

    TKS仿真器B系列快速入门

    标签: TKS 仿真器 快速入门

    上传时间: 2013-10-31

    上传用户:aix008

  • LINUX系统分析与高级编程技术

    本书介绍Linux环境下的编程方法,内容包括Linux系统命令、 Shell脚本、编程语言(gawk、Perl)、系统内核、安全体系、X Window等,内容丰富、论述全面,涵盖了Linux系统的方方面面。本书附带光盘包括了RedHat Linux系统的最新版本,及安装方法,还包括本书的大量程序代码,极大地方便了读者,为使用和将要使用Linux系统的技术人员提供了较全面的参考。    目      录前言第一篇   Linux系统介绍第1章   Linux简介 …11.1   Linux 的起源 11.2   自由软件基金会的GNU计划 11.3   Linux 的发音 21.4   Linux 的特点 21.5   基本硬件要求 31.6   如何获得Linux 31.6.1   从网上下载Linux 31.6.2   从光盘获得Linux 31.7   涉及Linux 的Web 网址和新闻讨论组 61.8   Linux 的不足之处 7第2章   外壳及常用命令 82.1   登录和退出 82.2   Linux 系统的外壳 82.3   外壳的常用命令 92.3.1   更改帐号密码 92.3.2   联机帮助 92.3.3   远程登录 92.3.4   文件或目录处理 92.3.5   改变工作目录 102.3.6   复制文件 102.3.7   移动或更改文件、目录名称 102.3.8   建立新目录 102.3.9   删除目录 112.3.10   删除文件 112.3.11   列出当前所在的目录位置 112.3.12   查看文件内容 112.3.13   分页查看文件内容 112.3.14   查看目录所占磁盘容量 112.3.15   文件传输 112.3.16   文件权限的设定 122.3.17   检查自己所属的工作组名称 132.3.18   改变文件或目录工作组所有权 132.3.19   改变文件或目录的最后修改时间 132.3.20   文件的链接 132.3.21   文件中字符串的查寻 142.3.22   查寻文件或命令的路径 142.3.23   比较文件或目录的内容 142.3.24   文件打印输出 142.3.25   一般文件的打印 142.3.26   troff 文件的打印 142.3.27   打印机控制命令 142.3.28   进程控制 152.3.29   外壳变量 162.3.30   环境变量 162.3.31   别名 162.3.32   历史命令 172.3.33   文件的压缩 172.3.34   管道命令的使用 172.3.35   输入/输出控制 182.3.36   查看系统中的用户 182.3.37   改变用户名 182.3.38   查看用户名 182.3.39   查看当前系统上所有工作站       的用户 192.3.40   与某工作站上的用户交谈 192.3.41   检查远程系统是否正常 192.3.42   电子邮件的使用简介 19第3章   Linux系统的网络功能 213.1   Linux支持的网络协议 213.1.1   TCP/IP 213.1.2   TCP/IP 版本 6 213.1.3   IPX/SPX 213.1.4   AppleTalk 协议集 213.1.5   广域网 223.1.6   ISDN 223.1.7   PPP、SLIP及PLIP 223.1.8   业余无线电 223.1.9   ATM 223.2   Linux系统下的文件共享和打印共享 223.2.1   Machintosh 环境 223.2.2   Windows 环境 223.2.3   Novell 环境 233.2.4   UNIX 环境 233.3   Linux系统中的Internet/Intranet功能 233.3.1   邮件 233.3.2   Web 服务器 243.3.3   Web 浏览器 243.3.4   FTP 服务器和客户机 243.3.5   新闻服务 243.3.6   域名系统 243.3.7   DHCP和 bootp 243.3.8   NIS 243.4   Linux系统下应用程序的远程执行 243.4.1   Telnet 253.4.2   远程命令 253.4.3   X Window 253.5   Linux系统的网络互连功能 253.5.1   路由器 253.5.2   网桥 253.5.3   IP伪装 253.5.4   IP统计 263.5.5   IP 别名 263.5.6   流量限制器 263.5.7   防火墙 263.5.8   端口下传 263.5.9   负载平衡 263.5.10   EQL 273.5.11   代理服务器 273.5.12   按需拨号 273.5.13   管道、移动IP和虚拟个人网络 273.6   Linux系统中的网络管理 273.6.1   Linux系统下的网络管理应用程序 273.6.2   SNMP 283.7   企业级Linux网络 283.7.1   高可用性 283.7.2   RAID 283.7.3   冗余网络 28第4章   Linux系统管理简介 294.1   root 帐号 294.2   启动和关闭系统 294.2.1   从软盘启动 294.2.2   使用LILO 启动 294.2.3   关闭Linux系统 304.3   挂接文件系统 304.3.1   挂接软盘 304.3.2   创建新的文件系统 304.3.3   卸载文件系统 314.4   检查文件系统 314.5   使用文件作为交换区 314.6   系统和文件的备份 324.7   设置系统 334.7.1   设置系统名 334.7.2   使用维护磁盘 334.7.3   重新设置root 帐号口令 334.7.4   设置登录信息 33第二篇   Linux高级语言及管理编程第5章   外壳编程 355.1   创建和运行外壳程序 355.1.1   创建外壳程序 355.1.2   运行外壳程序 355.2   使用外壳变量 365.2.1   给变量赋值 365.2.2   读取变量的值 375.2.3   位置变量和其他系统变量 375.2.4   引号的作用 375.3   数值运算命令 385.4   条件表达式 405.4.1   if 表达式 405.4.2   case 表达式 415.5   循环语句 425.5.1   for 语句 435.5.2   while 语句 435.5.3   until 语句 445.6   shift 命令 445.7   select 语句 455.8   repeat 语句 465.9   子函数 46第6章   gawk语言编程 486.1   gawk的主要功能 486.2   如何执行gawk程序 486.3   文件、记录和字段 486.4   模式和动作 496.5   比较运算和数值运算 506.6   内部函数 506.6.1   随机数和数学函数 516.6.2   字符串的内部函数 516.6.3   输入输出的内部函数 526.7   字符串和数字 526.8   格式化输出 526.9   改变字段分隔符 546.10   元字符 546.11   调用gawk程序 556.12   BEGIN和END 556.13   变量 566.14   内置变量 566.15   控制结构 576.15.1   if 表达式 576.15.2   while 循环 576.15.3   for 循环 586.15.4   next 和 exit 586.16   数组 586.17   用户自定义函数 586.18   几个实例 59第7章   Perl语言编程 607.1   什么是Perl 607.2   Perl的现状 607.3   初试Perl 607.4   Perl变量 607.4.1   标量 607.4.2   数组 637.4.3   相关数组 657.5   文件句柄和文件操作 657.6   循环结构 667.6.1   foreach循环 667.6.2   判断运算 667.6.3   for循环 677.6.4   while 和 until循环 677.7   条件结构 677.8   字符匹配 687.9   替换和翻译 697.9.1   替换 697.9.2   翻译 707.10   子过程 707.10.1   子过程的定义 707.10.2   参数 707.10.3   返回值 707.11   Perl程序的完整例子 71第三篇   Linux系统内核分析第8章   Linux内核简介 738.1   系统初始化 738.2   系统运行 738.3   内核提供的各种系统调用 748.3.1   进程的基本概念和系统            的基本数据结构 748.3.2   创建和撤消进程 748.3.3   执行程序 748.4   存取文件系统 75第9章   系统进程 769.1   什么是进程 769.2   进程的结构 769.3   进程调度 789.4   进程使用的文件 799.5   进程使用的虚拟内存 809.6   创建进程 819.7   进程的时间和计时器 819.7.1   实时时钟 819.7.2   虚拟时钟 819.7.3   形象时钟 819.8   程序的执行 829.8.1   ELF文件 829.8.2   脚本文件 82第10章   内存管理 8310.1   内存管理的作用 8310.2   虚拟内存的抽象模型 8310.3   按需装入页面 8410.4   交换 8510.5   共享虚拟内存 8510.6   存取控制 8510.7   高速缓存 8610.7.1   缓冲区高速缓存 8610.7.2   页面高速缓存 8610.7.3   交换高速缓存 8610.7.4   硬件高速缓存 8610.8   系统页面表 8610.9   页面的分配和释放 8710.9.1   页面的分配 8810.9.2   页面的释放 8810.10   内存映射 8810.11   请求调页 8910.12   页面高速缓存 8910.13   内核交换守护进程 90第11章   进程间通信 9111.1   信号机制 9111.2   管道机制 9211.3  System V IPC 机制  9311.3.1   信息队列 9311.3.2   信号量 9411.3.3   共享内存 96第12章   PCI 9812.1   PCI 系统 9812.2   PCI地址空间 9812.3   PCI设置头 9912.4   PCI I/O 和 PCI 内存地址 10012.5   PCI-ISA桥 10012.6   PCI-PCI 桥 10012.7   PCI初始化 10112.7.1   Linux系统内核有关PCI的      数据结构 10112.7.2   PCI 设备驱动程序 10212.7.3   PCI BIOS 函数 10512.7.4   PCI Fixup 105第13章   中断和中断处理 10613.1   中断 10613.2   可编程中断控制器 10613.3   初始化中断处理的数据结构 10713.4   中断处理 108第14章   设备驱动程序 10914.1   硬件设备的管理 10914.2   轮询和中断 11014.3   直接内存存取 11014.4   内存 11114.5   设备驱动程序和内核之间的接口 11114.5.1   字符设备 11214.5.2   块设备 11314.6   硬盘 11314.6.1   IDE 硬盘 11514.6.2   初始化IDE 硬盘子系统 11514.6.3   SCSI 硬盘 11514.6.4   初始化 SCSI 磁盘子系统 11614.6.5   传递块设备请求 11814.7   网络设备 11814.7.1   网络设备文件名 11814.7.2   总线信息 11814.7.3   网络接口标记 11914.7.4   协议信息 11914.7.5   初始化网络设备 119第15章   文件系统 12115.1   Linux文件系统概述 12115.2   ext2文件系统 12215.2.1   ext2的索引节点 12215.2.2   ext2超级块 12415.2.3   ext2 数据块组描述符 12415.2.4   ext2 中的目录 12515.2.5   在ext2 文件系统中查找文件 12515.2.6   改变ext2 文件系统中文件             的大小 12615.3   VFS 12715.3.1   VFS 超级块 12815.3.2   VFS 索引节点 12915.3.3   登记文件系统 12915.3.4   挂接文件系统 13015.3.5   在VFS中查找文件 13115.3.6   撤消文件系统 13115.3.7   VFS 索引节点缓存 13215.3.8   VFS目录缓存 13215.4   缓冲区缓存 13315.5   /proc 文件系统 135第16章   网络系统 13616.1   TCP/IP 网络简介 13616.2   TCP/IP网络的分层 13716.3   BSD 套接口 13816.4   INET套接口层 14016.4.1   创建BSD 套接口 14116.4.2   给INET BSD 套接口指定地址 14116.4.3   在INET BSD套接口上创建连接 14216.4.4   监听INET BSD 套接口 14216.4.5   接收连接请求 14316.5   IP 层 14316.5.1   套接口缓冲区 14316.5.2   接收IP数据包 14416.5.3   发送IP数据包 14416.5.4   数据碎片 14416.6   地址解析协议 145第17章   系统内核机制 14717.1   Bottom Half处理 14717.2   任务队列 14817.3   计时器 14917.4   等待队列 14917.5   信号量 150第四篇   Linux系统高级编程第18章   Linux内核模块编程 15118.1   一个简单程序Hello World 15118.2   设备文件 15218.3    /proc文件系统 15618.4   使用/proc输入 15818.5   与设备文件通信 16218.6   启动参数 16918.7   系统调用 17018.8   阻塞进程 17218.9   替换printk 17718.10   调度任务 178第19章   有关进程通信的编程 18119.1   进程间通信简介 18119.2   半双工UNIX管道 18119.2.1   基本概念 18119.2.2   使用C语言创建管道 18219.2.3   创建管道的简单方法 18519.2.4   使用管道的自动操作 18719.2.5   使用半双工管道时的注意事项 18819.3   命名管道 18819.3.1   基本概念 18819.3.2   创建FIFO 18819.3.3   FIFO操作 18919.3.4   FIFO的阻塞 19019.3.5    SIGPIPE信号 19019.4   System V IPC 19019.4.1   基本概念 19019.4.2   消息队列基本概念 19119.4.3   系统调用msgget() 19419.4.4   系统调用msgsnd() 19519.4.5   系统调用msgctl() 19719.4.6   一个msgtool的实例 19919.5   使用信号量编程 20119.5.1   基本概念 20119.5.2   系统调用semget() 20219.5.3   系统调用semop() 20319.5.4   系统调用semctl() 20419.5.5   使用信号量集的实例:semtool 20519.6   共享内存 20919.6.1   基本概念 20919.6.2   系统内部用户数据结构             shmid_ds 20919.6.3   系统调用shmget() 21019.6.4   系统调用shmat() 21119.6.5   系统调用shmctl() 21119.6.6   系统调用shmdt() 21219.6.7   使用共享内存的实例:shmtool 212第20章   高级线程编程 21520.1   线程的概念和用途 21520.2   一个简单的例子 21520.3   线程同步 21720.4   使用信号量协调程序 21820.5   信号量的实现 22020.5.1   Semaphore.h 22020.5.2   Semaphore.c 221第21章   Linux系统网络编程 22521.1   什么是套接口 22521.2   两种类型的Internet套接口 22521.3   网络协议分层 22521.4   数据结构 22521.5   IP地址和如何使用IP地址 22621.5.1   socket() 22621.5.2   bind() 22621.5.3   connect() 22721.5.4   listen() 22821.5.5   accept() 22821.5.6   send() 和 recv() 22921.5.7   sendto() 和 recvfrom() 23021.5.8   close() 和 shutdown() 23021.5.9   getpeername() 23121.5.10   gethostname() 23121.6   DNS 23121.7   客户机/服务器模式 23221.8   简单的数据流服务器程序 23221.9   简单的数据流客户机程序 23421.10   数据报套接口 23521.11   阻塞 237第22章   Linux I/O端口编程 24022.1   如何在 C 语言下使用I/O端口 24022.1.1   一般的方法 24022.1.2   另一个替代方法: /dev/port 24122.2   硬件中断 与 DMA 存取 24122.3   高精确的时间 24122.3.1   延迟时间 24122.3.2   时间的量测 24322.4   使用其他程序语言 24322.5   一些有用的 I/O 端口 24322.5.1   并行端口 24322.5.2   游戏端口 24422.5.3   串行端口 245第五篇   Linux系统安全分析第23章   系统管理员安全 24723.1   安全管理 24723.2   超级用户 24723.3   文件系统安全 24723.3.1   Linux文件系统概述 24723.3.2   设备文件 24823.3.3   /etc/mknod命令 24923.3.4   安全考虑 24923.3.5   find命令 25023.3.6   secure程序 25023.3.7   ncheck命令 25023.3.8   安装和拆卸文件系统 25023.3.9   系统目录和文件 25123.4   作为root运行的程序 25123.4.1   启动系统 25123.4.2   init进程 25123.4.3   进入多用户 25223.4.4   shutdown命令 25223.4.5   系统V的cron程序 25223.4.6   系统V版本2之后的cron程序 25223.4.7   /etc/profile 25323.5   /etc/passwd文件 25323.5.1   口令时效 25323.5.2   UID和GID 25423.6   /etc/group文件 25423.7   增加、删除和移走用户 25423.7.1   增加用户 25423.7.2   删除用户 25523.7.3   将用户移到另一个系统 25523.8   安全检查 25523.8.1   记帐 25523.8.2   其他检查命令 25623.8.3   安全检查程序的问题 25623.8.4   系统泄密后怎么办 25723.9   加限制的环境 25823.9.1   加限制的外壳 25823.9.2   用chroot()限制用户 25823.10   小系统安全 25923.11   物理安全 25923.12   用户意识 26023.13   系统管理员意识 26123.13.1   保持系统管理员个人的               登录安全 26123.13.2   保持系统安全 261第24章   系统程序员安全 26324.1   系统子程序 26324.1.1   I/O子程序 26324.1.2   进程控制 26324.1.3   文件属性 26424.1.4   UID和GID的处理 26524.2   标准C程序库 26524.2.1   标准I/O 26524.2.2   /etc/passwd的处理 26624.2.3   /etc/group的处理 26724.2.4   加密子程序 26824.2.5   运行外壳 26824.3   编写安全的C程序 26824.3.1   需要考虑的安全问题 26824.3.2   SUID/SGID程序指导准则 26924.3.3   编译、安装SUID/SGID程序             的方法 26924.4   root用户程序的设计 270第25章   Linux系统的网络安全 27225.1   UUCP系统概述 27225.1.1   UUCP命令 27225.1.2   uux命令 27225.1.3   uucico程序 27325.1.4   uuxqt程序 27325.2   UUCP的安全问题 27325.2.1   USERFILE文件 27325.2.2   L.cmds文件 27425.2.3   uucp登录 27425.2.4   uucp使用的文件和目录 27425.3   HONEYDANBER UUCP 27525.3.1   HONEYDANBER UUCP与           老UUCP的差别 27525.3.2   登录名规则 27625.3.3   MACHINE规则 27725.3.4   组合MACHINE和LOGNAME             规则 27825.3.5   uucheck命令 27825.3.6   网关 27825.3.7   登录文件检查 27925.4   其他网络 27925.4.1   远程作业登录 27925.4.2   NSC网络系统 28025.5   通信安全 28025.5.1   物理安全 28025.5.2   加密 28125.5.3   用户身份鉴别 28225.6   SUN OS系统的网络安全 28325.6.1   确保NFS的安全 28325.6.2   NFS安全性方面的缺陷 28425.6.3   远程过程调用鉴别 28425.6.4   Linux鉴别机制 28425.6.5   DES鉴别系统 28525.6.6   公共关键字的编码 28625.6.7   网络实体的命名 28625.6.8   DES鉴别系统的应用 28725.6.9   遗留的安全问题 28725.6.10   性能 28825.6.11   启动和setuid程序引起的问题 28825.6.12   小结 289第26章   Linux系统的用户安全性 29026.1   口令安全 29026.2   文件许可权 29026.3   目录许可 29126.4   umask命令 29126.5   设置用户ID和同组用户ID许可 29126.6   cp mv ln和cpio命令 29126.7   su和newgrp命令 29226.7.1   su命令 29226.7.2   newgrp命令 29226.8   文件加密 29226.9   其他安全问题 29326.9.1   用户的.profile文件 29326.9.2   ls -a 29326.9.3   .exrc文件 29326.9.4   暂存文件和目录 29326.9.5   UUCP和其他网络 29326.9.6   特洛伊木马 29426.9.7   诱骗 29426.9.8   计算机病毒 29426.9.9   要离开自己已登录的终端 29426.9.10   智能终端 29426.9.11   断开与系统的连接 29426.9.12   cu命令 29526.10   保持帐户安全的要点 295第六篇   X window系统的内部结构和使用第27章  X Window系统的基本知识 29727.1   X Window系统介绍 29727.1.1   X的特点 29727.1.2   什么是窗口系统 29827.1.3   X发展的历史 29927.1.4   X的产品 29927.1.5   MIT发行的X 29927.2   X的基本结构 30227.2.1   X 的基本元素 30327.2.2   服务程序和客户程序如何             交互通信 30427.2.3   X 的网络概况 30627.3   从用户界面的角度概观X 30727.3.1   管理界面:窗口管理器 30727.3.2   应用程序界面和工具箱 30927.3.3   其他系统角度 30927.4   术语和符号 31027.4.1   术语 31027.4.2   符号 31127.5   启动和关闭X 31227.5.1   启动X 31227.5.2   执行X程序的方式 31327.5.3   关闭X 31427.6   窗口管理器基础—uwm 31527.6.1   什么是窗口管理器 31527.6.2   启动uwm 31527.6.3   基本窗口操作 —uwm             的菜单 31527.6.4   移动窗口 31627.6.5   重定窗口大小 31627.6.6   建立新窗口 31627.6.7   管理屏幕空间 31827.6.8   中止应用程序窗口 32027.6.9   激活uwm菜单的其他方式 32027.7   使用 x的网络设备 32027.7.1   指定远程终端机—display             选项 32127.7.2   实际使用远程的显示器 32227.7.3   控制存取显示器—xhost 32227.8   终端机模拟器—详细介绍xterm 32327.8.1   选择xterm功能—菜单与       命令行选项 32327.8.2   滚动xterm屏幕 32427.8.3   记录与终端机的交互过程—写           记录 32527.8.4   剪贴文本 32527.8.5   使用Tektronix模拟功能 32627.8.6   使用不同的字体 32727.8.7   使用颜色 32727.8.8   其他xterm选项 32727.8.9   设定终端机键盘 328第28章   实用程序和工具 32928.1   实用程序 32928.2   保存、显示和打印屏幕图像 33028.3   使用X的应用程序 33228.3.1   文字编辑器—Xedit 33328.3.2   邮件/信息处理系统—xmh 33628.4   示例和游戏程序 33628.4.1   找出通过随机迷宫的             路径—maze 33628.4.2   担任鼠标指针的大眼睛—             xeyes 33628.4.3   智慧盘游戏—puzzle 33728.4.4   打印一个大X标志—xlogo 33728.4.5   跳动的多面体—ico 33728.4.6   动态几何图案—muncher与             plaid 33728.7   显示信息和状态的程序 33728.7.1   列出X服务程序的特征—    xdpyinfo 33828.7.2   获取有关窗口的信息 33828.7.3   观察X的事件—xev 340第29章   定制X Window系统 34129.1   使用X的字体和颜色 34129.1.1   字体初步 34129.1.2   字体命名 34229.1.3   观察特定字体的内容—xfd 34329.1.4   保存字体和位置 34329.1.5   例子:在你的服务程序中      增加新字体 34529.1.6   使用X的颜色 34629.2   定义和使用图形 34729.2.1   系统图形程序库 34729.2.2   交互编辑图形—bitmap 34729.2.3   编辑图形的其他方法 34929.2.4   定制根窗口—xsetroot 34929.3   定义应用程序的缺省选项—           Resources 35029.3.1   什么是资源 35029.3.2   XToolkit 35129.3.3   管理资源—资源管理器 35329.3.4   资源的类型—如何指定值 35829.4   实际使用资源 35929.4.1   在何处保存资源的缺省值 35929.4.2   在服务程序上保存缺省值—    xrdb 36329.4.3   常见的错误和修正 36629.5   定制键盘和鼠标 36729.5.1   实际使用转换 36829.5.2   转换—格式和规则 37429.5.3   转换规范中常见的问题 37729.6   键盘和鼠标—对应和参数 37929.6.1   键盘和鼠标映射—xmodmap 37929.6.2   键盘和鼠标参数设定—xset 38229.7   进一步介绍和定制uwm 38429.7.1   uwm的新特征 38429.7.2   定制uwm 38629.8   显示器管理器—xdm 39029.8.1   需要做些什么 39029.8.2   xdm 39129.8.3   xdm的更多信息 39229.8.4   uwm配置 395附录A   Gcc使用介绍 396附录B   安装X Window窗口系统 410

    标签: LINUX 系统分析 高级编程

    上传时间: 2013-11-10

    上传用户:changeboy

  • C++学生信息管理系统设计

    本课题是设计一个C++的学生信息管理系统,包含学生基本信息,也可添加一些其他的信息。

    标签: 信息管理 系统设计

    上传时间: 2013-11-03

    上传用户:思索的小白

  • 一个简单好用的B+树算法实现

    一个简单好用的B+树算法实现

    标签: 算法

    上传时间: 2015-01-04

    上传用户:缥缈

  • 一个用Basic实现的B-Tree算法

    一个用Basic实现的B-Tree算法

    标签: B-Tree Basic 算法

    上传时间: 2013-12-30

    上传用户:ccclll