利用單片機實現複雜的分立邏輯
發布時間:2024-12-17 責任編輯:lina
【導讀】在許多嵌入式係統應用中,通常都會使用分立式邏輯器件,例如 74'HC 係列。這些 邏輯器件的優勢在於可以獨立於單片機(MCU)工作,並且響應速度比軟件快得多。但 是,這些器件會增加物料清單(BOM)並且需要占用額外的 PCB 麵積。
開發人員可利用 PIC16F13145 係列單片機中的可配置邏輯模塊(CLB)外設實現硬件中複雜的分立邏輯功能,從而精簡物料清單(BOM)並開發定製專用邏輯。
在許多嵌入式係統應用中,通常都會使用分立式邏輯器件,例如 74'HC 係列。這些 邏輯器件的優勢在於可以獨立於單片機(MCU)工作,並且響應速度比軟件快得多。但 是,這些器件會增加物料清單(BOM)並且需要占用額外的 PCB 麵積。
為了解決這一問題,Microchip 的許多單片機都集成了一種名為可配置邏輯單元 (CLC)的外設(在 PIC® MCU 上)或名為可配置定製邏輯(CCL)的類似外設(在 AVR® MCU 上)。這兩種外設都實現了軟件定義的定製邏輯,可以獨立於 CPU 執行。換句話說, 一旦設置了定製邏輯功能,其行為就獨立於單片機。
但是,這兩種外設存在限製,即每個實例的邏輯數量非常小。每個 CLC 大約相當於 一個查找表(LUT),而 CCL 相當於一個內部具有幾個獨立 LUT 的實例。這兩種外設的功 能非常強大,可用於開發簡單邏輯電路、將各種信號混合在一起以及與其他硬件外設相集成。例如,硬件按鈕去抖、WS2812 輸出生成和正交解碼這些示例都需要使用這兩種外設, 但單片機中這兩種外設的數量並不多,因此限製了應用的複雜度。
為了支持更複雜的應用,PIC16F13145 係列單片機引入了一種名為可配置邏輯模塊 (CLB)的新型邏輯外設(如圖 1 所示)。請注意,CLB 並不會取代 CLC 或 CCL 外設,器件 可以同時配備 CLC/CCL 和 CLB。
圖 1—— CLB 框圖
PIC16F13145 係列單片機上的 CLB 包含四個邏輯組,每組包含八個 BLE。不同邏輯 組的 BLE 之間彼此連接——每個邏輯組代表兩個 GPIO 輸出和一個可選的 CPU 中斷。當工 作電壓為 5.5V 時,BLE 的傳播時間典型值小於 6 ns。整個結構中的所有 BLE 共用一個公共 時鍾,其時鍾源與可選的時鍾分頻器一起在軟件中進行配置。CLB 可以使用單片機的內部 時鍾源之一或外部提供的時鍾源。
該外設從單片機的存儲器中進行初始化,之後可通過外設引腳選擇(PPS)直接從 自身結構中控製引腳。用戶可通過 PPS 重新分配用於硬件外設的 I/O 引腳,從而獲得更大 的設計靈活性。舉例來說,如果 SPI 時鍾先前使用 RA1,但使用 RA6 會更有利,那麼便可 以通過 PPS 重新映射引腳。
CLB 中的其他元件包括專用的 3 位硬件定時器(帶解碼輸出)、用於輸入信號的邊 沿檢測器以及 32 位輸出寄存器(用於調試)。單片機上的其他獨立於內核的外設(CIP) 輸出可用作 CLB 的輸入,以便實現更複雜的設計。
由於 CLB 比 CLC 或 CCL 複雜得多,因此 Microchip 開發了一款名為 CLB 合成器的新 工具。CLB 合成器提供了一個用於配置邏輯的圖形界麵,如下麵的圖 2 所示。除了邏輯原語之外,該工具還支持更高級的邏輯模塊庫(可由用戶預先提供或定製)。
與該圖形工具交互時,後台會自動生成一個 Verilog 模塊用於合成。如果開發人員 更喜歡編寫自己的 Verilog 或者已準備好該文件,則可以將其作為模塊直接導入工具。
圖 2——已打開相移鍵控(PSK)示例的 CLB 合成器
CLB 合成器的輸出是一個彙編文件,其中包含用於設置 CLB 的比特流和一些用於將 CLB 配置為外設的源代碼。該工具可通過 MPLAB®代碼配置器(MCC)或獨立在線工具運行。MCC 是一款代碼生成實用程序,允許用戶使用可視化界麵來設置和配置單片機中的 外設。當硬件外設完成配置後,MCC 將生成初始化代碼和器件 API。
在運行時,使用板上硬件直接從程序存儲器加載 CLB 比特流。這種實現的好處在 於如果在程序運行時需要更改 CLB 配置,則可以使用存儲在器件存儲器中的不同比特流 重複執行加載過程。
為了演示 CLB 的應用,我們創建了一係列用例示例。這裏我們將討論兩個示例:7 段顯示轉換器和 SPI 至 WS2812 轉換器。用例示例可作為構件複製以用作完整解決方案的 一部分。這裏旨在展示該外設的實用性以及它能夠為設計帶來哪些價值。
第一個用例是 7 段顯示轉換器。7 段顯示器可通過一組普通的 I/O 引腳驅動,但標 準實現通常需要使用軟件定義的查找表將輸入數字轉換為適合顯示器的正確輸出模式。在 該實現中,CLB 充當硬件查找表。所需的輸出字符(0 到 F)從軟件加載到 CLB 輸入寄存 器中。顯示器的每個輸出段均由 LUT 控製,以將輸入映射到輸出。
該用例示例在內部用於構建計時係統的新控製板。最初的用戶界麵是在 20 世紀 80 年代使用 74'HC 係列邏輯開發。使用 CLB 後,一個 20 引腳的單片機即可實現電路板上的 顯示和鍵盤邏輯,極大地精簡了物料清單(BOM)。圖 3 並排給出了兩種方案以供比較。
圖 3——原 PCB 與新 PCB 的並排比較。該示例由 Josh Booth 開發。
下一個示例是 SPI 至 WS2812 轉換器。WS2812 是一種單線串行協議,用於通過脈 寬調製控製 LED 陣列。
在本例中,SPI 硬件用作要發送到 LED 的數據的移位寄存器,而 CLB 用於將 SCLK 和 SDO 轉換為預期的輸出。 在本例中,這是通過單觸發 3 位計數器、帶使能功能的 D 鎖存器和 4 輸入 LUT 來 實現,如下麵的圖 4 所示。該實現的技巧體現在 SPI 和 CLB 的時鍾源。SPI 時鍾設置為空 閑高電平、在上升沿改變狀態並以 WS2812 輸出的頻率(800 kHz)運行,而 CLB 的時鍾 源以前者 10 倍的頻率(8 MHz)運行。當 SCLK 為低電平時,將觸發 3 位計數器並開始計 數。當計數到 7(0b111)時,3 位計數器將停止並保持為 0,直到時鍾脈衝的下一個低電 平周期為止。
計數器的輸出與輸出數據的鎖存版本一起饋入 4 輸入 LUT。這將設置數據的輸出模 式,如圖 4 的右側所示。計數器複位後,計數器輸出將保持為 0 以完成循環。之後,可 根據需要發送 SPI 硬件中的下一個字節,重複該循環。
圖 4——SPI 至 WS2812 轉換器框圖(由 Petre Teodor-Emilian 開發)
這兩個示例都證明了單片機內部分立邏輯的優勢。硬件外設可將 CPU 從各種任務 中解放出來,從而縮短響應時間並降低功耗,同時減少元器件數量。有了 CLB,之前無法 在單片機內部實現的複雜應用現在都可以順利開發。目前,可前往 Microchip 直銷網站或 其他代理商處購買 PIC16F13145 係列單片機來獲取 CLB。
Robert Perkel 是 Microchip 的一名應用工程師。他主要負責編輯應用筆記,投稿文章和視頻等技術內容,以 及分析外設的用例和開發代碼示例與演示。Perkel 畢業於弗吉尼亞理工大學,獲得了計算機工程理學學士學位。
(來源:Microchip Technology Inc.,作者:8 位單片機業務部應用工程師Robert Perkel)
免責聲明:本文為轉載文章,轉載此文目的在於傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯係小編進行處理。
推薦閱讀:
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
- 1200餘家企業齊聚深圳,CITE2026打造電子信息產業創新盛宴
- 掌握 Gemini 3.1 Pro 參數調優的藝術
- 築牢安全防線:電池擠壓試驗機如何為新能源產業護航?
- Grok 4.1 API 實戰:構建 X 平台實時輿情監控 Agent
- 電源芯片國產化新選擇:MUN3CAD03-SF助力物聯網終端“芯”升級
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall




