- 博客(30)
- 收藏
- 关注
原创 9、DSP/DSC USP/USC
RC: DownStream Port或者叫UpStream component。EP: UpStream port或者叫DownStream component。
2023-11-05 21:33:17 170
原创 8、Ack/Nak 机制详解(二)
8、Ack/Nak 机制详解(二)Example 1. Example of AckExample 2. Ack with Sequence Number RolloverExample 3. Example of NakExample 4. Example of Lost TLPsExample 5. Example of Bad NakExample 1. Example of AckStep1 设备A准备依次向设备B发送5个TLP,其对应的序列号分别为3,4,5,6,7;Step2
2022-03-11 10:27:06 581 1
原创 7、Ack/Nak 机制详解(一)
7、Ack/Nak 机制详解(一)LCRC GeneratorReplay BufferREPLAY_TIMER CountREPLAY_NUM CountACKD_SEQ RegisterDLLP CRC CheckLCRC Error CheckNEXT_RCV_SEQ CounterNAK_SCHEDULED FlagAckNak_LATENCY_TIMERAck/Nak GeneratorAck/Nak是一种由硬件实现的,完全自动的机制,目的是保证TLP有效可靠地传输。Ack DLLP用于确认TL
2022-03-11 10:20:20 3017
原创 4、vim插件echofunc
目录作用下载插件:实际操作作用可以在命令行中提示当前输入函数的原型。下载插件:http://www.vim.org/scripts/script.php?script_id=1735下载完成后,把echofunc.vim文件放到 ~/.vim/plugin文件夹中当你在vim插入(insert)模式下紧接着函数名后输入一个"(“的时候, 这个函数的声明就会自动显示在命令行中。如果这个函数有多个声明, 则可以通过按键"Alt±"和"Alt+=“向前和向后翻页, 这个两个键可以通过设置g:EchoF
2022-02-27 22:39:22 589
原创 3、gitbash设置显示行号
windows先安装gitbash下载链接:https://gitforwindows.org/例如笔者下载的版本:Git-2.26.2-64-bit.exe设置vim打开文件显示行号:vi /etc/vimrcsource /etc/vimrc
2022-02-27 22:35:06 336
原创 2、vim常用设置
目录1、配置vim2、快速注释2.1 每一行行首添加内容2.2 每一行行末添加内容3、代码对齐4、快捷键4.1 回到某些位置4.2 光标移动4.3 删除4.4 撤销4.5 粘贴替换4.6 缩进4.7 在vim查man手册4.8 插入4.9 替换4.10 执行shell命令4.11 分屏4.12 选中某个变量或者单词其它常见操作1、配置vim最好在自己用户的根目录创建~/.vimrc文件set nu # 设置行号set ts=4 # 设置tab为4个空格set autoindent # 设
2022-02-27 22:30:11 5668
原创 1、vimdiff
1、vimdiff安装vim具体命令使用示例演示安装vim如果系统还没安装vim,则需要安装:sudo apt install vim具体命令使用ctrl-w w // ctrl + 按两次w则在两个窗口切换dp // 当前光标所在的窗口将差异推送到对应的窗口去do // 将光标对应窗口的差异拉到光标所在窗口zo // 展开相同的行zc // 关闭相同的行]c // 跳到下一个差异点[c // 跳到上一个差异点命令行模式diffupdate
2022-02-27 22:25:23 774
原创 6、PCIe路由方式
1、从软件开发角度看待PCI和PCIe转载教程 06PCIe路由方式1. 三种路由方式2. 基于ID的路由2.1 PCIe设备(Endpoint)的配置空间2.2 PCIe桥的配置空间2.3 示例3. 基于地址的路由3.1 内存读写/IO读写3.2 完成报文3.3 示例4. 隐式路由转载教程转载教程 06PCIe路由方式1. 三种路由方式数据传输时,最先要确定的是:怎么找到对方?所谓"路由",就是怎么找到对方,PCIe协议中有三种路由方式:基于ID的路由基于地址的路由隐式路由TL
2022-02-26 20:34:17 1937
原创 5、PCIe设备的配置过程
5、PCIe设备的配置过程转载韦东山教程 05PCIe设备的配置过程1. PCIe系统硬件结构2. PCIe系统软件层次3. 事务层TLP格式3.1 Posted和Non-Posted3.2 TLP通用格式3.3 TLP头部4. 配置与RC直连的设备4.1 怎么访问直连的设备4.2 配置EendPoint5. 配置示例5.1 必备知识5.1.1 PCIe设备的配置寄存器5.1.2 Type 0 Configuration Request5.1.3 Type 1 Configuration Request5.
2022-02-26 20:06:53 1189
原创 4、从软件角度看PCIe设备的硬件结构
4、从软件角度看PCIe设备的硬件结构转载韦东山教程 044、从软件角度看PCIe设备的硬件结构1. PCIe接口引脚2. 从软件角度理解硬件接口2.1 PCI/PCIe地址空间转换2.2 PCIe上怎么传输地址、数据3. PCIe系统的硬件框图转载韦东山教程转载韦东山教程 044、从软件角度看PCIe设备的硬件结构参考资料:《PCI Express Technology》,Mike Jackson, Ravi Budruk; MindShare, Inc.《PCI EXPRESS体系结构
2022-02-26 18:39:01 940
原创 3、PCI设备的访问方法_桥设备type1
3、PCI设备的访问方法_桥设备type1转载韦东山教程 03PCI设备的访问方法_桥设备(type1)1. 硬件结构2. PCI设备类别及配置方法2.2 配置设备时怎么选中它3. 配置示例3.1 示例:配置PCI Agent设备3.2 示例:配置PCI桥3.3 示例:配置PCI桥后面的设备4. 访问PCI设备转载韦东山教程转载韦东山教程 03PCI设备的访问方法_桥设备(type1)参考资料:《PCI EXPRESS体系结构导读 (王奇)》1. 硬件结构PCI系统框图:怎么访问到
2022-02-26 18:31:55 1045
原创 2、PCI设备的访问方法_非桥设备type0
@TOC转载韦东山教程转载韦东山教程 02PCI设备的访问方法_非桥设备(type0)1. 硬件结构PCI系统框图:怎么访问到某个PCI设备?需要理解PCI本地总线信号。2. PCI本地总线的信号主要分为6类:类别信号描述系统引脚CLK:给PCI设备提供时钟RST#:用于复位PCI设备地址/数据引脚AD[31:00]:地址、数据复用C/BE[3:0]:命令或者字节使能PAR:校验引脚接口控制FRAME#:PCI主设备驱动此信号,表示一个传
2022-02-26 18:23:21 2967
原创 1、从软件开发角度看待PCI和PCIe
从软件开发角度看待PCI和PCIe1. 最容易访问的设备是什么2. 地址空间的概念3. 理解PCI和PCIE的关键3.1 地址空间转换3.2 PCI接口速览3.3 PCIe接口速览4. 访问PCI/PCIe设备的流程4.1 PCI/PCIe设备的配置信息4.2 主机读取设备配置信息、分配空间4.3 CPU地址空间和PCI/PCIe地址空间怎么转换?4.3 主机像读写内存一样访问设备转载韦东山教程1. 最容易访问的设备是什么是内存!要读写内存,知道它的地址就可以:volatile unsigne
2022-02-26 18:06:46 2678 2
原创 USB 设置配置(SetConfiguration)和设置接口(SetInterface)的区别与联系
@[TOC](USB 设置配置(SetConfiguration)和设置接口(SetInterface)的区别与联系)在USB设备枚举的最后,主机都会对设备发送设置配置置(SetConfiguration)请求和对接口发送设置接口(SetInterface)请求,这两个控制请求在USB设备的工作中,具有重要的作用。CTL 00 09 01 00 00 00 00 00 SET_CONFIGURATION 117usCTL 0
2021-12-10 11:33:20 3318
原创 USB 设置配置 SetConfiguration
USB 设置配置 SetConfigurationID请求码说明11SET_CONFIGURATION用于主机指示设备采用的要求的配置SetConfiguration请求与GetConfiguration相对应,用于主机为USB设备设置一个合适的配置值 ,该请求无数据阶段。一般的设备只有一个配置,当有多个配置时,会让用户选择。一个设备只能工作在一个配置状态下。bmRequestType(1)bRequest(1)wValue(2)wIndex(2)w
2021-12-10 11:26:39 2893
原创 USB 设置接口SetInterface
USB 设置接口SetInterface描述述包括设备描述符请求,配置描述符请求、字符串描述符请求和其它描述符请求。ID请求码说明11SET_INTERFACE用于主机要求设备用某个描述符来描述接口SetInterface请求用于USB主机为设备指定的接口选择一个合适的替换值,该请求没有数据阶段。bmRequestType(1)bRequest(1)wValue(2)wIndex(2)wLength(2)010B可替换接口值接口0
2021-12-10 11:17:23 2880
原创 USB 设置描述符SetDescriptor
USB设置描述符GetDescriptor描述述包括设备描述符请求,配置描述符请求、字符串描述符请求和其它描述符请求。ID请求码说明7SET_DESCRIPTOR修改设备中有关的描述符,或者增加新的描述符USB的请求这里包括USB的标准请求和特定类请求,其包括以下几个字段:bmRequestType(1)bRequest(1)wValue(2)wIndex(2)wLength(2)0007类型和索引0或语言ID0000bmReq
2021-12-10 10:42:32 1499
原创 USB获取描述符GetDescriptor
USB获取描述符GetDescriptor描述述包括设备描述符请求,配置描述符请求、字符串描述符请求和其它描述符请求。ID请求码说明6GET_DESCRIPTOR用于主机获取设备的特定描述符USB的请求这里包括USB的标准请求和特定类请求,其包括以下几个字段:bmRequestType(1)bRequest(1)wValue(2)wIndex(2)wLength(2)8006类型(高字节)和索引(低字节)0或语言ID接收的描述符长度
2021-12-10 10:40:28 4081
原创 USB 设置请求地址SetAddress
USB 设置请求地址SetAddressID请求码说明5SET_ADDRESS用来给设备分配地址SetAddress 用于枚举(enumeration)阶段为设备分配一个唯一的地址,地址在 wValue 字段中且最大值为 127。该请求特别的地方在于,直到状态阶段完成,设备才完成地址设置。其他所有请求必须在状态阶段之前完成。该请求同样无数据阶段。bmRequestType(1)bRequest(1)wValue(2)wIndex(2)wLength(2)
2021-12-10 10:20:37 1655
原创 USB标准请求、类特定请求总结
USB标准请求、类特定请求总结bmRequestType字段的USB标准请求(USB基本请求)bmRequestType字段的类特定请求(HID,UVC,UAC,BOT)bmRequestType字段的厂商自定义请求(自定义,不常见)在USB请求中(包括标准请求和类特定请求)做USB开发,最常见的就是USB的控制请求的那8个字节的分析,如果抓包工具有协议分析那还好说,但是如果不带速协议分析,那其实还是挺郁闷的。所以说,如何快速的通过USB请求的那几个字段定位出是何请求,是可以大大的提高我们的协议分析效率的
2021-12-10 10:11:59 3439
原创 USB标准请求
USB标准请求USB标准请求的数据结构bmRequestType字段(1字节)D7,下一步数据的传输方向D6-D5,命令的类型D4-D0,命令接受者的类型bRequest字段(1)USB定义了8个字节的标准请求,通过这些请求,可以对设备的状态进行更改或对设备进行枚举。USB的标准请求的数据传输方式都是控制传输方式,所以使用的端点是设备的默认端点0。USB这8个字节的的控制请求并包括传输过程中的数据,但包括了控制请求的数据长度。当数据度为不为0时,设备或主机向对方传输相应长的数据。这些数据有可能是设备返
2021-12-10 10:07:40 895
原创 USB 传输方式(数据传输方式分类及带宽占用率对比)
USB 数据传输方式分类及带宽占用率对比控制传输同步传输中断传输批量传输USB传输有四种传输类型使用的事务类型各不相同。其中批量传输、同步传输每次传输需要一个或多个事务,中断传输每次传输只需要一个事务,控制传输包括三个过程(建立过程、数据过程、状态过程),建立过程和状态过程分别需要一个事务,数据过程则可能包含0个多个事务。控制传输突发性、非周期性、主机软件发起的请求/响应通信,通常用于命令/状态操作。控制传输包括控制读传输、控制写传输、无数据的控制传输,主机在枚举设备的时候,首先进行插入检测,检测
2021-11-04 15:25:38 1282
原创 USB 传输方式(同步/等时传输及反馈端点)
USB 同步/等时传输及反馈端点USB端点的同步类型:USB的四种传输之一同步传输,用于数据实时性比较高,数据量较大但数据的完整性不是很严格的场合。由于时间是同步传输的关键部分,因此USB设计者了解这些不同实体在USB中如何处理时间是很重要的。在大部分的通讯系统中,数据的发送者和接收者以同步的方式进行数据收发。在异步通信系统中,允许数据发送者检测接收方没有正确地接收到数据项,并简单地重试传输所有的数据。但在USB总线中,由于不支持数据的重传,因此必须保留最小的带宽可以分配给等同传输。USB端点的同步
2021-11-04 15:23:26 2636
原创 USB 传输方式(同步、等时)
USB 同步、等时传输方式同步传输的应用场合同步传输的特点同步传输的事务USB同步/等时传输方式抓包分析读数据等时传输也有“同步传输”的叫法,一般用于要求数据连续、实时且数据量大的场合,其对传输延时十分敏感,类似用于USB摄像设备,USB语音设备等等。同步传输的应用场合应用用在数据量大,对实时性要求较高的场合。如视频设备、音频设备等。同步传输的特点只有高速设备可以使用同步方式高速模式的最大包长上限为1024个字节;全速模式的最大包长上限为1023个字节;低速模式不支持同步传输。超高速
2021-11-04 15:21:39 3301 1
原创 USB 传输方式(中断)
USB 中断传输方式中断传输的特点中断传输事务中断传输一般用于小批量的和非连续的数据传输,通俗的来说就是用于数据量小的数据不连续的但实时性高的场合的一种传输方式,主要应用于人机交互设备(HID)中的USB鼠标和USB键盘等。USB中断传输和我们传统意义上的中断不一样。它不是由设备主动地发起一个中断请求,主机响应再操作,而是由主机保证在不大于某个时间间隔内按排的一次传输,所以USB的中断实际意义是实时查询操作,即USB的中断传输是主机在一定的时间不断地主动轮询设备检查其是否有数据需要传输,对此有3个重要参
2021-11-04 15:14:33 6426 1
原创 USB 传输方式(批量)
USB 批量/块传输方式批量传输数据包批量输出流程USB批量传输抓包分析USB批量读数据USB批量写数据批量传输一般用于批量的和非实时的数据传输,通俗的来说就是用于数据量大但对时间要求又不高的场合的一种传输方式,类似用于USB打印机和USB扫描仪等等。批量传输使用批量传输事务,一次批量传输事务分为三个阶段:令牌包阶段、数据包阶段、握手包阶段。批量传输分为批量读和批量写,批量读使用批量输入事务,批量写使用批量输出事务。注意:不论输入还是输出都是以主机为参考的。批量传输数据包只有全速和高速设备可以使
2021-11-04 15:04:40 1708 2
原创 USB 传输方式(控制)
这里写自定义目录标题USB 控制传输方式控制传输的特点控制传输的过程建立过程数据过程(可选)状态过程建立过程控制传输示例图USB控制读USB控制写USB无数据控制写USB控制传输抓包分析读数据-USB控制传输抓包分析写数据-USB控制传输抓包分析无数据-USB控制传输抓包分析USB 控制传输方式控制传输是一种特殊的传输方式。当USB设备初次连接主机时,用控制传输传送控制命令等对设备进行配置。同时设备接入主机时,需要通过控制传输去获取USB设备的描述符以及对设备进行识别,在设备的枚举过程中都是使用控制传输
2021-11-04 14:40:57 3785
原创 USB-DFP UFP DRP模式
文章目录1、DFP2、UFP3、DRP1、DFPDFP(Downstream Facing Part)下行端口,可以理解为Host,DFP提供Vbus,可以提供数据。在协议规范中DFP特指数据的下行传输,笼统意义上指的是数据下行和对外提供电源的设备。典型的DFP设备是电源适配器。2、UFPUFP(UPstream Facing Part)上行端口,可以理解为Device,UFP从Vbus中取电,并可提供数据。典型设备是U盘,移动硬盘。3、DRPDRP(Dual Role Part)双角色端口,D
2021-07-20 23:43:32 7756
原创 USB-详解/sys/kernel/debug/usb/devices
文章目录详解/sys/kernel/debug/usb/devices1、概述2、示例2.1某项目2.2 个人开发板2.3 OHCI、UHCI、EHCI、XHCI 区别联系3、文件格式3.1 T:Topology(拓扑结构)3.2 B:Bandwidth(带宽信息)3.3 D:Device descriptor info(设备描述符信息)3.4 P:Product ID info(产品ID信息)3.5 S:String descriptors(字符串描述符信息)3.6 C:Configuration des
2021-07-20 15:50:48 6345 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人