usb serial驱动流程分析

本文档详细介绍了Linux 3.10.44平台上USB串口驱动的工作流程,从设备注册、打开设备、接收数据到上层应用通过select和FD_SET获取通知的过程。重点分析了数据如何从USB底层驱动经过tty链路层传递到应用程序,并涉及到tty_open、tty_read、tty_poll等关键函数的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明:usb serial驱动在主机侧(一般是PC侧)枚举成USB串口,在从设备侧(一般是手机侧)提供tty接口,提供一个主机和从设备通信的机制。本文档主要描述设备侧驱动从主机侧接收到数据后如何通知应用程序以及应用程序读取数据的基本过程。

平台:Linux 3.10.44

一 代码说明

在设备侧利用tty驱动为用户空间提供接口,从tty层开始分成tty接口层,tty链路层(line discipline),usb serial层,usb底层驱动。

tty接口层代码指\kernel\drivers\tty\tty_io.c开始入口的相关代码,tty line discipline有很多种实现,默认情况下使用n_tty,代码从\kernel\drivers\tty\n_tty.c入口。usb serial层代码入口位于\kernel\drivers\usb\gadget\u_serial.c。usb底层驱动是和平台强相关的,在此不做说明。

二 tty设备注册

1. 首先由u_serial中调用tty注册函数“tty_register_driver”注册tty设备。

三 设备打开

应用程序调用open函数,在tty_io.c中,tty_fops指定open对应的函数是tty_open。

static const struct file_operations tty_fops = {

         .llseek                = no_llseek,

         .read                  = tty_read,

         .write                 

1、在win98、winme、win2000,windows XP系统中: 先双击driver里hidcominst程序,它没有任何显示。然后再插上USB线, 根据系统提示及可正确安装。 安装完成之后,进入设备管理器,在“端口”一栏中可以看到虚拟的串口设备 SemiTech USB-HID->COM device (COM X ) ,表示设备已经正确安装完成, 可以正常使用。 2、在WinXP系统中:有些可能失败安装HIDCOM driver 。双击driver里HidcomInst程序,就可以在设备管理器的"端口"一栏中可以看到虚拟的串口设备。semiTech.USB-HID->COM device (COM X ),表示设备已经正确安装完成,可以正常使用. 或者先插上USB线,进入设备管理器,在“人体学输入设备”一栏中可以看到 “HID-compliant Device”和“USB人体学输入设备” (在此之前请确认已经移去所有其他“USB人体学输入设备”), 在“HID-compliant Device”上点击鼠标右键: 选择:更新驱动程序 选择:从列表或指定位置安装,单击下一步, 选择:不要搜索,我要自己选择要安装的驱动程序.单击下一步, 选择:从磁盘安装,打开浏览,从驱动盘中找到hidcom.INF文件,打开,单击确定, 选择下一步,此时系统会提示微软的数字签证,选择仍然继续,单击完成。 在“USB人体学输入设备”上点击鼠标右键: 选择:更新驱动程序 选择:从列表或指定位置安装,单击下一步, 选择:不要搜索,我要自己选择要安装的驱动程序.单击下一步, 选择:从磁盘安装,打开浏览,从驱动盘中找到hidcom.INF文件,打开,单击确定, 选择下一步,此时系统会提示微软的数字签证,选择仍然继续,单击完成。 完成以上两项更新之后,在设备管理器的“端口”一栏中可以看到虚拟的串口设备 SemiTech USB-HID->COM device (COM X ) ,表示设备已经正确安装完成,可以正常使用。 3、如果在win98、winme、win2000系统安装过程中出现设备不能正常使用,请参看WinXP的 安装方法进行程序升级。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值