vxWorks中USB驱动栈-2

本文详细介绍了vxWorks中USB Peripheral驱动栈的结构,包括目标控制器TC、硬件适应层(HAL)和目标层的工作原理。初始化过程涉及目标层的初始化、回调函数实现、TCD的Attach和使能,以及数据传输的管道创建和控制。文中还阐述了各关键函数的用途和参数。
摘要由CSDN通过智能技术生成

接上篇文章 介绍完了Host,再来看下Peripheral驱动栈,下图为Peripheral驱动栈的结构图:

    风河USB Peripheral驱动栈中,位于底层的是目标控制器TC,它是Peripheral栈中用于连接USB的硬件部分。对于每种类型的TC,都会有对应的TCD,风河提供了Freescale Dual Role、NetChip NET2280、PDIUSBD12和PhilipsIsp1582四种TCD,它们的功能主要包括:

1、实现任何硬件相关的功能;

2、实现寄存器访问,USB Peripheral栈的其它层都不允许实现寄存器访问;

3、为与栈中上层通讯提供entry point。

    在这之上就又是HAL(Hardware Adaptation Layer),该层为驱动栈中的更上层提供了硬件独立的访问方式,使得整个驱动栈更容易移植到新的TC硬件上。target layer的功能与之类似,也是一个抽象的中介物。在运行时,目标应用程序会命令目标层Attach一个TCD,之后目标层就负责TCD与目标应用程序间的请求及回应,它可以同时处理多个TCD与应用程序的通讯。所以,这部分的重点就分布在目标层和TCD上。

    先看目标层,下图显示了目标层是如何串联应用层和HAL的,并描述了目标层的内部组成:

 

 

    要通过该层实现通讯,初始化代码和应用程序需要经过以下几步:

1、初始化目标层:和USB Host栈类似,这里有一个初始化代码usbTargInitialize,主要功能也是初始化OS库、创建句柄和互斥访问量,同样的嵌套式调用,所以需要至少调用一次。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值