USB开始枚举的时间以及stack的建立

USB开始枚举的时间是由device侧决定的,而不是由Host侧决定的。要开始USB枚举,必须是先Host检测到USB设备,而Host检测设备插入是通过D+或者D-上的电平由低到高的跳变来获悉的。

我们知道在主机端的USB Hub也有D+,D-,它们各自接了下拉电阻,而USB设备的D+(高速或者全速)D-(低速)上会接上拉电阻,注意上拉电阻的使能被设备控制器的寄存器控制。当USB设备插入后,在合适的时间(因为一旦D+D-上输出高电平,那么主机和设备就开始通信了,必须要保证必要的初始化已经完成),写设备控制器的上拉电阻使能寄存器,从而在D+D-上输出高电平。

DCD在初始化的时候,就会将D+的上拉电阻打开(可能会马上打开,也可能需要modem初始化后再打开),也就是初始化后,D+是拉高的。无论是USB充电器,还是用USB接口的wallcharger,由于都有Vbus连接,因此USB设备控制器都会产生中断,检测到充电器。

dcd_soft_intr 为中断处理函数,也处理充电器插拔事件。

USB开始枚举的时间是由device侧决定的,而不是由Host侧决定的。要开始USB枚举,必须是先Host检测到USB设备,而Host检测设备插入是通过D+或者D-上的电平由低到高的跳变来获悉的。

我们知道在主机端的USB Hub也有D+,D-,它们各自接了下拉电阻,而USB设备的D+(高速或者全速)D-(低速)上会接上拉电阻,注意上拉电阻的使能被设备控制器的寄存器控制。当USB设备插入后,在合适的时间(因为一旦D+D-上输出高电平,那么主机和设备就开始通信了,必须要保证必要的初始化已经完成),写设备控制器的上拉电阻使能寄存器,从而在D+D-上输出高电平。

DCD在初始化的时候,就会将D+的上拉电阻打开(可能会马上打开,也可能需要modem初始化后再打开),也就是初始化后,D+是拉高的。无论是USB充电器,还是用USB接口的wallcharger,由于都有Vbus连接,因此USB设备控制器都会产生中断,检测到充电器。

dcd_soft_intr为中断处理函数,也处理充电器插拔事件。

Firstly, hsu_os_hw_init->hsu_os_core_hw_init-> add_generic_controller-> add_generic_controller_ex->jdriver_attach-> jdriver_controller_attach-> tdi_4x_attach-> core_register_dcd-> init_fds-> init_fd->cdc_init_ecm->ecm_init

Then, jslave_enable->core_enable_by_idx ->core_enable-> dcd_enable->dcd_vbus_connect-> TDI_4X_USB_CMD_RS(D+)

jstart_stack()->jslave_init->core_init: 初始化core。core number是从0开始的。

tmc_libraries_init_after_service_tasks_start->hsu_config_selector_init->hsu_conf_sel_update_hsu_nv_items->update_device_composition_from_nv->hsu_nw_init

core的相关参数的配置,主要是config参数,一般在driver下的common文件夹中。function driver在class的jslave里。DCD driver以及core的相关函数在core文件夹下面。其他的很多都在driver的adapt layer。

dcd_enable 注册中断处理函数。

数据结构如下:

hsu_core_config_table(cores_details[HSU_HS_MAIN_CORE])

 

cores_details[HSU_HS_MAIN_CORE](hsu_hs_main_device_params)

 

hsu_hs_main_device_params(hsu_hs_main_config_params[0])

hsu_hs_main_config_params[0].cur_dev_comp_details

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值