請(qǐng)教關(guān)于 USBHostTransact 函數(shù)

我在CH32和CH582的USB例程中,usbhost.c文件中,都看到了如下的注釋。

我現(xiàn)在用主機(jī)host,查詢方式。總感覺(jué)好像是速度有點(diǎn)慢。


我想問(wèn):

  1. USB主機(jī)模式,有沒(méi)有類似USB從機(jī)那樣的中斷操作方式?

  2. 下邊的函數(shù),可否提供一個(gè)對(duì)運(yùn)行速度優(yōu)化后的版本?


/*********************************************************************

?* @fn? ? ? USBHostTransact

?*

?* @brief? ?傳輸事務(wù),輸入目的端點(diǎn)地址/PID令牌,同步標(biāo)志,以20uS為單位的NAK重試總時(shí)間(0則不重試,0xFFFF無(wú)限重試),返回0成功,超時(shí)/出錯(cuò)重試

?*? ? ? ? ? 本子程序著重于易理解,而在實(shí)際應(yīng)用中,為了提供運(yùn)行速度,應(yīng)該對(duì)本子程序代碼進(jìn)行優(yōu)化

?*

?* @param? ?endp_pid? ? - 令牌和地址, 高4位是token_pid令牌, 低4位是端點(diǎn)地址

?* @param? ?tog? ? ? ? ?- 同步標(biāo)志

?* @param? ?timeout? ? ?- 超時(shí)時(shí)間

?*

?* @return? ERR_USB_UNKNOWN 超時(shí),可能硬件異常

?*? ? ? ? ? ERR_USB_DISCON? 設(shè)備斷開

?*? ? ? ? ? ERR_USB_CONNECT 設(shè)備連接

?*? ? ? ? ? ERR_SUCCESS? ? ?傳輸完成

?*/

UINT8 USBHostTransact( UINT8 endp_pid, UINT8 tog, UINT32 timeout )



熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

需要查看設(shè)備的傳輸方式。

實(shí)時(shí)傳輸和中斷傳輸,理論速度與設(shè)備的端點(diǎn)描述符有關(guān),在端點(diǎn)描述符會(huì)提供設(shè)備的間隔。

因此可以查看設(shè)備的端點(diǎn)描述符,看下理論速度是多少。

如果是批量傳輸傳輸,比如做cdc設(shè)備,則是批量傳輸?shù)?,需要查看?shí)際的速度只能通過(guò)抓包來(lái)看。

因此建議直接通過(guò)USB分析儀抓包查看實(shí)際速度判斷是否傳輸?shù)乃俣冗^(guò)慢。

USB主機(jī)沒(méi)有中斷傳輸?shù)母拍?。主機(jī)是查詢的方式,可以通過(guò)while或者定時(shí)器中斷或者其他方式進(jìn)行查詢。

針對(duì)你提到的速度有點(diǎn)慢。建議先USB分析儀抓包查看實(shí)際速度。分別判斷是主機(jī)查詢的速度慢,還是設(shè)備的傳輸速度慢??梢栽趙hile里循環(huán)產(chǎn)生事務(wù)的邏輯的函數(shù)加上highcode,放在RAM中,查詢的速度會(huì)快一些。


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频