精华内容
下载资源
问答
  • 针对早期的UPS电源的RS232接口标准,已经无法满足目前计算机硬件及软件技术的发展要求,导致很多UPS电源无法继续作为电脑等设备的备用电源。随着NAS用户群体的增多,而用户最担心的问题无疑是突然发生市电中断,NAS...

    一、方案背景:

    针对早期的UPS电源的RS232接口标准,已经无法满足目前计算机硬件及软件技术的发展要求,导致很多UPS电源无法继续作为电脑等设备的备用电源。随着NAS用户群体的增多,而用户最担心的问题无疑是突然发生市电中断,NAS无法正常工作,极有可能丢失重要数据,因此,UPS电源也成为了NAS用户的备用电源。但目前市面上,很多UPS电源并未支持NAS,若对原本的UPS电源进行内部升级兼容,成本较高,从而导致UPS厂商的商机流失。那么针对上述问题,该如何低成本、有效地解决呢?

    二、方案简介:

    UPS电源即插即用的USB接口板方案是一种可以让普通的台式机配合UPS电源,享受笔记本的电源管理功能;无需安装驱动程序及任何附加的PC端软件,为电脑、服务器系统、NAS等提供“绿色”的电源监控保护的经济型USB接口芯片方案。

    三、功能特点:

    1.采用USB1.0/1.1接口,兼容USB2.0接口,支持热拔插,即插即用。经济型,成本10元左右,即可对UPS电源进行升级。

    2.无需安装软件,即可实现电脑、服务器、NAS等出现供电异常时关机保护功能。支持所有符合HID规范的操作系统,包括WindowsXP、Windows2003、VISTA等。

    3.完善的危机处理机制,用户可以根据电池剩余容量设定处理机制,包括待机,休眠,关机等。

    4.支持NAS,使绝大多数UPS电源能支持NAS。接入后,NAS自动识别,例如:群晖NAS的界面显示。

    5.配合UPSmate软件,可提供更友好的操作界面,直观展示UPS电源的输入电压,输出电压,电池容量,预测剩余工作时间,市电状态等所有UPS运行状态的监控,更可以显示厂家自定义的相关支持信息。

    6.通过手机微信扫码,快速实现手机在线监控。出现UPS断电、通讯中断等异常情况时,第一时间发送告警信息到用户手机微信上。

    四、方案总结:

    该方案使UPS电源拥有了USB接口,可以让普通的台式机配合UPS电源,享受笔记本的电源管理功能。无需安装软件,即可实现电脑、服务器等出现供电异常时关机保护功能。同时UPS配合USB接口板,使UPS能支持NAS,在NAS使用过程中,提供稳定的电源保护。以低成本,高效益的方式对UPS进行升级,使UPS厂商能把握住更多的商机。

    更完善的UPS、精密空调、电池巡检等产品配套方案和技术服务,请在下面评论或留言,竣达技术为您详细解答。

    展开全文
  • 开发基于Cy68013的USB设备已经有一段时间,虽然知道它可以支持即插即用,但是一直没有去设计相关的代码,只是在MFC中设计了一个名为“USB连接”的按钮来手动连接到USB设备(参考《USB应用开发技术大全》薛园园编著 ...

        开发基于Cy68013的USB设备已经有一段时间,虽然知道它可以支持即插即用,但是一直没有去设计相关的代码,只是在MFC中设计了一个名为“USB连接”的按钮来手动连接到USB设备(参考《USB应用开发技术大全》薛园园编著 人民邮电出版社,2007)。最近又去翻看Cy68013的帮助文档,发现了支持插即用的相关代码,于是试验了一下,基本解决了基于Cy68013的USB设备的PnP功能。

     

        在CyAPI的帮助文件中,对于提供的USB设备类CCyUSBDevice有一段这样的解释:

     

    CCyUSBDevice::CCyUSBDevice(HANDLE hnd = NULL, GUID guid = CYUSBDRV_GUID)

    * This is the constructor for the CCyUSBDevice class.
    * It registers the window of hnd to receive USB Plug and Play messages when devices are onnected or disconnected to/from the driver.
    * The object created serves as the programming interface to the driver whose GUID is passed in the guid parameter.

     

        可见,在构建类的对象时给定其HANDLE之后便可以支持USB即插即用。

     

        在CyAPI的帮助文件中还给出了代码示例(虽然是c++ Builder的代码,但对VC程序还是有借鉴作用的)。代码如下:

       void  __fastcall TMainForm::FormCreate(TObject  *Sender)
       {
          USBDevice = new CCyUSBDevice(Handle);
          CurrentEndPt = USBDevice->ControlEndPt;
       }  
       //  Overload MainForm's WndProc method to watch for PnP messages
       //  Requires #include <dbt.h>
       void __fastcall TMainForm::WndProc(TMessage &Message)
       {

         if (Message.Msg == WM_DEVICECHANGE) {

           // Tracks DBT_DEVICEARRIVAL followed by DBT_DEVNODES_CHANGED
           if (Message.WParam == DBT_DEVICEARRIVAL) {
             bPnP_Arrival = true;
             bPnP_DevNodeChange = false;
           }

           // Tracks DBT_DEVNODES_CHANGED followed by DBT_DEVICEREMOVECOMPLETE
           if (Message.WParam == DBT_DEVNODES_CHANGED) {
             bPnP_DevNodeChange = true;
             bPnP_Removal = false;
           }

           if (Message.WParam == DBT_DEVICEREMOVECOMPLETE) {
             bPnP_Removal = true;
     
             PDEV_BROADCAST_HDR bcastHdr = (PDEV_BROADCAST_HDR) Message.LParam;
             if (bcastHdr->dbch_devicetype == DBT_DEVTYP_HANDLE) {

               PDEV_BROADCAST_HANDLE pDev = (PDEV_BROADCAST_HANDLE) Message.LParam;
               if (pDev->dbch_handle == USBDevice->DeviceHandle())
                 USBDevice->Close();

             }
           }

           // If DBT_DEVNODES_CHANGED followed by DBT_DEVICEREMOVECOMPLETE
           if (bPnP_Removal && bPnP_DevNodeChange) {
              Sleep(10);
              DisplayDevices();
              bPnP_Removal = false;
              bPnP_DevNodeChange = false;
           }

           // If DBT_DEVICEARRIVAL followed by DBT_DEVNODES_CHANGED
           if (bPnP_DevNodeChange && bPnP_Arrival) {
              DisplayDevices();
              bPnP_Arrival = false;
              bPnP_DevNodeChange = false;
           }

         }

         TForm::WndProc(Message);

       }

        可以看出,程序通过重载WndProc来实现USB设备的相关通知(“Overload MainForm's WndProc method to watch for PnP messages ”), 而在VC下也是有这个函数的,仿照上述代码,可以编写代码如下:

    LRESULT C**IDlg::WindowProc(UINT message,WPARAM wParam,LPARAM lParam)

    {  
      //   TODO:   在此添加专用代码和/或调用基类  
     if (message == WM_DEVICECHANGE)
     {
           // Tracks DBT_DEVICEARRIVAL followed by DBT_DEVNODES_CHANGED
           if (wParam == DBT_DEVICEARRIVAL)
        {
             bPnP_Arrival = true;
             bPnP_DevNodeChange = false;
           }

           // Tracks DBT_DEVNODES_CHANGED followed by DBT_DEVICEREMOVECOMPLETE
           if (wParam == DBT_DEVNODES_CHANGED)
        {
             bPnP_DevNodeChange = true;
             bPnP_Removal = false;
           }

           if (wParam == DBT_DEVICEREMOVECOMPLETE)
        {
             bPnP_Removal = true;

    //       PDEV_BROADCAST_HDR bcastHdr = (PDEV_BROADCAST_HDR) lParam;
    //       if (bcastHdr->dbch_devicetype == DBT_DEVTYP_HANDLE)
       {

    //           PDEV_BROADCAST_HANDLE pDev = (PDEV_BROADCAST_HANDLE) lParam;
    //       DEV_BROADCAST_HDR   *stHDR;  
    //    stHDR   =   (DEV_BROADCAST_HDR   *)lParam;     
        
                 //if (pDev->dbch_handle == USBDevice->DeviceHandle()) //判断设备类型 
        //if (stHDR->dbch_handle == USBDevice->DeviceHandle())
    //             USBDevice->Close();
             }
           }

           // If DBT_DEVNODES_CHANGED followed by DBT_DEVICEREMOVECOMPLETE
           if (bPnP_Removal && bPnP_DevNodeChange)
        {
              Sleep(10);
              DisplayDevices();
              bPnP_Removal = false;
              bPnP_DevNodeChange = false;
           }

           // If DBT_DEVICEARRIVAL followed by DBT_DEVNODES_CHANGED
           if (bPnP_DevNodeChange && bPnP_Arrival)
        {
              DisplayDevices();
              bPnP_Arrival = false;
              bPnP_DevNodeChange = false;
           }

         }

        return   CDialog::WindowProc(message,wParam,lParam);  

    }

        然而该段代码并没有指明产生USB消息的设备类型,因此任何USB设备的插拔都会引起程序的相应,为了准确识别到Cy68013的USB设备特别编写了代码中加粗的DisplayDevices(),代码如下:

    void CECHWorkStationIIDlg::DisplayDevices()
    {
       if(USBDevice->IsOpen())
       {
          USBDevice->Open(0);
          if(!USBDevice->IsOpen())
          {
              USBDevice->Close();
              m_USBStatus = "未连接到仪器";
              UpdateData(FALSE);
             //   MessageBox("USB设备移除。/n","USB connect",MB_OK|MB_ICONERROR);
          }   
       } 
       else
       {
           USBDevice->Open(0);
           if(USBDevice->IsOpen())
           {
               m_USBStatus = USBDevice->DeviceName;
               UpdateData(FALSE);
               if(USBDevice->DeviceCount()>1)
               MessageBox("应用程序不支持多台仪器同时连接到电脑。/n请移除不必要的仪器!/n","出错",MB_OK|MB_ICONERROR);
           }  
       }
    }

     

        这样就实现了CY68013设备的热插拔。

        上述内容只是提供了一种解决CY68013 USB设备的一种方法。更多方法欢迎大家一起讨论!

     

     

     

    展开全文
  • USB接口作为PC上和通用的接口,具备可连接多种类型的设备,连接简单,即插即用支持热插拨,多数应用场景下不需要提供独立的电源,高传输速率,高可靠性等特点,被越来越多的产品作为接口作为接入PC的连接方式。...
  • USB设备驱动

    2014-09-19 13:53:48
    USB(Universal Serial Bus)串行通用总线,支持即插即用,也称之为菊链(daisy chaining),因为在一条线缆上可以最多链接127个设备;速度传输速率可达4Mb/s~12Mb/s。USB采用级联方式。 1、USB连接拓扑结构 1)USB...
    USBUniversal Serial Bus)串行通用总线,支持即插即用,也称之为菊链(daisy chaining,因为在一条线缆上可以最多链接127个设备;速度传输速率可达4Mb/s~12Mb/sUSB采用级联方式。
    

    1USB连接拓扑结构

    1USB host控制器;host控制器其实也就是一个PCI设备,挂载在PCI总线上。

    2USB HubUSB设备。

    我们可以将USB设备理解也一个USB Host连接多个逻辑设备。

    wps_clip_image-15952

    wps_clip_image-6718

    2USB通信流程

    USB的连接模式是HostDevice的连接模式,所有的请求都是由HostDevice发出。

    wps_clip_image-2148

    SWsoftware

        每个USB设备都会有多个管道。对于USB设备驱动程序员,主要工作在USB设备层。

    对于每个USB设备,都有一个或者多个的接口,每个接口(Interface)有多个端点(Endpoints,每个端点通过管道(Pipes)USB Host控制器连接。每个USB设备都会有一个特殊的端点,Endpoint0,它负责传输设备的描述信息,同时也负责传输PC与设备之间的控制信息。

    wps_clip_image-17363

    USB设备驱动向USB控制器驱动请求请求的每次传输被称为一个事务,事务有四种类型,Bulk Transaction,Control Transaction,Interrupt Transaction,Isochronous Transaction。每次事务都会分解成若干个数据包在USB总线上传输。每次传输必须经历两个或三个部分;第一部分,USB控制器向USB设备发出命令,第二部分是USB控制器和USB设备之间传递读写请求,是可选的,第三部分是握手信号。

    如下为Bulk Transaction的示意图:

    wps_clip_image-7376

    wps_clip_image-22829

    其它参见[1]

    3、关于Windows 下的USB驱动

    常用usbviewBusHound来观察和分析USB设备。关于USB设备请求,设备描述符,配置描述符,接口描述符,端点描述符,及USB具体实例,可以参见[1]

    USB驱动程序的主要功能就是设置这些USB令牌,和获取USB设备描述符。USB驱动程序将这些请求最终转化为USB请求包(URB),然后发往USB总线驱动程序。

    [1] Windows驱动开发详解,张帆


    转:http://www.cnblogs.com/mydomain/archive/2010/12/11/1903059.html

    展开全文
  • 前言 接下来的几篇文章都是跟USB驱动相关的,而USB又是个很复杂的东西,所以...USB介绍 USB(Universal Serial Bus)全称通用串口总线,USB为解决即插即用需求而诞生,支持热插拔。USB协议版本有USB1.0、USB1.1、USB2...

    点击上方蓝字关注我们!

    前言

        接下来的几篇文章都是跟USB驱动相关的,而USB又是个很复杂的东西,所以如果一下子就扎进去学习源码,就会一头雾水。所以在学习USB驱动之前,我们先来了解一些USB的基础知识。

    USB介绍

        USB(Universal Serial Bus)全称通用串口总线,USB为解决即插即用需求而诞生,支持热插拔。USB协议版本有USB1.0、USB1.1、USB2.0、USB3.0等,USB2.0,USB3.0目前应用比较广泛了。

        由于USB是主从模式的结构,设备与设备之间、主机与主机之间不能互连,为解决这个问题,扩大USB的应用范围,出现了USB OTG(ON The Go)。USB OTG 同一个设备,在不同的场合下可行在主机和从机之间切换。

    USB速率对比

    USB版本最大传输速率速率称号
    USB 1.01.5Mbps(192KB/s)低速(Low-Speed)
    USB 1.112Mbps(1.5MB/s)全速(Full-Speed)
    USB 2.0480Mbps(60MB/s)高速(High-Speed)
    USB 3.0(USB 3.1 Gen 1)5Gbps(500MB/s)超高速(Super-Speed)
    USB 3.1 Gen 210Gbps(1280MB/s)超高速+(Super-speed+)

    USB总线

    (1) USB2.0

    USB2.0总线采用4芯的屏蔽线,一对差分线(D+, D-)传输信号,另一对(VBUS, 电源线) 传输+5v的直流电。

    65175a29223508aadbe8680683615884.png

    (2)USB3.0

    USB3.0设计了9条内部线路,除了VBUS、电源线、屏蔽线之外,其余3对都是数据传输线路。其中保留了D+与D-这两条兼容USB2.0的线路,新增了SSRX与SSTX专用的USB3.0所设的线路。

    9b3cfdd983beac2910dba16d057e0f8e.png

    USB控制器类型

        OHCI、UHCI都是USB1.1的接口标准,而EHCI是对应USB2.0的接口标准,最新的xHCI是USB3.0的接口标准。

    • OHCI( Open Host Controller Interface ) 是支持USB1.1的标准。

    • UHCI (Universal Host Controller Interface ),是Intel主导的对USB1.0、1.1的接口标准,与OHCI不兼容。

    • EHCI(Enhanced Host Controller Interface ) ,是Intel主导的USB2.0的接口标准。EHCI仅提供USB2.0的高速功能,而依靠UHCI或OHCI来提供对全速(full-speed)或低速(low-speed)设备的支持。

    • xHCI( eXtensible Host Controller Interface ),是最新的USB3.0的接口标准,它在速度、节能、虚拟化等方面都比前面3中有了较大的提高。xHCI 支持所有种类速度的USB设备(USB 3.0 SuperSpeed, USB 2.0 Low-, Full-, and High-speed, USB 1.1 Low- and Full-speed)。xHCI的目的是为了替换前面三种(UHCI/OHCI/EHCI)。

    名词解释

    • USB Host(USB主机)

    主机就是USB总线中作主设备角色的设备, 负责管理USB总线中的数据传输及端口管理.比如一个U盘和PC通讯, PC在这里就是USB Host。

    • USB Hub(USB集线器)

    USB Hub可以将一个USB口转换为多个,USB Host带有Root Hub,第一个USB设备是一个根集线器(Root_hub),它控制连接到其上的整个USB总线,该控制器是连接PCI总线和USB总线的桥,也是该总线上的第一个USB设备,USB Hub对于上游而言是一个USB Device, 对于下游而言扮演USB Host, 所以USB设备本身不知道自己连接在Hub还是Root Hub上。

    • HCD(Host Controller Driver)

    主机控制器驱动

    上面这些名词在驱动中很常见,简单提一下!

    c65101bb55bed2a78e397dd44102bf66.png

    往期推荐

    • Linux驱动分析之Framebuffer驱动

    • Linux驱动分析之LCD驱动架构

    • Linux应用开发之coredump

    好文!点个好看!
    展开全文
  • USB是应用在PC机上的一种接口技术,真正的即插即用,英文全称是Universal Serial Bus,USB就是简写,中文叫通用串行总线。最早出现在1995年,伴随着奔腾机发展而来。自微软在Windows 98中加入对USB接口的支持后,USB...
  • usb转串口设备从硬件上来说也是一个即插即用usb设备。插入或拔出的时候,都是通过usb的hub集线器检测。那么是如何检测并自动安装对应接口的驱动的呢?---------------目前网络上找到的资料都是零散的,关键是没有...
  • 36、USB设备驱动

    2010-12-11 17:23:00
    USB(Universal Serial Bus)串行通用总线,支持即插即用,也称之为菊链(daisy chaining),因为在一条线缆上可以最多链接127个设备;速度传输速率可达4Mb/s~12Mb/s。USB采用级联方式。 1、USB连接拓扑结构 1)USB ...
  • usb转串口设备从硬件上来说也是一个即插即用usb设备。插入或拔出的时候,都是通过usb的hub集线器检测。那么是如何检测并自动安装对应接口的驱动的呢?---------------目前网络上找到的资料都是零散的,关键是没有...
  • 为没有串口的计算机提供快速的通道,而且,使用USB转串口设备等于将传统的串口设备变成了即插即用USB设备。作为应用最广泛的USB接口,每台电脑必不可少的通讯接口之一,它的最大特点是支持热插拨,即插即用。传输...
  • 在传统的计算机系统上常采用串口(如RS232)和并口连接外围设备,但串口和并口都存在着通信速度 慢,接口独占不利于扩展等无法克服的缺点,而通用串行总线(Universal Serial Bus,即USB)因具有传输 速度快、支持热...
  • 由于USB接口具有即插即用的特性,现已出现只有USB口而没有传统接口的PC,那么在这样的计算机上如何使用旧式基于串行接口的设备呢?本文介绍了三种方法,并对各自的优缺点进行了详细的讨论。  过去PC用户在接入...
  •  软件绿色小巧,即插即用,是数码消费者、电子爱好者、DIY人士和数码维修人员身边的好帮手。   -------------------------------------- 应用举例: 1、快速修复U盘:不用拆机即可查询U盘的芯片型号,快速找到...
  • 一、支持即插即用。一方面是热插拔,在不需要重启计算机或关闭外设点条件下,便可以实现外设与就是那几点连接和断开;另方面是可以快速简易安装硬件设备而无需重新配置系统。 二、可以使用总线电源。USB总线可以向...
  •  软件绿色小巧,即插即用,是数码消费者、电子爱好者、DIY人士和数码维修人员身边的好帮手。 应用举例: 1、快速修复U盘:不用拆机即可查询U盘的芯片型号,快速找到对应的量产工具 2、帮你识别假冒U盘:还怕买到...
  • 摘要:硬件描述语言verilog HDL设计实现了一种MCU&USB设备控制器IP核。论文首先简要介绍了设计的背景,重点对自主研发的将MCU&USB控制器集成于一个芯片的设计和研究分析。最后给出nc-verilog功能仿真方案以及FPGA...
  • 在传统的计算机系统上常采用串口(如RS232)和并口连接外围设备,但串口和并口都存在着通信速度 慢,接口独占不利于扩展等无法克服的缺点,而通用串行总线(Universal Serial Bus,即USB)因具有传输 速度快、支持热...
  • USB

    2020-09-01 10:56:18
    USB 接口支持设备即插即用和热插拔功能。USB是在1994年底由英特尔、康柏、IBM、 Microsoft 等多家公司联合提出的。 USB 发展到现在已经有USB1.0/1.1/2.0/3.0等多个版本。目前用的最多的就是USB1.1 和 USB2.0,...
  • 软件绿色小巧,即插即用,是数码消费者、电子爱好者、DIY人士和数码维修人员身边的好帮手。 -------------------------------------- 1、快速修复U盘:不用拆机即可查询U盘的芯片型号,快速找到对应的量产工具 2、...
  • USB特点

    2020-11-13 02:17:48
    USB具有以下一些显著特点。  (1)高速数据传送  USB1.1支持1.5~12Mbps的传输速率,2.0版本更支持高达120~240Mbps的传输速率,该速率与一个标准的并口相比,也快出近10...所有USB设备支持拔,系统对其进行
  •  软件绿色小巧,即插即用,是数码消费者、电子爱好者、DIY人士和数码维修人员身边的好帮手。   应用举例:(暂不支持Win7系统下检测) 1、快速修复U盘:不用拆机即可查询U盘的芯片型号,快速找到对应的量产工具 2、...
  • 威龙科技(ValenceTech)宣布推出能进行CD/MP3/WMA解码、具内置USB端口支持和SD卡支持的解码器?...与其他解码器更多的不同之处在于,AP701还具备SD支持功能,终端用户可以享受SD卡即插即用设备的乐趣。 A
  • 威龙科技(ValenceTech)宣布推出能进行CD/MP3/WMA解码、具内置USB端口支持和SD卡支持的解码器–所有这些都...与其他解码器更多的不同之处在于,AP701还具备SD支持功能,终端用户可以享受SD卡即插即用设备的乐趣。 AP70
  • USB3.0 driver

    2018-08-08 11:54:12
    主板上驱动、usb驱动 USB,是英文Universal Serial Bus(通用串行总线)的缩写,是一个外部总线标准,...USB接口支持设备即插即用和热插拔功能。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。
  • USB(Universal Serial Bus)全称通用串口总线,USB为解决即插即用需求而诞生,支持热插拔。USB协议版本有USB1.0、USB1.1、USB2.0、USB3.1等,USB2.0目前比较常用,USB是主从模式的结构,设备设备之间、主机与主机...
  • 1. 历史USB,是英文Universal ...USB接口支持设备即插即用和热插拔功能。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。下一代USB接口将会有改动方向,下一代的Type-C USB接口,可支持正反
  • USB Interface Design

    2020-05-05 17:36:23
    USB物理层介绍及电路设计注意事项博文原创,转载请注明出处! USB-Universal Serial BusUSB,是英文Universal Serial Bus,通用串行总线的缩写,是一个...USB接口支持设备即插即用和热插拔功能。 USB是在1994年...
  • Android USB编程

    千次阅读 2015-05-29 10:07:57
    USB接口支持设备即插即用和热插拔功能。 与USB有关的OTG既是On-The-Go,主要用于各种不同的设备或移动设备件间的链接和数据交换。 二、Android的USB相关API 包:android.hardware.usb 类:UsbManager/Usb...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 290
精华内容 116
关键字:

usb设备支持即插即用