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