新聞中心

EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 面向嵌入式系統(tǒng)的I2C總線設(shè)計和測試

面向嵌入式系統(tǒng)的I2C總線設(shè)計和測試

——
作者:Cypress半導(dǎo)體公司 Jon Pearson 時間:2007-01-26 來源:《世界電子元器件》 收藏

I2C是一種中低數(shù)據(jù)速率主/從通信總線。物理層是一種簡單的信號交換協(xié)議,該協(xié)議基于總線設(shè)備以及用于驅(qū)動或釋放總線線路設(shè)備之上的集電極開路輸出。簡單的硬件設(shè)計和較低的數(shù)據(jù)速率使得所有的工程師都能利用I2C作為一種通信解決方案。由于大多數(shù)微控制器供應(yīng)商在其大部分器件上均提供了I2C主控器和從動器功能,因此嵌入式產(chǎn)品設(shè)計師在利用I2C時不會遇到任何障礙。

本文引用地址:http://butianyuan.cn/article/21233.htm

測試策略源于設(shè)計策略

平穩(wěn)順利的設(shè)計需要采取有計劃的校驗策略。當(dāng)采用主/從通信系統(tǒng)時,這兩部分均需進(jìn)行校驗。把校驗推遲到主控器和從動器通信操作完成之后進(jìn)行是錯誤的策略。下文所述是一種旨在盡可能獨立地對主控器和從動器進(jìn)行有效測試的策略。 在實現(xiàn)成功設(shè)計的規(guī)則和指導(dǎo)方針中,以下四點支持有效校驗:

1)明確定義的接口

2)主控器初始化所有的轉(zhuǎn)換,并支持從動器的“緊急”調(diào)用

3)使從動器的通信協(xié)議與主功能保持獨立

4)從動器始終保持?jǐn)?shù)據(jù)相關(guān)性。

雖然設(shè)計階段中的每項工作都對校驗產(chǎn)生影響,但以上事項是支持測試策略的特殊考慮。該策略可被概括為:

分別測試主控器和從動器

通過采用盡可能“真實”的環(huán)境來提高測試覆蓋率

把從動器和主控器放在一起,以實現(xiàn)早期和經(jīng)常性的集成


分別測試主控器和從動器 主控器和從動器被設(shè)計成分離、非耦合式的,而且設(shè)計過程專注于開發(fā)與設(shè)計細(xì)節(jié)沒有關(guān)聯(lián)的接口。不管是在物理結(jié)構(gòu)上還是在時間順序上,主控器和從動器的這種分離設(shè)計都支持對每個部分進(jìn)行單獨測試。但為了成功地測試主控器并獲得可以信賴的結(jié)果,在早期必須存在某種形式的從動器,即測試從動器。這種測試從動器應(yīng)該是一種設(shè)計外殼程序,用于提供商定的接口和一些額外的測試連接程序(如一個環(huán)回或一個包含稍有改動的數(shù)據(jù)的附加寄存器)。

“外殼程序(shell)”從動器使得主控器能夠?qū)崿F(xiàn)并測試其接口。適合這種“外殼程序”或測試從動器的最佳平臺是將被用于從動器開發(fā)的微控制器。事實上,如果采用相同的設(shè)備來測試最終將被用于開發(fā)末級從動器的主控器,則該“外殼程序”將提供用于從動器接口的測試平臺(從動器的第一級開發(fā))。

為了使從動器的測試側(cè)成為一個單獨項,需要比實際主控器所能提供的更多主控器功能。最后需要做的就是為實際主控器開發(fā)更多的功能,為測試提供支持。測試主控器應(yīng)是一個通用主控器,而且,采用一種基于PC并通過PC-I2C總線橋接器件與從動器進(jìn)行通信的應(yīng)用程序,將有利于大多數(shù)計劃的實施。

采用“真實”環(huán)境提高測試覆蓋率

