精华内容
下载资源
问答
  • usb接口通信编程实例

    2013-04-17 21:27:57
    这是一个用VC++编写的关于usb接口通信的编程实例,值得参考。
  • 而在早期的计算机系统上通常使用串口或并口来发送数据,每个接口都需要占用计算机内部很多的资源,传统的接口一般采用PCI总线或RS-232串行总线。PCI总线有较高的传输速率,可达132 Mbit/s,也可以即插即用,但是...
  • 用VC++编写USB接口通信程序

    热门讨论 2012-12-21 11:56:07
    用VC++编写USB接口通信程序
  • 利用windows ApI函数来实现与符合HID设备类的USB接口通信,主要概述用VC++编写USB通信接口的实现方法
  • 用VC++编写USB接口通信程序
  • 本文是关于多功能智能插座USB接口通信电路的设计。
  • USB接口通信研究论文.doc
  • 用VC++编写USB接口通信程序源代码
  • usb接口通信程序

    2012-11-05 21:12:46
    本程序基于USB2.0协议,在上位机上对HID设备进行通信
  • C# USB设备通信

    2019-01-14 12:29:08
    从网上下载了不少相关的代码,都号称能用...嗯,底层hid能用。我这份代码是基于某前辈的底层,自己写了一些类用于某仪器通信。当然,其它仪器我也用这个类根据协议修改修改就可以了。
  • VC写USB接口通信

    2009-10-16 13:13:50
    VC写USB接口通信技术介绍,从底层实现了应用程序和底层软件驱动、硬件的通信技术。
  • 好不好,我不说了,信得过我的朋友自己看看看,本来是不想弄分的,但我实在是没 积分了,郁闷,让我赚点吧,我有100G的教程资料.....
  • 基于VisualC_的USB接口通信程序设计,设计文章,来自网络
  • 详细介绍VC++ 6.0 环境下利用windows api 函数来实现与符合hid设备的usb接口通信,并给出了通信程序的部分代码
  • window MFC编程下,带有界面的USB与PC通信程序,VC6.0
  • USB接口中既没有握手信号,也没有时钟信号,它是怎样进行通信的呢?
  • C# USB接口与设备通信

    万次阅读 2019-01-14 14:38:46
    这是我第一次直接使用USB接口与设备进行通信,第一反应就是打开指定设备,配置设备,读取数据,关闭设备备。事后发现确实如此。在网上查看一番之后,花了金币下载了一些代码,但是似乎都有点不太对路。当然,底层的...

    USB通信

    这是我第一次直接使用USB接口与设备进行通信,第一反应就是打开指定设备,配置设备,读取数据,关闭设备备。事后发现确实如此。在网上查看一番之后,花了金币下载了一些代码,但是似乎都有点不太对路。当然,底层的东西还是能用的,我就是通过调用前辈(自己去看代码中的注释)的一些接口(免去了安装Libusbdot, CyUSB等)实现了与USB设备的交互。好了,接下来便说说。

    打开指定设备

    通过度娘,打开指定设备是通过设备的vid和pid来实现的,这哥俩是16进制的,因此我把方法的输入参数定义成16进制字符串:

    /// <summary>
            /// 基于vid和pid打开指定设备
            /// </summary>
            /// <returns></returns>
            public bool OpenDevice(string vid,string pid)
            {
                bool is_opened = false;
                if (myHid.Opened == false)
                {
                    UInt16 myVendorID = Convert.ToUInt16(vid, 16);// 0x1234;
                    UInt16 myProductID = Convert.ToUInt16(pid, 16); //0x5678;
                    
                    if ((int)(myHidPtr = myHid.OpenDevice(myVendorID, myProductID)) != -1)
                    {
                        //MessageBox.Show("open drive success");                    
                        is_opened = true;
                    }
                    else
                    {
                        is_opened = false;
                    }
                }
                else
                {
                    is_opened = true;
                }
                return is_opened;
            }
    

    配置设备

    在打开设备之后就可以进行对设备进行操作了。但不是所有的设备都需要进行配置,我所用的设备配置,是可有可无的,这个需要根据设备的通信协议。

    读取数据

    这一步操作也是需要根据通信协议进行。我所用的设备需要上位机下发16进制数据才可以获取数据,因此输入的参数仍然是用16进制字符串,以空格作为间隔,如 B3 56。

    		public double Send(string hexString)
            {
                is_data_received = false;
                
                Byte[] data = HexStringToByte(hexString);
                byte[] db = new byte[2];
                double ddB = 0.0;
                report r = new report(0, data);
                if (myHid.Opened)
                {
                    myHid.Write(r);
                    int i = 0;
                    while (!is_data_received && i<10)
                    {
                        System.Threading.Thread.Sleep(50);
                        i++;
                    }
                    if (is_data_received)
                    {
                        db[0] = RecDataBuffer[1];
                        db[1] = RecDataBuffer[0];
                        ddB = (System.BitConverter.ToUInt16(db, 0)) / 10.0; 
                    }
                }
                is_data_received = false;
                return ddB;
            }
    

    重点来了哈,那就是数据是怎么来的:根据调用的类,需要订阅数据接收事件。

    		myHid.DataReceived += new EventHandler<HID.report>(myhid_DataReceived); //订阅DataRec事件
    		//数据到达事件
    		protected void myhid_DataReceived(object sender, report e)
            {
                RecDataBuffer = e.reportBuff;
                is_data_received = true;
            }
    

    关闭设备

    好了,不适用设备了,那就关闭它吧

            public void CloseDevice()
            {
                if(myHid.Opened)
                    myHid.CloseDevice(myHidPtr);            
            }
    

    示例

    我这个只是与设备做简单的通信,但可以把它改改,用于与其它设备通信。至于获取U盘数据,这个没有研究,也许哪天有空了再去查查。
    链接: 示例代码.

    示例界面

    展开全文
  • VC++编写USB接口通信程序.rarVC++编写USB接口通信程序.rarVC++编写USB接口通信程序.rar
  • 摘要:USB通用串行总线是计算机外设接口的发展趋势,将逐渐取代PC机上的RS232协议串口,因此很多传统的RS232接口设备都将面临一个向USB接口转换的问题。本文以IC卡门禁考勤系统为例,提出一种方案,使传统的RS232...
  • 用VC编写USB接口通信程序 用VC编写USB接口通信程序
  • USB通信接口介绍

    万次阅读 2018-11-09 10:55:15
    USB设备可以直接和host通信,或者通过hub和host通信。一个USB系统中仅有一个USB主机,设备包括功能设备和hub,最多支持127个设备。 由于USB是主从模式的结构,设备与设备之间、主机与主机之间不能互连,为解决这个...

    1. 概述

    Usb = Universal Serial Bus全称通用串行总线,是一种支持热插拔的高速串行传输总线,使用差分信号来传输数据。

    USB设备可以直接和host通信,或者通过hub和host通信。一个USB系统中仅有一个USB主机,设备包括功能设备和hub,最多支持127个设备。

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

    USB协议版本有USB1.0、USB1.1、USB2.0、USB3.1等。

    速度模式:

    USB1.0低速模式:1 .5Mb/s

    USB1.1全速模式:12Mb/s

    USB2.0 高速模式:480Mb/s      500mA

    USB3.0 超高速模式: 5.0Gb/s 实际3.2Gb/s    900mA

    USB3.1 超超高速模式:10Gb/s实际7.2Gb/s 20V/2A-仅限于Type-A/B  12V/3A-Type-C

    USB1.1 OTG  USB2.0 OTG:作为相应的补充,支持点对点通信。 

     

    供电模式:

    自供电:设备从外部电源获取工作电压。

    总线供电:设备从VBUS(5V) 取电,最多500mA电流,本身容值不超过10uF;

                        低功耗USB设备:最大功耗不超过100mA;

                                         高功耗USB设备:枚举时最大功耗不超过100mA,枚举完成配置结束后功耗不超过500mA。

                                                                          (枚举过程中,通过设备的配置描述向主机报告它的供电模式和功耗要求)

    优点:传输速度快,支持热插拔,系统总线供电,支持设备种类多,扩展容易;

    缺点:传输距离短,供电能力有限。

     

    2. 硬件结构

    USB使用的是差分传输模式,两个数据线D+和D-;他们使用的是3.3V电压(与CMOS的5V电压不同)而电源线和地线可以向设备提供最大电流500mA(可以编程设置)

    差分信号1:D+ > VOH(min) (2.8V) 且D- < VOL(max)(0.3V)

    差分信号0:D- > VOH and D+ < VOL

     

    USB2.0与USB3.0差别:

    USB2.0速度没USB3.0快;

    USB2.0通常是白色或黑色,USB3.0为蓝色;

    USB2.0是500mA,USB3.0为900mA;USB3.1为20V/5A;

    J状态(高电平):D+ 高,D- 低

    K状态(低电平):D+低,D- 高

    SEO状态:D+ 低,D- 高

    Reset信号:D+ and D- < VOL for >= 10ms

    主机在要和设备通信之前会发送Reset信号来把设备设置到默认的未配置状态。即主机拉低两根信号线(SE0状态)并保持10ms

    Idle状态:J状态数据发、送前后总线的状态

    Suspend状态:3ms以上的J状态

     

    3. 传输结构

    集合关系:传输类型 -> 事务 -> 包 -> 域

    传输类型: 控制、中断、同步、批量

    事务: IN、OUT、SETUP

    包: 令牌包、数据包、握手包

    域: 同步序列域、包标识域、地址域、端点域、帧号域、数据域、CRC校验域

     

    注意:

    USB的基本数据结构是包;

    USB总线发送是LSB在前,MSB在后。

     

    4. 拓扑结构

    Usb主控制器:对丛机设备的控制和数据处理

    Usb根集线器:是特殊的usb集线器,集成在主机控制器中,不占用地址;

    Usb集线器:可以扩展出更多的USB口。

    一个主控制器对应一个根集线器,而一个根集线器通常对应一个或者几个USB口,比如电脑主机上有7个主控制器和7个根集线器,

     

    5. 速度检测

    • 全速和低速的识别

    主机的hub端的D+和D-上分别接了15k的下拉电阻到地,当主机hub悬空时,主机hub端均为低电平;

    usb设备端的D+或者D-上接有1.5k上拉电阻,低速设备的上拉电阻接到D-上,高速和全速设备的上拉电阻接到D+上,当设备插入主机时,根据数据线的电平高低识别速度。

     

     

    • 高速设备识别

    usb高速设备的D+上接有1.5k的上拉电阻,当设备插入主机时,首先被识别为全速设备。之后,hub和设备需要通过“Chirp序列”的总线握手机制来识别高速和全速设备。整个过程中,高速的hub需要检测插入的设备是高速、全速还是低速,高速的设备需要检测所连接上的hub是都支持高速模式,如果双方都确认成功,就进行以系列的动作,设备从全速切换到高速模式,高速模式下,采用电流传输模式,设备需要将上拉电阻断开。否则,设备以全速模式工作;

     

    6. HSIC

    HSIC—USB High Speed Inter-Chip

    是一个两线源同步的串行接口,使用240MHz双倍数据速率产生480MHz的高速速率,和传统的USB电缆连接拓扑结构的主机完全兼容。不支持中速和低速USB转换。

     

    480MHz高速数据速率;

    源同步串行接口,不传输时不耗电;

    不支持热插拔,线路长度10cm;

    信号驱动在1.2V标准LVCMOS水平;

    不支持高速线性调频协议,HSIC只能工作在高速状态;

    HSIC可以替换IIC;

    常用于3G和4G模块中。

    7. Type-C

    • 接口特点

    支持正反插;

    支持最高20V5A的电源能力,支持快充;

    支持USB3.0  USB3.1协议,同时向下兼容USB2.0协议;

    多功能:传输电源和数据外,还可以传输音视频;

    • 管脚定义

                                                      插座(front view)

                                                      插头(front view)

    VBUS:电源

    TXn+/TXn-/RXn+/RXn-:USB3.0/3.1高速数据线;

    D+/D-:USB2.0数据线;

    CC:逻辑功能识别及配置管脚,用来检测正反插以及充电功率控制。

             Type-C作为DFP模式时(类似HOST或适配器)VBUS输出默认是没有电压的,只通过CC线的上拉电流大小来通知外设默认支持电流大小(5V:900mA,1.5A,3A),当接上外设后(UFP)CC线会被外设的5.1K电阻接地,VBUS就会输出5V。此后双方可以通过CC线进行数据通信,并协商到更高的充电电压(PD功能)。

            

    VCONN:如果使用Active Cable(譬如DP功能),VCONN用来给Cable的芯片供电(共用CC管脚);

    SBU1/2:辅助信号,DP模式下的AUX协议信号;

    备注:

    DFP:Downstream Facing Port 下行端口可理解为Host,提供VBUS,也可提供数据。

    UFP:Upstream Facing Port 上行端口可理解为Device,从VBUS中取电,并可提供数据。

    DRP:Dual Role port双角色端口既可做DFP(Host),也可做UFP(Device),也可在DFP与UFP间动态切换。

     

    8. USB芯片种类

    接口芯片:通用USB接口芯片 Usb interface chip

    USB 主控制器:USB HOST功能芯片 Usb host chip

    USB微控制器:带USB接口MCU  usb with mcu

    并口桥:USB转并口芯片   Usb to parallel bridge   8bit  16bit  32bit

    串口桥:USB转串口芯片  Usb to serial bridge   IIC、SPI或者UART

    音频控制器: Usb Audio Controller  IIS接口

    HUB控制器:USB HUB  USB HUB Controller

    USB-USB桥:通过USB实现PC互连USB to USB bridge

    闪盘控制器:Usb flash controller

    读卡器:智能卡设备类  Usb smart card

     

     

     

     

     

     

     

     

     

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,673
精华内容 17,469
关键字:

usb接口通信