-
UPS电源即插即用的USB接口板方案
2021-03-11 13:44:39针对早期的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设备在VC程序中热插拔的实现
2009-06-05 20:21:00开发基于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设备的一种方法。更多方法欢迎大家一起讨论!
-
如何让嵌入式设备枚举成WinUSB设备
2021-01-19 17:09:11USB接口作为PC上和通用的接口,具备可连接多种类型的设备,连接简单,即插即用,支持热插拨,多数应用场景下不需要提供独立的电源,高传输速率,高可靠性等特点,被越来越多的产品作为接口作为接入PC的连接方式。... -
USB设备驱动
2014-09-19 13:53:48USB(Universal Serial Bus)串行通用总线,支持即插即用,也称之为菊链(daisy chaining),因为在一条线缆上可以最多链接127个设备;速度传输速率可达4Mb/s~12Mb/s。USB采用级联方式。 1、USB连接拓扑结构 1)USB...USB(Universal Serial Bus)串行通用总线,支持即插即用,也称之为菊链(daisy chaining),因为在一条线缆上可以最多链接127个设备;速度传输速率可达4Mb/s~12Mb/s。USB采用级联方式。
1、USB连接拓扑结构
1)USB host控制器;host控制器其实也就是一个PCI设备,挂载在PCI总线上。
2)USB Hub;USB设备。
我们可以将USB设备理解也一个USB Host连接多个逻辑设备。
2、USB通信流程
USB的连接模式是Host和Device的连接模式,所有的请求都是由Host向Device发出。
(SW-software)
每个USB设备都会有多个管道。对于USB设备驱动程序员,主要工作在USB设备层。
对于每个USB设备,都有一个或者多个的接口,每个接口(Interface)有多个端点(Endpoints),每个端点通过管道(Pipes)和USB Host控制器连接。每个USB设备都会有一个特殊的端点,Endpoint0,它负责传输设备的描述信息,同时也负责传输PC与设备之间的控制信息。
USB设备驱动向USB控制器驱动请求请求的每次传输被称为一个事务,事务有四种类型,Bulk Transaction,Control Transaction,Interrupt Transaction,Isochronous Transaction。每次事务都会分解成若干个数据包在USB总线上传输。每次传输必须经历两个或三个部分;第一部分,USB控制器向USB设备发出命令,第二部分是USB控制器和USB设备之间传递读写请求,是可选的,第三部分是握手信号。
如下为Bulk Transaction的示意图:
其它参见[1]。
3、关于Windows 下的USB驱动
常用usbview和BusHound来观察和分析USB设备。关于USB设备请求,设备描述符,配置描述符,接口描述符,端点描述符,及USB具体实例,可以参见[1]。
USB驱动程序的主要功能就是设置这些USB令牌,和获取USB设备描述符。USB驱动程序将这些请求最终转化为USB请求包(URB),然后发往USB总线驱动程序。
[1] Windows驱动开发详解,张帆
转:http://www.cnblogs.com/mydomain/archive/2010/12/11/1903059.html
-
linux 限制usb设备速率_USB基础知识(一)
2021-01-13 16:17:31前言 接下来的几篇文章都是跟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.0 1.5Mbps(192KB/s) 低速(Low-Speed) USB 1.1 12Mbps(1.5MB/s) 全速(Full-Speed) USB 2.0 480Mbps(60MB/s) 高速(High-Speed) USB 3.0(USB 3.1 Gen 1) 5Gbps(500MB/s) 超高速(Super-Speed) USB 3.1 Gen 2 10Gbps(1280MB/s) 超高速+(Super-speed+) USB总线
(1) USB2.0
USB2.0总线采用4芯的屏蔽线,一对差分线(D+, D-)传输信号,另一对(VBUS, 电源线) 传输+5v的直流电。
(2)USB3.0
USB3.0设计了9条内部线路,除了VBUS、电源线、屏蔽线之外,其余3对都是数据传输线路。其中保留了D+与D-这两条兼容USB2.0的线路,新增了SSRX与SSTX专用的USB3.0所设的线路。
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)
主机控制器驱动
上面这些名词在驱动中很常见,简单提一下!
往期推荐
Linux驱动分析之Framebuffer驱动
Linux驱动分析之LCD驱动架构
Linux应用开发之coredump
-
三个摄像头复合成一个usb设备_USB是什么
2020-12-06 03:55:38USB是应用在PC机上的一种接口技术,真正的即插即用,英文全称是Universal Serial Bus,USB就是简写,中文叫通用串行总线。最早出现在1995年,伴随着奔腾机发展而来。自微软在Windows 98中加入对USB接口的支持后,USB... -
arduino usb串口驱动_linux的usb转串口热插拔检测、驱动的自动安装
2020-11-25 10:53:58usb转串口设备从硬件上来说也是一个即插即用的usb设备。插入或拔出的时候,都是通过usb的hub集线器检测。那么是如何检测并自动安装对应接口的驱动的呢?---------------目前网络上找到的资料都是零散的,关键是没有... -
36、USB设备驱动
2010-12-11 17:23:00USB(Universal Serial Bus)串行通用总线,支持即插即用,也称之为菊链(daisy chaining),因为在一条线缆上可以最多链接127个设备;速度传输速率可达4Mb/s~12Mb/s。USB采用级联方式。 1、USB连接拓扑结构 1)USB ... -
ft232 mac usb串口驱动_linux的usb转串口热插拔检测、驱动的自动安装
2021-01-09 05:36:13usb转串口设备从硬件上来说也是一个即插即用的usb设备。插入或拔出的时候,都是通过usb的hub集线器检测。那么是如何检测并自动安装对应接口的驱动的呢?---------------目前网络上找到的资料都是零散的,关键是没有... -
USB转串口驱动(支持XP).rar
2019-08-24 12:15:42为没有串口的计算机提供快速的通道,而且,使用USB转串口设备等于将传统的串口设备变成了即插即用的USB设备。作为应用最广泛的USB接口,每台电脑必不可少的通讯接口之一,它的最大特点是支持热插拨,即插即用。传输... -
基于MCU与USB设备控制器IP核的设计方案
2021-01-19 17:34:43在传统的计算机系统上常采用串口(如RS232)和并口连接外围设备,但串口和并口都存在着通信速度 慢,接口独占不利于扩展等无法克服的缺点,而通用串行总线(Universal Serial Bus,即USB)因具有传输 速度快、支持热... -
三种方式解决USB接口与串口设备之间互连问题
2020-11-30 12:57:49由于USB接口具有即插即用的特性,现已出现只有USB口而没有传统接口的PC,那么在这样的计算机上如何使用旧式基于串行接口的设备呢?本文介绍了三种方法,并对各自的优缺点进行了详细的讨论。 过去PC用户在接入... -
USB设备芯片型号检测工具
2009-08-01 20:53:41软件绿色小巧,即插即用,是数码消费者、电子爱好者、DIY人士和数码维修人员身边的好帮手。 -------------------------------------- 应用举例: 1、快速修复U盘:不用拆机即可查询U盘的芯片型号,快速找到... -
USB基本概念及设备编程方法
2019-12-23 10:43:57一、支持即插即用。一方面是热插拔,在不需要重启计算机或关闭外设点条件下,便可以实现外设与就是那几点连接和断开;另方面是可以快速简易安装硬件设备而无需重新配置系统。 二、可以使用总线电源。USB总线可以向... -
ChipGenius—USB设备芯片型号检测工具
2011-01-20 17:24:33软件绿色小巧,即插即用,是数码消费者、电子爱好者、DIY人士和数码维修人员身边的好帮手。 应用举例: 1、快速修复U盘:不用拆机即可查询U盘的芯片型号,快速找到对应的量产工具 2、帮你识别假冒U盘:还怕买到... -
嵌入式系统/ARM技术中的MCU&USB设备控制器IP核的设计
2020-11-09 11:00:03摘要:用硬件描述语言verilog HDL设计实现了一种MCU&USB设备控制器IP核。论文首先简要介绍了设计的背景,重点对自主研发的将MCU&USB控制器集成于一个芯片的设计和研究分析。最后给出nc-verilog功能仿真方案以及FPGA... -
嵌入式系统/ARM技术中的基于MCU与USB设备控制器IP核的设计方案
2020-10-20 04:18:03在传统的计算机系统上常采用串口(如RS232)和并口连接外围设备,但串口和并口都存在着通信速度 慢,接口独占不利于扩展等无法克服的缺点,而通用串行总线(Universal Serial Bus,即USB)因具有传输 速度快、支持热... -
USB
2020-09-01 10:56:18USB 接口支持设备的即插即用和热插拔功能。USB是在1994年底由英特尔、康柏、IBM、 Microsoft 等多家公司联合提出的。 USB 发展到现在已经有USB1.0/1.1/2.0/3.0等多个版本。目前用的最多的就是USB1.1 和 USB2.0,... -
ChipGenius芯片精灵V4.00|USB设备主控芯片检测工具
2012-04-02 19:45:26软件绿色小巧,即插即用,是数码消费者、电子爱好者、DIY人士和数码维修人员身边的好帮手。 -------------------------------------- 1、快速修复U盘:不用拆机即可查询U盘的芯片型号,快速找到对应的量产工具 2、... -
USB特点
2020-11-13 02:17:48USB具有以下一些显著特点。 (1)高速数据传送 USB1.1支持1.5~12Mbps的传输速率,2.0版本更支持高达120~240Mbps的传输速率,该速率与一个标准的并口相比,也快出近10...所有USB设备支持热插拔,系统对其进行 -
ChipGenius v3.01 最新版 (USB设备芯片型号检测工具)
2011-06-16 14:09:48软件绿色小巧,即插即用,是数码消费者、电子爱好者、DIY人士和数码维修人员身边的好帮手。 应用举例:(暂不支持Win7系统下检测) 1、快速修复U盘:不用拆机即可查询U盘的芯片型号,快速找到对应的量产工具 2、... -
威龙解码器兼容CD/MP3/WMA解码 支持USB和SD卡
2020-11-29 08:36:34威龙科技(ValenceTech)宣布推出能进行CD/MP3/WMA解码、具内置USB端口支持和SD卡支持的解码器?...与其他解码器更多的不同之处在于,AP701还具备SD支持功能,终端用户可以享受SD卡即插即用设备的乐趣。 A -
威龙解码器兼容CD/MP3/WMA解码,支持USB和SD卡
2020-12-01 23:53:57威龙科技(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协议_USB2.0_USB3.0不同版本(三)
2018-08-13 16:48:00USB(Universal Serial Bus)全称通用串口总线,USB为解决即插即用需求而诞生,支持热插拔。USB协议版本有USB1.0、USB1.1、USB2.0、USB3.1等,USB2.0目前比较常用,USB是主从模式的结构,设备与设备之间、主机与主机... -
Linux内核移植 part4:USB系统介绍
2016-10-21 00:48:361. 历史USB,是英文Universal ...USB接口支持设备的即插即用和热插拔功能。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。下一代USB接口将会有改动方向,下一代的Type-C USB接口,可支持正反 -
USB Interface Design
2020-05-05 17:36:23USB物理层介绍及电路设计注意事项博文原创,转载请注明出处! USB-Universal Serial BusUSB,是英文Universal Serial Bus,通用串行总线的缩写,是一个...USB接口支持设备的即插即用和热插拔功能。 USB是在1994年... -
Android USB编程
2015-05-29 10:07:57USB接口支持设备的即插即用和热插拔功能。 与USB有关的OTG既是On-The-Go,主要用于各种不同的设备或移动设备件间的链接和数据交换。 二、Android的USB相关API 包:android.hardware.usb 类:UsbManager/Usb...