99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

分而治之的概念適用于任何總線(xiàn)類(lèi)型應(yīng)用中

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì)應(yīng)用 ? 作者:Jon Pearson ? 2020-09-22 18:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

控制器和從控制器

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

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

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

將任務(wù)分而治之

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

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

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

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

采用I2C I/O擴(kuò)展器件的面板控制器

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

將分而治之的概念推廣到所有的通信總線(xiàn)

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

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

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7954

    瀏覽量

    155159
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    17113

    瀏覽量

    184384
  • 總線(xiàn)
    +關(guān)注

    關(guān)注

    10

    文章

    2960

    瀏覽量

    89782
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何讀寫(xiě)使用適用于CYUSB驅(qū)動(dòng)I2C總線(xiàn)數(shù)據(jù)

    你好,我與CyPress FX2 USB控制器一起工作。我有董事會(huì)認(rèn)可的CySalk應(yīng)用程序。我找的代碼實(shí)例講述了如何讀寫(xiě)使用適用于CYUSB驅(qū)動(dòng)I2C總線(xiàn)數(shù)據(jù),但找不到任何東西。有人能給我指出正確
    發(fā)表于 03-25 10:28

    適用于任何化學(xué)物的簡(jiǎn)單電池充電器IC分享

    適用于任何化學(xué)物的簡(jiǎn)單電池充電器IC
    發(fā)表于 01-22 06:27

    適用于NFC和驗(yàn)證的子系統(tǒng)設(shè)計(jì)

    描述 此參考設(shè)計(jì)是適用于 NFC(近場(chǎng)通信)和驗(yàn)證的子系統(tǒng)設(shè)計(jì)。該子系統(tǒng)設(shè)計(jì)旨在用作參考設(shè)計(jì),支持部件認(rèn)證、訪(fǎng)問(wèn)控制、個(gè)人識(shí)別、無(wú)電池傳感器接口、安全令牌傳輸和本地?cái)?shù)據(jù)的低功耗傳輸。在諸多系統(tǒng)
    發(fā)表于 09-22 09:15

    是否有適用于LS1046ARDB上的Secure JTAG的任何應(yīng)用說(shuō)明?

    我想知道是否有適用于 LS1046ARDB 上的 Secure JTAG 的任何應(yīng)用說(shuō)明,就像適用于 i.MXRT10XX 系列的應(yīng)用說(shuō)明一樣,例如適用于 i.MXRT10xx.pdf
    發(fā)表于 06-08 09:05

    適用于任何交流電源的過(guò)壓保護(hù)電路

    適用于任何交流電源的過(guò)壓保護(hù)電路
    發(fā)表于 12-19 20:36 ?1531次閱讀
    <b class='flag-5'>適用于</b><b class='flag-5'>任何</b>交流電源的過(guò)壓保護(hù)電路

    USB標(biāo)準(zhǔn)適用于哪些應(yīng)用

    USB標(biāo)準(zhǔn)適用于哪些應(yīng)用 通用串行總線(xiàn) (USB) 外設(shè)接口已廣泛應(yīng)用于所有個(gè)人計(jì)算平臺(tái)及眾多工業(yè)和基礎(chǔ)設(shè)施平臺(tái)。不過(guò),與此同時(shí),人們對(duì)適用于
    發(fā)表于 04-19 14:31 ?2035次閱讀

    鈕扣電池都有哪些類(lèi)型分別適用于哪些設(shè)備?

    鈕扣電池都有哪些類(lèi)型分別適用于哪些設(shè)備? 鈕扣電池類(lèi)型 特性 應(yīng)用設(shè)備  1.氧化銀電池:高且穩(wěn)定的電壓自放電每年5% 手表照相機(jī)
    發(fā)表于 11-05 09:47 ?1224次閱讀

    適用于任何交流電源的過(guò)壓保護(hù)電路

    電子發(fā)燒友為大家提供了適用于任何交流電源的過(guò)壓保護(hù)電路,。本站還有其他相關(guān)資源,希望對(duì)您有所幫助。
    發(fā)表于 09-27 18:10 ?4828次閱讀
    <b class='flag-5'>適用于</b><b class='flag-5'>任何</b>交流電源的過(guò)壓保護(hù)電路

    適用于任何OS平臺(tái)(Exe)的ADV7619 HDMI接收器庫(kù)API源代碼

    適用于任何OS平臺(tái)(Exe)的ADV7619 HDMI接收器庫(kù)API源代碼
    發(fā)表于 06-05 21:04 ?6次下載
    <b class='flag-5'>適用于</b><b class='flag-5'>任何</b>OS平臺(tái)(Exe)的ADV7619 HDMI接收器庫(kù)API源代碼

    適用于任何OS平臺(tái)(Exe)的ADV7850 HDMI接收器庫(kù)API源代碼

    適用于任何OS平臺(tái)(Exe)的ADV7850 HDMI接收器庫(kù)API源代碼
    發(fā)表于 06-07 17:14 ?7次下載
    <b class='flag-5'>適用于</b><b class='flag-5'>任何</b>OS平臺(tái)(Exe)的ADV7850 HDMI接收器庫(kù)API源代碼

    適用于任何OS平臺(tái)(Exe)的ADV7614 HDMI接收器庫(kù)API源代碼

    適用于任何OS平臺(tái)(Exe)的ADV7614 HDMI接收器庫(kù)API源代碼
    發(fā)表于 06-07 17:15 ?12次下載
    <b class='flag-5'>適用于</b><b class='flag-5'>任何</b>OS平臺(tái)(Exe)的ADV7614 HDMI接收器庫(kù)API源代碼

    適用于任何操作系統(tǒng)平臺(tái)(Exe)的ADV7842 HDMI接收器庫(kù)API源代碼

    適用于任何操作系統(tǒng)平臺(tái)(Exe)的ADV7842 HDMI接收器庫(kù)API源代碼
    發(fā)表于 06-07 17:18 ?9次下載
    <b class='flag-5'>適用于</b><b class='flag-5'>任何</b>操作系統(tǒng)平臺(tái)(Exe)的ADV7842 HDMI接收器庫(kù)API源代碼

    適用于任何OS平臺(tái)(Exe)的ADV7844 HDMI接收器庫(kù)API源代碼

    適用于任何OS平臺(tái)(Exe)的ADV7844 HDMI接收器庫(kù)API源代碼
    發(fā)表于 06-07 17:23 ?8次下載
    <b class='flag-5'>適用于</b><b class='flag-5'>任何</b>OS平臺(tái)(Exe)的ADV7844 HDMI接收器庫(kù)API源代碼

    適用于任何OS平臺(tái)(Exe)的ADV7611 HDMI接收器庫(kù)API源代碼

    適用于任何OS平臺(tái)(Exe)的ADV7611 HDMI接收器庫(kù)API源代碼
    發(fā)表于 06-07 17:26 ?10次下載
    <b class='flag-5'>適用于</b><b class='flag-5'>任何</b>OS平臺(tái)(Exe)的ADV7611 HDMI接收器庫(kù)API源代碼

    適用于任何OS平臺(tái)(Exe)的ADV7612 HDMI接收器庫(kù)API源代碼

    適用于任何OS平臺(tái)(Exe)的ADV7612 HDMI接收器庫(kù)API源代碼
    發(fā)表于 06-07 17:40 ?8次下載
    <b class='flag-5'>適用于</b><b class='flag-5'>任何</b>OS平臺(tái)(Exe)的ADV7612 HDMI接收器庫(kù)API源代碼