读书笔记.docx
- 文档编号:2790166
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:21
- 大小:40.47KB
读书笔记.docx
《读书笔记.docx》由会员分享,可在线阅读,更多相关《读书笔记.docx(21页珍藏版)》请在冰点文库上搜索。
读书笔记
JIANGSUUNIVERSITY
读书笔记
专业:
电子信息工程
班级:
09电子1班
姓名:
王雪
指导教师姓名:
汪洋
指导教师职称:
教授
2013年3月
1、基于USB的数据采集系统设计(张玉莹)
数据采集系统总体设计
(1)数据存储空间
数据存储空间和采样速度决定了采样时间的长短,理论上讲,存储空间越大,采样速度越慢,采样持续时间越长。
(2)采样速度与精度
由前面的分析知道,本系统的最低采样速度必须大于ZkHz。
一般来说,采样频率越高,有效位数越高,精度就越高。
本系统采用DSP芯片自带的10位AD转换器,能够满足系统的要求。
(3)多通道采样和输入信号要求
为了满足多通道采样,本系统设计了两路模拟信号(可以扩展到16路)和四路数字信号的输入通道,输入信号经过预处理以保证满足系统要求。
(4)可视化界面控制
为了方便的控制系统工作,如与下位机通信、数据显示、串口调试等,需要设计PC端的控制界面。
下位机硬件设计
为了提高数字信号处理器的性能,最重要的是提高运算速度,DSP芯片普遍采用了特殊的硬件结构和软件指令系统,并且多数DSP运算指令可在一个指令周期内完成,甚至在一个指令周期内完成几条指令运算。
。
DSP具有如下特点:
(l)改进的哈佛结构
DSP芯片采用了程序存储器与数据存储器分离的哈佛结构,相对于冯.诺依曼结构性能有了很大的提高,并且允许程序空间和数据空间相互传送数据,即对哈佛结构进行了改进。
(2)多总线结构
目前,几乎所有的DSP芯片都采用多总线结构,保证在一个机器周期内多次访问程序空间和数据空间,大大提高了运算速度。
(3)流水线结构
在DSP中,指令系统采用流水线结构,执行一条指令需要通过预取指、取指、译码、寻址、取操作数和执行等阶段,使得多条指令可以同时运行,把指令周期降到最小值。
(4)多处理单元
DSP内部包括算数逻辑运算单元(ALU),辅助寄存器运算单元(RAU)、累加器(ACC)、硬件乘法器(MUL)等多个处理单元,并且可在同一个指令周期内进行运算,极大的提高了运算速度。
(5)硬件配置高
新一代DSP的外设越来越丰富,内嵌串行接口、并行主机接口、刀D转换器以及JTAG仿真接口等,使得DSP芯片的性价比越来越高。
(6)其它
针对DSP特殊的硬件结构,DSP的指令系统中还采用特殊的DSP指令,并且指令周期不断减小,运算精度越来越高。
最小系统设计
单独的DSP芯片是无法正常工作的,必须借助相应的外围器件才能构成一个完整的系统。
DSP硬件系统可以分为最小系统和外围接口电路两个部分。
所谓最小系统就是指:
在尽可能少的外围电路前提下,设计出一个可以使DSP能够正常运行并完成特定功能的最简单的系统。
DSP最小系统是开发DSP系统的基础,一般包含电源电路、复位电路、电平匹配电路、信号输入输出电路以及外部存储器总线接口电路等,作为控制系统的最小板,需在其外围接入扩展板,以使系统能够实现相应功能,为此,最小板设计扩展板接口,实现DSP与扩展板及其它芯片通信的目的。
A/D转换接口设计
在通常的嵌入式系统,尤其是DSP系统中,DSP作为核心芯片只能处理数字信号,而实际应用中经常是模拟信号,这就需要设计A/D转换电路,将模拟信号转换成数字信号。
A/D转换器的工作过程大致可以分为采样、保持、量化、编码、输出等几个环节。
理想的采样就是用周期性的冲激序列和给定的信号相乘,把时域上连续的信号,转换成时域离散的信号。
在实际中,真正的冲激序列是无法实现的,通常代之以窄脉冲串,通常有自然采样和平顶采样。
模拟信号经过采样后变成了时域离散的信号,但其采样变化值仍是连续变化的。
可以用M个离散的电平值来量化采样值,把幅度连续的信号变成幅度离散的信号。
用一个n位的二进制数来表示这M个离散的电平称之为编码。
当编码完成,即模拟量己经转换位数字量,完成了A/D转换过程。
在模数转换过程中,衡量A/D转换器性能的指标有:
A/D转换位数、无寄生动态范围(SFDR)、信噪比(SNR)、转换速率、量化噪声、孔径迟延、转换灵敏度等。
一般说来,A/D转换器位数越多,输入电压范围越小,转换灵敏度越高;提高采样频率,或者降低模拟信号带宽都可以改善A/D转换器的信噪比,提高刀D转换器的性能。
综上所述,在实际应用中,选择A/D转换器主要考虑以下因素:
(l)采样速率要满足系统要求;
(2)分辨率越高越好;
(3)转换位数越多越好;
(4)芯片的环境参数要符合实际情况,如温度、功耗和散热等;
(5)输出状态要与接口对应,如是并行输出还是串行输出,是TTL电平、CMOS电平还是ECL电平,以及编码方式等。
硬件接口设计:
硬件接口设计为了确保A/D转换器的正常工作以及整个系统的安全,需要保证输入的模拟信号幅度小于一定值。
在具体电路中,一般要对输入的模拟信号进行简单的变换和预处理,以保证输入的信号符合A/D转换器的输入要求。
数据存储器扩展电路设计DSP的设计基于改进型的哈佛结构,可以通过三组并行总线访问多个存储空间,分别是:
程序地址总线(PAB)、数据读地址总线(DRAB)和数据写地址总线(DWAB),其中的任意一组可以访问不同的程序空间,可以同时访问程序和数据空间。
USB的主机:
USB主机在主控制器的控制下和USB设备进行通信,是USB系统的管理者。
USB主机内部由下而上包含USB总线接口、USB系统软件和客户软件。
其中,客户软件USB设备驱动程序和界面应用程序。
USB设备驱动程序主要任务是与USB系统软件进行数据交流,通过向USB总线驱动程序(USBD)发送FO请求包(IRP)来完成二者之间的数据通信;界面应用程序主要是为用户提供一个可视化界面操作界面,可以与USB设备驱动程序进行交互以达到和USB设备通信的目的。
USB的设备
USB设备可以被划分为作为串行接口引擎的USB总线接口层、端点集合的USB逻辑层以及接口集合的功能层。
从USB协议的角度来看,USB设备可以分为集线器(Hub)和功能设备。
集线器可以提供更多的连接点,用于扩展主机的USB端口;功能设备是一种可以和USB主机进行交互的设备,有其特定功能。
功能设备内部应该包含配置信息,用以描述描述其功能和资源需求等。
在功能设备被使用前,需要主机根据配置信息对其进行配置。
USB的互连:
USB的物理拓扑结构采用分层次的星型的结构,通过USB电缆把一个集线器下行端口和另一个集线器的上行端口或者USB功能设备之间连接起来。
主机的USB接口称为根集线器,是拓扑结构的中心,每一层都是集线器和功能设备之间的点到点连接,包括根层,层次最多为7层,最多可以支持127个usB设备的连接(包括根集线器)。
USB的物理拓扑结构如图4.3所示。
在这7层中,除根集线器外,最多支持5个集线器的级联,即一个USB设备最多可以经过5个集线器来连接到主。
固件程序设计:
固件程序(简称“固件”)是指运行在FXZCPU中的程序,主要用于以下功能实现:
初始化功能设备的各硬件单元、重新配置功能设备、中断处理、定义寄存器以及设备和主机之间的驱动程序的响应和数据包的传输等。
通过固件程序的调度,主机得到设备的描述符和实现端点数据的传输。
固件程序开发是USB功能设备开发的重要组成部分,也是USB功能设备实现其功能的软件基础。
应用程序设计:
为了方便的实现PC机和数据采集系统的交互,本文利用Vis.alC料设计了一个可以通过界面控制的应用程序。
Windows程序设计围绕事件或者消息的产生来驱动运行处理函数(过程),程序执行的顺序取决于事件发生的顺序。
针对消息类型编写程序以处理接收到的消息,或者发出消息以驱动其它程序。
事件驱动编程方法是一种非顺序的程序设计,避免了死板的操作模式。
2、基于USB的数据采集系统设计
USB拓扑结构
USB系统通过具有相同接口的串行连线将不同的设备连接到一起。
USB的物理拓扑结构为分层的星形结构,由三部分组成:
USB主机、USB集线器和USB设备。
USB主机是星型结构的中心,它通过USB集线器级联更多的USB设备组成USB系统,物理上USB设备最多可以通过USB集线器扩展6层,USB系统最多允许同时连接127台外设。
USB基本物理结构
USB主机在USB系统中处于中心地位,并且对USB及其连接的设备有着特殊的责任。
主机控制着所有对USB的访问,一个外设只有主机允许才有权力访问总线。
主机同时也监测着USB的结构。
它可以被分为三个不同的功能模块:
USB主控制器、USB系统软件、客户软件。
主控制器负责读取HCD建立的事务处理列表,并将它们安排在一系列长度为1ms的帧或125us的小帧中,发送到USB总线上。
系统软件指PC上操作系统提供的一系列软件和驱动程序,主要包括USBD(USBdriver,USB驱动程序),HCD(HostControllerDriver,主机控制驱动程序),此外,二者各自提供了相应的编程接口。
客户软件负责和USB设备的功能单元进行通信,以实现某些特定功能。
它一般由开发人员开发,但有些厂商提供的芯片开发工具包中提供了范例程序代码,开发人员只需在其基础上稍加修改后即可使用。
USB集线器:
USB系统中的核心元件,通过一条上行线与主机中的根集线器相连,并具有若干个下行端口供其它USB设备与之相连。
这样一来,虽然一个主机上的根集线器的USB接口通常只有两个,但通过USB集线器,主机就可以连接多达127个USB设备。
USB设备:
指的是各种类型的USB外围设备。
对USB主机来说,它与所有USB设备的接口都是一致的,它认为一个USB设备由3个功能模块组成:
USB总线接口、USB逻辑设备、功能单元。
USB通信原理:
USB设备端点:
端点是一个USB设备唯一可以确认的部分,它是主机和设备之间的通信流终点。
每一个USB逻辑设备都包含了一个相当独立地进行操作的端点集合。
软件只能通过一个或多个端点与一个USB设备通信。
在对其进行配置之前,端点处于一种不确定状态。
所以只有在对其进行配置之后,主机才能访问某个端点。
管道:
一个USB设备管道是设备上的一个端点和主机上的软件的联合体。
它表示经过一个存储器缓冲区和一个设备上的端点,可以在主机上的软件之10间传送数据的能力。
它只是一种逻辑上的概念,并不是一个实际的对象。
一旦对USB设备进行配置之后,就会形成管道。
由于USB设备上电后总要对端点0进行配置,所以端点0总是拥有一个管道,该管道称为缺省管道。
系统软件利用该管道来确定设备识别和配置要求,并对其进行配置。
当设备配置完毕后,该设备的专用软件也可以使用缺省管道。
但是USB系统软件却也保留对缺省管道的“所有权”,并且由它来协调另外的客户软件对该管道的使用。
管道有两种类型,流管道(其中的数据没有USB定义的结构)和消息管道(其中的数据必须有USB定义的结构)。
USB数据采集系统硬件设计
系统硬件总体架构设计
USB传输的主要特点是传输速度快,因此USB数据采集系统主要是应用于大量数据的高速采集。
实际应用中,往往同时需要对多个外设的多路数据进行采集,因而对数据传输的实时性要求较高,USB2.0的出现使这种高速数据传输已成为可能。
由此,根据采集系统的工作流程,硬件电路采用模块化的设计方法,整个系统主要由信号调理模块、采集电路模块、数据缓冲存储模块、逻辑控制模块、USB接口模块以及电压转换模块组成。
信号调理模块设计
无绝缘轨道电路采用的都是相位连续的移频信号,移频信号利用的是移频键控调制技术,即用数字基带信号控制高频载波信号频率的变化。
因此移频信号具有抗电气化干扰能力强、频谱有效带宽小,相应的移频自动闭塞系统适应性广,信息量大、应变速度快,因而在铁路通信系统中获得了广泛的应用。
A/D采集电路模块设计
根据轨道数据采集的要求选择AD1674作为AD转换设备。
它是一种12位带并行微机接口的逐次逼近型模/数转换芯片,该芯片内部自带采样保持器(SHA)、10V基准电压源、时钟源及可和微处理器总线直接接口的暂存/三态输出缓冲器。
数据缓冲模块设计
模数转换器在连续数据采集模式下一次便可转换4Kb的数据,为使FIFO达到半满状态,半满标志位输出低电平。
因此必须选择具有8K数据容量缓存器。
逻辑控制电路设计
当USB进行两次读操作才会引发FIFO的一次读操作,从而将此12位的数据传输到计算机。
为解决此问题,本系统中采用可编程逻辑器件芯片进行逻辑控制,完成USB读取时钟信号的二分频以提供给FIFO。
USB接口模块设计
USB接口扮演了重要的角色,它不仅要完成配置数据和控制命令的传输,更重要的是要完成整个采集数据的发送。
硬件电路板设计
采用Prote199SE完成了最后的电路板制作,这也是当今制作电路板较为广泛的电子设计软件。
在进行电路板设计时,为保证数据传输正确,提高系统的整体性能,特别注意了一下细节:
(1)为了去除实际电路板中出现的电磁耦合带来的数据错误,在各处电源和地之间放入多组10μF和0.1μF的并联电容。
(2)由于A/D转换器对数字噪声很敏感,因此在该数据采集系统的电路板上模电源与数字电源是分开的,并从电路板上两个不同的方向和电源的入口处连接。
(3)在信号线的拐角处,都采用折线进行转换传输线的方向,以此来减少在信号线拐角处的信号误差。
系统软件总体设计
数据采集系统的软件设计一般包括三部分:
USB外设端的固件程序(Firmware)、主机操作系统上的客户驱动程序以及主机应用软件。
固件响应各种来自系统的USB标准请求,完成各种数据的交换工作和事件处理。
USB设备驱动程序为USB采集系统提供了应用软件与USB设备的接口。
而应用软件则实现用户与采集系统的交互完成数据采集,并能实现数据波形的放大缩小,信息回放等功能。
三者需要互相配合,才能完成可靠、快速的数据传输。
固件程序设计
固件实际上是单片机的程序文件,可采用C语言或是汇编语言编写,主要包括设备描述符表、设备功能代码和通信控制功能代码。
设备描述符描述USB设备的一般特性和配置,如设备类别、接口配置、VID和PID等,主机在枚举时要获取USB设备的描述符,从而获得设备的配置信息和相关驱动信息,用户可以通过修改固件中的描述符来改变设备的特性。
设备功能代码由设备的功能需求决定。
通信控制功能代码执行主机请求分析处理和数据交换处理功能。
USB驱动程序的作用
从一般意义上来说,设备驱动程序就是控制硬件设备的一组函数。
该组函数的作用是为了实现软件对硬件的访问。
Windows操作系统为了安全,采用了分层的操作系统结构,程序分别工作于内核态和用户态,处于用户态的一般用户程序不能直接进行硬件的访问,必须通过调用处于内核态的设备驱动程序,由驱动程序访问系统资源。
采集系统界面程序设计
界面程序主要具有:
采集命令控制、采集数据的实时曲线和数值显示、被采样数据的存取等功能。
在设计时,采用C++Builder作为程序的开发环境,并且充分运用了多线程的编程思想,完成了运行效率高、界面友好、操作简便的界面平台设计。
软件内部之间的通信
在应用程序中首先创建一个事件和一个采集线程,之后将事件句柄传递给驱动程序,用这一线程来等待驱动程序发送的事件消息,接收到事件消息后,就读取驱动程序的数据,显示数据。
3、基于USB的数据采集系统设计(王栋)
USB主机控制器/根集线器(Hostcontroller/Roothub)
USB系统中只能有一个主机(Host),在处理主机与设备间的通信时,所有的请求、数据与控制信号都能够而且只能被主机响应后才能实现其功能。
主机硬件包括USB主机控制器与USB根集线器两种。
USB集线器(USBhubs)
集线器的功能主要是提供另外的USB连接端口供用户串接设备,有点像网络的HUB集线器一样;而整个USB连接设备方式则有点像金字塔型的结构。
USB设备(USBdevices)
USB设备自然就是各种类型的外围设备,用于向主机提供一些额外的功能。
依照目前USB产品的规范,可以将USB设备分为三种类型:
(1)全速设备:
如CCD、移动硬盘等设备。
这些设备的传输速率最高为12Mbps。
(2)低速设备:
如键盘、鼠标等设备。
这些设备的传输速率最高为1.5Mbps。
除了速度低于全/高速设备之外,低速设备在某些USB的支持上也受限制。
(3)高速设备:
USB2.0所提出的新规范,也应用在如CCD、移动硬盘等设备
上。
这些设备的传输速率最高为480Mbps。
USB总线物理接口
USB传送信号和电源是通过一种四线的电缆实现的。
D+、D-两根线是用来传送数据的串行差分数据线对,另两根(VBus、GND)是符合标准的电源线,
VBus是+5V电源线,GND是地线,为下游的USB设备提供电源。
USB的逻辑结构
USB中的逻辑结构是主机与设备交换数据的基础。
而USB对于主机与设备之间的通信提供了特殊的协议:
虽然USB系统的总线是如图2.1所示的阶梯状星形的结构,但实际上USB主机与设备的连接方式却是如图2.3所示的一对一形式,即USB设备的逻辑连接。
而数据流的模式则是以这些逻辑连接为基本的架构。
USB数据传输类型
USB定义了4种传输类型:
控制传输(ControlTransfer)、同步传输(IsochronousTransfer)、中断传输(InterruptTransfer)、批量传输(BulkTransfer),每种传输类型都有不同的用途。
(1)控制传输
控制传输允许访问一个设备的不同部分,用于支持客户软件和它的应用之间关于设置信息、命令信息、状态信息的传输。
所有USB设备都必须支持控制传输,当设备第一次连接到主机时,就要用控制传输来交换信息。
要进行控制传输,需先由主机向设备发一个总线建立(SetupStage)信息。
它描述了控制访问的类型,设备将执行此控制访问。
之后是零个或多个控制数据信息的传输(DataStage),这是进行访问的具体信息;当传送的数据包长度为0或它的数据区长度小于最大长度时,都可认为数据阶段结束。
最后由状态信息的传(StatusStage)来结束一次控制传输,允许端点将这次控制传输的状态回送给客户软件。
(2)同步传输
同步传输能以恒定的速率传输大量数据,但不能保证数据的准确性。
因此同步传输特别适合用于数据发送和接收及时性远比其正确性重要的场合,例如图像采集系统。
同步传输不支持因总线错误而进行的重传,一个同步事务处理只包括令牌和数据阶段,没有使用握手包。
在同步传输中,发送方不管接收方是否成功接收数据,都一直连续发送数据,且不会对前面出错的数据进行重传;虽然接收方也可以判断数据传输是否发生了错误,但不会向发送方返回任何握手包。
(3)中断传输
中断传输是为这样一类设备设计的,它们只传送或接收少量数据,而且并不经常进行传输,但它们有一个确定的服务周期,必须在指定时间内完成数据传输。
例如键盘、鼠标等设备,它们所需处理的事件只是键盘的按下、鼠标的移动和点击等,数据量很小,且又需要在规定时间内完成传输。
高速、全速和低速设备均可使用中断传输,但不是必须支持中断传输。
(4)批量传输
批量传输的设计是为了支持某些在不确定的时间内进行的大量数据通信,适合于数据量大,而对时间和传输速率要求不高的设备,例如打印机、扫描仪等设备。
只有全速与高速设备,才可以使用批量传输。
一个批量传输事务一般由令牌、数据和握手三个阶段组成,当总线出现错误时传送失败,可进行重发。
USB标准请求
USB共定义了11种标准请求,所有的USB设备通过控制端点响应USB标准请求。
USB设备描述符
在USB设备的枚举过程中,主机是通过获得USB设备的描述符信息来得到设备的信息的。
描述符是一个数据结构,每个描述符以一个字节开始表明本描述符的长度,紧跟其后是一个字节的描述符类型信息。
嵌入式USB数据采集系统
USBOTG的出现使USB数据采集系统可进一步往嵌入式领域开发,即使用单片机/DSP作为USB主机来完成数据采集,并与采集设备进行USB通信,从而系统可脱离对PC机的依赖。
目前嵌入式USB数据采集系统的开发还不是很成熟,系统总体设计USB传输的主要特点是传输速度快,因此USB数据采集系统主要是应用于大量数据的高速采集。
实际应用中,往往同时需要对多个外设的多路数据进行采集,因而对数据传输的实时性要求较高,USB2.0的出现使这种高速数据传输已成为可能。
系统外围电路
系统的外围电路包括:
电源电路、复位电路、时钟产生电路、PLL配置电路。
(1)电源电路。
本系统中所有器件均可使用+5V电源电压;由于USB端口电源
可通过USB总线从PC机获得,因此本系统未使用外部电源,直接利用USB总线供电。
(2)复位电路。
单片机AT89C5131的RST引脚是复位信号输入引脚,复位的实现一般可采用上电复位和外部手动复位两种方式,本设计采用手动复位方式,通过按键S1来进行复位操作。
(3)时钟产生电路。
单片机AT89C5131的时钟发生器包括一个内部振荡器和一
个锁相环(PLL),所有外部设备以及CPU的内核工作所需的时钟信号都是由时钟发生器产生的。
(4)PLL配置电路。
AT89C5131的锁相环(PLL)是用来产生和外部低频时钟(外围设备时钟)同步的内部高频时钟(USB时钟)的,即USB接口所需的时钟信号是由PLL产生的。
固件程序设计
固件是整个USB数据采集系统中设备程序设计的重要部分,固件程序的主要功能是让主机(PC机)可以检测和识别USB设备,一般包括两项任务:
(1)实现设备配置并将配置信息告知主机,为主机和设备之间的通信做好准备;
(2)根据用户的特定需求,实现对外围设备的具体控制。
USB描述符定义
在USB设备枚举过程中,USB主机是通过获取USB设备的描述符来识别和配置设备的,因此在固件程序中首先需要根据USB设备的情况进行描述符的定义。
这些描述符需要按一定的顺序进行存放,以便于寻址。
USB驱动程序设计
驱动程序是操作系统中控制和连接硬件的关键模块,它给连接到计算机的硬件设备提供软件接口。
本系统中主机通过USB接口与设备的通信也需要通过USB驱动程序来实现,Windows虽然提供了多种USB设备的驱动程序,但并没有具体针对数据采集系统的驱动程序,因此本系统需要针对特定的设备(AT89C5131)来编制USB设备驱动程序。
Microsoft为Windows定义了设备驱动程序的模型,USB设备驱动程序也必须遵循该驱动程序模型,即WDM分层驱动程序模型。
应用程序设计
对USB数据采集系统的用户而言,与系统的交互是通过应用程序的设计实现的。
应用程序采用VisualC++编写,并使用VC++提供的MFC(MicrosoftFoundationClass,微软基础类)分别创建工作线程(WorkerThread)和用户界面线程(UserInterfaceThread),通过应用程序设计的操作界面可完成数据的采集和显示。
USB数据采集系统的软件实现,通过固件程序设计和USB驱动程序设计使PC机可以与USB设备进行正常的通信,并且数据采集系统可以进行正常的数据采集;通过界面程序的设计使采集到的数据波形图可以在PC机界面上显示出来
4、基于USB的数据采集系统的研究与设计
目前,市场上有几
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 读书笔记