大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是恩智浦i.MX RT1xxx系列上的XBAR外設。
得益于 Arm Cortex-M 內核的普及,現如今 MCU 廠商遍地開花,只要能取得內核授權,再去 OpenCores 開源網站或者直接第三方 IP 公司買一些通用的外設模塊拼拼湊湊就能快速設計出一顆最基礎的 MCU,但是這樣的 MCU 在市場上顯然競爭力不夠,那么如何才能增加產品本身的競爭力呢?那就需要再給 MCU 附上獨一無二的特性。
恩智浦公司深耕半導體行業幾十年,無數工程師嘔心瀝血設計出了非常多穩定又可靠的外設模塊,其中既有行業通用的基礎外設(即使是基礎外設,也包含了獨特功能),也有獨屬于恩智浦的"浪漫"外設,正是這些外設構筑起了恩智浦 MCU 的行業地位。
如果要票選出恩智浦 MCU 里最“浪漫”外設,本文要介紹的 XBAR 必定會在入圍名單里。本系列痞子衡將會帶大家逐步深入探究 XBAR 模塊,領略她的獨特魅力。本文是第一篇,我們先來對她有個感性認識。
一、XBAR外設來源
熟悉 i.MXRT 尤其是 RT1xxx 產品的朋友應該都知道該系列脫胎于 i.MX6 處理器平臺,XBAR 是 RT1xxx 上必備外設,然而 XBAR 并不存在于 i.MX 上,看到這你可能以為 XBAR 是在 i.MX RT 上全新設計的,但其實并不是!
如果你對恩智浦(尤其是飛思卡爾)足夠了解,你會在 MC9S08 系列、MC56F8xxx 系列、Kinetis KV/KM 系列、S32 汽車平臺、MPC5xxx 系列等多個產品上看到 XBAR 倩影,這其實是一個非常經典的外設。
如果非要找出最早引入 XBAR 模塊的產品,極有可能是十幾年前飛思卡爾推出的 DSC 系列 MC56F82xx。DSC 產品主要面向電源轉換、電機控制市場,產品內部有多通道 ADC 以及各種類型 Timer,從這里可以初步推測 XBAR 非常適用與這些外設配合使用。
二、什么是XBAR?
XBAR 是 Inter-Peripheral Crossbar Switch 的簡稱,可以理解為是在指定的片內外設信號以及 I/O 之間加了一個交叉開關矩陣,可以自由地連接它們的輸入輸出。下圖是最簡單的 RT1010 上 XBAR 實現:
黃色框圖統稱交叉開關網絡,由 XBAR 和 AOI 組成,黃框左邊是全部的輸入信號源,右邊是全部的輸出信號。XBAR 的每個輸出選項均可配置來自于任一輸入源,此外同一輸入源可以同時配置給多個輸出信號。
Note:AOI 是 And-Or-Inverter 的縮寫,也就是與非門,AOI 可以進一步豐富 XBAR 輸入信號的組成形式。
實際上這個整體系統框圖已經可以讓我們初步感受到 XBAR 的作用了,我們不妨大膽猜想 XBAR 如下應用場景,后續文章痞子衡將帶大家逐一探索這些場景。
- 場景1:將輸入輸出兩端 I/O PAD 直連形成通路(注意可能會有傳輸延時)
- 場景2:將 FlexPWM1 信號連到 I/O PAD 上(假設這個 I/O 本身不具備 FlexPWM 復用功能)
- 場景3:將 PIT 信號連到 LPI2C/SPI/UART 模塊定時觸發傳輸
- 場景4:將 ADC 數據送到 eDMA (多通道數據放在不同地址)
- 場景5:將輸入輸出兩端 eDMA 通道級聯 (最多可實現4級)
- 場景6:將外設觸發信號連到 XBAR 中斷(用于調試時觀測)
至此,恩智浦 i.MXRT1xxx 系列上的 XBAR 初步介紹痞子衡便介紹完畢了,掌聲在哪里~~~