儿童咳嗽吃什么消炎药| r级电影是什么意思| 请多指教是什么意思| 是的是什么意思| 竹叶青是什么茶| 戴隐形眼镜用什么眼药水| 筋膜提升术是什么| 滞纳金是什么意思| 肠梗阻是什么意思| 吐血拉血是什么病的症状| 33周岁属什么生肖| 脚底出汗是什么原因女| 脸上为什么会长斑| 为什么鱼和熊掌不可兼得| 宣是什么意思| 小腿胀痛是什么原因| 深海鱼油的作用是什么| lane是什么意思| 前世是什么意思| 牙龈发炎是什么原因| 扁桃体炎吃什么药最好效果好| 女性小腹疼痛是什么原因| 屋后有坟有什么影响吗| 什么是陈述句| 钮钴禄什么意思| 什么不什么身| 棉条是什么| fast什么意思| 为什么便秘| 戏耍的近义词是什么| 牛筋面是什么做的| 枫字五行属什么| 泰山山顶叫什么| 危楼高百尺的危是什么意思| 吃什么可以去脂肪肝| 绿豆什么时候收获| 好高什么远| 涂防晒霜之前要涂什么| 兹有是什么意思| 经常口腔溃疡挂什么科| 道场是什么意思| 闻所未闻是什么意思| 黄芩有什么功效| 送老师什么花好| 梦见自己吐了是什么意思| 鼻后滴漏吃什么药| 什么分什么裂| 紫气东来什么意思| 宫颈多发纳囊是什么病| 希腊人是什么人种| 兑卦代表什么| 用什么泡水喝可以降血压| 转载是什么意思| 圣诞节是什么时候| esd手术是什么意思| 爱是什么偏旁| 朝鲜和韩国是什么关系| 头发麻是什么病的前兆| amy什么意思| 64年的龙是什么命| 风采是什么意思| 小便白细胞高是什么原因| 双肺结节是什么意思| 北京有什么好吃的| 威图手机为什么那么贵| 长脸型适合什么样的发型女| 眼睛发涩是什么原因导致的| 吃芒果不能和什么一起吃| 青龙白虎是什么意思| 阴道炎用什么洗液| 占有欲什么意思| 逃出生天什么意思| 同学生日送什么礼物| 鱼油功效和作用是什么| 黄精有什么作用| 什么叫心脏早搏| 脐炎用什么药| 27年属什么生肖| 海蓝宝五行属什么| 阴虚内热吃什么药| 胃肠造影主要检查什么| 荆芥俗名叫什么| pd999是什么金| 尿特别多是什么原因| lb是什么| 刮腻子是什么意思| 火和什么相生| 冻结账户需要什么条件| 汗斑是什么原因引起的| 妊娠囊是什么意思| pc是什么缩写| 南京为什么叫金陵| 本我是什么意思| 肠系膜淋巴结肿大吃什么药| 吃什么能马上晕倒住院| rop胎位是什么意思| 盆腔少量积液什么意思| 猪肉炒什么好吃| 1999年发生了什么| 紫癜是什么引起的| 荨麻疹有什么症状| 北京为什么叫帝都| 韩国烧酒什么味道| au是什么货币| 抗hcv是什么意思| 腰疼吃什么| 尿盐结晶是什么意思| 放线菌是什么| 转载是什么意思| 三头六臂是什么生肖| 郑字五行属什么| 做好自己是什么意思| 福禄安康是什么意思| 冷漠是什么意思| 长期熬夜吃什么可以补回来| 佩戴沉香有什么好处| 柯南叫什么| 淋巴发炎吃什么药好| 胃寒是什么原因引起的| 广州有什么山| 十万左右买什么车好| 尿液分析是检查什么| 受戒是什么意思| 非溶血是什么意思| 契合是什么意思| 抽搐是什么意思| 剑客是什么意思| 能够握紧的就别放了是什么歌| 莓茶是什么茶| 肾上腺素有什么用| 老是干咳什么原因| 失眠是什么原因引起的| 王毅是什么级别| 鲫鱼不能和什么一起吃| 心电图异常q波什么意思| 应用化学是干什么的| 肾精亏虚吃什么药| 尿酸高可以吃什么鱼| 受热了有什么症状| 内分泌失调吃什么药好| 什么是疣图片| 放纵什么意思| 缺陷的陷是什么意思| tap是什么意思| mcm是什么意思| 人生巅峰是什么意思| 脚底褪皮是什么原因| 逍遥丸主治什么病| 女朋友生日送什么礼物| 舌苔厚白中间有裂纹吃什么药| 为什么会反复发烧| 水瓶座的幸运色是什么颜色| 贤妻良母是什么意思| 胃疼胃胀吃什么药好| 亚硝酸钠是什么| 工装裤搭配什么上衣| 黑色屎是什么原因| 一级军士长什么待遇| 什么的叮咛| 外泌体是什么| 拜谢是什么意思| 小孩拉肚子吃什么食物| 什么的春寒| 肝脏彩超能检查出什么| 眼压高要注意什么| 姑姑和我是什么关系| 口疮吃什么药| 吃银耳有什么好处和坏处| 玫瑰花茶和什么搭配好| 杺字五行属什么| 油性头发用什么洗发水| 带状疱疹能吃什么食物| 子宫内膜脱落是什么意思| 9月份出生的是什么星座| 肾阳虚的表现是什么| 4月3号是什么星座| 冬的部首是什么| 星期天左眼皮跳是什么预兆| 地藏菩萨是管什么的| 脑梗都有什么症状| 170是什么号码| 早晨起来口干口苦是什么原因| 伊朗是什么民族| 生丝是什么| 憩室是什么病| 吃鹅蛋对孕妇有什么好处| 什么的彩虹| 肋骨骨折挂什么科| 唐宝是什么意思| 肠胃不好吃什么药最好| 霍金什么时候去世| 医学pr是什么意思| oem贴牌是什么意思| bred是什么意思| 吃百香果有什么好处| 父亲是o型血孩子是什么血型| 月经量少发黑是什么原因| 婴儿为什么喜欢趴着睡| 什么游戏最赚钱| 精工手表什么档次| 中药地龙是什么| ppt是什么单位| 什么是食品添加剂| 亥时是什么时候| 上呼吸道感染用什么药| 肝属什么| 做肠镜检查需要提前做什么准备| 柳枝什么的什么的| 补充电解质是什么意思| 幽门螺杆菌是一种什么病| 蛋糕用什么奶油好| 公道自在人心是什么意思| versus什么意思| 梅核气西医叫什么| 血小板偏低是什么意思| 宫腔内高回声是什么意思| 乏了是什么意思| 汗是什么味道| 吕洞宾代表什么生肖| 何乐而不为是什么意思| spi是什么意思| 分泌物豆腐渣状是什么原因| 气场强大是什么意思| 麻风病是什么病| 尿血吃什么药最好| 梦见手机摔碎了是什么意思| 眼色是什么意思| 核磁共振是检查什么的| 小麻雀吃什么| 小叶紫檀五行属什么| 手上长斑点是什么原因| 头汗特别多是什么原因| 鼻梁有痣代表什么| 早上睡不醒是什么原因| 男属猴和什么属相最配| 暴跳如雷是什么意思| 右眼跳什么| 偏头疼吃什么药| 小孩磨牙是什么原因引起的| 为什么会梦到蛇| 血小板低是什么原因| 倩字五行属什么| 做凉粉用什么淀粉最好| 女人吃洋葱有什么好处| 大好河山是什么生肖| 菲拉格慕属于什么档次| os什么意思| 长孙皇后为什么叫观音婢| 来月经肚子疼是什么原因| 木糖醇是什么东西| 心愿是什么意思| 女人八卦是什么意思| 什么来钱快| 水痘什么样| 红薯不能和什么食物一起吃| 孩子晚上磨牙是什么原因| 人面桃花相映红是什么意思| 阚姓念什么| xxs是什么意思| 礼佛是什么意思| 罗非鱼吃什么| 虚不受补吃什么中成药| 羊下面是什么生肖| 化疗后白细胞低吃什么补得快| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? 综合技术 ? 基础知识 ? USB的传输,编码,数据格式,掌握usb的必备知识

