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