<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 位填充導致USB數據傳輸紊亂的一種解決方案

位填充導致USB數據傳輸紊亂的一種解決方案

作者: 時(shí)間:2012-11-06 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:(USB)中要對數據進(jìn)行非歸零翻轉(NRZI)編解碼、添加/去除和串并/并串轉換。添加/去除使每字節所需的時(shí)間發(fā)生變化,再加上收發(fā)器與協(xié)議層的時(shí)鐘頻率不同,從而可能導致。以USB 2.0設備控制器中的收發(fā)器為例,在收發(fā)器與協(xié)議層間添加(FIFO)作為緩存區可以解決這一問(wèn)題。EDA軟件仿真驗證了該方法的可行性。
關(guān)鍵詞:;;;;

在USB數據傳輸中,為了保證數據的可靠性,需要對所傳輸的數據進(jìn)行NRZI編解碼、添加/去除位填充和串并/并串轉換。NRZI編碼可以保證有足夠的跳變沿在接收端進(jìn)行時(shí)鐘恢復;位填充是為了保證信號具有足夠的變化量;串并轉換可以降低后端數據處理模塊的工作頻率。
以USB 2.0設備控制器為例。在向主機發(fā)送數據時(shí),其收發(fā)器模塊先要將協(xié)議層傳來(lái)的8位(或16位)并行數據轉換成串行數據,然后添加位填充(每6個(gè)連續的1后要加入一個(gè)0),最后進(jìn)行NRZI編碼。反之,在接收主機發(fā)來(lái)的數據時(shí),收發(fā)器模塊要先對數據進(jìn)行NRZI解碼,再去除位填充,最后轉換成8位(或16位)并行數據傳給協(xié)議層。
USB 2.0設備控制器的收發(fā)器和后端協(xié)議層的工作時(shí)鐘頻率不同。對于具有高速(480 Mb/s)和全速(12 Mb/s)兩種傳輸速度的USB 2.0設備控制器來(lái)說(shuō),收發(fā)器在高速、全速模式下的工作時(shí)鐘頻率分別為480 MHz和12 MHz;而協(xié)議層在高速、全速模式下的工作時(shí)鐘頻率統一為60 MHz(8位并行數據時(shí),對于16位并行數據為30 MHz)。
由于添加/去除位填充導致了每字節數據傳輸所需的時(shí)間的增加或減少,再加上收發(fā)器和協(xié)議層工作時(shí)鐘頻率的差別,可能會(huì )導致數據的紊亂。

1 的原因分析
假設USB 2.0設備控制器的收發(fā)器工作時(shí)鐘為clk,協(xié)議層使用8位并行數據,工作時(shí)鐘為60 MHz的phy_clk,分析數據紊亂產(chǎn)生的原因。
1.1 高速接收模式
USB2.0協(xié)議中定義了信號RxValid表示接收數據有效,在phy_clk上升沿,若RxValid=1,協(xié)議層可以從收發(fā)器提取8位并行數據使用。Rx Valid信號變化后至少需要保持1個(gè)phy_clk周期,才能保證其被協(xié)議層的phy_clk時(shí)鐘采樣。
圖1中Data_nrzi為已經(jīng)過(guò)NRZI解碼的串行輸入數據;drop_bit為去位填充提示,當drop_bit=1時(shí)說(shuō)明出現了連續6個(gè)數據1,其后的數據0為位填充位應該除去,不放入hold_reg中;Data_nrzi經(jīng)過(guò)去位填充后放入hold_reg中,hold_reg收集了8個(gè)Data_nrzi數據后,將這8個(gè)數據以并行數據DataIn的形式傳給協(xié)議層。

本文引用地址:http://dyxdggzs.com/article/159707.htm

a.JPG


從圖1中可以看出,在處理第二組8位數據時(shí),由于其中有一個(gè)位填充需要去除,故處理這組數據用了9個(gè)clk周期,導致第一組8位并行數據在DataIn中的持續時(shí)間為9個(gè)clk周期,比正常多了1個(gè)clk周期。這樣有兩個(gè)缺點(diǎn):
1)1個(gè)phy_clk周期為8個(gè)cIk周期,第1組8位數據持續9個(gè)clk周期有可能會(huì )被協(xié)議層采樣兩次。如圖1中所示,第1組數跨越了兩個(gè)phy_clk的上升沿,被采樣兩次。雖然出現這種情況的概率較小,但并不是不存在,且隨著(zhù)位填充數最的增多,這種多次采樣的可能性會(huì )增大。
2)每當位填充的個(gè)數達到8個(gè),輸出的DataIn被協(xié)議層采樣到的并行數據總量會(huì )比正確的情況多1個(gè),從而導致數據接收錯誤。
為了避免上述錯誤,通常的做法是每當去除了8個(gè)位填充數據時(shí),就令RxValid=0并持續1個(gè)phy_clk周期,使協(xié)議層暫停采樣一次,從而避免第2)類(lèi)錯誤的發(fā)生。但這種做法不能完全避免第1)類(lèi)錯誤的發(fā)生。
1.2 高速發(fā)送模式
USB 2.0協(xié)議中同樣定義了信號TxReady表示收發(fā)器準備好發(fā)送數據,在phy_clk上升沿,若TxReady=1,協(xié)議層便傳輸過(guò)來(lái)1個(gè)8位并行數據讓收發(fā)器發(fā)送出去。同理TxReady信號變化后也至少要保持1個(gè)phy_clk周期。
圖2中,TxReady由0變?yōu)?代表收發(fā)器已將包的同步域發(fā)送完畢,開(kāi)始發(fā)送早已從協(xié)議層傳來(lái)的第1組8位并行數據:DataOut為協(xié)議層傳來(lái)的8位并行數據;在clk上升沿,將DataOut數據讀取到暫存器hold_reg中;sd_raw為并串轉換后的串行數據;stuff為添加位填充信號,當連續出現6個(gè)1時(shí),stuff=1在串行數據中添加1位位填充數據0;sd_bs為添加位填充后的數據,對sd_bs進(jìn)行NRZI編碼后即可發(fā)送給主機。

b.JPG


從圖2中可以看出,高速發(fā)送模式出現了兩類(lèi)錯誤:
1)TxReady由0變?yōu)?后開(kāi)始發(fā)送第1組8位并行數據,而當phy_clk上升沿來(lái)臨后DataOut和hold_reg先后變?yōu)榱说?組8位并行數據,此時(shí)第1組數據并不一定恰好剛剛發(fā)完,于是會(huì )造成數據缺失或重復發(fā)送,同時(shí)使后面的數據發(fā)送混亂。圖2中Txready變?yōu)?后sd_raw發(fā)送的第1個(gè)數據1為同步域的最后一位,接著(zhù)發(fā)送的數據00為第1組數據中的2位,其余6位還未發(fā)送hold_reg中的數據已變成了第2組并行數據。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>