linux 串口对应设备,Linux驱动系列———USB转串口cp210x设备驱动

USB设备驱动程序用来驱动相应的USB设备,USB设备驱动用usb_driver表示,它主要用来将USB设备挂接到USB核心中,并启动USB设备,让其正常工作。对于USB设备的具体读写操作由放在usb_driver设备中的usb_class_drivers成员来实现,该成员定义了一个file_operations结构体,用来对设备进行读写操作。

1. USB设备驱动模型

设备需要驱动才能正常工作,所以当系统检测到设备时,应该将其与对应的驱动程序绑定。设备与驱动的绑定,只能够在同一总线上的设备与驱动之间进行。总线与设备和驱动的连接,需要相应总线的核心代码来实现。对于USB总线,实现总线与驱动和设备的连接,是通过USB核心(USB core)来完成的。

USB core会完成总线的初始化工作,然后再扫描USB总线,看USB总线上连接了那一些设备。当USB core发现设备的时候,会为其分配一个struct device结构体,并将其连接到总线上。当发现所有的设备以后,USB总线上的设备链表就建立好了。

相比设备的连接,将驱动连接到总线上就更简单。每当驱动注册的时候,会将自己在总线上注册,并连接到总线的驱动链表中。这时,驱动会遍历总线的设备链表,寻找合适的设备,并将其通过内部指针联系起来。

2.USB驱动结构

在USB设备驱动模型中,USB设备驱动使用usb_driver结构体来表示,该结构体中包含了与具体设备相关的核心函数,对于不同的设备,需要实现不同功能的函数。usb_driver结构体的定义如下:

你可能感兴趣的:(linux,串口对应设备)