位置:51电子网 » 技术资料 » 接口电路

基于USB总线的多路同步数据采集系统

发布时间:2008/5/27 0:00:00 访问次数:662

        

    

    

    来源:半导体技术 作者:赵莉 白智涛 王鹏

    

    摘要:本文针对计算机外设通过通用串行总线(usb)接口接入问题,设计了usb总线的数据同步采集系统,配以相应usb接口驱动程序,可实现各种计算机外设即插即用地接入。

    

    关键词:usb,同步数据采集,sie

    

    1. 引言

    通用串行总线(usb,universal serial bus)是现代pc数据传输的发展趋势,

    pc的所有外设,包括键盘、鼠标、显示器、打印机、录音机、数字音响、电视机顶盒、数码相机、扫描仪、modem及各种多媒体音频、视频设备均可通过usb接口接入pc。usb总线同步数据采集系统即为这种总线接入系统。

    

    2. 硬件方案

    本系统采用maxiam公司的max125四路12位同步采集芯片,只需一个

    启动信号即可实现同步采集、数据转换,完成后给出一个转换完成信号,可从端口依次读取a/d转换数据,送入单片机处理;usb接口芯片采用philips 公司的pdiusbd12,此芯片单片集成sie、fifo存储器、收发器及电压变换器,

    并严格遵从usb1.1协议,philips sie完成usb协议层,并且完全高速硬连接,无须任何软件干预。此模块功能包括:同步模式识别,并/串转换,位填充/解填充,crc检验/产生,pid 确认/产生,地址识别,握手响应/产生;类似于控制其它接口芯片(如并口芯片)一样控制此接口芯片,单片机将a/d转换结果送至pidusbd12, pidusbd12将自动完成通过usb接口传输数据至pc的功能(按usb1.1协议),

    具体实现电路如图1:

    

    图1

    

    图2

    3. 软件接口程序

    虽然win95 osr2.1 支持usb,但微软推荐在win98或win2000上使用usb。软件部分由wdm驱动程序和应用程序组成。对于usb客户驱动程序,主要是与 usbdi打交道,下面的代码完成了对于irp_mj_read和irp_mj_write的响应。

    

    

    /////////////////////////////////////////////////////////////////////////////

    // usbgatherread:

    //

    // description:

    // handle irp_mj_read requests

    //

    // arguments:

    // pointer to our fdo

    // pointer to the irp

    // irpstack->parameters.read.xxx has read parameters

    // user buffer at: associatedirp.systembuffer (buffered i/o)

    // mdladdress (direct i/o)

    //

    // return value:

    // this function returns status_xxx

    

    ntstatus usbgatherread( in pdevice_object fdo,

    in pirp irp)

    {

    pusbgather_device_extension dx = (pusbgather_device_extension)fdo->deviceextension;

    if( dx->iodisabled)

    return completeirp( irp, status_device_not_connected, 0);

    if (!lockdevice(dx))

    return completeirp( irp, status_delete_pending, 0);

    

    pio_stack_location irpstack = iogetcurrentirpstacklocation(irp);

    ntstatus status = status_success;

    ulong bytestxd = 0;

    

    // 得到参数

    longlong filepointer = irpstack->parameters.read.byteoffset.quadpart;

  

        

    

    

    来源:半导体技术 作者:赵莉 白智涛 王鹏

    

    摘要:本文针对计算机外设通过通用串行总线(usb)接口接入问题,设计了usb总线的数据同步采集系统,配以相应usb接口驱动程序,可实现各种计算机外设即插即用地接入。

    

    关键词:usb,同步数据采集,sie

    

    1. 引言

    通用串行总线(usb,universal serial bus)是现代pc数据传输的发展趋势,

    pc的所有外设,包括键盘、鼠标、显示器、打印机、录音机、数字音响、电视机顶盒、数码相机、扫描仪、modem及各种多媒体音频、视频设备均可通过usb接口接入pc。usb总线同步数据采集系统即为这种总线接入系统。

    

    2. 硬件方案

    本系统采用maxiam公司的max125四路12位同步采集芯片,只需一个

    启动信号即可实现同步采集、数据转换,完成后给出一个转换完成信号,可从端口依次读取a/d转换数据,送入单片机处理;usb接口芯片采用philips 公司的pdiusbd12,此芯片单片集成sie、fifo存储器、收发器及电压变换器,

    并严格遵从usb1.1协议,philips sie完成usb协议层,并且完全高速硬连接,无须任何软件干预。此模块功能包括:同步模式识别,并/串转换,位填充/解填充,crc检验/产生,pid 确认/产生,地址识别,握手响应/产生;类似于控制其它接口芯片(如并口芯片)一样控制此接口芯片,单片机将a/d转换结果送至pidusbd12, pidusbd12将自动完成通过usb接口传输数据至pc的功能(按usb1.1协议),

    具体实现电路如图1:

    

    图1

    

    图2

    3. 软件接口程序

    虽然win95 osr2.1 支持usb,但微软推荐在win98或win2000上使用usb。软件部分由wdm驱动程序和应用程序组成。对于usb客户驱动程序,主要是与 usbdi打交道,下面的代码完成了对于irp_mj_read和irp_mj_write的响应。

    

    

    /////////////////////////////////////////////////////////////////////////////

    // usbgatherread:

    //

    // description:

    // handle irp_mj_read requests

    //

    // arguments:

    // pointer to our fdo

    // pointer to the irp

    // irpstack->parameters.read.xxx has read parameters

    // user buffer at: associatedirp.systembuffer (buffered i/o)

    // mdladdress (direct i/o)

    //

    // return value:

    // this function returns status_xxx

    

    ntstatus usbgatherread( in pdevice_object fdo,

    in pirp irp)

    {

    pusbgather_device_extension dx = (pusbgather_device_extension)fdo->deviceextension;

    if( dx->iodisabled)

    return completeirp( irp, status_device_not_connected, 0);

    if (!lockdevice(dx))

    return completeirp( irp, status_delete_pending, 0);

    

    pio_stack_location irpstack = iogetcurrentirpstacklocation(irp);

    ntstatus status = status_success;

    ulong bytestxd = 0;

    

    // 得到参数

    longlong filepointer = irpstack->parameters.read.byteoffset.quadpart;

  

相关IC型号

热门点击

 

推荐技术资料

耳机放大器
    为了在听音乐时不影响家人,我萌生了做一台耳机放大器的想... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!