共4条 1/1 1 跳转至

USB的传输,编码,数据格式,掌握usb的必备知识

高工
2025-08-04 10:12:20     打赏
几个最基础的概念
  • 端点:位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据,每一个端点都有惟一的确定地址,有不同的传输特性(如输入端点、输出端点、配置端点、批量传输端点)
  • 帧:时间概念,在USB中,一帧就是1MS,它是一个独立的单元,包含了一系列总线动作,USB将1帧分为好几份,每一份中是一个USB的传输动作。
  • 上行、下行:设备到主机为上行,主机到设备为下行
百度 把政治标准与事业为上的导向树立起来。

    下面以一问一答的形式开始学习吧。问题一:USB的传输线结构是如何的呢?答案一:    一条 USB的传输线分别由地线、电源线、D+、D-四条线构成,D+和D-是差分输入线,它使用的是3.3V的电压(注意哦,与CMOS的5V电平不同),而 电源线和地线可向设备提供5V电压,最大电流为500MA(可以在编程中设置的,至于硬件的实现机制,就不要管它了)。问题二:数据是如何在USB传输线里面传送的答案二:    数据在USB线里传送是由低位到高位发送的。问题三:USB的编码方案?答案三:    USB 采用不归零取反来传输数据,当传输线上的差分数据输入0时就取反,输入1时就保持原值,为了确保信号发送的准确性,当在USB总线上发送一个包时,传输设 备就要进行位插入***作(即在数据流中每连续6个1后就插入一个0),从而强迫NRZI码发生变化。这个了解就行了,这些是由专门硬件处理的。

