示波器全內存解碼的奧秘
我們知道,協(xié)議解碼是協(xié)議分析中一個很重要的功能,它的實用程度取決于解碼的準確性、解碼范圍和解碼速度,其中解碼范圍和解碼速度是一對矛盾,二者很難兼得。在以往的解碼方案中,我們將解碼范圍限制在一定寬度的數(shù)據(jù)內,以此保證解碼結果能夠快速的響應給用戶。但在使用過程中發(fā)現(xiàn),我們往往不滿足于這個范圍,但我們不能無限制的擴大解碼的范圍(隨意擴大會影響解碼速度)。我們不能放棄已有的快速解碼的用戶體驗,新特性就是為了解決這個魚和熊掌的問題產(chǎn)生的,從使用上它包含3個方面的改變。
本文引用地址:http://cafeforensic.com/article/280625.htm一、放大波形后能正常解碼
在新的方案中,我們不再需要考慮縮放或水平移動波形導致的解碼范圍的影響,也不需要考慮“屏幕外還有多少數(shù)據(jù)”。我們解碼的范圍會隨著波形的放大而智能的改變,不再是簡單的限制解碼范圍,現(xiàn)在我們能將波形放大到很細微的地方,依然能正常解碼。
圖1 解碼細節(jié)放大
如圖1所示,正在解碼CAN-FD的波形,在暫停模式下我們將波形從1ms/div放大到2us/div,ESI、插入位以及DLC和DATA的值都能清晰準確的觀察到。我們能看到解碼細節(jié)了。
二、解碼會以全內存的數(shù)據(jù)為依據(jù)進行
ZDS示波器的一大特點就是深存儲,而固定的解碼范圍會制約這一特點的應用,導致深存儲時大部分的數(shù)據(jù)都不能用于解碼。在新特性中,這情況將改變,我們可以把存儲深度設置成很大,系統(tǒng)會根據(jù)協(xié)議波特率等特點動態(tài)的調整解碼范圍,最理想的情況我們會將解碼范圍拓展到整個內存,并且這種特性是在Run和Stop模式中都可以使用,不再局限于Stop!
圖2 全內存解碼
我們將存儲深度設置為28M,此時整個內存中數(shù)據(jù)的時間跨度為-14ms ~ 14ms。從圖2事件表我們看到,第一幀CAN-FD的位置在-12.479ms,也就是在內存數(shù)據(jù)的開端,已經(jīng)達到了全內存解碼。
當然這種功能強大的全內存解碼也是受一定條件約束的,我們在下面的內容中會提到。
三、系統(tǒng)會判斷最佳解碼情況
新特性是基于保持原來解碼速度,盡量拓寬解碼范圍的思想設計出來的。這意味著,對于大數(shù)據(jù)量的解碼,是基于一定比例的樣本點抽取后進行的(用于解碼的數(shù)據(jù)量越少,解碼越快)。系統(tǒng)會根據(jù)抽點的情況,與協(xié)議的特點(波特率等)比較,判斷解碼是否存在風險(解碼錯誤或不能解碼的風險)。例如在一些情況中,會出現(xiàn)抽點的間隔很大,使得實際用于解碼的采樣率不足,這時系統(tǒng)會給出提示。
圖3 非最佳解碼提示
如圖3所示,提示出現(xiàn)在屏幕左上方,從事件表可以看到,波形中間出現(xiàn)了部分錯誤解碼的幀,這種錯誤是解碼采樣率不足導致的。
需要注意的時,出現(xiàn)這種提示時,解碼不一定就會出錯,它是一種警告。而當我們真的不能正常解碼時,只需要按照系統(tǒng)提示的內容進行操作(如圖應該減少時基),就能回歸最佳解碼狀態(tài)。這也是第二點中描述的全內存解碼約束。
我們是怎么做到既抱著魚又把熊掌吃到的?
保持解碼使用的數(shù)據(jù)量不變,就可以保證解碼的速度不會發(fā)生很大的變化,在此基礎上,我們將數(shù)據(jù)點更均勻和合理的分布到內存中,就能拓寬解碼范圍。在新的設計中,我們會智能的根據(jù)協(xié)議波特率等特點對內存數(shù)據(jù)進行抽取,動態(tài)的調整抽樣間隔,達到在數(shù)據(jù)量不變的情況盡可能覆蓋更寬廣解碼范圍的目的,就實現(xiàn)了魚和熊掌兼得的新特性。
評論