最后是完成主控器和從動器的單獨測試,并了解它們何時被放在一起,旨在實現(xiàn)最終集成。在最終集成中,主控器和從動器均未得到“實際”測驗。如果在一個與最終結(jié)果不相似的環(huán)境中對它們進(jìn)行測試,則至少需要重復(fù)某種冗余的測試。事實上,如果測試環(huán)境與實際環(huán)境不嚴(yán)格近似,則得出的將是一個令人驚訝的糟糕結(jié)果。

為避免浪費精力,應(yīng)先了解測試和設(shè)計的相關(guān)知識。而且,測試將首先要求接口必須穩(wěn)固(形式固定)且不變。如果定義精確并得到了嚴(yán)格遵守,則接口將確定“實際”環(huán)境,并規(guī)定測試環(huán)境的設(shè)計。某些信令和定時特性只在最終集成時才呈現(xiàn)出來,不過,當(dāng)主控器和從動器測試均采用接口驅(qū)動型測試環(huán)境時,則大多數(shù)功能測試都能反映出最終結(jié)果的特征。在小概率(不受歡迎的、需要避免的、可預(yù)防的)事件(接口發(fā)生變化)中,必須立即聯(lián)系到測試環(huán)境。 提早并經(jīng)常性地集成從動器和主控器

單獨測試的主控器和從動器只在集成和同時測試時才是完整的。如上文所述,某些特性將僅在集成過程中才表現(xiàn)出來。項目截止期限之前的一周(或前夜)并不是第一次遇到這種情況。接口驅(qū)動、單獨測試型策略還支持早期集成,不是作為覆蓋率良好的單獨測試的替代方案,而是作為一種保險方案(對接口和器件特性有充分的了解)。為了支持集成,主控器和從動器均必須位于彼此都接受的完成點上,設(shè)計計劃必須包括這些集成階段。

這里給出了部分需要制定早期集成計劃的階段或測試場合,并說明需要對其加以注意的原因:

1)基本的總線電氣兼容性:雖然I2C具有簡單的特性,但這并不能排除諸如上拉電阻器阻值的選擇以及即將共用I2C總線的其他設(shè)備的總線定時特性等基本問題。重要的是在實際的總線上進(jìn)行基本的通信操作(并將所有的實際設(shè)備與總線相連)。

2)功能定時:主控器需要具有針對從動器中的響應(yīng)或定時的容限,這是一個現(xiàn)實問題,而且,很難以書面的形式來明確地給出應(yīng)具有怎樣的容限。
3)緊急情況:制定從動器對主控器的緊急調(diào)用或中斷計劃并測試它們的發(fā)生方式和響應(yīng)有可能導(dǎo)致從動器中的功能變化。


I2C主控器

I2C主控器通常是一種用于系統(tǒng)中的許多其他功能的控制裝置,并具有針對增加要求或做出變更的最低靈活性,主控器負(fù)責(zé)控制接口。在定義階段,主控器和從動器均具有輸入,但是,當(dāng)需要做出詳細(xì)決定時,主控器可以強(qiáng)制一個接口決定,因為采用一種方法對主控器來說比較簡單。使主控器的決策變得較為簡單將給從動器帶來額外的好處。主控器將(而且應(yīng)該)阻礙對接口的變更,所以從動器設(shè)計師必須及早實施自己的設(shè)計并接受接口的變更。

另外,雖然對接口的變更只應(yīng)由主控器來執(zhí)行(或在主控器同意的情況下進(jìn)行),但是,測試所產(chǎn)生的影響(尤其是對專為測試而構(gòu)筑的“環(huán)境”的影響)也是必須考慮的。設(shè)計之初專注于接口,獲得主控器、從動器和測試小組的同意,了解測試影響以及特定接口決定帶來的好處,然后不要做任何變更。讓新的功能逐步融入到從動器可實現(xiàn)方案的細(xì)節(jié)(而不是接口)。

設(shè)計一個代理從動器來支持主控器測試,如果這可以通過開發(fā)從動器來實現(xiàn),效果更好。該代理從動器可能與末級從動器并不相似,因為它的主要作用是支持接口測試和校驗;對于從動器來說,這意味著代理/測試從動器中將擁有額外的、非生產(chǎn)性功能。額外功能可能僅用于測試目的的附加寄存器和/或用于指示功能或確認(rèn)命令的特殊I/O動作。把這些功能置于具有條件編輯能力的末級從動器中或許有助于在日后發(fā)生變更的情況下支持回歸測試。