image.png

问题四:USB的数据格式是怎么样的呢?答案四:    和其他的一样,USB数据是由二进制数字串构成的,首先数字串构成域(有七种),域再构成包,包再构成事务(IN、OUT、SETUP),事务最后构成传输(中断传输、并行传输、批量传输和控制传输)。下面简单介绍一下域、包、事务、传输,请注意他们之间的关系。(一)域:是USB数据最小的单位,由若干位组成(至于是多少位由具体的域决定),域可分为七个类型:1、同步域(SYNC),八位,值固定为0000 0001,用于本地时钟与输入同步2、标识域(PID),由四位标识符+四位标识符反码构成,表明包的类型和格式,这是一个很重要的部分,这里可以计算出,USB的标识码有16种,具体分类请看问题五。3、地址域(ADDR):七位地址,代表了设备在主机上的地址,地址000 0000被命名为零地址,是任何一个设备第一次连接到主机时,在被主机配置、枚举前的默认地址,由此可以知道为什么一个USB主机只能接127个设备的原因。4、端点域(ENDP),四位,由此可知一个USB设备有的端点数量最大为16个。5、帧号域(FRAM),11位,每一个帧都有一个特定的帧号,帧号域最大容量0x800,对于同步传输有重要意义(同步传输为四种传输类型之一,请看下面)。6、数据域(DATA):长度为0~1023字节,在不同的传输类型中,数据域的长度各不相同,但必须为整数个字节的长度7、校验域(CRC):对令牌包和数据包(对于包的分类请看下面)中非PID域进行校验的一种方法,CRC校验在通讯中应用很泛,是一种很好的校验方法,至于具体的校验方法这里就不多说,请查阅相关资料,只须注意CRC码的除法是模2运算,不同于10进制中的除法。(二)包:由域构成的包有四种类型,分别是令牌包、数据包、握手包和特殊包,前面三种是重要的包,不同的包的域结构不同,介绍如下1、令牌包:可分为输入包、输出包、设置包和帧起始包(注意这里的输入包是用于设置输入命令的,输出包是用来设置输出命令的,而不是放据数的)其中输入包、输出包和设置包的格式都是一样的:SYNC+PID+ADDR+ENDP+CRC5(五位的校验码)(上面的缩写解释请看上面域的介绍,PID码的具体定义请看问题五)帧起始包的格式:SYNC+PID+11位FRAM+CRC5(五位的校验码)2、数据包:分为DATA0包和DATA1包,当USB发送数据的时候,当一次发送的数据长度大于相应端点的容量时,就需要把数据包分为好几个包,分批发 送,DATA0包和DATA1包交替发送,即如果第一个数据包是DATA0,那第二个数据包就DATA1。但也有例外情况,在同步传输中(四类传输类型中 之一),所有的数据包都是为DATA0,格式如下:SYNC+PID+0~1023字节+CRC163、握手包:结构最为简单的包,格式如下SYNC+PID(注上面每种包都有不同类型的,USB1.1共定义了十种包,具体请见问题五)(三)事务:分别有IN事务、OUT事务和SETUP事务三大事务,每一种事务都由令牌包、数据包、握手包三个阶段构成,这里用阶段的意思是因为这些包的发送是有一定的时间先后顺序的,事务的三个阶段如下:1、令牌包阶段:启动一个输入、输出或设置的事务2、数据包阶段:按输入、输出发送相应的数据3、握手包阶段:返回数据接收情况,在同步传输的IN和OUT事务中没有这个阶段,这是比较特殊的。事务的三种类型如下(以下按三个阶段来说明一个事务):1、 IN事务:令牌包阶段——主机发送一个PID为IN的输入包给设备,通知设备要往主机发送数据;数据包阶段——设备根据情况会作出三种反应(要注意:数据包阶段也不总是传送数据的,根据传输情况还会提前进入握手包阶段)1) 设备端点正常,设备往入主机里面发出数据包(DATA0与DATA1交替);2) 设备正在忙,无法往主机发出数据包就发送NAK无效包,IN事务提前结束,到了下一个IN事务才继续;3) 相应设备端点被禁止,发送错误包STALL包,事务也就提前结束了,总线进入空闲状态。握手包阶段——主机正确接收到数据之后就会向设备发送ACK包。2、 OUT事务:令牌包阶段——主机发送一个PID为OUT的输出包给设备,通知设备要接收数据;数据包阶段——比较简单,就是主机会设备送数据,DATA0与DATA1交替握手包阶段——设备根据情况会作出三种反应1)设备端点接收正确,设备往入主机返回ACK,通知主机可以发送新的数据,如果数据包发生了CRC校验错误,将不返回任何握手信息;2) 设备正在忙,无法往主机发出数据包就发送NAK无效包,通知主机再次发送数据;3) 相应设备端点被禁止,发送错误包STALL包,事务提前结束,总线直接进入空闲状态。3、SETUP事务:令牌包阶段——主机发送一个PID为SETUP的输出包给设备,通知设备要接收数据;数据包阶段——比较简单,就是主机会设备送数据,注意,这里只有一个固定为8个字节的DATA0包,这8个字节的内容就是标准的USB设备请求命令(共有11条,具体请看问题七)握手包阶段——设备接收到主机的命令信息后,返回ACK,此后总线进入空闲状态,并准备下一个传输(在SETUP事务后通常是一个IN或OUT事务构成的传输)(四)传输:传输由OUT、IN、SETUP事务其中的事务构成,传输有四种类型,中断传输、批量传输、同步传输、控制传输,其中中断传输和批量转输的结构一样,同步传输有最简单的结构,而控制传输是最重要的也是最复杂的传输。1、中断传输:由OUT事务和IN事务构成,用于键盘、鼠标等HID设备的数据传输中2、批量传输:由OUT事务和IN事务构成,用于大容量数据传输,没有固定的传输速率,也不占用带宽,当总线忙时,USB会优先进行其他类型的数据传输,而暂时停止批量转输。如U盘3、同步传输:由OUT事务和IN事务构成,有两个特殊地方,第一,在同步传输的IN和OUT事务中是没有返回包阶段的;第二,在数据包阶段所有的数据包都为DATA0,如视频音频传输4、控制传输:最重要的也是最复杂的传输,控制传输由三个阶段构成(初始设置阶段、可选数据阶段、状态信息步骤),每一个阶段可以看成一个的传输,也就是说控制传输其实是由三个传输构成的,用来于USB设备初次加接到主机之后,主机通过控制传输来交换信息,设备地址和读取设备的描述符,使得主机识别设备,并安装相应的驱动程序,这是每一个USB开发者都要关心的问题。1、初始设置步骤:就是一个由SET事务构成的传输2、可选数据步骤:就是一个由IN或OUT事务构成的传输,这个步骤是可选的,要看初始设置步骤有没有要求读/写数据(由SET事务的数据包阶段发送的标准请求命令决定)3、 状态信息步骤:顾名思义,这个步骤就是要获取状态信息,由IN或OUT事务构成构成的传输,但是要注意这里的IN和OUT事务和之前的INT和OUT事务有两点不同:1) 传输方向相反,通常IN表示设备往主机送数据,OUT表示主机往设备送数据;在这里,IN表示主机往设备送数据,而OUT表示设备往主机送数据,这是为了和可选数据步骤相结合;2) 在这个步骤里,数据包阶段的数据包都是0长度的,即SYNC+PID+CRC16除了以上两点有区别外,其他的一样,这里就不多说

