1 何謂硬體加速器
在 NXP 部份的 MCU 有內含 硬體加速器,一般稱為 EZH ( Easy Handler ),如果要更多的說明,
請查閱 【阿福的隨筆】何謂硬體加速器_V1.0
硬體加速器一般來說是可以使用在哪裡呢?
只要是屬於重複性質的,都可以使用 硬體加速器來做
以下的應用場景的範例說明=>
(1) 協議的轉換,例如 : RGB565 換成 RGB888 ,RGB888 變成 RGB565,Bitmap圖像有多種數據格式,
- 兩種常見的格式是16位彩色RGB565和實色RGB888。一般在 MCU 處理的是 RGB565 但有些 Panel
- 可能只支援 RGB888 的 DMA ,這時就可以使用 EZH 來將 Memory 做協議的轉換
(2) 格式的轉換,例如 : HEX to BIN,電腦通常傳送 HEX 16進制格式,因為內含燒錄位址和 checksum,
- 若是需要 bin 來做燒錄或是其它的用途,也可以使用 EZH 來將 Memory 做格式的轉換,
- 或是反過來計算 每16 bytes 的 checksum ,都是可以做的到的,而且不需額外占用到 MCU 的 Loading
(3) I/O設定或判斷,例如 : ①重複性的按鍵掃描,②邊緣觸發加處理機制
- ①重複性的按鍵掃描:例如鍵盤或是 滑鼠上的複合按鍵,都需要定時去偵測按鍵是否有被按下,
- 所以若是由 EZH 中斷告知變更,這就省去要定時 Polling 的時間
- ②邊緣觸發加處理機制:例如有外部中斷的Sensor 或是另一個要 handshaking 的MCU ,
- 在有需求或是變更時,會先將 GPIO 發出一個邊緣觸發的波形,做為開始的信號,
- 若是由 EZH 中斷告知變 更,並做一些後續的處理,MCU 就會能更快速的將 EZH 處理過
- 的資料再分析做出相對應的程式規劃,類似 GPIO 中斷的擴充應用。
(4) Register 的處理,例如 : polling Register 並變更通知,想要等待某個 暫存器 在特定數值的時候,
- 發出一個中斷來通知,這種需要一直重複 check register value 的,也很適合使用 EZH 來做背景處理,
- 等條件成立時,再發出中斷來通知 MCU
(5) 特定的數位波形模擬,這跟 I/O 設定一樣,只是一次控制多 pin ,來產生所需的數位波形
(6) 記憶體計算,例如:要做一塊記憶體的 CRC8/16 的運算時,也可以使用 EZH ,但因為需要稍為複雜的計算,
- 所以也需要較複雜的程式,但若是使用 CRC32 ,所需要基數是 33bits,跟架構上的32 bits 不符合,
- 會更加難以撰寫,就不建議使用 EZH 了。
評論