前段時(shí)間用CH375來做數(shù)據(jù)傳輸,傳輸64個(gè)字節(jié)大概在100us左右,現(xiàn)在改用CH374,還是覺得速度上不去,傳輸64個(gè)字節(jié)的時(shí)間大概在140個(gè)us左右,不知道在理想情況情況下,CH374傳64個(gè)字節(jié)需要用多長(zhǎng)時(shí)間,我用的freescale的16位單片機(jī),總線頻率是32MHz,采用模擬并口的方式的傳輸方式,參考的DEVICE的程序作的測(cè)試。有沒有提高傳輸速度的方法? 謝謝!
模擬總線速度自然會(huì)慢許多,測(cè)速度必須用總線方式 對(duì)于高速單片機(jī),CH374與計(jì)算機(jī)通信速度可達(dá)700KB左右。 提高速度的方面有很多: (1)CH374使用雙緩沖區(qū)方式 (2)對(duì)于C語言,需要看其匯編代碼是否有冗余的地方,必要時(shí)要作調(diào)整;方便的話,CH374接口部分采用匯編
在測(cè)CH375的時(shí)候也用的是模擬并口的方式,按理來說CH374要比CH375快,實(shí)際測(cè)的時(shí)候要慢? 能夠提供CH374接口部分的函數(shù)參考? 在做測(cè)試的時(shí)候,我設(shè)了一個(gè)固定64個(gè)字節(jié)的數(shù)組,單片機(jī)只負(fù)責(zé)發(fā)送數(shù)組,這樣的話,雙緩沖提高的空間不大吧? 在查詢的時(shí)候用的查詢寄存器的標(biāo)志位來進(jìn)入中斷的,想問問CH374與CH375在INT引腳的電平變化有什么區(qū)別? 謝謝
這個(gè)是不一定的,CH374快的前提是MCU要快.CH374和CH375的INT引腳電平變化是一樣的.按照你說的方法這個(gè)速度已經(jīng)不慢了,64個(gè)字節(jié)100US,也就上每秒640KB了?不錯(cuò)了!
當(dāng)時(shí)就是覺得CH375慢了一點(diǎn),說CH374能夠做到800~900K,所以就改用CH374了,結(jié)果一測(cè)試,還是有點(diǎn)慢? CH374里面有些程序不是很好理解, Write374Byte( REG_USB_ENDP2, M_SET_EP2_TRAN_NAK( Read374Byte( REG_USB_ENDP2 ) ) ^ BIT_EP2_TRAN_TOG ); Write374Byte( REG_USB_ENDP2, M_SET_EP2_TRAN_ACK( Read374Byte( REG_USB_ENDP2 ) ) ^ BIT_EP2_RECV_TOG ); 能否解釋一下?
這兩個(gè)函數(shù)是用來改變數(shù)據(jù)傳輸?shù)耐轿缓桶l(fā)送握手信號(hào).其中,BIT_EP2_TRAN_TOG 是數(shù)據(jù)發(fā)送傳輸同步位,而 M_SET_EP2_TRAN_NAK( )是發(fā)送相應(yīng)的握手信號(hào),總的來說是為了保持?jǐn)?shù)據(jù)正確傳輸和數(shù)據(jù)的同步.