image.png

(思考:这些传输模式在实际操作中应如何通过什么方式去设置?)问题五:标识码有哪些?答案五:    如同前 面所说的标识码由四位数据组成,因此可以表示十六种标识码,在USB1.1规范里面,只用了十种标识码,USB2.0使用了十六种标识码,标识码的作用是 用来说明包的属性的,标识码是和包联系在一起的,首先简单介绍一下数据包的类型,数据包分为令牌包、数据、握手包和特殊包四种(具体分类请看问题七),标 识码分别有以下十六种:    令牌包 :image.png    数据包 :image.png    握手包:image.png    特殊包 0x0C 前导,用于启动下行端口的低速设备的数据传输问题六:USB主机是如何识别USB设备的?答案六:    当USB设备插上主机时,主机就通过一系列的动作来对设备进行枚举配置(配置是属于枚举的一个态,态表示暂时的状态),这这些态如下:1、接入态(Attached):设备接入主机后,主机通过检测信号线上的电平变化来发现设备的接入;2、供电态(Powered):就是给设备供电,分为设备接入时的默认供电值,配置阶段后的供电值(按数据中要求的最大值,可通过编程设置)3、缺省态(Default):USB在被配置之前,通过缺省地址0与主机进行通信;4、地址态(Address):经过了配置,USB设备被复位后,就可以按主机分配给它的唯一地址来与主机通信,这种状态就是地址态;5、配置态(Configured):通过各种标准的USB请求命令来获取设备的各种信息,并对设备的某此信息进行改变或设置。6、挂起态(Suspended):总线供电设备在3ms内没有总线***作,即USB总线处于空闲状态的话,该设备就要自动进入挂起状态,在进入挂起状态后,总的电流功耗不超过280UA。问题七:刚才在答案四提到的标准的USB设备请求命令究竟是什么?答案七:    标准的 USB设备请求命令是用在控制传输中的“初始设置步骤”里的数据包阶段(即DATA0,由八个字节构成),请看回问答四的内容。标准USB设备请求命令共 有11个,大小都是8个字节,具有相同的结构,由5个字段构成(字段是标准请求命令的数据部分),结构如下(括号中的数字表示字节数,首字母bm,b,w 分别表示位图、字节,双字节):bmRequestType(1)+bRequest(1)+wvalue(2)+wIndex(2)+wLength(2)    各字段的意义如下:1、bmRequestType:D7D6D5D4D3D2D1D0image.png2、 bRequest:请求命令代码,在标准的USB命令中,每一个命令都定义了编号,编号的值就为字段的值,编号与命令名称如下(要注意这里的命令代码要与 其他字段结合使用,可以说命令代码是标准请求命令代码的核心,正是因为这些命令代码而决定了11个USB标准请求命令):image.png    以上的11个命令要说得明白真的有一匹布那么长,请各位去看书吧,这里就不多说了,控制传输是USB的重心,而这11个命令是控制传输的重心,所以这11个命令是重中之重,这个搞明白了,USB就算是入门了。问题八:在标准的USB请求命令中,经常会看到Descriptor,这是什么来的呢?答案八:    Descriptor即描述符,是一个完整的数据结构,可以通过C语言等编程实现,并存储在USB设备中,用于描述一个USB设备的所有属性,USB 主机是通过一系列命令来要求设备发送这些信息的。它的作用就是通过如问答节中的命令***作来给主机传递信息,从而让主机知道设备具有什么功能、属于哪一 类设备、要占用多少带宽、使用哪类传输方式及数据量的大小,只有主机确定了这些信息之后,设备才能真正开始工作,所以描述符也是十分重要的部分,要好好掌 握。标准的描述符有5种,USB为这些描述符定义了编号:image.png    上面的描述符之间有一定的关系,一个设备只有一个设备描述符,而一个设备描述符可以包含多个配置描述符,而一个配置描述符可以包含多个接口描述符,一个接口使用了几个端点,就有几个端点描述符。这间描述符是用一定的字段构成的,分别如下说明:1、设备描述符image.png2、配置描述符image.png3、字符描述符image.png4、接口描述符image.png5、端点描述符image.png    在搞明白了上面的八个问题之后,就可以进入USB的下一步学习了。





