在您的設(shè)計(jì)中添加第二個(gè) MCU 的原因有很多,一旦您這樣做了,就有很多錯(cuò)誤要避免。本文考慮了論點(diǎn)和選項(xiàng),同時(shí)指出了沿途的陷阱。
鑒于當(dāng)今可用的處理器種類(lèi)繁多,您可能會(huì)發(fā)現(xiàn)通過(guò)在您的應(yīng)用中引入第二個(gè)微控制器 (MCU) 或微處理器 (MPU) 來(lái)為應(yīng)用程序添加新功能是一種更具成本效益的選擇,原因有很多。設(shè)計(jì)而不是試圖在單個(gè)更高性能的處理器上執(zhí)行每項(xiàng)任務(wù):
成本:與添加 8 位或 16 位 MCU 以承擔(dān)增加的負(fù)載相比,遷移到更高性能的系統(tǒng) MPU 可能具有更高的成本差異。
電源:與其消耗電源讓主應(yīng)用處理器不斷地自行開(kāi)啟以執(zhí)行相對(duì)簡(jiǎn)單的操作,例如監(jiān)控傳感器組或檢查是否已按下某個(gè)鍵,可以引入一個(gè) 8 位處理器來(lái)執(zhí)行這些任務(wù)。 從本質(zhì)上講,8 位處理器通過(guò)讓主處理器休眠并僅在需要其注意的事件發(fā)生時(shí)才喚醒它來(lái)充當(dāng)“電源門(mén)”。這對(duì)于電阻式和表面電容式觸摸屏尤其有效。
確定性:涉及計(jì)算密集型任務(wù)(如動(dòng)畫(huà)或音頻)的用戶(hù)界面 (UI) 功能可能會(huì)強(qiáng)調(diào)系統(tǒng)的實(shí)時(shí)確定性行為。第二個(gè) MCU 可以承擔(dān)所有“實(shí)時(shí)”UI 職責(zé),而不是冒著電機(jī)控制等關(guān)鍵任務(wù)的可靠性的風(fēng)險(xiǎn)。
多樣性:許多系統(tǒng)都可以從模塊化設(shè)計(jì)中受益。例如,可以使用不同的處理器來(lái)實(shí)現(xiàn)顯示模塊,以提供額外的圖形或流式視頻功能。通過(guò)采用模塊化方法,無(wú)需更改主要應(yīng)用程序代碼即可向系統(tǒng)添加新功能或支持不同的模型。
簡(jiǎn)單:一條產(chǎn)品線可以提供多種選擇。例如,一個(gè)產(chǎn)品可能有四個(gè)屏幕、三個(gè)鍵盤(pán)和三個(gè)連接選項(xiàng)。當(dāng)使用單個(gè)處理器時(shí),設(shè)計(jì)團(tuán)隊(duì)必須為每個(gè)可能的變體(4x3x3=36 個(gè)不同的變體)維護(hù)、測(cè)試和驗(yàn)證單獨(dú)的代碼版本。使用輔助處理器實(shí)現(xiàn)新功能時(shí),只需對(duì)每個(gè)選項(xiàng)(4+3+3=10)進(jìn)行維護(hù)。請(qǐng)注意,使用第一個(gè)選項(xiàng)時(shí),需要使用每個(gè)變體對(duì)整個(gè)系統(tǒng)進(jìn)行測(cè)試和驗(yàn)證,這是一個(gè)復(fù)雜且耗時(shí)的過(guò)程。使用第二個(gè)選項(xiàng)時(shí),主應(yīng)用程序代碼只需要驗(yàn)證一次。每個(gè)選項(xiàng)都可以單獨(dú)驗(yàn)證,并且復(fù)雜性大大降低。
I/O 保護(hù):一個(gè) MCU 可以通過(guò)響應(yīng)多個(gè)地址在一個(gè)接口上看起來(lái)是多個(gè)設(shè)備。例如,主應(yīng)用處理器可以發(fā)出命令打開(kāi)風(fēng)扇,該命令被用作虛擬集線器的 MCU 攔截。這是一種在主應(yīng)用處理器上節(jié)省 I/O 的有效方法,因?yàn)橹恍枰粋€(gè)通信外圍設(shè)備即可讀取和控制多個(gè)設(shè)備。
認(rèn)證:更改用戶(hù)界面或在主系統(tǒng)中引入新的界面(如 Wi-Fi)需要對(duì)某些市場(chǎng)的整個(gè)設(shè)計(jì)進(jìn)行重新認(rèn)證。將這些功能作為具有單獨(dú)處理器的附加模塊來(lái)實(shí)施,可簡(jiǎn)化重新認(rèn)證過(guò)程,顯著加快開(kāi)發(fā)和上市時(shí)間。
UART、I 2 C 和 SPI
有許多選項(xiàng)可用于互連處理器。用于此目的的最基本接口是通用異步收發(fā)器 (UART)、內(nèi)部集成電路 (I 2 C) 和串行外設(shè)接口 (SPI)。今天,許多處理器為這些接口中的一個(gè)或多個(gè)提供硬件和軟件支持。例如,意法半導(dǎo)體的 STM32 Cortex-M3 32 位處理器和 8 位STM8L MCU 支持所有這三種?;蛘?,賽普拉斯的PSoC可編程片上系統(tǒng)處理器系列具有模擬和數(shù)字模塊,可配置為提供每個(gè)接口的多個(gè)實(shí)例,允許根據(jù)不同目標(biāo)市場(chǎng)的需要更改接口組合。問(wèn)題變成了您需要多少接口。
UART 的運(yùn)行速度高達(dá) 250 kbps,而 I 2 C 的運(yùn)行速度為 100 至 400 kbps。提供自己的時(shí)鐘的 SPI 可以以超過(guò) 1 Mbps 的速度運(yùn)行。UART 鏈接通常可以使用基于中斷的驅(qū)動(dòng)程序在軟件中實(shí)現(xiàn),只要驅(qū)動(dòng)程序不會(huì)根據(jù)應(yīng)用程序的需要在處理器上施加過(guò)多的負(fù)載或延遲。一個(gè)我2C 主機(jī)通常可以用軟件實(shí)現(xiàn),但由于涉及的數(shù)據(jù)速率,從機(jī)需要用硬件實(shí)現(xiàn)。SPI 還需要基于硬件。多主機(jī)系統(tǒng)也需要基于硬件。
除了數(shù)據(jù)速率之外,每個(gè)接口都提供了可能使其更適合特定應(yīng)用的特定功能。UART 實(shí)現(xiàn)起來(lái)非常簡(jiǎn)單,并且是全雙工的。我2C 語(yǔ)言很受歡迎,因?yàn)樗恍枰獌蓷l線,可以有一個(gè)簡(jiǎn)單的主控,并提供各種高級(jí)選項(xiàng),包括支持尋址、多主控、廣播和時(shí)鐘延長(zhǎng)。例如,時(shí)鐘延長(zhǎng)允許 I2C 從機(jī)在處理接收到的數(shù)據(jù)時(shí)保持時(shí)鐘并停止數(shù)據(jù)流,從而防止?jié)撛诘囊绯鰡?wèn)題。相比之下,SPI 從設(shè)備受 SPI 主設(shè)備的支配。借助 I 2
C 和 SPI 的所有各種可用選項(xiàng),許多芯片供應(yīng)商提供示例代碼,您需要將其用作創(chuàng)建自己的代碼的模型。幸運(yùn)的是,這些接口的驅(qū)動(dòng)程序相當(dāng)簡(jiǎn)單——I 2C驅(qū)動(dòng)可以是15行代碼,讓你在短時(shí)間內(nèi)實(shí)現(xiàn)一個(gè)接口。但是,重要的是要確定需要支持哪些特性,正確實(shí)現(xiàn)它們,并且主從實(shí)現(xiàn)相同的特性。例如,在創(chuàng)建 I 2
C 驅(qū)動(dòng)程序 時(shí),您需要確定許多參數(shù),例如 7 位或 11 位尋址、單主機(jī)或多主機(jī)(具有沖突檢測(cè)和恢復(fù))、數(shù)據(jù)速率、是否使用 ACK/NAK 協(xié)議,支持地址保持,以及一系列其他選項(xiàng)。因此,任何兩個(gè)特定的 I 2 C 接口都可能非常不同。例如,開(kāi)發(fā)人員遇到的一個(gè)常見(jiàn)問(wèn)題是將筆記本電腦中使用的系統(tǒng)管理總線 (SMBus) 誤認(rèn)為是一種簡(jiǎn)單的 I2C總線。盡管 SMBus 在 I 2 C 接口上運(yùn)行,但它通常使用固定電壓來(lái)表示高值和低值,而通用 I 2 C 接口使用的閾值通?;?MCU 電源的百分比,因此表示潛在的差異兩者之間可能會(huì)產(chǎn)生難以調(diào)試的間歇性錯(cuò)誤。
還要注意,UART,我2C和SPI只是物理接口。您仍然需要提供在物理層之上運(yùn)行的邏輯協(xié)議。如果接口位于您設(shè)計(jì)的兩個(gè) MCU 之間,則此協(xié)議可以是您想要的任何協(xié)議。如果 MCU 正在與串行 EEPROM 之類(lèi)的設(shè)備通信,那么協(xié)議已經(jīng)為您定義好了。因此,考慮到不同設(shè)備的數(shù)量及其可能與之通信的協(xié)議,主設(shè)備的驅(qū)動(dòng)程序可能比從設(shè)備更復(fù)雜。此外,如果您的 master 不支持 slave 支持的所有協(xié)議功能(或者相反,嘗試使用 slave 不支持的功能),兼容性問(wèn)題最終會(huì)浮出水面。
這些接口中的每一個(gè)的簡(jiǎn)單性都是它的優(yōu)點(diǎn)和缺點(diǎn)。您可以實(shí)現(xiàn)復(fù)雜的協(xié)議,這使接口更加高效和強(qiáng)大,但這也可能使調(diào)試更加困難。如果您不小心,簡(jiǎn)單性為您提供了掛起系統(tǒng)所需的所有繩索。
例如,考慮一個(gè)接口正在控制一個(gè)模擬多路復(fù)用器的應(yīng)用,該多路復(fù)用器需要在兩個(gè)音頻流之間平滑轉(zhuǎn)換。根據(jù)過(guò)渡的實(shí)施方式,可能會(huì)出現(xiàn)不受歡迎且可聽(tīng)到的副作用;即,從柔和的流切換到響亮的流會(huì)導(dǎo)致響亮的“Pop!” 此外,命令延遲可能會(huì)影響轉(zhuǎn)換。理想情況下,您需要關(guān)閉音頻,切換流,然后重新運(yùn)行音頻。但是,這對(duì)您的應(yīng)用程序可能并不總是很方便。如果您同時(shí)使用多個(gè)電源,也會(huì)遇到同樣的困難。
為了促進(jìn)初始驅(qū)動(dòng)程序設(shè)計(jì)和驗(yàn)證,許多供應(yīng)商提供了強(qiáng)大的開(kāi)發(fā)工具來(lái)實(shí)現(xiàn)和驗(yàn)證接口功能。例如,微芯片提供 PICkit 串行分析器,可連接到您的系統(tǒng)和 PC,您可以使用該 PC 將鏈路配置為具有 UART、I 2 C 和 SPI 的任何標(biāo)準(zhǔn)接口選項(xiàng)的主設(shè)備或從設(shè)備。接口設(shè)計(jì)中的一個(gè)經(jīng)典問(wèn)題是需要預(yù)先存在的 master 來(lái)設(shè)計(jì) slave 或預(yù)先存在的 slave 來(lái)設(shè)計(jì) master。PICkit 通過(guò)提供可靠的另一半鏈路來(lái)進(jìn)行設(shè)計(jì),從而消除了這個(gè)問(wèn)題,并且可以查看通過(guò)鏈路兩側(cè)發(fā)送的內(nèi)容。PICkit 還能夠模擬各種 I 2 C 外設(shè),如 ADC 和風(fēng)扇控制器。
許多 MCU 供應(yīng)商還提供各種功能齊全的開(kāi)發(fā)套件和庫(kù),以方便將 LCD 顯示器、觸摸屏或其他外圍設(shè)備等子系??統(tǒng)引入系統(tǒng)。例如,TI 提供了 RDKIDML-35 智能顯示模塊參考設(shè)計(jì)套件,可以相對(duì)輕松地將 3.5 英寸 QVGA 觸摸屏添加到通過(guò) I 2 C 或 SPI 鏈路連接的系統(tǒng)。該套件還包括一個(gè)具有各種 GUI 功能的軟件庫(kù),以加快用戶(hù)界面設(shè)計(jì)。
避免常見(jiàn)
的陷阱 最后,學(xué)習(xí)實(shí)現(xiàn) UART、I 2 C 或 SPI 鏈接的最佳方法是自己動(dòng)手。來(lái)自各種 MCU 制造商的專(zhuān)家建議了以下提示和技巧列表,以幫助您避免開(kāi)發(fā)人員在實(shí)現(xiàn)他們的第一個(gè)處理器到處理器接口時(shí)經(jīng)常犯的一些更常見(jiàn)的錯(cuò)誤、誤解和失誤。
分階段引入復(fù)雜性:不要試圖從一開(kāi)始就實(shí)現(xiàn)整個(gè)系統(tǒng)。從基本驅(qū)動(dòng)程序開(kāi)始并驗(yàn)證其操作。然后添加協(xié)議層并再次驗(yàn)證。介紹應(yīng)用層。最后,運(yùn)行整個(gè)系統(tǒng)及其所有各種并發(fā)任務(wù)和相互依賴(lài)關(guān)系。
設(shè)計(jì)您的系統(tǒng)以抽象功能:例如,使用通用 UI 界面允許主系統(tǒng)連接到機(jī)械按鈕、鍵盤(pán)或觸摸屏,而無(wú)需知道實(shí)際連接的是哪個(gè)。這種方法還允許您從根本上修改功能的執(zhí)行方式,而無(wú)需對(duì)主系統(tǒng)進(jìn)行任何代碼更改??紤]一臺(tái)具有單獨(dú)處理器處理硬幣和票據(jù)收集的自動(dòng)售貨機(jī)。如果出現(xiàn)安全問(wèn)題(即客戶(hù)想出了辦法欺騙機(jī)器),只需要重新設(shè)計(jì)用于監(jiān)控收集的硬件和軟件來(lái)防止這種情況發(fā)生;系統(tǒng)的其余部分保持不變。
認(rèn)識(shí)到外圍設(shè)備不同于處理器:連接到外圍設(shè)備與連接到另一個(gè)處理器不同。當(dāng)您控制接口兩側(cè)的軟件時(shí),您定義了兩側(cè)的接口細(xì)節(jié)和協(xié)議,因此可以保證兼容性。當(dāng)您只設(shè)計(jì)接口的一側(cè)時(shí),您需要設(shè)計(jì)接口以匹配您所連接的外圍設(shè)備的要求。這會(huì)引起許多潛在的問(wèn)題。最常見(jiàn)的是外設(shè)的數(shù)據(jù)表不準(zhǔn)確地描述了接口是如何實(shí)現(xiàn)的。為避免此問(wèn)題,請(qǐng)驗(yàn)證接口是如何實(shí)現(xiàn)的。還要注意各種接口選項(xiàng),例如 11 位尋址、時(shí)鐘延長(zhǎng)、
指定足夠的數(shù)據(jù)速率:確認(rèn)接口的數(shù)據(jù)速率將滿(mǎn)足您當(dāng)前和未來(lái)的數(shù)據(jù)需求。例如,與較大的顯示器或同等觸摸屏相比,小型顯示器需要較低的數(shù)據(jù)速率。如果您計(jì)劃在下一代設(shè)計(jì)中支持更大的顯示器,請(qǐng)保持您的界面選項(xiàng)開(kāi)放。
計(jì)算超支:獲得 I 2C 或 SPI 連接起來(lái)非常簡(jiǎn)單。您可能會(huì)遇到困難的地方是極端情況。例如,接口可以正常運(yùn)行到某個(gè)頻率,此時(shí)它開(kāi)始出現(xiàn)故障。問(wèn)題可能來(lái)自系統(tǒng)中的太多噪音或數(shù)據(jù)溢出。數(shù)據(jù)溢出可能是本地問(wèn)題;一系列特定類(lèi)型的數(shù)據(jù)包可能需要更多的處理時(shí)間,導(dǎo)致處理器無(wú)法足夠快地清空緩沖區(qū)。更常見(jiàn)的是,溢出是由系統(tǒng)級(jí)問(wèn)題引起的。例如,接口使用的 DMA 或 FIFO 可能是共享資源。根據(jù)系統(tǒng)正在處理的其他內(nèi)容(即實(shí)時(shí)操作系統(tǒng)同時(shí)管理多個(gè)實(shí)時(shí)任務(wù)),延遲可能大于估計(jì)值,從而導(dǎo)致溢出。
首先驗(yàn)證驅(qū)動(dòng)程序:當(dāng)出現(xiàn)問(wèn)題時(shí),可能很難確定錯(cuò)誤的原因。在管理多個(gè)接口或?qū)崟r(shí)任務(wù)的系統(tǒng)中尤其如此,因?yàn)橄到y(tǒng)中發(fā)生的其他事情可能會(huì)出現(xiàn)錯(cuò)誤。通過(guò)在引入應(yīng)用程序級(jí)功能之前驗(yàn)證您的驅(qū)動(dòng)程序,首先讓系統(tǒng)可靠地進(jìn)行通信。這使您可以在以后的調(diào)試過(guò)程中更自信地消除驅(qū)動(dòng)程序作為問(wèn)題的根源。
使用代碼檢測(cè)進(jìn)行調(diào)試:調(diào)試接口的兩側(cè)可能會(huì)很棘手,因?yàn)槟谑褂枚鄠€(gè)處理器。雖然有調(diào)試多處理器系統(tǒng)的工具,但它們通常只允許您暫停鏈路的一側(cè),從而難以利用傳統(tǒng)的調(diào)試技術(shù)。如果您在鏈路的兩側(cè)使用相同類(lèi)型的處理器,您可以選擇讓一個(gè)處理器發(fā)送然后接收它自己的信號(hào);這使您可以觀察鏈接的兩側(cè)并同時(shí)停止它們。如果您通過(guò) JTAG 進(jìn)行調(diào)試,您可以將兩個(gè)處理器連接到同一個(gè) JTAG 鏈。
但是,一旦混合了架構(gòu),您可能會(huì)發(fā)現(xiàn)自己不得不一次調(diào)試鏈接的一側(cè)。為了簡(jiǎn)化調(diào)試,通過(guò)創(chuàng)建一個(gè)允許您分階段測(cè)試基本功能的簡(jiǎn)單存根驅(qū)動(dòng)程序來(lái)限制鏈接另一端的復(fù)雜性。當(dāng)您開(kāi)始在鏈路的兩側(cè)使用實(shí)時(shí)系統(tǒng)時(shí),您可以在鏈路的一側(cè)使用調(diào)試器并在鏈路的另一側(cè)使用代碼檢測(cè)技術(shù)來(lái)促進(jìn)調(diào)試。鏈接的檢測(cè)端可以使用鏈接本身將狀態(tài)信息(例如變量值、接收到的數(shù)據(jù)和其他重要信息)發(fā)送回被調(diào)試的處理器。
利用你的調(diào)試器:一些工程師試圖在沒(méi)有調(diào)試器的情況下解決編程問(wèn)題。當(dāng)他們遇到錯(cuò)誤時(shí),他們會(huì)在代碼中嘗試不同的東西。然而,許多接口問(wèn)題是在系統(tǒng)級(jí)別引起的,重寫(xiě)接口驅(qū)動(dòng)程序代碼不是解決方案。觀察這些系統(tǒng)級(jí)交互可能需要調(diào)試器。
檢查您的連接:在調(diào)試問(wèn)題之前三重檢查您的連接。例如,一個(gè)容易犯的錯(cuò)誤是連接接口的控制信號(hào),但沒(méi)有共同接地。這樣做,您可能會(huì)發(fā)現(xiàn)自己花費(fèi)數(shù)小時(shí)試圖解決一個(gè)不存在的問(wèn)題。
記錄您的代碼:花時(shí)間編寫(xiě)帶有完整注釋的干凈代碼。一個(gè)簡(jiǎn)單的我2C 驅(qū)動(dòng)程序可能只運(yùn)行 15 行,并且似乎不需要文檔。但是,如果您是 I 2 C 的新手,您可能會(huì)錯(cuò)過(guò)一個(gè)稍后會(huì)進(jìn)一步了解的關(guān)鍵參數(shù)。完整的文檔為您提供了一個(gè)可靠的途徑來(lái)跟蹤您的思維變化,并且不會(huì)隨著應(yīng)用程序復(fù)雜性的增加而迷失方向。
質(zhì)疑規(guī)格表:由于其更大的靈活性,開(kāi)發(fā)人員通常會(huì)遇到更多關(guān)于 I 2的問(wèn)題C比用SPI。例如,從機(jī)可以通過(guò)降低時(shí)鐘、使用不同的尋址模式或以不同的方式實(shí)現(xiàn)啟動(dòng)/停止序列來(lái)對(duì)主機(jī)產(chǎn)生不利影響。即使您連接到帶有詳細(xì)數(shù)據(jù)表的傳感器等外圍設(shè)備,也要小心。外圍設(shè)備可能不符合規(guī)范,因此如果您無(wú)法使接口正常工作,請(qǐng)不要立即假設(shè)您的驅(qū)動(dòng)程序或 MCU 有故障。在這種情況下,您可能需要邏輯分析儀來(lái)定位問(wèn)題的真正根源。
可以訪問(wèn)邏輯分析儀:當(dāng)您必須使用現(xiàn)有接口和協(xié)議連接到另一臺(tái)設(shè)備時(shí),此工具特別有用。當(dāng)連接到具有并行接口(如顯示器)的外圍設(shè)備時(shí),它還可以加速開(kāi)發(fā)。請(qǐng)務(wù)必檢查您的邏輯分析儀是否支持您正在使用的接口的適當(dāng)解碼。自動(dòng)解碼可以大大簡(jiǎn)化調(diào)試,因?yàn)槟梢詫⒔涌谧鳛檫壿嬓盘?hào)進(jìn)行觀察,而不必自己將物理信號(hào)轉(zhuǎn)換為邏輯信號(hào)。
共存設(shè)計(jì):在多主機(jī)系統(tǒng)中,有時(shí)您需要確保將數(shù)據(jù)發(fā)送到多個(gè)目的地,而不會(huì)冒著將總線放棄給另一個(gè)主機(jī)的風(fēng)險(xiǎn)。為此,您可以在每次傳輸之間使用重新啟動(dòng)條件來(lái)保持對(duì)總線的控制。類(lèi)似地,您可以使用重新啟動(dòng)來(lái)改變數(shù)據(jù)的方向以從從機(jī)(即 EEPROM)接收數(shù)據(jù),而無(wú)需松開(kāi)總線。然而,以這種方式鎖定總線的主機(jī)可能會(huì)為其他執(zhí)行同樣時(shí)間關(guān)鍵任務(wù)的主機(jī)產(chǎn)生延遲問(wèn)題。謹(jǐn)慎使用此類(lèi)技術(shù)并徹底測(cè)試主控器之間的相互作用,以確保它們彼此之間運(yùn)行良好。
設(shè)計(jì)具有從/主功能的驅(qū)動(dòng)程序:考慮讓你的奴隸成為主人。這在系統(tǒng)故障的情況下很有用,允許從機(jī)接管總線并啟動(dòng)恢復(fù)機(jī)制,其延遲明顯低于從機(jī)必須等到它被尋址才能發(fā)出警報(bào)的情況。
將數(shù)據(jù)處理與數(shù)據(jù)傳輸分開(kāi):通常,收集的數(shù)據(jù)(即來(lái)自溫度傳感器的電壓)與需要傳輸?shù)臄?shù)據(jù)(即是否已超過(guò)溫度閾值)有很大不同??紤]一個(gè)觸摸屏模塊的接口,其中作為主系統(tǒng)的主系統(tǒng)請(qǐng)求當(dāng)前手指位置數(shù)據(jù)。該模塊收集原始數(shù)據(jù)并將其存儲(chǔ),直到主站請(qǐng)求位置數(shù)據(jù)。此時(shí),模塊檢索原始數(shù)據(jù),對(duì)其進(jìn)行處理,然后傳輸。
這種特殊的架構(gòu)可能會(huì)無(wú)意中造成溢出情況??紤]到為了保持響應(yīng)能力,主系統(tǒng)可能會(huì)以比原始數(shù)據(jù)實(shí)際更改的頻率更高的頻率詢(xún)問(wèn)信息。這意味著對(duì)于每個(gè)請(qǐng)求,模塊必須使用數(shù)據(jù)密集型算法重新計(jì)算位置數(shù)據(jù),即使數(shù)據(jù)沒(méi)有改變。由于要多次計(jì)算原始數(shù)據(jù),結(jié)果是巨大的開(kāi)銷(xiāo),可能會(huì)影響模塊的響應(yīng)能力。
有幾種方法可以消除這種開(kāi)銷(xiāo)。例如,可以在計(jì)算位置數(shù)據(jù)之前檢查原始數(shù)據(jù)是否已充分改變。如果原始數(shù)據(jù)沒(méi)有改變,則使用之前的計(jì)算。另一種方法是讓觸摸屏模塊充當(dāng)鏈接上的主模塊,并在位置發(fā)生變化時(shí)發(fā)送更新。
保持接口簡(jiǎn)單:如果只有一主一從,則無(wú)需實(shí)現(xiàn)地址沖突。當(dāng)然,還要考慮未來(lái)的擴(kuò)展以及部署的設(shè)備是否可能需要支持這樣的功能才能與未來(lái)幾代設(shè)備兼容。
借助當(dāng)今的集成 MCU 和 MPU,再加上強(qiáng)大的開(kāi)發(fā)工具,設(shè)計(jì)您的第一個(gè)處理器到處理器接口可以是一個(gè)簡(jiǎn)單的過(guò)程,讓您可以快速地將第二個(gè)處理器引入現(xiàn)有設(shè)計(jì)。通過(guò)謹(jǐn)慎設(shè)計(jì),您可以避免許多常見(jiàn)的陷阱,從而創(chuàng)建一個(gè)可靠且高效的界面,以滿(mǎn)足您當(dāng)前和未來(lái)應(yīng)用程序的性能需求。
評(píng)論