我想使用ch375a的issue_token命令完成requiry命令,(前面的獲取描述符及最大邏輯單元都已成功)。先發(fā)送WR_USB_DATA7命令,然后寫入cbw的長(zhǎng)度31,再接下來(lái)給ch375a發(fā)送31個(gè)cbw命令字(命令字我查過(guò)了,應(yīng)該沒(méi)問(wèn)題),設(shè)置發(fā)送同步為0后,再使用issue_token和 DEF_USB_PID_OUT命令 將cbw發(fā)到設(shè)備端(使用端點(diǎn)0)。這些操作完成后,ch375a返回USB_INT_SUCCESS,但是再使用DEF_USB_PID_IN 命令讀數(shù)據(jù)的時(shí)候卻沒(méi)有再收到中斷狀態(tài),程序一直在等待中斷,(接受同步我也設(shè)置為0了),這是為什么啊?是不是我這樣使用外置程序完成bulk-only傳輸不對(duì)啊?請(qǐng)各位前輩幫幫忙啊
我想問(wèn)問(wèn)進(jìn)行bulk-only傳輸是不是向u盤中的bulk-out和bulk-in端點(diǎn)通過(guò)ch375a的issue_token命令的out和in令牌發(fā)送和接收cbw,csw就可以完成啊?能不能給說(shuō)說(shuō)通過(guò)ch375a進(jìn)行bulk-only傳輸?shù)牧鞒?
(1)issue_token命令是進(jìn)行控制傳輸,不能用于BulkOnly傳輸 (2)BulkOnly傳輸(CBW,CSW)是通過(guò)批量端點(diǎn)進(jìn)行傳輸
那么ch375a有沒(méi)有相關(guān)命令進(jìn)行bulk-only傳輸呢?
CH375內(nèi)置一些通過(guò)BulkOnly傳輸操作USB存儲(chǔ)設(shè)備的命令,以"DISK_"為前綴。
ch375的資料上說(shuō)是也支持批量和中斷傳輸?shù)?,那么如果我想進(jìn)行批量傳輸和中斷傳輸?shù)脑?,?yīng)該調(diào)用哪些指令?
ISSUE_TKN_X或ISSUE_TOKEN可以進(jìn)行批量或中斷傳輸,操作流程參考CH375DS2.PDF
那么bulk-only傳輸是不是建立在批量傳輸上,通過(guò)in和out令牌封包發(fā)送命令,數(shù)據(jù)和狀態(tài)呢?
是的,另外DISK_BOC_CMD命令比ISSUE_TKN_X或ISSUE_TOKEN更簡(jiǎn)單,它會(huì)自動(dòng)封裝令牌包,啟動(dòng)批量傳輸,無(wú)需要用戶設(shè)定PID以及端點(diǎn)號(hào)
我沒(méi)有在ch375的資料中找到你說(shuō)的disk_boc_cmd命令,你說(shuō)的是不是disk_read和disk_write命令呢?另外我如果要進(jìn)行批量傳輸,那么需要設(shè)置ch375內(nèi)部寄存器嗎,ch375是不是再我發(fā)送out令牌后會(huì)將主機(jī)發(fā)送緩存中的數(shù)據(jù)全部填到數(shù)據(jù)封包中的數(shù)據(jù)域中發(fā)送出去?
(1)這個(gè)命令在CH375DS2.PDF中 (2)CH375是命令驅(qū)動(dòng),沒(méi)有用戶寄存器,對(duì)于批量傳輸,只要事先準(zhǔn)備好數(shù)據(jù)和令牌包,執(zhí)行ISSUE_TKN_X或ISSUE_TOKEN即可
嗯 找到了。 (我手上的資料還是原來(lái)的版本,所以一開(kāi)始沒(méi)有找到)。非常感謝
有個(gè)問(wèn)題還想請(qǐng)教一下 就是我使用disk_boc_cmd命令讀取一個(gè)扇區(qū)的數(shù)據(jù),扇區(qū)字節(jié)數(shù)是512字節(jié),但是主機(jī)端緩存不是只有64字節(jié)嗎? 我怎么才能將這512字節(jié)讀完呢?
循環(huán)的讀取8次數(shù)據(jù),每次讀取64字節(jié),最后一次中斷狀態(tài)為操作成功