关键词: USB     传输     编码     数据     必备知识    

院士
2025-08-04 16:18:16     打赏
2楼

谢谢楼主分享梳理得如此细致的资料,学习并收藏了。


专家
2025-08-04 19:41:27     打赏
3楼

资料不错啊


专家
2025-08-04 21:13:39     打赏
4楼

有点看不懂啊


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
尿痛什么原因 目瞪口呆是什么生肖 上面白下面本念什么 一鸣惊人指什么动物 现在最好的避孕方法是什么
藏头诗什么意思 吃菌子不能吃什么 京东发什么快递 拉开帷幕是什么意思 腹胀便溏是什么意思
芼什么意思 咽喉炎吃什么药好得快 大限是什么意思 繁花似锦什么意思 治疗心率过快用什么药效果好
举重的器材叫什么 核素治疗是什么 濯清涟而不妖的濯是什么意思 尿道炎吃什么药 口腔溃疡是什么样子
气管痉挛是什么症状travellingsim.com 月的偏旁有什么字hcv8jop8ns4r.cn 什么命要承受丧子之痛hanqikai.com 胃食管反流吃什么中成药最好hcv8jop9ns2r.cn 大专跟本科有什么区别hcv7jop6ns4r.cn
戌是什么意思hcv8jop3ns4r.cn 女人吃葛根粉有什么好处hcv9jop4ns0r.cn 裹小脚是什么时候开始的hcv9jop7ns2r.cn 牙痛吃什么消炎药hcv7jop7ns0r.cn 烟囱是什么意思hcv8jop4ns7r.cn
属鼠的贵人是什么属相hcv7jop7ns1r.cn 疾控中心是干什么的aiwuzhiyu.com 肝脑涂地是什么意思hcv7jop5ns3r.cn 甲状腺什么不能吃onlinewuye.com 胰腺疼吃什么药hcv9jop6ns5r.cn
长期熬夜会得什么病hcv9jop6ns0r.cn 长痘吃什么水果好hcv9jop6ns9r.cn 后背长痘痘用什么药膏hcv8jop9ns6r.cn 漫游是什么hcv8jop3ns5r.cn 营养学属于什么专业hcv9jop8ns1r.cn
百度