最后,應(yīng)提早并經(jīng)常性地集成主控器和實際從動器(在一個規(guī)定的開發(fā)級上),以了解不可避免的“未規(guī)定”特性。實際設(shè)備在實際I2C上彼此相遇得越早,就能越早地了解并適應(yīng)其特性。


I2C從動器

設(shè)計活動的中心是從動器,而且它將耗費設(shè)計師大部分的精力(除非能夠重復(fù)使用另一個項目的從動器設(shè)計)。測試工作的重點也放在從動器上,而且,從動器需要按照主控器及其測試的要求來實現(xiàn)。從動器很可能需要針對集成期間所了解到的信息做適應(yīng)性調(diào)整,于是,這種情況出現(xiàn)得越早、測試的“真實性”越強(qiáng),效果就越好。使主控器小組確認(rèn):集成點越多越好;它將對項目的實施提供幫助,并直接令從動器開發(fā)受益。

對大多數(shù)測試而言,一個I2C主控器測試設(shè)備(而不是實際主控器)將負(fù)責(zé)控制從動器。獲得從動器完整測試覆蓋率所需的靈活性將不太可能存在于實際主控器中,而在大部分時間里實際主控器將擔(dān)負(fù)其他任務(wù)(配置其他器件、定時要求、以最終用戶為中心的接口)。采用I2C的好處是主控器測試設(shè)備并不復(fù)雜,而且可行性好。設(shè)計小組的每一位成員都需要一個測試主控器,但它們不必是昂貴或精細(xì)復(fù)雜的主控器。

對于I2C測試主控器,根據(jù)應(yīng)用場合的不同,共有三種獲得途徑:

1)購買一款商用I2C主控器:這些主控器通常附隨一些測試軟件,售價從100美元到500美元以上不等。如果選擇了一款,則應(yīng)確定它支持腳本編程和記錄,因為在某些點上正式測試對此有所需求。

2)采用一種免費軟件應(yīng)用程序和自行安裝硬件:許多此類產(chǎn)品都可以通過互聯(lián)網(wǎng)搜索的方法找到。雖然這會使工作量略有增加,但成本較低。而且,由于用于PC的參考應(yīng)用程序是開放式源代碼,因此可對其進(jìn)行修改以滿足要求。

3)采用一個微控制器(或主控器MCU)設(shè)計主控器:明顯的好處是目前的測試主控器在特性上更加接近于實際主控器,而且已經(jīng)獲得了用于對其進(jìn)行更新和擴(kuò)展的專業(yè)知識??梢园鸦貧w測試設(shè)計在測試主控器中,而不是依靠PC應(yīng)用程序來完成。


結(jié)論

I2C總線通信是許多嵌入式設(shè)計的普遍現(xiàn)象。每種嵌入式設(shè)計都能夠從把部分功能交由從動器來完成的做法當(dāng)中獲益,這既是出于效率的考慮,也是為了讓許多項目能夠重復(fù)使用經(jīng)過精確測試的功能部件。如能遵循以下擬訂的設(shè)計和測試策略,則定制從動器項目應(yīng)能夠比較順利地繼續(xù)下去:在從動器和主控器之間進(jìn)行功能劃分、采用功能強(qiáng)大的不變接口、獨立地對主控器和從動器進(jìn)行盡可能多的測試、在設(shè)計過程中對主控器和從動器進(jìn)行早期和經(jīng)常性的集成。 采用微控制器實現(xiàn)的定制I2C從動器設(shè)備令設(shè)計師能夠重復(fù)使用一系列產(chǎn)品設(shè)計重復(fù)部分的即插即用功能。如果遵照用于設(shè)計和測試的規(guī)則和指導(dǎo)方針,則能夠成功地在產(chǎn)品中充分利用I2C,并把更多的時間集中在市場期待的下一個出色功能上,并滿足設(shè)計進(jìn)度要求。



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