調試嵌入式系統設計中的低速串行總線
引言
今天,嵌入式系統幾乎遍布在人類社會的每個角落。嵌入式系統可以簡單定義為屬于大型系統或機器一部分的一種專用計算機系統,其目的是為該系統或機器提供監測和控制服務。典型的嵌入式系統在開機時會開始運行某些專用應用,直到關閉時才會停止。當前設計和生產的幾乎每個電子設備都是嵌入式系統。嵌入式系統實例包括:
– 電子鬧表
- 自動柜員機
– 移動電話蜂窩手機
– 計算機打印機
– 防抱死剎車控制器
– 微波爐
– 導彈使用的慣性引導系統
– DVD播放機
– 個人數字助理(PDA)
– 工業自動化和監測使用的可編程程控邏輯控制器(PLC)
– 便攜式音樂播放機
– 可能還包括烤面包機…
嵌入式系統可能包含許多不同類型的設備,包括微處理器、微控制器、DSP、RAM、EPROM、FPGA、模數轉換器、數模轉換器和I/O。這些設備在傳統上一直使用寬并行總線相互通信及與外部世界通信。然而今天,嵌入式系統設計中使用的越來越多的構件將用串行總線代替寬并行總線,原因如下:
– 減少了要布線路由的信號數量,降低了要求的電路板空間
– 降低了成本
– 降低了功率要求
– 減少了封裝上的針腳數量
– 嵌入式時鐘
– 差分信令,改善抗噪聲能力
– 采用標準串行接口的器件大量供應
盡管串行總線提供了大量的優勢,但它們也給嵌入式系統設計人員帶來了某些重大挑戰,因為它以串行方式傳送信息,而不是以并行方式傳送信息。本應用指南討論了嵌入式系統設計人員的常用挑戰,及怎樣使用泰克新推出的DPO4000系列示波器中提供的功能迎接這些挑戰。
并行與串行比較
在并行結構中,總線的每個組件都有自己的信號路徑。可能有16條地址線、16條數據線、一條時鐘線和各種其它控制信號。通過總線發送的地址或數據值會通過所有并行線路同時傳送。因此,使用大多數示波器和邏輯分析儀中的狀態觸發或碼型觸發功能觸發感興趣的事件相對簡便。同時,可以簡便地一目了然地了解在示波器或邏輯分析儀顯示屏上捕獲的數據。例如,在圖1中,我們使用邏輯分析儀從微控制器中采集時鐘線、地址線、數據線和控制線。通過使用狀態觸發,我們隔離了我們查找的總線。為“解碼”總線上發生的情況,我們需要查看每條地址線、數據線和控制線的邏輯狀態。
在串行總線中,所有這些信息都必須以串行方式在相同的少數導線(有時是一條)上發送。這意味著一個信號可能包括地址信息、控制信息、數據信息和時鐘信息。例如,看一下圖2中所示的控制器區域網(CAN)串行信號。
這條消息包含幀頭、標識符(地址)、數據長度代碼、數據、CRC和幀尾及少量其它控制位。時鐘嵌入在數據中,使用位填充位要保證接收設備擁有數量充足的邊沿鎖定時鐘,這使情況變得進一步復雜化。即使是經過訓練的眼睛序列眼圖,也很難迅速了解這一消息的內容?,F在想象一下這是一條有問題的消息,一天只發生一次,您需要觸發采集這條消息。傳統示波器和邏輯分析儀不能有效處理這類信號。
即使是比較簡單的串行標準,如I2C,與并行協議相比,觀察總線上傳輸的內容仍要明顯困難得多。I2C 采用分開的時鐘線和數據線,因此至少在本例中,您可以使用時鐘作為參考點。但是,您仍需要找到消息開頭(數據變低,時鐘為高),手動檢查和記下每個時鐘上升沿上的數據值,然后把各bit位整理成消息結構。在長采集中解碼一條消息就會需要幾分鐘時間,而您不知道這是不是實際要找的消息。如果不是,您需要在下一條消息上重新開始這一麻煩的、容易出錯的過程。最好只觸發查找的消息內容,但多年來示波器的邏輯分析儀上使用的狀態觸發和碼型觸發并不能發揮作用。它們是為了考察多條通道中同時發生的問題設計的。為處理串行總線,其觸發引擎深度必需有幾千種狀態(每個bit位一個狀態)。即使存在這種觸發功能,但為所有這些bit位逐個狀態編程也不是件好玩的事。必須找到一種更好的方式!
DPO4000系列提供了一種更好的方式。下面幾節重點介紹了可以怎樣在嵌入式系統設計最常用的低速串行標準中采用DPO4000系列。
I2C
背景知識
I2C或“I squared C”是指集成電路間總線。它最初是飛利浦公司在20世紀80年代研制的,為把控制器連接到電視機上的外設芯片提供了一種低成本方式,但之后其已經發展成為嵌入式系統設備之間通信的一項全球標準。它采用簡單的兩線設計,廣泛用于領先芯片制造商生產的各種芯片中,如I/O、模數轉換器、數模轉換器、溫度傳感器、微控制器和微處理器,芯片制造商則包括:Analog Devices, Atmel, Infineon, Cyprus, 英特爾, Maxim, 飛利浦, Silicon Laboratories, ST Microelectronics, 德州儀器, Xicor等等。
評論