研华USB数字存储示波器USB-DSO提供8位/16位 1GS/s采样,信号输出和高级信号捕获、总线译码、信号比对测试等功能。...本文以CAN总线为例进行说明。 CAN总线解码概述 1、 CAN总线概念 CAN(控制器区域网络)总线是一种在汽车和工业机械中使用的串行协议,允许微控制器相互通讯。...它使用双绞线上传输差分信号,分别为CAN高(CAN H )和CAN低(CAN L),当线路受到共模干扰之后,信号差值不变,信号依然能够正确被解析。...CAN解码设置 USB-DSO从CAN低波形上进行解码设置。...参考资料: 高能:研华USB数字存储示波器! 研华测试与测量解决方案2018.1
一系列相互独立的端点在一起构成了USB逻辑设备,在系统结构中,位于下方红色方框内: 二、端点的分类 每个USB设备都有一个唯一的设备地址,设备地址是设备连接上主机时由主机分配的,主机主要依靠这个设备地址对...USB设备进行访问。...五、端点与管道 1、管道的概念 管道是主机软件(数据缓存区),和USB设备各各端点之间的数据传输连接,他是两者之间通信流的抽象(实际上数据传输是USB总线接口完成)。...1)、“流”指不具有USB定义格式的数据流,流通道中的数据是流的形式,也就是该数据内容不具有USB要求的结构。...2)、“消息”指具有某种USB定义格式的数据流。消息通道与端点的关系同流通道与端点的关系是不同的。
Linux 内核源码:include\linux\usb.h Linux 内核源码:drivers\hid\usbhid\usbmouse.c 1....BUS/DEV/DRV 模型 "USB 接口"是逻辑上的 USB 设备,编写的 usb_driver 驱动程序,支持的是"USB 接口": USB 控制器或 Hub 识别出 USB 设备后,会创建、...注册 usb_device usb_device 被"drivers\usb\core\generic.c" 驱动认领后,会选择、设置某个配置 这个配置下面的接口,都会分配、设置、注册一个 usb_interface...左边的 usb_driver 和右边的 usb_interface 如果匹配,则调用 usb_driver.probe 2....接口函数 在 USB 设备驱动程序中,能使用的 USB 函数都在这个头文件里:include\linux\usb.h。
gadget 功能前关闭 adb 功能时却报异常的解决办法 4 附录 4.1 Linux-4.x/Linux-5.4 Gadget 配置示例 4.1.1 小机做 mass storage 4.1.2...1.3 适用范围 表 1-1: 适用产品列表 内核版本 驱动文件 Linux-4.9 drivers/usb/* Linux-5.4 drivers/usb/* 2 模块介绍 2.1 模块功能介绍...USB 总线采用树形结构,在一条总线上只能有唯一的主机设备。Linux 内核从主机和设备两个角度观察 USB 总线结构。...Linux 有原生 gadget 框架,通用的配置流程可参考下文。...图 2-11: linux-4.x usb gadget 配置选择 2.6.2 linux-4.x/linux-5.4 USB Gadget 配置流程 Linux-4.x/Linux-5.4 使用 configfs
/usb.h> 4.2 USB设备注册框架示例 #include linux/init.h> #include linux/module.h> #include linux/usb.h> //定义...鼠标驱动(中断传输方式) 5.1 USB驱动注册框架代码 #include linux/init.h> #include linux/module.h> #include linux/usb.h>...#include linux/init.h> #include linux/module.h> #include linux/usb.h> #include linux/usb/input.h>...0x00000008 Address (2Byte) Length (2Byte) Data (2Byte) The address that can.../init.h> #include linux/module.h> #include linux/usb.h> #include linux/sched.h> #include linux/slab.h
通过扫描以下目录获取物理节点所有 USB 设备: /sys/bus/usb/devices/usb* /sys/bus/usb/devices/usb*/$busnum-* 从该文件系统收集某一个设备的主要信息如下..."level": 1, "manufacturer": "QEMU", "port": 0, "prodid": "0001", "product": "QEMU USB...: 产品 serial: USB 硬件设备序列号 ,例如 0000:00:01.2 定位方法# 定位某一个 USB 设备的方法有两种: busnum + devnum idVendor + idProduct...设备类bDeviceClass、bDeviceSubClass、bDeviceProtocol By USB 中文网 USB设备描述符中的idVendor、idProduct和bcdDevice By...USB 中文网 USB 硬件设备的序列号 By IBM 注:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
By Toradex秦海 1).简介 CAN(Controller Area Network)总线是嵌入式设备最为常用的接口之一,常用于汽车以及工业自动化等嵌入式领域,因此本文就基于嵌入式Linux演示使用...Linux系统通过SocketCAN层提供CAN支持,使得可以使用类似操作socket API函数来操作CAN总线,具体关于SocketCAN说明请见这里。 b)....————————– 5).总结 利用SocketCAN可以非常方便的在Linux下使用CAN总线,另外CAN总线也支持同时发送并接收,这里就不做演示了。...Linux系统通过SocketCAN层提供CAN支持,使得可以使用类似操作socket API函数来操作CAN总线,具体关于SocketCAN说明请见这里。 b)....————————– 5).总结 利用SocketCAN可以非常方便的在Linux下使用CAN总线,另外CAN总线也支持同时发送并接收,这里就不做演示了。
[ 0.513302] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 0.513303] usb usb1...Controller [ 0.513304] usb usb1: Manufacturer: Linux 3.10.0-327.el7.x86_64 xhci-hcd [ 0.513305...] usb usb1: SerialNumber: 0000:00:14.0 [ 0.518700] usb usb2: New USB device found, idVendor=1d6b,...0.518702] usb usb2: Product: xHCI Host Controller [ 0.518702] usb usb2: Manufacturer: Linux 3.10.0...] usb 1-4: New USB device found, idVendor=413c, idProduct=301a [ 1.040348] usb 1-4: New USB device
在上一章分析完USB总线驱动程序后, 接下来开始写一个USB驱动: 本节目的: 将USB鼠标的左键当作L按键,将USB鼠标的右键当作S按键,中键当作回车按键 参考/drivers/hid/usbhid/...: usb_deregister(struct usb_driver *driver); 注册一个usb_driver驱动,然后内核会通过usb_driver的成员.id_table函数匹配一次USB设备...释放input_device 3.5在出口函数中 1)通过usb_deregister ()函数注销usb_driver结构体 4.代码如下: #include linux/kernel.h> #include...linux/slab.h> #include linux/module.h> #include linux/init.h> #include linux/usb/input.h> #include...linux/hid.h> static struct input_dev *myusb_mouse_dev; //input_dev static char *myusb_mouse_buf
Linux3.11版本引入了基于configfs的usb gadget configfs。.../bcdDevice # USB 1.1: 0x0110 # USB 2.0: 0x0200, USB 2.1: 0x0210, USB 2.5: 0x0250 # USB 3.0: 0x0300...(gadget_strings, gadget_info); [include/linux/usb/gadget_configfs.h] #define USB_CONFIG_STRINGS_LANG(...主要的工作流程为: 分配一个config_usb_cfg1结构体,该结构体包含了usb_configuration结构体,保存了该USB设备的配置信息。 设置USB设备的配置描述符的某些选项。...调用UDC驱动接口usb_udc_connect_control连接USB主机控制器,这样USB主机就能识别并枚举USB设备。
是因为windows自带了USB总线驱动程序, USB总线驱动程序负责: 识别USB设备,给USB设备找到对应的驱动程序 新接入的USB设备的默认地址(编号)是0,在未分配新编号前,PC主机使用0地址和它通信...然后USB总线驱动程序都会给它分配一个地址(编号) PC机想访问USB总线上某个USB设备时,发出的命令都含有对应的地址(编号) USB是一种主从结构。...主机叫做Host,从机叫做Device,所有的USB传输,都是从USB主机这方发起;USB设备没有"主动"通知USB主机的能力。..., 比如:鼠标的数据是从鼠标传到PC机, 对应的端点称为"中断输入端点" 其中端点0是设备的默认控制端点, 既能输出也能输入,用于USB设备的识别过程 同样linux内核也自带了USB总线驱动程序,框架如下...其中usb_bus_type是一个全局变量, 它和我们之前学的platform平台总线相似,属于USB总线, 是Linux中bus的一种.
为了消除这种可能性,机构会限制和监测访问互联网,同时禁用 USB 存储设备。 在本教程中,我们将讨论三种不同的方法来禁用 Linux 机器上的 USB 存储设备。...方法 2:删除 USB 驱动 这种方法要求我们将 USB 存储的驱动程序(usb_storage.ko)删掉或者移走,从而达到无法再访问 USB 存储设备的目的。...方法 3:将 USB 存储器纳入黑名单 我们也可以通过 /etc/modprobe.d/blacklist.conf 文件将 usb-storage 纳入黑名单。...usb-storage 保存文件并退出。...usb-storage 就在就会被系统阻止加载,但这种方法有一个很大的缺点,即任何特权用户都可以通过执行以下命令来加载 usb-storage 模块, $ sudo modprobe usb-storage
14.1 CAN介绍 14.1.1 CAN是什么? CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。...14.1.4 CAN网络拓扑 CAN总线是一种分布式的控制总线。CAN总线作为一种控制器局域网,和普通以太网一样,它的网络很多CAN节点构成。...其网络拓扑结构如下图所示: CAN网络的每个节点非常简单,均由一个MCU(微控制器)、一个CAN控制器和一个CAN收发器构成,然后使用双绞线连接到CAN网络中。...用 CAN_H 比 CAN_L 高表示逻辑“0”,称为“显形”,此时,通常电压值为:CAN_H = 3.5V 和 CAN_L = 1.5V 。...目前实际常用的CAN收发器有如下几种型号: 目前实际常用的CAN控制器有如下几种型号: 14.1.6 CAN报文帧 14.1.6.1 CAN报文格式 标准 CAN 的标志符长度是 11 位,而扩展格式
2.Gadget Function驱动 Linux内核的USB Gadget Function驱动都在drivers/usb/gadget/function/目录下,有通讯设备类(Communication...[include/linux/usb/composite.h] struct usb_function_driver { const char *name; struct module...[include/linux/usb/composite.h] #define DECLARE_USB_FUNCTION_INIT(_name, _inst_alloc, _func_alloc) \...(__usb_composite_driver, usb_composite_probe, \ usb_composite_unregister) [include/linux/device.h...Linux 3.11版本引入了USB Gadget Configfs。在用户层可以通过暴漏出来的API定义USB Gadget设备的任意功能和配置,极大的方便了USB复合设备的配置和使用。
试过很多官方驱动,都不太好,每个驱动都测试了5G, 3.3、不同驱动的对比测试 测试位置:距离路由器隔一堵墙的房间那头, USB3.0无线网卡稳定在130Mbps的下载速度 测网速:www.speedtest.cn
制作 Kali 可启动 USB 驱动器 (Linux) 我们最喜欢的方式,也是最快的方法,启动和运行 Kali Linux 是从 USB 驱动器“实时”运行它。...它是便携的——你可以把 Kali Linux 放在口袋里,并在几分钟内在可用的系统上运行 它是可定制的——你可以滚动你自己定制的 Kali Linux ISO 镜像,并使用相同的程序将它放到 USB...USB 驱动器,该驱动器已从 Kali Linux 的 ISO 映像设置。...Kali Linux Live USB 安装程序 此过程的具体细节取决于您是在Windows、Linux还是macOS/OS X系统上执行此操作。...在 Linux (DD) 上创建可引导 Kali USB 驱动器 在 Linux 环境中创建可引导的 Kali Linux USB 驱动器很容易。
显然我们的buf[0]的0X04就是上传的usb_kbd_keycode[4+ 224] 2.3我们来看看usb_kbd_keycode[226]里的数据对应的到底是不是左ALT键 找到usb_kbd_keycode...(urb, GFP_ATOMIC); if (i) err ("can't resubmit intr, %s-%s/input0, status %d",...[]的数据错位,这里就不做详细分析了 一切迎刃而解,我们只需要将自己的代码也通过这个码表添加所有按键按键事件,然后再在键盘中断函数中根据数据来上传事件即可 4.本节键盘代码如下: #include linux.../kernel.h> #include linux/slab.h> #include linux/module.h> #include linux/init.h> #include linux/...usb/input.h> #include linux/hid.h> static struct input_dev *myusb_kbd_dev; //input_dev static
然而这些产品核心控制器与电池都是走的CAN总线通讯,而工控机本身是没有CAN通讯,那么工控机就需要通讯桥梁(025-68250795)来扩展CAN通道。...而在工控机当中有nimipcie接口,如此就用可以用minipcie接口转CAN的一个模块来实现扩充CAN口。...miniPCIe接口CAN卡是PCI Express mini卡槽的工控机或单板电脑快速扩展CAN通道的利器。...~1Mbps 符合CAN 2.0A/2.0B规范 最高帧流量高达14000帧/s 2路CAN通道(ISO 11898-2) 经由连接线和D-Sub 9针接口板引出CAN接口 CAN接口电气隔离高达...2500VDC,每路CAN通道独立隔离 板载120欧姆终端电阻,拨动开关开启或或关闭 提供Windows、QNX、Vxworks、Linux/Ubuntu、Intime等的驱动和二次开发资料包
USB 控制器 1....DRD driver DRD驱动在usb/dwc3 1.1 dts dwc3@44000000 { /* Compatible ID used by the Linux driver for this...= ; dr_mode = "otg"; extcon = ; }; extcon_dwc3: extcon_dwc3 { compatible = "linux...= "linux,extcon-usb-gpio", }, { /* sentinel */ } }; static struct platform_driver usb_extcon_driver..., }; 1)首先根据"linux,extcon-usb-gpio"进行dts和driver的匹配,执行usb_extcon_probe() 2)在 usb_extcon_probe()中,先调用devm_extcon_dev_register
CAN通信(一)——认识CAN总线 CAN总线 背景 CAN总线是什么 网络拓扑 节点、报文、信号 CAN总线 背景 作为并非通信专业的汽车工程师,汽车CAN通信是必须掌握的,但是,记得刚开始上来一看什么定义...CAN总线是什么 CAN总线,并不是他很能,只是一个缩写 CAN:Controller Area Network。...控制器局域网络总线 绝大多数汽车制造厂商采用CAN总线来实现汽车内部控制系统之间的数据通信,CAN总线也叫CAN BUS BUS?...车辆CAN总线通讯 这个CAN总线图是不是和BUS一样额 网络拓扑 网关是整个CAN网络的核心, 控制着整车几条CAN总线的信号转发与处理,示意图只展示了其中的两条。...当然这里边是乘客选择了这个站牌,实际的CAN通信是节点选择接收了这信息。 下一节介绍下CAN通信的信号矩阵。
领取专属 10元无门槛券
手把手带您无忧上云