速度太慢了????

我用的是CH375S的芯片做為host,MCU為16位機(jī)。 在測(cè)試傳輸速度時(shí),發(fā)現(xiàn)傳輸速率只有30K/S,傳一個(gè)4M的文件居然要8分鐘。 經(jīng)測(cè)試發(fā)現(xiàn)芯片在響應(yīng)傳輸成功中斷時(shí),與上次中斷之間的延時(shí)竟達(dá)到了十多毫秒,請(qǐng)指教。

你用的是扇區(qū)方式還是字節(jié)方式,如果是字節(jié)方式的話,那速度是不會(huì)很快的,同時(shí),你在以扇區(qū)寫的時(shí)候,當(dāng)一次往下寫的數(shù)據(jù)最好是16K的數(shù)據(jù),這樣的速度是比較快的


速度問(wèn)題主要和你的MCU有關(guān)系,你數(shù)據(jù)口寫入一個(gè)字節(jié)需要多長(zhǎng)時(shí)間???還有就是跟寫入方式有關(guān)系,字節(jié)寫比扇區(qū)寫慢,扇區(qū)寫每次盡可能的多寫幾個(gè)扇區(qū)速度也會(huì)相應(yīng)的提高.


請(qǐng)問(wèn)如何來(lái)測(cè)讀寫速度呢?


1、我用的是扇區(qū)寫入方式,F(xiàn)AT16格式,自已參照文檔寫的,經(jīng)測(cè)試過(guò)我部分代碼不會(huì)有太大的問(wèn)題。 2、我使用的單片機(jī)是16位機(jī),晶振4M,內(nèi)部倍頻至12M,相當(dāng)于51的144M(12clock),速度也不應(yīng)該成問(wèn)題。 3、64個(gè)字節(jié)的寫入時(shí)間(不包含最后一個(gè)成功傳輸?shù)闹袛啵┐蟾胖恍枰?ms,包括最后一個(gè)中斷后,時(shí)間就 需要10多快20ms了,照這種速度也就是32Kbyte/s。 4、操作USB時(shí)采用查詢的方式,所有中斷被屏蔽,不會(huì)被別的任務(wù)打斷。 綜上,傳輸時(shí)間就是消耗在讀/寫扇區(qū)中,是不是CH375不夠快呢,盼請(qǐng)答復(fù)。


沒(méi)人理,沒(méi)勁。


你用扇區(qū)方式下,一次寫多少個(gè)扇區(qū)呢?你如果一次寫一個(gè)扇區(qū),那么每次就9個(gè)中斷,你如果一次寫2個(gè)扇區(qū),那么,就是17個(gè)中斷,這樣就少了一個(gè)中斷,所以我們建議每次最好寫多點(diǎn)的扇區(qū),比如一次16K,還有和你的U盤有關(guān)系,不同的U盤速度是不一樣的


1、我的寫緩沖區(qū)是3K(6個(gè)扇區(qū)),因?yàn)槠骷陨淼脑颍彌_區(qū)不能再擴(kuò)大。 2、再者即使各種U盤的速度不一樣,也不致于慢到這個(gè)地步。 3、是否存在USB的CRC16檢驗(yàn)錯(cuò)誤而導(dǎo)致375一直重發(fā)才達(dá)到如此大的延時(shí)。


64字節(jié)1MS 那麼 1字節(jié)1/64=15US,1K至少15MS 最多你的速度只能64K,那麼真正的數(shù)據(jù)寫入速度應(yīng)該在該速度的2/5(1扇區(qū))---12/16(16扇區(qū))左右.假如你寫入一字節(jié)在2-3US那麼你的速度理論上應(yīng)該提高5--7倍.


按照我的理解,1ms時(shí)間(64個(gè)字節(jié))應(yīng)該是375芯片內(nèi)部固件對(duì)上位機(jī)寫入數(shù)據(jù)的應(yīng)答,而沒(méi)有真實(shí)地發(fā)送給U盤,所以你的66K應(yīng)該不能這樣算,而是應(yīng)該從上位機(jī)寫第一個(gè)64個(gè)批量數(shù)據(jù)開始,在寫完扇區(qū)的總數(shù)倍之后,上位機(jī)得到375成功的應(yīng)答為止,這才表示芯片已成功將數(shù)據(jù)發(fā)送給了U盤,而恰恰這段時(shí)間才是致命 的長(zhǎng)。樓上的這段話“那麼真正的數(shù)據(jù)寫入速度應(yīng)該在該速度的2/5(1扇區(qū))---13/16(16扇區(qū))左右”應(yīng)該時(shí)間不是變小了,而是變大了。我沒(méi)有研究過(guò)貴公司的固件程序,所以只能猜測(cè)。


首先你要找出你往375寫64字節(jié)的數(shù)據(jù)怎么會(huì)1MS,正常的情況下,單片機(jī)寫64字節(jié)的數(shù)據(jù)到375的時(shí)間為60US左右,而375發(fā)出去和得到USB設(shè)備返回的時(shí)間為100US左右,這樣可以算出速度為400K/S,而你寫一次64字節(jié)就要1MS的時(shí)間,那當(dāng)然速度就會(huì)很慢.


說(shuō)幾句吧. 1 在內(nèi)部固件方式下,寫64字節(jié)數(shù)據(jù)按說(shuō)明書要求每字節(jié)間隔2us,所以等待時(shí)間加起來(lái)就是128us,在加上單片機(jī) 處理時(shí)間,會(huì)接近1ms的. 2 在送出64字節(jié)后,等待中斷的時(shí)間才是決定讀寫速度的關(guān)鍵,我實(shí)際測(cè)試過(guò),應(yīng)該速度在30KB/S左右.

作為一般的單片機(jī)系統(tǒng),數(shù)據(jù)量不大已經(jīng)可以使用了.


1,你說(shuō)"每字節(jié)之間的時(shí)間間隔為2US",而實(shí)際上說(shuō)明書上說(shuō)的數(shù)據(jù)與數(shù)據(jù)之間的時(shí)間間隔為1US,這樣的話,等待時(shí)間就是我所說(shuō)的60US左右. 2.在送出63字節(jié)之后,CH375將數(shù)據(jù)傳送給USB設(shè)備,USB設(shè)備在返回?cái)?shù)據(jù)給375,大概在100US左右,在響應(yīng)中斷(2US),撤消中斷(2US),這時(shí)間怎么也不會(huì)到達(dá)1MS吧. 3,要不你把你讀和寫的程序貼出來(lái)看下撒,會(huì)不會(huì)在讀和寫的過(guò)程中有什么問(wèn)題存在?


暈,哪有這樣寫程序的! 第一,數(shù)據(jù)要CPU事先都準(zhǔn)備好,越多越好。以免一邊操作U盤一邊要準(zhǔn)備數(shù)據(jù)源,當(dāng)然,特殊情況除外,但也要盡可能保證有最多的可寫數(shù)據(jù)。 第二,寫扇區(qū)的時(shí)候,要一次寫滿一個(gè)扇區(qū),中斷9次,最后一次時(shí)間才最長(zhǎng),因?yàn)檫@個(gè)時(shí)間才是寫入時(shí)間,這個(gè)時(shí)間取決于U盤(即使這個(gè)時(shí)間其實(shí)也不長(zhǎng)),前8次都是將數(shù)據(jù)送給U盤的控制器,速度根本不是問(wèn)題。


請(qǐng)盡快把程序發(fā)上來(lái)大家看看吧,并請(qǐng)告知哪邊浪費(fèi)了時(shí)間,浪費(fèi)了多少 375應(yīng)該不至于慢成這樣的


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

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