|
一、探究背景
從事電子行業的朋友,特別是從事嵌入式工作的朋友,都知道邏輯分析儀這個工具,用它來抓協議是非常方便可靠的。基本上所有的標準總線協議, 邏輯分析儀都能分析出來。
但是,對于非標準的協議,邏輯分析儀就無能為力了。因為邏輯分析儀 所分析的協議是標準的、已知的、預編程分析的。所以,有必要對非標準的 協議進行處理。
接下來,我會在本文中討論和制作一種非標準單總線協議輔助工具。
二、單總線的特點
單總線,就是主機和從機在一根線上來回傳輸數據。由于只有一根線, 所以數據和時鐘都包含在內,它的傳輸時“半雙工”的,即可以主機發從機 收或者從機發主機收。有兩種方向但不能同時進行,所以稱為“半雙工”。
還有就是,總線空閑時,一定是高電平,一般需要外接上拉電阻把總線拉高。
主機和從機的通信端口一般都是配置為輸入懸浮,即端口本身不接上拉電阻 和下拉電阻,端口本身的電平是不確定的,所以需要外接一個上拉電阻將總 線拉高。在通信時,發送方端口被配置為輸出模式來拉低電平,端口被配置 為輸入懸浮來釋放總線;接收方的端口配置為輸入懸浮、下降沿中斷來檢測 和獲取數據。值得注意的是,單總線對時序比較敏感,如果傳輸的數據時序 稍微有偏差,通信往往就失敗。DS18B20溫度傳感器就是標準單總線協議通 信的,這個比較典型,網上也有很多例程和講解,單總線入門可以從DS18B20 開始。
三、非標準單總線分析的難點
雖然是非標準的單總線,但其硬件方面還是跟標準的單總線一樣。不同的 地方就是是傳輸協議了,有許多產品采用非標準單總線協議來識別自家產品,比 PSP 如日本的數碼相機電池、 掌機電池、部分手機電池等。它們采用非標準協議 主要是防止別人生產兼容產品,而且價格也是比較高的,當然對消費者是不利的。
以相機和電池通信為例。把相機和電池的通信端子和它們的負極用線引出 來,都接到邏輯分析儀上,我們會看到一大堆高低電平通信,而且還不是標準的 單總線協議,根本無從下手。
那么問題來了:如果要分析相機與電池的非標準單總線協議,如何知道總 線到底是被相機拉低了還是被電池拉低了?
不解決這個問題,后面的協議分析就無法進行下去了!!!
四、解決思路
1、相機和電池通信的等效模
查看附件圖片
2、設計模型
查看附件圖片
3、優化后模型
查看附件圖片
4、實際電路設計
查看附件圖片
5、實際測試
查看附件圖片
五、總結
本文從最簡單的模型分析判斷總線被哪方拉低的可能性,然后逐步完成電路
的設計,最后搭建電路并且經過了測試。對于非標準的協議輔助分析,本工具能派上用場的。
|
|