完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在代码中,我观察到usb中的endpoint有15个端点,其中还有一个特殊的endpoint_0是双向的。
其中我想询问一下,因为USB中endpoint_0的通讯是需要握手交互的,那么这个是否有文档明确的写出其需要握手? 其次,我想咨询一下如果我其他的endpoint需要不进行握手直接将接收到的数据推出至host端,那我应该如何做? 如今我现在看了示例,示例中用的是endpoint_1端口的OUT和IN进行dma实验,其中是通过OUT端发出数据,然后再通过内部的线程将数据搬运到pipe的另一端,然后再通过center工具中的transfer data-in再从pipe的另一端读取数据出来。如今我不想通过center工具,直接将数据推出。这是否有方法? 或者说API函数库中有对应的函数? |
|
相关推荐
1个回答
|
|
关于USB 3.0中的endpoint端点问题,我将分步回答您的问题。
1. 关于endpoint_0的握手交互: 是的,USB规范中确实有关于endpoint_0的握手交互的描述。Endpoint 0是一个特殊的控制端点,用于设备枚举和控制传输。在USB 2.0和3.0规范中,endpoint_0是一个双向端点,用于设备与主机之间的控制传输。在控制传输过程中,需要进行握手交互,以确保数据的正确传输。 2. 如何实现其他endpoint不进行握手直接将接收到的数据推送至host端: 要实现这一点,您需要配置其他endpoint(例如endpoint_1)为非控制端点,并设置适当的传输类型(如批量、等时或中断传输)。在这种情况下,不需要进行握手交互,数据可以直接从设备传输到主机。您需要在设备的固件或驱动程序中配置这些端点,并确保主机端的软件能够正确处理这些传输。 3. 关于示例中的DMA实验: 在您提到的示例中,使用endpoint_1的OUT和IN进行DMA实验。通过OUT端发出数据,然后通过内部线程将数据搬运到pipe的另一端,再通过center工具中的transfer data-in从pipe的另一端读取数据。这个过程实际上是在模拟USB数据传输的过程,但并不涉及USB规范中的握手交互。 总之,如果您希望其他endpoint不进行握手直接将接收到的数据推送至host端,您需要配置这些端点为非控制端点,并设置适当的传输类型。同时,确保设备的固件或驱动程序以及主机端的软件能够正确处理这些传输。关于endpoint_0的握手交互,您可以查阅USB 2.0或3.0规范文档,以获取更详细的信息。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教个XMC1404调试串口接收时为什么一直无法接收数据的问题
367 浏览 0 评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
6323 浏览 2 评论
4108 浏览 9 评论
请问TLE5012B_E1000 启动后为什么位置不能正确获取
3634 浏览 9 评论
1232 浏览 8 评论
463浏览 2评论
272浏览 2评论
380浏览 2评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
6336浏览 2评论
如果是打开已有的dave工程,怎么查看这个工程选择的mcu型号?
461浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 15:59 , Processed in 0.940624 second(s), Total 83, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号