如今,運行實時操作系統(tǒng)(RTOS)的大型32位單片機(MCU)和微處理器(MPU)日益普及。不過,如果使用一個大型單片機處理復(fù)雜的應(yīng)用,可能會在執(zhí)行小型后臺處理任務(wù)時遇到CPU資源方面的問題,這些任務(wù)雖然并不復(fù)雜,但十分耗時。8位和16位MCU等小型器件可用于減輕32位器件的工作負荷。
試想一下這樣一個示例:將一個32位MCU用于控制汽車的非安全功能,如娛樂系統(tǒng)、環(huán)境照明和空調(diào)。此32位器件必須對其資源進行分配,以便處理與這些功能相關(guān)的所有任務(wù)。這樣的任務(wù)還包括測量駕駛室內(nèi)多個點的溫度、打開/關(guān)閉空調(diào)系統(tǒng)、更新圖形顯示、處理用戶輸入、調(diào)整照明條件和播放音樂。即使對于大型32位器件,這些工作量也過于繁重。
但是,如果32位器件將部分任務(wù)負荷轉(zhuǎn)移給幾乎不需要監(jiān)控的子處理器,每個子處理器僅負責處理其中的1或2個任務(wù),那么這些任務(wù)會更易于管理。這可以釋放主處理器上的CPU資源,從而降低軟件的復(fù)雜性,同時提高性能并縮短執(zhí)行時間。
這種解決方案與單片機中的外設(shè)有異曲同工之妙。外設(shè)是專用硬件的小型模塊,可以添加新功能(例如運算放大器或模數(shù)轉(zhuǎn)換器),也可以減少執(zhí)行給定功能時CPU必須承擔的工作量。在某些情況下,初始化后,外設(shè)可獨立于CPU運行。
為了說明外設(shè)的優(yōu)勢,我們以產(chǎn)生脈寬調(diào)制(PWM)信號為例。要在沒有專用外設(shè)的情況下產(chǎn)生PWM,只需將I/O線設(shè)為高電平,等待一定數(shù)量的周期后,將其設(shè)為低電平,再等待一段時間,然后重復(fù)操作。這會占用大量CPU周期,并且對于某些功能(如RTOS)來說,難以可靠地執(zhí)行。相比之下,PWM外設(shè)允許CPU在執(zhí)行其他任務(wù)的同時設(shè)置所需的波形參數(shù)。
本文中介紹的第一個示例說明了減輕CPU密集型任務(wù)負荷的優(yōu)勢。在該案例中,使用了一個8位MCU來創(chuàng)建I/O擴展器。I/O擴展器并不復(fù)雜;然而,由于需要頻繁處理中斷,因此它們會占用大量的CPU時間。通過使用專用MCU來完成這項任務(wù),大型32位器件可以減少I/O使用和需要處理的中斷次數(shù)。此外,I/O擴展器的功能集可在軟件中設(shè)置,因此支持針對應(yīng)用進行定制和調(diào)整。
本文中的第二個示例以創(chuàng)建獨立于CPU運行的電壓頻率(V/F)轉(zhuǎn)換器為例,展示了獨立于內(nèi)核的外設(shè)的性能。在這個示例中,CPU的唯一功能是初始化外設(shè)并將調(diào)試打印消息發(fā)送到UART。在大型系統(tǒng)中,當V/F在后臺運行時,CPU可以執(zhí)行另一個簡單的任務(wù)。
I/O擴展器
使用8位MCU創(chuàng)建I/O擴展器的最大好處是提高靈活性。I/O擴展器ASIC的功能集已嵌入到器件中,而MCU可基于其執(zhí)行的軟件定義其行為。這種靈活性使基于MCU的版本能夠滿足最終應(yīng)用的需求。
實現(xiàn)高級I/O擴展器
在器件內(nèi)部,高級I/O擴展器在基于查找表的結(jié)構(gòu)上運行。在讀取或?qū)懭胫?,會發(fā)送一個虛擬地址。該地址與單片機上的寄存器無關(guān)——僅特定于查找表。這意味著,可以透明地添加不在單片機硬件寄存器中的功能。此外,還可以針對特定用途,輕松地重新排列表格中的條目。這種結(jié)構(gòu)的另一個優(yōu)勢是,能夠向查找表添加權(quán)限。例如,要創(chuàng)建一個只讀寄存器,只需省略查找表的寫條目即可。
這種較為復(fù)雜的結(jié)構(gòu)也適用于非標準功能。“MEM OP”功能允許MCU將其當前的通用輸入和輸出(GPIO)配置保存或加載到存儲器中。
器件中的存儲器存儲
MEM OP也可以將GPIO配置重置為編譯時設(shè)置的參數(shù)。
注:并非所有字段均可用于所有操作
MEM OP的功能
此外,也可以選擇將單片機設(shè)置為在上電時加載保存的設(shè)置。如果已使能,單片機會嘗試加載配置0中的設(shè)置。如果配置執(zhí)行校驗和驗證失敗,則MCU將恢復(fù)為編譯時常數(shù)。如果不需要,可以在軟件中禁用此功能。
該解決方案的要點
基于MCU的解決方案的優(yōu)勢在于出色的靈活性。與市場上的ASIC不同,我們可以為MCU配置特定于應(yīng)用場景的非標準功能。此應(yīng)用程序針對通用PIC16F15244系列MCU開發(fā)。
如需深入了解該實現(xiàn)或想要試用該示例,請參見源資源庫中的README文件。此外,還提供帶有Arduino的高級I/O擴展器的演示。
-
單片機
+關(guān)注
關(guān)注
6030文章
44489瀏覽量
632002 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6688瀏覽量
123141
發(fā)布評論請先 登錄
相關(guān)推薦
評論