用邏輯簡化單片機上的復雜功能
作者 Manu Venkategowda Microchip Technology公司 應用工程師
本文引用地址:http://cafeforensic.com/article/201808/391179.htm摘要:解釋了可配置邏輯單元如何簡化單片機上復雜功能的實現(xiàn)。
有時,簡單的東西也大有益處。大多數嵌入式工程師需要通過各種信號或邏輯來滿足最終應用需求。他們依靠設計復雜的電路板邏輯來滿足這些需求。但是如果通過一種簡單的方法便可以做一些復雜的事情會怎么樣呢?一些單片機具有靈活的外設,可以執(zhí)行復雜應用所需的功能。
這就是可配置邏輯單元(CLC)的用武之地。CLC外設已添加到Microchip PIC?單片機(MCU)的外設集中,允許用戶設計一個可與MCU連接的簡單功能。該CLC外設允許用戶指定信號組合作為邏輯功能的輸入,并支持使用邏輯輸出控制其他外設和IO引腳,可幫助用戶靈活設計所選功能。
為了簡單起見,Microchip的MPLAB?代碼配置器(MCC)支持CLC。因此,設計人員只需拖放邏輯門便可連接輸入和輸出(GUI格式),并且通過單擊按鈕便可生成C代碼,從而大大簡化了CLC模塊的實現(xiàn)。
獨立于內核的外設(CIP)在處理任務時無需額外的代碼或CPU監(jiān)管來維持運行。CLC是這樣一種CIP:它簡化了復雜控制系統(tǒng)的實現(xiàn),同時為開發(fā)人員提供了充足的設計靈活性,可通過卸載CPU負荷提高單片機的性能。繼續(xù)閱讀以了解CLC如何用于在應用中實現(xiàn)信號相位檢測、互補波形生成或多參數監(jiān)控。憑借各種輸入、觸發(fā)和輸出,CLC具有無限的可能性。
1 概述
CLC是用戶可配置的外設,類似于可編程邏輯器件(PLD),但集成在單片機中。可以選擇內部和外部輸入作為CLC的輸入。CLC接收來自其他外設或輸入引腳的輸入。之后,它會執(zhí)行預期的邏輯操作,并提供可用于控制其他外設或其他IO引腳的輸出。
CLC可以接收信號,例如內部時鐘信號、其他外設的輸出以及定時器輸入等外設事件。可以通過信號門控級將所選擇的輸入信號指向所需的邏輯功能。
CLC支持各種邏輯功能,如AND、OR、NOT、XOR、NAND、NOR和XNOR。在CLC中,數據門控級的輸出是邏輯功能選擇級的輸入。輸出極性級是CLC的最后一級,可以選擇所需的極性。
CLC可用作獨立外設來實現(xiàn)順序和組合邏輯功能,從而促進快速事件觸發(fā)和響應。它還可以與其他外設一起使用,通過促進硬件中復雜功能的自定義實現(xiàn)來幫助擴展外設功能。
作為獨立于內核的外設,CLC通過將許多簡單的邏輯事件響應從CPU卸載到外設,有效地降低了應用的CPU帶寬需求。它還降低了閃存和RAM要求,因為不需要軟件算法。
與軟件中實現(xiàn)的邏輯功能相比,硬件中實現(xiàn)的邏輯功能具有更快的事件響應。此外,CLC無需任何外部組件即可支持更高級別的集成,從而減小了整體PCB尺寸。
2 相位檢測器
CLC的多功能特性和簡便性擴展了PIC? MCU的設計能力。證明CLC能力的一個很好的例子是相位檢測器。相位檢測器可用于許多應用,包括距離測量。它的工作原理是,當連續(xù)的RF波向目標發(fā)射時,到目標的距離與發(fā)射波和接收波之間的相移成比例。CLC可用于測量相同頻率的兩個信號之間的相位差。發(fā)射和接收的波用作CLC的輸入,并且CLC輸出處的兩個信號之間的相位差可用于計算源和目標之間的距離。
在使用CLC的相位檢測器實現(xiàn)中,CLC中的AND-OR邏輯功能可用于實現(xiàn)XOR功能以測量相位差的大小,D型觸發(fā)器(D-FF)邏輯功能有助于獲得信號的超前和滯后信息。除了方波之外,還可以測量其他類型模擬信號(例如正弦波)之間的相位。圖1描繪了使用CLC的相位檢測器的配置。
將相位差待測的源信號作為輸入饋送到兩個比較器,這兩個比較器被配置為過零檢測器(ZCD)。ZCD將輸入模擬信號轉換為相同頻率的方波。如果源信號是方波,則不需要ZCD。方波作為輸入從內部連接到多個CLC模塊。
CLC1和輸入捕捉(IC)外設用于確定相位差的大小。CLC1配置為AND-OR邏輯功能,從中可得到XOR功能。CLC1的經XOR操作的輸出作為源信號從外部連接到IC。憑借經XOR操作的輸出的脈沖寬度,可得出兩個波之間的相位差的大小,該脈沖寬度由IC測量。如果CLC1輸出不產生信號,則源信號同相。
為了確定兩個輸入波形的相位超前和滯后信息,CLC配置為D-FF模式,其中一個方波使用D輸入,另一個用作時鐘。CLC2的高電平或低電平輸出用于確定D輸入的相位超前還是滯后于時鐘輸入。測量相同頻率的兩個信號之間的相位角在許多應用中都十分有用,包括計量、數字電源系統(tǒng)、通信和醫(yī)療儀器。
3 互補波形發(fā)生器
使用CLC的另一種方法是在互補波形發(fā)生器(CWG)中。CWG從其輸入源產生帶有死區(qū)控制的互補波形。在兩個信號之間插入死區(qū)時間,以防止各種電源應用中的直通電流。
該應用說明了如何使用CLC外設的邊沿檢測和中斷功能,以單個捕捉/比較/PWM(SCCP)模塊作為輸入源生成互補波形。
通常,電機控制等應用需要多個互補波形發(fā)生器來控制其功能。多重捕捉/比較/PWM(MCCP)模塊可通過控制其輸出端的死區(qū)來產生具有非重疊信號的互補波形。但是,如果應用需要的MCCP實例多于器件中可用的實例,則可以將SCCP與CLC結合使用。
具有SCCP的CLC外設可用于生成具有所需死區(qū)的互補波形,因為SCCP本身不能生成非重疊信號。
可以為邊沿對齊和中心對齊的SCCP輸出添加死區(qū)。圖2所示為在邊沿對齊模式下控制SCCP輸出死區(qū)的CLC1、CLC2和CLC3配置。
例如,可以通過輸出產生互補波形的MCCP外設來驅動全橋電機驅動器電路。然而,如果要驅動多個這樣的全橋電機驅動器電路,并且器件上可用的MCCP外設的數量不足,則可以將SCCP與CLC結合使用。
4 多參數監(jiān)控
通常,應用需要同時監(jiān)控不同的參數,例如溫度、壓力和濕度。如果這些參數開始越過上限或下限閾值,則可以采取必要的措施來避免災難性后果。
多個比較器可用作CLC的源輸入。在單片機中,比較器可用于僅監(jiān)控一個參數??梢允褂肅LC組合多個比較器的輸出,以監(jiān)控多個參數。
當監(jiān)控的任何或所有參數超過一定限值時,可以采取必要的措施。圖3所示為用于監(jiān)控兩個不同參數的CLC配置。
在實踐中,該應用用于監(jiān)控工業(yè)設備中的溫度和壓力,以便在任一參數超過預設閾值時關閉設備。它還可用于監(jiān)控離線不間斷電源中的電壓大小。
5 結論
通過在外設集中添加可配置邏輯單元,用戶可以在PIC單片機中集成簡單的板載邏輯設計。組合不同外設的輸出增強了現(xiàn)有外設的功能,從而擴展了外設可以實現(xiàn)的應用的范圍。
由于與軟件中實現(xiàn)的邏輯功能相比,硬件中實現(xiàn)的邏輯功能具有更快的事件響應,因此CLC有助于提高整個系統(tǒng)的速度。它還可提供更高級別的集成,而無需外部邏輯門來實現(xiàn)邏輯功能,從而減少了所需部件的數量并縮小了PCB的整體尺寸。CLC還有助于使用不同的邏輯門組合各種輸入源信號以產生完全不同的信號。
所有這些靈活的輸入和輸出以及邏輯功能都可以通過基于GUI的工具輕松實現(xiàn),該工具稱為MPLAB代碼配置器(MCC),可為您的應用生成易讀的C代碼。
參考文獻:
[1]Venkategowda M.使用CLC擴展PIC MCU功能的應用筆記[R/OL].http://ww1.microchip.com/downloads/en/AppNotes/00002133a.pdf
本文來源于《電子產品世界》2018年第9期第77頁,歡迎您寫論文時引用,并注明出處。
評論