當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]采用分而治之的方法設(shè)計嵌入式系統(tǒng)

其中有一個很明顯的發(fā)展趨勢:將復(fù)雜的問題分為若干個較小、較簡單且更加明確的問題,并針對具體的任務(wù)運用合適的工具。即使是最為普通的嵌入式系統(tǒng)也適用于這一原則,它可以縮短設(shè)計周期,提高系統(tǒng)的靈活性和可維護性。關(guān)鍵在于采用一種通用的通信策略。

  主控制器和從控制器

  最基本的原理就是:用主控制器進行集中決策,再交由從控制器分別執(zhí)行。在最為復(fù)雜的系統(tǒng)中,這種方法必不可少,并能夠自動執(zhí)行。比如,手機中的主處理器用于決定屏幕的顯示內(nèi)容以及外設(shè)(如LCD顯示控制器或無線電收發(fā)器)需要完成的工作,而不會直接控制顯示的各個像素或是無線電的編/解碼。主控制器將告知顯示器需要顯示什么信息,并由顯示器來決定如何顯示;同樣,主控制器向收發(fā)器提供需要編碼的音頻信號,而收發(fā)器則提供解碼后的信號。

  在其他嵌入式系統(tǒng)中,任務(wù)的劃分或許不那么明顯,但基本思想都是相同的。如果一個中央主控制器能夠與遠(yuǎn)程從設(shè)備以及本地設(shè)備進行通信,那么整個系統(tǒng)中就可以有統(tǒng)一的控制。另外,為了使一個分布式系統(tǒng)獲得成功,需要對接口作明確的定義。

  雖然微控制器有許多標(biāo)準(zhǔn)的通信方法,但在主/從嵌入式系統(tǒng)中,最常用的是RS23 2串行接口、SPI和I2C。采用這些通信接口的從設(shè)備包括較低級的ADC、DAC、串行EEPROM、各類數(shù)字I/O,以及較高級的電壓排序和監(jiān)控器件以及閉環(huán)風(fēng)扇控制器等。

  將任務(wù)分而治之

  在目前嵌入式市場的從器件以及可被用作主控制器或定制從控制器的微控制器中,比較流行的通信方法是I2C。這主要是由于I2C價格較低,只需雙線/引腳和兩個上拉電阻器即可構(gòu)成,并且簡單易用。就分布式嵌入系統(tǒng)而言,I2C(400kHz)往往是最佳選擇。

  將任務(wù)分而治之的關(guān)鍵在于:簡單的問題要比復(fù)雜的問題更加容易解決。此外,將器件彼此分開可以減少它們之間的耦合,并提高系統(tǒng)的可靠性。如果能夠正確地分配功能、定義接口,就可以避免普遍存在的一些故障。最后,如果能夠很好地利用自己的經(jīng)驗,則在劃分任務(wù)的過程中就將能產(chǎn)生許多可重用的設(shè)計,從而使得工程師在設(shè)計下一個項目時不用從頭開始。

  實現(xiàn)任務(wù)的分而治之需要依靠一根通信總線,在有些情況下,總線會影響到某些主控制器/從控制器的特性。在本文中使用I2C作為總線,是因為支持該總線的器件比較普遍,而且測試和調(diào)試I2C所需的外部工具價格較低或比較容易創(chuàng)建。

  這種主控制器/從控制器的原理在任何嵌入式設(shè)計中都是以相同的方法來處理的。首先,確定需要集中做出那些決策,并將它們分配給主控制器;然后把具體操作分配給從控制器去執(zhí)行。關(guān)鍵在于如何進行任務(wù)的劃分。一種高效的策略是:不要讓主控制器因為任何事情而去等待某個從控制器;如果從控制器需要主控制器提供某些信息,它必須先呼叫主控制器。在有些情況下,這種方法還需要一根中斷線,以使從控制器能夠呼叫主控制器。

  采用I2C I/O擴展器件的面板控制器

  本文在一個控制設(shè)備面板的系統(tǒng)中采用了該方法,面板由按鈕、開關(guān)和LED組成。在該面板系統(tǒng)中,主控制器是負(fù)責(zé)管理該系統(tǒng)的主處理器,如嵌入式的Windows或Linux計算機;從控制器為I2C總線連接I/O擴展器。

  通過讓主處理器在上電時對I/O擴展器進行配置,按鈕/開關(guān)檢測輸入和LED狀態(tài)輸出將被傳至主處理器。任何一個具有I2C總線的處理器都可以是主控制器,它對設(shè)備進行軟件配置,并可以方便地改變按鈕和LED的配置。

  這種簡單的系統(tǒng)如圖1所示。圖中藍(lán)色的圓圈代表按鈕輸入,紅色和綠色形狀代表LED。在設(shè)計中使用了兩個小的I2C I/O擴展器,是為了實現(xiàn)智能設(shè)計的模塊化,把輸入子系統(tǒng)的變化與輸出子系統(tǒng)分隔開。當(dāng)在主控制器中進行決策時,可使某一特定功能的變化不影響到其他的功能。

面板系統(tǒng)簡圖

