微控制器的Bank分割槽機制

2021-10-14 15:17:00 字數 904 閱讀 3543

在前段時間做了乙個專案,使用的為中穎8位微控制器,型號為sh79f166a。碰到了乙個有趣的機制,即分割槽機制。

該微控制器的特殊功能暫存器分為bank0和bank1兩個扇區,每個扇區的位址均是80h到ffh,每個位址與gpio,定時器,pwm等相關。相同的位址在不同的扇區內可能代表不同的功能,比如p0cr(控制埠p0的輸入輸出模式)和p5cr的位址都是e1h,但是p0cr位於bank0,而p5cr位於bank1。如果在操作p5cr之前沒有進行切換扇區的操作,那麼對p5cr的操作就只是對p0cr的操作。而不會對p5cr產生影響。

那麼如何切換扇區呢?是否有其它暫存器控制切換扇區的操作呢?如果有的話,該暫存器位於兩個扇區中,還是位於兩個扇區外呢?在沒有尋找到該暫存器的時候,我們就應該意識到,肯定存在暫存器控制切換扇區的操作,因為對微控制器的底層的操作歸根結底是對微控制器底層的暫存器的操作,通過改變暫存器的狀態來影響微控制器的cpu的運算,從而產生不同的輸出結果。那麼現在問題的關鍵就是找到控制切換扇區的暫存器,利用bank這一關鍵字在sh79f166a的晶元手冊中進行查詢,並未查詢到可以用來控制bank0和bank1切換的暫存器。最終查了好久,在cpu所屬的暫存器章節中找到該暫存器。可以通過inscon位的bks0暫存器竄則特殊功能暫存器頁0和頁1,也就是bank0和bank1。並且,inscon位於bank0和bank1這兩個扇區之外。

最終,說明一下為什麼要進行bank0和bank1的分割槽,正常情況下,8位微控制器所能進行的定址是有限的,如果僅有乙個分割槽,那麼可用的特殊功能暫存器數量就會減少許多。而如果擴為16位暫存器,無疑微控制器設計將會更加麻煩。在這兩個中尋找乙個平衡點,採用8位暫存器加上分頁的設定,設定兩個頁,通過先頁碼後暫存器的訪問就可以實現在微控制器位數的限制下存在更多的特殊功能暫存器。

單片微控制器

微控制器又稱單片微控制器,它不是完成某乙個邏輯功能的晶元,而是把乙個計算機系統整合到乙個晶元上。相當於乙個微型的計算機,和計算機相比,微控制器只缺少了i o裝置。概括的講 一塊晶元就成了一台計算機。它的體積小 質量輕 便宜 為學習 應用和開發提供了便利條件。同時,學習使用微控制器是了解計算機原理與結...

單片微控制器

微控制器又稱單片微控制器,它不是完成某乙個邏輯功能的晶元,而是把乙個計算機系統整合到乙個晶元上。相當於乙個微型的計算機,和計算機相比,微控制器只缺少了i o裝置。概括的講 一塊晶元就成了一台計算機。它的體積小 質量輕 便宜 為學習 應用和開發提供了便利條件。同時,學習使用微控制器是了解計算機原理與結...

微控制器及微控制器系統

微控制器及微控制器系統 1 什麼是微控制器?微控制器是將 處理器 cpu 隨機儲存器 ram 唯讀儲存器 rom或eprom 定時器晶元和一些輸入 輸出介面電路整合在乙個晶元上的微控制器 microcontroller 處理器包括運算器 控制器和暫存器3個主要部分,是微控制器的核心。儲存器按工作方式...