用CH374設(shè)備模式作等時(shí)傳輸,每1ms能最多發(fā)送64Bytes(因發(fā)送同步位總是DATA0,所以用不到擴(kuò)展緩存)。現(xiàn)在55.5KBytes/S采樣速率,1ms至少要發(fā)送56Byte。有什么同步機(jī)制可以使每1ms取數(shù)據(jù)與采樣速率同步呢?
先前解釋不夠準(zhǔn)確,374做全速設(shè)備時(shí),實(shí)時(shí)傳輸速度最大可達(dá)1280000B/S。這是理論值,參照了USB協(xié)議:374的有效負(fù)載為64字節(jié),1幀中最多可進(jìn)行20次實(shí)時(shí)傳輸 “1ms能最多發(fā)送64Bytes”是怎么理解的?
1ms傳1023B,1S應(yīng)該是1023000B差不多1MB/S吧,那有1023MB/S呢? CH374不是只支持64Bytes嗎?所以主機(jī)一次只能從CH374最多取64Byte/ms,這個(gè)沒(méi)理解錯(cuò)吧?
1ms內(nèi)只要總線(xiàn)帶寬夠用,那么主機(jī)可以進(jìn)行n(n <= 20)次實(shí)時(shí)傳輸,每次64字節(jié),那么1ms傳輸?shù)臄?shù)據(jù)為 64*n
怎樣才可以使主機(jī)進(jìn)行n次實(shí)時(shí)傳輸呢?n次之間的時(shí)間間隔又是如何決定呢?我寫(xiě)Linux dirver時(shí)只要每次提交URB長(zhǎng)度超過(guò)64Byte就出錯(cuò),是不是由于提交Descriptor時(shí)說(shuō)明了“MaxPacketSize”為64Bytes所至呢?
傳輸次數(shù)和時(shí)間間隔完全由主機(jī)決定的。總線(xiàn)上盡量不要連接其他USB設(shè)備,只連接你的設(shè)備,這樣可以最大利用總線(xiàn)帶寬。
1ms中n次的實(shí)時(shí)傳輸,是不是CH374就會(huì)產(chǎn)生n次中斷?
CH374根據(jù)什么知道n次的實(shí)時(shí)傳輸中每一次什么時(shí)候完成呢?要知道這個(gè)才可以及時(shí)更新64Bytes的數(shù)據(jù)啊。
每完成一次傳輸,374都會(huì)產(chǎn)生中斷
??
做了試驗(yàn),數(shù)據(jù)能被主機(jī)接收,有中斷發(fā)生,但相隔1ms。為什么不是1ms內(nèi)有n次中斷呢?
是有中斷發(fā)生,但相隔1ms。為什么不是1ms內(nèi)有n次中斷呢?