圖1 面板系統(tǒng)簡圖

  而且,由于所有的控制功能都由主控制器完成,因此系統(tǒng)中的硬件部分很簡單,而且易于改變。但這種簡單的方法也有缺點,當(dāng)希望增加一個用于調(diào)節(jié)LED亮度的環(huán)境光傳感器時,增加的工作負(fù)擔(dān)將全部由主控制器來承擔(dān),它要保證所有的從控制器能夠適應(yīng)設(shè)計變化,并正常工作。但其實主控器只需要知道按鈕的狀態(tài),并控制LED的接通和關(guān)斷。

  設(shè)計定制的I2C從控制器件

  在圖1的系統(tǒng)中,所有的邏輯信息都存儲在主控制器中,一切變化都要通過主控制器完成。作為替代方案,可以定義一個面板接口,并將所有的細(xì)節(jié)問題交給一個分布式的從控制器系統(tǒng)來處理,這樣可減少主處理器的負(fù)擔(dān),如圖2所示。

采用定制從器件的面板系統(tǒng)

圖2 采用定制從器件的面板系統(tǒng)

   設(shè)計定制器件時應(yīng)采用定義了穩(wěn)定協(xié)議和接口且經(jīng)過驗證的I2C從控制器實現(xiàn)方案,最常用的協(xié)議是目前大多數(shù)I2C從控制器件所采用的、基于寄存器的協(xié)議。相關(guān)概要信息如下:

  對于I2C,所有的事務(wù)處理均由主控制器啟動;

  每個從器件都具有一個I2C 7位地址(最低有效位表明事務(wù)處理是“讀”還是“寫”);


  每個從器件都具有一個內(nèi)部地址寄存器,用于存儲一個指向包含了數(shù)據(jù)、命令或狀態(tài)信息的內(nèi)部表指針;

  每個從器件均定義了其寄存器的地址及其功能,指明它們是只讀型的還是讀/寫型的;

  一個寫處理事務(wù)由一個具有I2C器件7位地址和寫操作位的字節(jié)以及一個位于其后的、用于設(shè)定內(nèi)部地址寄存器的字節(jié)組成,如果在處理事務(wù)中有更多的字節(jié),則它們將被寫入以新設(shè)定的內(nèi)部地址為起點的從器件;

  一個讀處理事務(wù)由一個具有I2C器件7位地址和讀操作位的字節(jié)以及一個位于其后的主控制器組成,該主控制器用于記錄從器件的字節(jié)數(shù),并在結(jié)束時提供停止信號。由此可見,I2C從控制器與雙端口RAM很相似,非常易于使用。

  接下來要選擇可編程器件,賽普拉斯公司推出的微控制器件PSoC擁有處理大多數(shù)I2C從控制器所需的全部功能,并提供了一種易用的工具,從而簡化了增加I2C從控制器的工作,只需“拖、放、選擇地址”即可。

  首先,定義一個按鈕輸入的從器件,創(chuàng)建一個具有3個地址引腳和7個按鈕輸入的器件,并通過配置使之接受一個靠近5V直流系統(tǒng)電源的常開開關(guān)。按鈕狀態(tài)將在一個由I2C主控制器進行存取的單字節(jié)中提供。

  其次,定義用于控制LED的從器件,創(chuàng)建一個具有2個地址引腳并能夠以10mA的電流來驅(qū)動8個LED(分為4紅4綠)的器件。定義被稱為“Command”的單字節(jié)用于執(zhí)行I2C的命令輸入,以控制LED。該字節(jié)的4個低位用于控制紅光LED,而4個高位則負(fù)責(zé)控制綠光LED。

  接下來,還可以更加細(xì)致地定義定制I2C主控制器/從控制器的接口,進一步實現(xiàn)從控制級的客戶化設(shè)計。如果想把系統(tǒng)主控制器從一個輪詢器件變?yōu)橐粋€接收報警信號的中斷器件時,則可以給按鈕輸入設(shè)備增加一根輸出線。這些改動能夠進一步地把主系統(tǒng)處理器與低級設(shè)備相隔離,并提供了在不影響主系統(tǒng)的情況下繼續(xù)改善子系統(tǒng)的更大靈活性。

  將分而治之的概念推廣到所有的通信總線

  本文所討論和說明的概念可適用于任何的總線類型,需要做的是定義滿足各種不同需要的協(xié)議,以最大限度地縮短無線、便攜系統(tǒng)中的傳輸時間,或是在苛刻的工業(yè)環(huán)境中實現(xiàn)完善的檢錯/糾錯。

  主控制器可以被稱為集線器,從控制器可以被看作一個節(jié)點并具有預(yù)定的響應(yīng)時間,但是,分而治之的思想仍然適用:把普通、重復(fù)的測量和低級控制分配給級別最低的點,而將重要的工作留給系統(tǒng)控制器來完成。另外,在各種情況下都必須建立功能強大、精確定義的接口,以便為下一級的設(shè)計留出一定的自由度,在不影響較高級設(shè)備的情況下方便地改變設(shè)計方案。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