調(diào)試嵌入式系統(tǒng)設(shè)計(jì)中的串行總線 應(yīng)用指南
聲明:您必須遵守我們的協(xié)議,如果您下載了該資源行為將被視為對《電天下賬號管理規(guī)范》全部內(nèi)容的認(rèn)可,本網(wǎng)站資源來自原創(chuàng),僅供用于學(xué)習(xí)和交流,請勿用于商業(yè)用途。如有侵權(quán)、不妥之處,請舉報(bào)本資源,我們將及時審核處理!
泰克 調(diào)試嵌入式系統(tǒng)設(shè)計(jì)中的串行總線 應(yīng)用指南.
文本預(yù)覽
應(yīng)用指南
調(diào)試嵌入式系統(tǒng)設(shè)計(jì)中的
串行總線
引言
今天,嵌入式系統(tǒng)幾乎遍布在人類社會的每個角落。嵌入式系統(tǒng)可以簡單定義為屬于大型系統(tǒng)或機(jī)
器一部分的一種專用計(jì)算機(jī)系統(tǒng),其目的是為該系統(tǒng)或機(jī)器提供監(jiān)測和控制服務(wù)。典型的嵌入式系
統(tǒng)在開機(jī)時會開始運(yùn)行某些專用應(yīng)用,直到關(guān)閉時才會停止。當(dāng)前設(shè)計(jì)和生產(chǎn)的幾乎每個電子設(shè)備
都是嵌入式系統(tǒng)。嵌入式系統(tǒng)實(shí)例包括:
www.tektronix.com/oscilloscopes 1調(diào)試嵌入式系統(tǒng)設(shè)計(jì)中的串行總線
應(yīng)用指南
■ 電子鬧表
■ 自動柜員機(jī)
■ 移動電話
■ 計(jì)算機(jī)打印機(jī)
■ 防抱死剎車控制器
■ 微波爐
■ 導(dǎo)彈使用的慣性引導(dǎo)系統(tǒng)
■ DVD播放機(jī)
■ 個人數(shù)字助理(PDA)
■ 工業(yè)自動化和監(jiān)測使用的
可編程邏輯控制器(PLC)
■ 便攜式音樂播放機(jī)
■ 可能還包括烤面包機(jī)?
嵌入式系統(tǒng)可能包含許多不
圖1. 邏輯分析儀采集的微控制器的時鐘、地址總線、數(shù)據(jù)總線和控制線。
同類型的設(shè)備,包括微處理
器、微控制器、DSP、RAM、
EPROM、FPGA、模數(shù)轉(zhuǎn)換器、數(shù)模轉(zhuǎn)換器和I/O。這 了嵌入式系統(tǒng)設(shè)計(jì)人員的常用挑戰(zhàn),及怎樣使用MSO/
些設(shè)備在傳統(tǒng)上一直使用寬并行總線相互通信及與外部 DPO系列- MSO/DPO4000、MSO/DPO3000和MSO/
世界通信。然而今天,嵌入式系統(tǒng)設(shè)計(jì)中使用的越來越 DPO2000系列示波器中提供的功能迎接這些挑戰(zhàn)。
多的構(gòu)件將用串行總線代替寬并行總線,原因如下:
并行與串行比較
■ 減少了要布線的信號數(shù)量,降低了要求的電路板空間
在并行結(jié)構(gòu)中,總線的每個組件都有自己的信號路徑。
■ 降低了成本 可能有16條地址線、16條數(shù)據(jù)線、一條時鐘線和各種
■ 降低了功率要求 其它控制信號。通過總線發(fā)送的地址或數(shù)據(jù)值會通過所
■ 減少了封裝上的針腳數(shù)量 有并行線路同時傳送。因此,使用大多數(shù)示波器和邏輯
分析儀中的狀態(tài)觸發(fā)或碼型觸發(fā)功能觸發(fā)感興趣的事件
■ 嵌入式時鐘
相對簡便。同時,可以簡便地一目了然地了解在示波器
■ 差分信令,改善抗噪聲能力
或邏輯分析儀顯示屏上捕獲的數(shù)據(jù)。例如,在圖1中,
■ 采用標(biāo)準(zhǔn)串行接口的器件大量供應(yīng) 我們使用邏輯分析儀從微控制器中采集時鐘線、地址
線、數(shù)據(jù)線和控制線。通過使用狀態(tài)觸發(fā),我們隔離了
盡管串行總線提供了大量的優(yōu)勢,但它們也給嵌入式系
我們查找的總線。為“解碼”總線上發(fā)生的情況,我們
統(tǒng)設(shè)計(jì)人員帶來了某些重大挑戰(zhàn),因?yàn)樗源蟹绞絺?br/>需要查看每條地址線、數(shù)據(jù)線和控制線的邏輯狀態(tài)。
送信息,而不是以并行方式傳送信息。本應(yīng)用指南討論
在串行總線中,所有這些信息都必須以串行方式在相同
的少數(shù)導(dǎo)線(有時是一條)上發(fā)送。這意味著一個信號可
2 www.tektronix.com/oscilloscopes調(diào)試嵌入式系統(tǒng)設(shè)計(jì)中的串行總線
應(yīng)用指南
能包括地址信息、控制信息、
數(shù)據(jù)信息和時鐘信息。例如,
看一下圖2中所示的控制器區(qū)
域網(wǎng)(CAN)串行信號。
這條消息包含幀頭、標(biāo)識符
(地址)、數(shù)據(jù)長度代碼、數(shù)據(jù)、
CRC和幀尾及少量其它控制
位。時鐘嵌入在數(shù)據(jù)中,使用
填充位保證接收設(shè)備擁有數(shù)
量充足的邊沿鎖定時鐘,這使
情況變得進(jìn)一步復(fù)雜化。即使
是經(jīng)過訓(xùn)練的眼睛,也很難迅
速了解這一消息的內(nèi)容?,F(xiàn)在
想象一下這是一條有問題的
消息,一天只發(fā)生一次,您需
要觸發(fā)采集這條消息。傳統(tǒng)示
波器和邏輯分析儀不能有效 圖2. CAN總線中采集的一條消息。
處理這類信號。
即使是比較簡單的串行標(biāo)準(zhǔn),
如I2C,與并行協(xié)議相比,觀
察總線上傳輸?shù)膬?nèi)容仍要明
顯困難得多。
I2C采用分開的時鐘線和數(shù)據(jù)
線,因此至少在本例中,您可
以使用時鐘作為參考點(diǎn)。但
是,您仍需要找到消息開頭
(數(shù)據(jù)變低,時鐘為高),手動
檢查和記下每個時鐘上升沿
上的數(shù)據(jù)值,然后把各個位整
理成消息結(jié)構(gòu)。在長采集中解
碼一條消息就會需要幾分鐘
時間,而您不知道這是不是實(shí)
際要找的消息。
圖3. I2C總線中采集的一條消息。
www.tektronix.com/oscilloscopes 3調(diào)試嵌入式系統(tǒng)設(shè)計(jì)中的串行總線
應(yīng)用指南
如果不是,您需要在下一條消
息上重新開始這一麻煩的、容
開始 地址 R/W 確認(rèn) 數(shù)據(jù)0 確認(rèn)0 數(shù)據(jù)1 確認(rèn)1 ... 數(shù)據(jù)N 確認(rèn)N 結(jié)束
易出錯的過程。最好只觸發(fā)查
7或10位 1位 1位 8位 1位 8位 1位 1位 8位 1位
找的消息內(nèi)容,但多年來示波
器的邏輯分析儀上使用的狀態(tài) 圖4. I2C消息結(jié)構(gòu)。
觸發(fā)和碼型觸發(fā)并不能發(fā)揮作
用。它們是為了考察多條通道中同時發(fā)生的問題設(shè)計(jì) 工作方式
的。為處理串行總線,其觸發(fā)引擎深度必需有幾千種狀 I2C的物理兩線接口由雙向串行時鐘(SCL)和數(shù)據(jù)(SDA)
態(tài)(每個bit位一個狀態(tài))。即使存在這種觸發(fā)功能,但為 線組成。I2C支持總線上多個主從設(shè)備,但一次只能激
調(diào)試嵌入式系統(tǒng)設(shè)計(jì)中的
串行總線
引言
今天,嵌入式系統(tǒng)幾乎遍布在人類社會的每個角落。嵌入式系統(tǒng)可以簡單定義為屬于大型系統(tǒng)或機(jī)
器一部分的一種專用計(jì)算機(jī)系統(tǒng),其目的是為該系統(tǒng)或機(jī)器提供監(jiān)測和控制服務(wù)。典型的嵌入式系
統(tǒng)在開機(jī)時會開始運(yùn)行某些專用應(yīng)用,直到關(guān)閉時才會停止。當(dāng)前設(shè)計(jì)和生產(chǎn)的幾乎每個電子設(shè)備
都是嵌入式系統(tǒng)。嵌入式系統(tǒng)實(shí)例包括:
www.tektronix.com/oscilloscopes 1調(diào)試嵌入式系統(tǒng)設(shè)計(jì)中的串行總線
應(yīng)用指南
■ 電子鬧表
■ 自動柜員機(jī)
■ 移動電話
■ 計(jì)算機(jī)打印機(jī)
■ 防抱死剎車控制器
■ 微波爐
■ 導(dǎo)彈使用的慣性引導(dǎo)系統(tǒng)
■ DVD播放機(jī)
■ 個人數(shù)字助理(PDA)
■ 工業(yè)自動化和監(jiān)測使用的
可編程邏輯控制器(PLC)
■ 便攜式音樂播放機(jī)
■ 可能還包括烤面包機(jī)?
嵌入式系統(tǒng)可能包含許多不
圖1. 邏輯分析儀采集的微控制器的時鐘、地址總線、數(shù)據(jù)總線和控制線。
同類型的設(shè)備,包括微處理
器、微控制器、DSP、RAM、
EPROM、FPGA、模數(shù)轉(zhuǎn)換器、數(shù)模轉(zhuǎn)換器和I/O。這 了嵌入式系統(tǒng)設(shè)計(jì)人員的常用挑戰(zhàn),及怎樣使用MSO/
些設(shè)備在傳統(tǒng)上一直使用寬并行總線相互通信及與外部 DPO系列- MSO/DPO4000、MSO/DPO3000和MSO/
世界通信。然而今天,嵌入式系統(tǒng)設(shè)計(jì)中使用的越來越 DPO2000系列示波器中提供的功能迎接這些挑戰(zhàn)。
多的構(gòu)件將用串行總線代替寬并行總線,原因如下:
并行與串行比較
■ 減少了要布線的信號數(shù)量,降低了要求的電路板空間
在并行結(jié)構(gòu)中,總線的每個組件都有自己的信號路徑。
■ 降低了成本 可能有16條地址線、16條數(shù)據(jù)線、一條時鐘線和各種
■ 降低了功率要求 其它控制信號。通過總線發(fā)送的地址或數(shù)據(jù)值會通過所
■ 減少了封裝上的針腳數(shù)量 有并行線路同時傳送。因此,使用大多數(shù)示波器和邏輯
分析儀中的狀態(tài)觸發(fā)或碼型觸發(fā)功能觸發(fā)感興趣的事件
■ 嵌入式時鐘
相對簡便。同時,可以簡便地一目了然地了解在示波器
■ 差分信令,改善抗噪聲能力
或邏輯分析儀顯示屏上捕獲的數(shù)據(jù)。例如,在圖1中,
■ 采用標(biāo)準(zhǔn)串行接口的器件大量供應(yīng) 我們使用邏輯分析儀從微控制器中采集時鐘線、地址
線、數(shù)據(jù)線和控制線。通過使用狀態(tài)觸發(fā),我們隔離了
盡管串行總線提供了大量的優(yōu)勢,但它們也給嵌入式系
我們查找的總線。為“解碼”總線上發(fā)生的情況,我們
統(tǒng)設(shè)計(jì)人員帶來了某些重大挑戰(zhàn),因?yàn)樗源蟹绞絺?br/>需要查看每條地址線、數(shù)據(jù)線和控制線的邏輯狀態(tài)。
送信息,而不是以并行方式傳送信息。本應(yīng)用指南討論
在串行總線中,所有這些信息都必須以串行方式在相同
的少數(shù)導(dǎo)線(有時是一條)上發(fā)送。這意味著一個信號可
2 www.tektronix.com/oscilloscopes調(diào)試嵌入式系統(tǒng)設(shè)計(jì)中的串行總線
應(yīng)用指南
能包括地址信息、控制信息、
數(shù)據(jù)信息和時鐘信息。例如,
看一下圖2中所示的控制器區(qū)
域網(wǎng)(CAN)串行信號。
這條消息包含幀頭、標(biāo)識符
(地址)、數(shù)據(jù)長度代碼、數(shù)據(jù)、
CRC和幀尾及少量其它控制
位。時鐘嵌入在數(shù)據(jù)中,使用
填充位保證接收設(shè)備擁有數(shù)
量充足的邊沿鎖定時鐘,這使
情況變得進(jìn)一步復(fù)雜化。即使
是經(jīng)過訓(xùn)練的眼睛,也很難迅
速了解這一消息的內(nèi)容?,F(xiàn)在
想象一下這是一條有問題的
消息,一天只發(fā)生一次,您需
要觸發(fā)采集這條消息。傳統(tǒng)示
波器和邏輯分析儀不能有效 圖2. CAN總線中采集的一條消息。
處理這類信號。
即使是比較簡單的串行標(biāo)準(zhǔn),
如I2C,與并行協(xié)議相比,觀
察總線上傳輸?shù)膬?nèi)容仍要明
顯困難得多。
I2C采用分開的時鐘線和數(shù)據(jù)
線,因此至少在本例中,您可
以使用時鐘作為參考點(diǎn)。但
是,您仍需要找到消息開頭
(數(shù)據(jù)變低,時鐘為高),手動
檢查和記下每個時鐘上升沿
上的數(shù)據(jù)值,然后把各個位整
理成消息結(jié)構(gòu)。在長采集中解
碼一條消息就會需要幾分鐘
時間,而您不知道這是不是實(shí)
際要找的消息。
圖3. I2C總線中采集的一條消息。
www.tektronix.com/oscilloscopes 3調(diào)試嵌入式系統(tǒng)設(shè)計(jì)中的串行總線
應(yīng)用指南
如果不是,您需要在下一條消
息上重新開始這一麻煩的、容
開始 地址 R/W 確認(rèn) 數(shù)據(jù)0 確認(rèn)0 數(shù)據(jù)1 確認(rèn)1 ... 數(shù)據(jù)N 確認(rèn)N 結(jié)束
易出錯的過程。最好只觸發(fā)查
7或10位 1位 1位 8位 1位 8位 1位 1位 8位 1位
找的消息內(nèi)容,但多年來示波
器的邏輯分析儀上使用的狀態(tài) 圖4. I2C消息結(jié)構(gòu)。
觸發(fā)和碼型觸發(fā)并不能發(fā)揮作
用。它們是為了考察多條通道中同時發(fā)生的問題設(shè)計(jì) 工作方式
的。為處理串行總線,其觸發(fā)引擎深度必需有幾千種狀 I2C的物理兩線接口由雙向串行時鐘(SCL)和數(shù)據(jù)(SDA)
態(tài)(每個bit位一個狀態(tài))。即使存在這種觸發(fā)功能,但為 線組成。I2C支持總線上多個主從設(shè)備,但一次只能激
AIGC
"本應(yīng)用指南深入探討了在嵌入式系統(tǒng)設(shè)計(jì)過程中對串行總線進(jìn)行調(diào)試的關(guān)鍵步驟和技術(shù)。內(nèi)容涵蓋了串行通信協(xié)議(如UART、SPI、I2C等)的基礎(chǔ)理論、實(shí)際應(yīng)用實(shí)例以及常見問題排查方法。它詳細(xì)闡述了如何設(shè)置和配置各個類型的串行接口,包括初始化過程、數(shù)據(jù)發(fā)送與接收的正確實(shí)現(xiàn)、波特率調(diào)整、奇偶校驗(yàn)、錯誤檢測與糾正、同步與異步通信模式的區(qū)別與選擇等。此外,還包括針對硬件故障、驅(qū)動程序問題、軟件邏輯錯誤等方面的調(diào)試策略和工具使用技巧。無論對于初學(xué)者還是經(jīng)驗(yàn)豐富的工程師,此指南都將為優(yōu)化嵌入式系統(tǒng)的串行通信性能提供實(shí)用且全面的指導(dǎo)。"
相關(guān)資源推薦