《嵌入式系统设计 -Ch06_系统整合单元.pdf》由会员分享,可在线阅读,更多相关《嵌入式系统设计 -Ch06_系统整合单元.pdf(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、嵌入式系統硬體架構設計 第章第章 系統整合單元系統整合單元 這一章將描述系統整合單元(SIU)。SIU 控制幾種處器的系統功能,SIU 包含的單元有:?多用途 I/O 埠?中斷控制器?即時時脈(clock)?作業系統計時器?脈衝寬調節器 6.1 多用途 I/O 6.1 多用途 I/O PXA250 應用處器透過 27 個暫存器的使用,如設置針腳方向(輸入或輸出)、針腳功能、針腳態(只能輸出)、針腳標準偵測(只能輸入)、和選擇交替的功能,藉此觸發或控制多用途 I/O(GPIO)的 81 個針腳。照 2-26 頁表格 2-11PXA210 應用處器支援的訊號即為 PXA210 支援的訊號表。GPI
2、O的其中一個部分可以讓應用處器開睡眠模式。注意當選擇某個 GPIO 的針腳就是指定某一個 GPIO 的功能,因為 GPIO 的許多針腳有交替的功能,而且可以被設置為可支援應用處器的周邊設備。將未使用的 GPIO 設置為輸出,可以將電源的消耗到最低。6.1.1 GPIO 的操作 6.1.1 GPIO 的操作 PXA250應用處器提供81個GPIO的針腳產生及捕捉指定的輸入及輸出訊號。每一個針腳都可以被設計成輸入或輸出。當設計成輸入時,GPIO 也可以被當作一中斷源。當全部都是重置(reset)時,81 個針腳被設置為輸入,並且持續當作輸入直到他們被設置成其他態。使用 GPIO 針腳方向暫存器(G
3、PDR)設定 GPIO 針腳為輸出或輸入。當設定為輸出時,寫入GPIO針腳輸出設定暫存器(GPSR)將針腳設定為High;寫入GPIO針腳輸出清除暫存器(GPCR)則將針腳清除為 Low。針腳是被設置為輸入或輸出,設定和清除暫存器都可以被寫入。如果針腳被設置為輸入,當針腳被重新設置為輸出時,就會變為輸出態。取GPIO針腳標準暫存器(GPLR)可以確認每一個GPIO針腳的態。你可以隨時取這個暫存器確認針腳的態。另外,使用GPIO正緣偵測觸發暫存器(GRER)和GPIO負緣偵測觸發暫存器(GFER)偵測每一個針腳是正緣或是負6-1 嵌入式系統硬體架構設計 緣。使用GPIO邊緣偵測態暫存器(GEDR
4、)取邊緣偵測態。你可以設計這些邊緣偵測產生中斷(考 4.2 節中斷控制器)。並且使用GPIO15:0產生喚醒事件讓PXA250 應用處器開睡眠模式(考 3-17 頁 3.4.8.5 節開睡眠模式)。當應用處器進入睡眠模式,電源管睡眠態暫存器(PGSR0,PGSR1,及 PGSR2)的內容會載入到輸出資暫存器。如果這個特殊的針腳被設定為輸出,那 PGSR 內的值將在進入睡眠模式前被迫傳到此針腳。當應用處器開睡眠模式,這些值會持續傳送直到 GPIO 針腳重新設定為寫入 GPDR、GPSR、GPCR,並且設定電源管睡眠態暫存器(PSSR)中的 GPIO 位元,指示開睡眠模式後 GPIO 暫存器已經被
5、重新初始化。這是必須的步驟,因為 GPIO 輯在睡眠模式中失去電。在這個應用處器中,大部分的GPIO針腳也可以當作其他交替的功能。在序控制器和LCD控制器的幾種模式中,需要額外的針腳。這些功能是在指定的GPIO針腳中加入硬體線(hardwired),他們的功能將在以下幾章中明。即使一個GPIO針腳用在其他交替的功能,你必須仍能透過GPDR設計此針腳適當的方向。其他交替功能的詳細內容將在 4.1.2 節GPIO交替的功能中提出。圖 4-1為一個GPIO針腳的區塊圖。6.1.2 GPIO 交替的功能 6.1.2 GPIO 交替的功能 GPIO針腳可以包含高達種交替的功能,可以藉此驅動應用處器中其他
6、的功能。如果一個GPIO用當作交替的功能,那他就能在同一時間被用6-2 嵌入式系統硬體架構設計 當作GPIO。GPIO0是保的,因為他在睡眠模式中有特殊的用途,所以能給交替的功能使用。GPIO15:0的功能是從睡眠模式中被喚醒。這個喚醒的功能在6-17頁3.4.8.5節開睡眠模式已經解釋過。表4-1顯示每個GPIO針腳以及他對應的交替功能。要瞭解交替功能多資訊,請考表4-1中對應的Source Unit。注意:注意:表格中深色部分表示支援 PXA210 應用處器。表表 6-1 GPIO 交替功能交替功能 6.1.2.1 PXA210 應用處器操作上的限制 6.1.2.1 PXA210 應用處器
7、操作上的限制 在 PXA210 中,以下幾個 GPIO 針腳是可使用的:?GPIO14:2?GPIO22:19?GPIO38:35?GPIO41:40 注意:注意:因為 GPIO14:2在 PXA210 應用處器中是可使用的,只有 GPIO15和 GPIO1:0可以用當作從睡眠模式中喚醒的功能。6.1.3 GPIO 暫存器定義暫存器定義 GPIO控制區塊中總共有27個32位元的暫存器。總共有九個同的暫存器功能,共有三組這種九個暫存器供給81個GPIO針腳使用。對應到每個GPIO的九個暫存器的各種功能描述如下:?三個監控針腳態(GPLR)?個控制輸出針腳的態(GPSR,GPCR)?三個控制針腳方
8、向(GPDR)?個控制和偵測正緣及/或負緣(GRER&GFER)?三個指示當針腳上指定的邊緣型已經被偵測到(GEDR)?個決定針腳是用當作一般的GPIO,或是被用當作三個可能的交替功能之一的功能(GAFR_L,GAFR_U)表表6-2 GPIO暫存器定義暫存器定義 暫存器種暫存器種 暫存器功能暫存器功能 GPIO15:0 GPIO31:16GPIO47:32GPIO63:48 GPIO79:64GPIO80GPLR 監GPLR0 GPLR1 GPLR2 6-3 嵌入式系統硬體架構設計 控針腳態 GPSR GPSR0 GPSR1 GPSR2 GPCR 控制輸出針腳態 GPCR0 GPCR1 GP
9、CR2 GPDR 設定針腳方向 GPDR0 GPDR1 GPDR2 GRER GRER0 GRER1 GRER2 GFER 偵測正/負緣 GFER0 GFER1 GFER2 GEDR 偵測邊緣種 GEDR0 GEDR1 GEDR2 GAFR 設定交替功能 GAFR0_L GAFR0_U GAFR1_L GAFR1_U GAFR2_L GAFR2_U注意:注意:對交替功能暫存器而言,_L表示較低的16個GPIO交替功能被設置,_U表6-4 嵌入式系統硬體架構設計 示較高的16個GPIO交替功能被設置。注意:注意:GPLR231:17,GPSR231:17,GPCR231:17,GPDR231:1
10、7,GRER231:17,GFER231:17,GEDR231:17和 GAFR2_U31:2是保位元。將這些位元寫入 0 並且忽這些位元的取。注意:注意:全部的 GPIO 暫存器在重置(reset)時被初始設定為 0 x0,並導致全部 GPIO針腳被初始為輸入。6.1.3.1 GPIO 針腳標準暫存器針腳標準暫存器(GPLR)藉由取 GPIO 針腳標準暫存器(GPLR)檢查每一個 GPIO 針腳的態。GPLR 中的每一個位元對應到 GPIO 的每一個針腳。GPLR031:0對應到GPIO31:0,GPLR131:0對應到 GPIO63:32,GPLR216:0對應到 GPIO80:64。使用
11、 GPLR0-2 唯暫存器決定特定的針腳(管設定好的針腳的方向)當時的值。對於保的位元(GPLR231:17),取傳回值。由表 4-3 到表 4-5 表示 GPIO 針腳標準暫存器的腳位圖。表表 6-3 GPLR0 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_0000 GPIO 針腳標準暫存器 0(GPLR0)SysInt 位元 名稱 描述 PLx GPIO 針腳標準 x(x=0 to 31).唯的區域指示每一個 GPIO 當時的值。0=針腳態為 low 1=針腳態為 high 表表 6-4 GPLR1 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_0004 GPIO 針腳標準暫
12、存器 1(GPLR1)SysInt 位元 名稱 描述 PLx GPIO 針腳標準 x(x=32 to 63).唯的區域指示每一個 GPIO 當時的值。0=針腳態為 low 6-5 嵌入式系統硬體架構設計 1=針腳態為 high 表表 6-5 GPLR2 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_0008 GPIO 針腳標準暫存器 2(GPLR2)SysInt 位元 名稱 描述 保 PLx GPIO 針腳標準 x(x=64 to 80).唯的區域指示每一個 GPIO 當時的值。0=針腳態為 low 1=針腳態為 high 6.1.3.2 GPIO 針腳方向暫存器針腳方向暫存器(GPDR
13、)每個針腳的輸入或輸出是靠設定 GPIO 針腳方向暫存器(GPDR0,GPDR1,GPDR2)控制的。GPDR 暫存器對 GPIO 的 81 個針腳都包含一個方向控制位元。如果方向位元設定為 1,這個 GPIO 就是輸出。如果設定為 0,就是輸入。保位元(GPDR231:17)必須被寫入 0,並且取到保位元時必須被忽。注意:注意:一個重置(reset)會將GPDR0-2暫存器的位元清除為0,並且設定GPIO全部針腳為輸入。由表 6-6 到表 6-8 表示 GPIO 針腳方向暫存器的腳位圖。表表 6-6 GPDR0 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_000C GPIO 針腳方向
14、暫存器 0(GPDR0)SysInt 位元 名稱 描述 PDx GPIO 第x個針腳方向 (x=0 to 31).0=針腳設定為輸入 1=針腳設定為輸出 表表 6-7 GPDR1 暫存器腳位圖暫存器腳位圖 6-6 嵌入式系統硬體架構設計 實體位址:0 x40E0_0010 GPIO 針腳方向暫存器 1(GPDR1)SysInt 位元 名稱 描述 PDx GPIO 第x個針腳方向 (x=32 to 63).0=針腳設定為輸入 1=針腳設定為輸出 表表 6-8 GPDR2 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_0014 GPIO 針腳方向暫存器 2(GPDR2)SysInt 位元 名
15、稱 描述 保 PDx GPIO 第x個針腳方向 (x=64 to 80).0=針腳設定為輸入 1=針腳設定為輸出 6.1.3.3 GPIO 針腳輸出設置暫存器針腳輸出設置暫存器(GPSR)及針腳輸出清除暫存器及針腳輸出清除暫存器(GPCR)當一個GPIO被設定為輸出,你藉由寫入GPIO針腳輸出設置暫存器(GPSR)或GPIO針腳輸出清除暫存器(GPCR)控制這個針腳的態。一個輸出的針腳被設定為High,是藉由寫入1到他GPSR中對應的位元。要清除一個輸出的針腳,寫入1到GPCR中對應的位元。GPSR和GPCR都是唯寫的暫存器。取會傳回一個無法預的值。寫入一個0到GPSR或GPCR的任一位元對於
16、針腳的態是沒有影響的。寫入一個1到GPSR或GPCR位元,其對應到的針腳會被設定為輸入,這只有當此針腳被設定為輸出之後才有效。保位元(GPSR231:17及GPCR231:17)必須被寫入0並且取時必須被忽。由表6-9到表6-11表示GPIO針腳輸出設置暫存器的腳位圖。由表6-12到表6-14表示GPIO針腳輸出清除暫存器的腳位圖。表表 6-9 GPSR0 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_0018 GPIO 針腳輸出設置暫存器 0(GPSR0)SysInt 6-7 嵌入式系統硬體架構設計 位元 名稱 描述 PSx GPIO 第x個針腳輸出設置 (x=0 to 31).0=針
17、腳態受影響 1=如果針腳設定為輸出,將針腳的態設為 High(1)表表 6-10 GPSR1 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_001C GPIO 針腳輸出設置暫存器 1(GPSR1)SysInt 位元 名稱 描述 PSx GPIO 第x個針腳輸出設置 (x=32 to 63).0=針腳態受影響 1=如果針腳設定為輸出,將針腳的態設為 High(1)表表 6-11 GPSR2 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_0020 GPIO 針腳輸出設置暫存器 2(GPSR2)SysInt 位元 名稱 描述 保 PSx GPIO 第x個針腳輸出設置 (x=64 to 8
18、0).0=針腳態受影響 1=如果針腳設定為輸出,將針腳的態設為 High(1)表表 6-12 GPCR0 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_0024 GPIO 針腳輸出清除暫存器 0(GPCR0)SysInt 6-8 嵌入式系統硬體架構設計 位元 名稱 描述 PCx GPIO 第x個針腳輸出清除 (x=0 to 31).0=針腳態受影響 1=如果針腳設定為輸出,將針腳的態清除為 Low(0)表表 6-13 GPCR1 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_0028 GPIO 針腳輸出清除暫存器 1(GPCR1)SysInt 位元 名稱 描述 PCx GPIO 第
19、x個針腳輸出清除 (x=32 to 63).0=針腳態受影響 1=如果針腳設定為輸出,將針腳的態清除為 Low(0)表表 6-14 GPCR2 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_002C GPIO 針腳輸出清除暫存器 2(GPCR2)SysInt 位元 名稱 描述 保 PCx GPIO 第x個針腳輸出清除 (x=64 to 80).0=針腳態受影響 1=如果針腳設定為輸出,將針腳的態清除為 Low(0)6.1.3.4 GPIO 正緣偵測觸發暫存器正緣偵測觸發暫存器(GRER)與負緣偵測觸發暫存器與負緣偵測觸發暫存器(GFER)每一個GPIO也可以設定偵測針腳上的正緣、負緣、或
20、是任何一個轉變態。當偵測到的邊緣型態與該針腳設定的邊緣型態符合時,就會設置(set)一個態位元(status bit)。中斷控制器可以被設定為當任何一個態位元被設置時就會有中斷訊號通知核心。除此之外,中斷控制器可以設定為當這些態位元的集合被設置時,會導致此應用處器從睡眠模式中被喚醒。考3-14 頁 3.4.8 節睡眠模式及3-26 頁 3.5.6 節電源管GPIO邊緣偵測態暫存器,可以得到多關於態位元導致從睡眠模式中喚醒的資訊。使用 GPIO 正緣偵測觸發暫存器(GRER)和負緣偵測觸發暫存器(GFER)選6-9 嵌入式系統硬體架構設計 擇 GPIO 針腳轉變的型,這些型是取決於 GPIO 邊
21、緣偵測觸發暫存器(GEDR)中其中一個位元被設置而得到的。給定一個 GPIO 針腳,他對應的 GRER 位元被設置,當針腳從輯的 0 轉變成輯的 1,導致一個 GEDR 態位元被設置。同樣的,GFER 是用設置對應的 GEDR 態位元當從輯的 1 轉變成輯的 0態發生時。當對應的位元在個暫存器中被設置時,正緣或負緣轉變導致對應的 GEDR 態位元被設置。注意:注意:最小的脈衝寬持續時間保證邊緣偵測為1S.由表4-15到表4-17表示GPIO正緣偵測觸發暫存器的腳位圖。由表4-18到表4-20表示 GPIO 負緣偵測觸發暫存器的腳位圖。注意:注意:GRER2 和 GFER2 中的保位元,寫入必須
22、為 0 且取必須被忽。表表 6-15 GRER0 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_0030 GPIO 正緣偵測觸發暫存器 0(GRER0)SysInt 位元 名稱 描述 REx GPIO 第x個針腳正緣偵測觸發 (x=0 to 31).0=取消正緣偵測 1=當 GPIO 針腳偵測到一個正緣發生時,設置對應的GEDR 態位元 表表 6-16 GRER1 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_0034 GPIO 正緣偵測觸發暫存器 1(GRER1)SysInt 位元 名稱 描述 REx GPIO 第x個針腳正緣偵測觸發 (x=32 to 63).0=取消正緣偵測
23、1=當 GPIO 針腳偵測到一個正緣發生時,設置對應的GEDR 態位元 表表 6-17 GRER2 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_0038 GPIO 正緣偵測觸發暫存器 2(GRER2)SysInt 6-10 嵌入式系統硬體架構設計 位元 名稱 描述 保 REx GPIO 第x個針腳正緣偵測觸發 (x=64 to 80).0=取消正緣偵測 1=當 GPIO 針腳偵測到一個正緣發生時,設置對應的GEDR 態位元 表表 6-18 GFER0 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_003C GPIO 負緣偵測觸發暫存器 0(GFER0)SysInt 位元 名稱 描
24、述 FEx GPIO 第x個針腳負緣偵測觸發 (x=0 to 31).0=取消負緣偵測 1=當 GPIO 針腳偵測到一個負緣發生時,設置對應的GEDR 態位元 表表 6-19 GFER1 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_0040 GPIO 負緣偵測觸發暫存器 1(GFER1)SysInt 位元 名稱 描述 FEx GPIO 第x個針腳負緣偵測觸發 (x=32 to 63).0=取消負緣偵測 1=當 GPIO 針腳偵測到一個負緣發生時,設置對應的GEDR 態位元 表表 6-20 GFER2 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_0044 GPIO 負緣偵測觸發暫
25、存器 2(GFER2)SysInt 6-11 嵌入式系統硬體架構設計 位元 名稱 描述 保 FEx GPIO 第x個針腳負緣偵測觸發 (x=64 to 80).0=取消負緣偵測 1=當 GPIO 針腳偵測到一個負緣發生時,設置對應的GEDR 態位元 6.1.3.5 GPIO 邊緣偵測態暫存器邊緣偵測態暫存器(GEDR)GPIO 邊緣偵測態暫存器(GEDR0,GEDR1,GEDR2)包含總共 81 個態位元對應到 81 個 GPIO 針腳。當一個邊緣偵測發生在一個針腳上並且符合 GERE和/或 GFER 暫存器中設定的邊緣型,在 GEDR 中對應的態位元將被設置。一旦 GEDR 位元被一個邊緣事
26、件設置後,這個位元會保持設置直到使用者在態位元中寫入 1 清除它。在 GEDR 態位元中寫入 0 是沒有效用的。每個邊緣偵測從 GPIO80:0設置對應的 GEDR 態位元可以觸發一個中斷請求。GPIO80:2共同形成一個群組,當 GEDR80:2任何一個被設置時,它可以導致一個中斷請求被觸發。GPIO0和 GPIO1導致獨的第一等級(first-level)中斷。考 4-22 頁 4.2 節中斷控制器,有 GPIO 中斷設定的描述。由表 6-21 到表 6-23 表示 GPIO 邊緣偵測態暫存器的腳位圖。表表 6-21 GEDR0 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_0048
27、 GPIO 邊緣偵測態暫存器 0(GEDR0)SysInt 位元 名稱 描述 EDx GPIO 第x個針腳邊緣偵測態 (x=0 to 31).取 0 GRER 和/或 GFER 指定的針腳沒有邊緣偵測發生 1 GRER 和/或 GFER 指定的針腳有邊緣偵測發生 寫入 0 沒有效用 6-12 嵌入式系統硬體架構設計 1 清除邊緣偵測態位 表表 6-22 GEDR1 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_004C GPIO 邊緣偵測態暫存器 1(GEDR1)SysInt 位元 名稱 描述 EDx GPIO 第x個針腳邊緣偵測態 (x=32 to 63).取 0 GRER 和/或 G
28、FER 指定的針腳沒有邊緣偵測發生 1 GRER 和/或 GFER 指定的針腳有邊緣偵測發生 寫入 0 沒有效用 1 清除邊緣偵測態位 表表 6-23 GEDR2 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_0050 GPIO 邊緣偵測態暫存器 2(GEDR2)SysInt 位元 名稱 描述 保 EDx GPIO 第x個針腳邊緣偵測態 (x=64 to 80).取 0 GRER 和/或 GFER 指定的針腳沒有邊緣偵測發生 1 GRER 和/或 GFER 指定的針腳有邊緣偵測發生 寫入 0 沒有效用 1 清除邊緣偵測態位 6.1.3.6 GPIO 交替功能暫存器交替功能暫存器(GAFR
29、)GPIO 交替功能暫存器(GAFR2,GAFR1,GAFR0)包含選擇的位元對應到 81 個GPIO 針腳。每個 GPIO 可以設定為 GPIO 的針腳,三個交替的輸入功能之一,或是三個交替的輸出功能之一。要選擇任何一個交替的功能,GPDR 暫存器必須設定 GPIO 當作輸入。相同地,只有 GPIO 被 GPDR 設定當作輸出,才可以設定6-13 嵌入式系統硬體架構設計 為交替的輸出功能。每個 GPIO 針腳分配到一對的位元,他的值決定此 GPIO 的功能(一般 GPIO,交替功能 1,交替功能 2 或交替功能 3)。選擇的功能是決定在寫入 GAFR 的成對位元,如下:00表示一般 GPIO
30、 功能 01選擇交替輸入功能 1(ALT_FN_1_IN)或交替輸出功能1(ALT_FN_1_OUT)10選擇交替輸入功能 2(ALT_FN_2_IN)或交替輸出功能2(ALT_FN_2_OUT)11選擇交替輸入功能 3(ALT_FN_3_IN)或交替輸出功能3(ALT_FN_3_OUT)由表 6-24 到表 6-29 表示 GPIO 交替功能暫存器的腳位圖。警告:警告:設定 GPIO 去對應到交替的功能是可的,因為會產生確定的結果。表表 6-24 GAFR0_L 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_0054 GPIO 交替功能暫存器 0 Lower(GAFR0_L)SysIn
31、t 位元 名稱 描述 AFx GPIO 第x個針腳交替功能選擇位元 (x=0 to 15).在暫存器中的一對位元決定對應的GPIO針腳功能為對應的交替功能之一或是一般的GPIO針腳 00對應到的GPIO針腳(GPIOx)是當作一般用途的I/O 01對應到的GPIO針腳(GPIOx)是當作交替功能1 10對應到的GPIO針腳(GPIOx)是當作交替功能2 11對應到的GPIO針腳(GPIOx)是當作交替功能3 表表 6-25 GAFR0_U 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_0058 GPIO 交替功能暫存器 0 Upper(GAFR0_U)SysInt 位元 名稱 描述 AF
32、x GPIO 第x個針腳交替功能選擇位元 (x=16 to 31).在暫存器中的一對位元決定對應的GPIO針腳功能為對應的交替功能之一或是一般的GPIO針腳 6-14 嵌入式系統硬體架構設計 00對應到的GPIO針腳(GPIOx)是當作一般用途的I/O 01對應到的GPIO針腳(GPIOx)是當作交替功能1 10對應到的GPIO針腳(GPIOx)是當作交替功能2 11對應到的GPIO針腳(GPIOx)是當作交替功能3 表表 6-26 GAFR1_L 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_005C GPIO 交替功能暫存器 1 Lower(GAFR1_L)SysInt 位元 名稱
33、描述 AFx GPIO 第x個針腳交替功能選擇位元 (x=32 to 47).在暫存器中的一對位元決定對應的GPIO針腳功能為對應的交替功能之一或是一般的GPIO針腳 00對應到的GPIO針腳(GPIOx)是當作一般用途的I/O 01對應到的GPIO針腳(GPIOx)是當作交替功能1 10對應到的GPIO針腳(GPIOx)是當作交替功能2 11對應到的GPIO針腳(GPIOx)是當作交替功能3 表表 6-27 GAFR1_U 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_0060 GPIO 交替功能暫存器 1 Upper(GAFR1_U)SysInt 位元 名稱 描述 AFx GPIO
34、第x個針腳交替功能選擇位元 (x=48 to 63).在暫存器中的一對位元決定對應的GPIO針腳功能為對應的交替功能之一或是一般的GPIO針腳 00對應到的GPIO針腳(GPIOx)是當作一般用途的I/O 01對應到的GPIO針腳(GPIOx)是當作交替功能1 10對應到的GPIO針腳(GPIOx)是當作交替功能2 11對應到的GPIO針腳(GPIOx)是當作交替功能3 表表 6-28 GAFR2_L 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_0064 GPIO 交替功能暫存器 2 Lower(GAFR2_L)SysInt 6-15 嵌入式系統硬體架構設計 位元 名稱 描述 AFx
35、GPIO 第x個針腳交替功能選擇位元 (x=64 to 79).在暫存器中的一對位元決定對應的GPIO針腳功能為對應的交替功能之一或是一般的GPIO針腳 00對應到的GPIO針腳(GPIOx)是當作一般用途的I/O 01對應到的GPIO針腳(GPIOx)是當作交替功能1 10對應到的GPIO針腳(GPIOx)是當作交替功能2 11對應到的GPIO針腳(GPIOx)是當作交替功能3 表表 6-29 GAFR2_U 暫存器腳位圖暫存器腳位圖 實體位址:0 x40E0_0068 GPIO 交替功能暫存器 2 Upper(GAFR2_U)SysInt 位元 名稱 描述 保 AFx GPIO 第 80
36、個針腳交替功能選擇位元 在暫存器中的一對位元決定對應的GPIO針腳功能為對應的交替功能之一或是一般的GPIO針腳 00對應到的GPIO針腳(GPIOx)是當作一般用途的I/O 01對應到的GPIO針腳(GPIOx)是當作交替功能1 10對應到的GPIO針腳(GPIOx)是當作交替功能2 11對應到的GPIO針腳(GPIOx)是當作交替功能3 6.1.3.7 設定交替功能暫存器的範程序設定交替功能暫存器的範程序 在這個範中,GP0 是用作一般的 GPIO,GP(15:1)被設定為交替的功能。考表格 4-1 出的交替功能。沒有其他的 GPIO 被設定。在這個範中,任何的 RESET,GPDR0(1
37、5:0)設定 GPIO 針腳為輸入的de-assertion 之後。GAFR00(31:0)會為 0 x0000_0000 指定為一般的 GPIO 功能。為簡單起,設定 GP(16-31)為輸入,被設定為一般的 GPIO。在此範中,GPIO0被設定為一般的 GPIO 輸入 GPIO1為輸入,設定為交替功能 1(ALT_FN_1_IN)GPIO5:2保,設定為一般 GPIO 輸入 GPIO12:6為輸出,設定為交替功能 1(ALT_FN_1_OUT)GPIO13為輸出,設定為交替功能 2(ALT_FN_2_OUT)GPIO14為輸入,設定為交替功能 1(ALT_FN_1_IN)6-16 嵌入式系
38、統硬體架構設計 GPIO15為輸出,設定為交替功能 2(ALT_FN_2_OUT)這個設定的順序是必須用設定 GPIO 交替的功能開重置(reset):1.寫入寫入 GPSR0 0 x0000_8000設置 GPIO15(active low chip select)當他被設定為輸出時 2.寫入寫入 GPDR0 0 x0000_BFC0GPIO12:6,GPIO13和 GPIO15為輸出。驅動 GPIO15為 high 直到交替的功能資訊被設定。這是 active low 輸出所需要的。3.寫入寫入 GAFR0_L 0 x9955_5004對應 GPIO15:0的交替功能 對於需要設定為輸出的
39、 GPIO,你必須先設定 GPSR 和 GPCR 訊號使得針腳的方向被改變。藉由設置 GPDR 暫存器的位元改變針腳方向0被驅動為active high 訊號,1被驅動為 active low 訊號。注意:注意:多的交替功能資訊,考這份文件的表 4-1 之Source Unit。6.1.4 GPIO 暫存器位置暫存器位置 表 6-30 顯示關到 GPIO 區塊的暫存器及他們的實體位址。表表 6-30 GPIO 暫存器位址暫存器位址 位址 名稱 描述 0 x40E0_0000 GPLR0 GPIO 針腳標準暫存器 GPIO31:0 0 x40E0_0004 GPLR1 GPIO 針腳標準暫存器
40、GPIO63:32 0 x40E0_0008 GPLR2 GPIO 針腳標準暫存器 GPIO80:64 0 x40E0_000C GPDR0 GPIO 針腳方向暫存器 GPIO31:0 0 x40E0_0010 GPDR1 GPIO 針腳方向暫存器 GPIO63:32 0 x40E0_0014 GPDR2 GPIO 針腳方向暫存器 GPIO80:64 0 x40E0_0018 GPSR0 GPIO 針腳輸出設定暫存器 GPIO31:0 0 x40E0_001C GPSR1 GPIO 針腳輸出設定暫存器 GPIO63:32 0 x40E0_0020 GPSR2 GPIO 針腳輸出設定暫存器 GP
41、IO80:64 0 x40E0_0024 GPCR0 GPIO 針腳輸出清除暫存器 GPIO31:0 0 x40E0_0028 GPCR1 GPIO 針腳輸出清除暫存器 GPIO63:32 0 x40E0_002C GPCR2 GPIO 針腳輸出清除暫存器 GPIO80:64 0 x40E0_0030 GRER0 GPIO 正緣偵測觸發暫存器 GPIO31:0 0 x40E0_0034 GRER1 GPIO 正緣偵測觸發暫存器 GPIO63:32 0 x40E0_0038 GRER2 GPIO 正緣偵測觸發暫存器 GPIO80:64 0 x40E0_003C GFER0 GPIO 負緣偵測觸發
42、暫存器 GPIO31:0 6-17 嵌入式系統硬體架構設計 0 x40E0_0040 GFER1 GPIO 負緣偵測觸發暫存器 GPIO63:32 0 x40E0_0044 GFER2 GPIO 負緣偵測觸發暫存器 GPIO80:64 0 x40E0_0048 GEDR0 GPIO 邊緣偵測態暫存器 GPIO31:0 0 x40E0_004C GEDR1 GPIO 邊緣偵測態暫存器 GPIO63:32 0 x40E0_0050 GEDR2 GPIO 邊緣偵測態暫存器 GPIO80:64 0 x40E0_0054 GAFR0_L GPIO 交替功能選擇暫存器 GPIO15:0 0 x40E0_0
43、058 GAFR0_U GPIO 交替功能選擇暫存器 GPIO31:16 0 x40E0_005C GAFR1_L GPIO 交替功能選擇暫存器 GPIO47:32 0 x40E0_0060 GAFR1_U GPIO 交替功能選擇暫存器 GPIO63:48 0 x40E0_0064 GAFR2_L GPIO 交替功能選擇暫存器 GPIO79:64 0 x40E0_0068 GAFR2_U GPIO 交替功能選擇暫存器 GPIO80 6.2 中斷控制器 6.2 中斷控制器 中斷控制器控制著應用處器可獲得的中斷源,並且含有決定第一等級(first level)源的所有中斷的位置。他也決定哪一個中斷
44、導致一個 IRQ 或是一個FIQ 發生並且遮蔽(mask)此中斷。中斷控制器只能支持單一優先權等級(single priority level),但是中斷可以被安排為 IRQ 或 FIQ,FIQ 的優先權比 IRQ 還高。6.2.1 中斷控制器操作中斷控制器操作 中斷控制器提供所有中斷源遮蔽的功能,並且產生 FIQ 或 IRQ 處器中斷。應用處器的中斷等級為一個個等級(two-level)的架構。第一等級別自中斷控制器遮蔽暫存器(ICMR)中,所有可使用(enable)和未遮蔽的中斷源的中斷。第一等級中斷被以下的暫存器控制:Interrupt Controller Pending regist
45、er(ICPR)別系統中所有有效的中斷 Interrupt Controller IRQ Pending register(ICIP)包含所有可以產生 IRQ 中斷源的中斷。中斷控制器標準暫存器(ICLR)被設定傳送中斷給 ICIP 產生一個 IRQ Interrupt Controller FIQ Pending register(ICFP)包含所有可以產生 FIQ 中斷源的中斷。中斷控制器標準暫存器(ICLR)被設定傳送中斷給 ICFP 產生一個 FIQ。第二等級使用包含在源設備(這個設備產生第一等級中斷位元)的暫存器。第二等級中斷態給予額外的關於中斷的資訊,並且使用在中斷服務程序的內部。
46、一般而言,多個第二等級的中斷可以使用 OR 產生一個第一等級的中斷位元。6-18 嵌入式系統硬體架構設計 大部分的子中,中斷的根本原因可以藉由取個暫存器位址決定:作為 IRQ 中斷的 ICIP 或作為 FIQ 中斷的 ICFP,藉此決定中斷的設備。接著取設備內部的態暫存器獲得正確功能請求服務。當 ICCRDIM位元為 0,中斷遮蔽暫存器在閒置模式(IDLE mode)中將被忽,所有的中斷可以導致處器開閒置模式。否則,只有未遮蔽的中斷導致處器開閒置模式。ICCRDIM的重置態為 0。6-23 頁圖 6-2中斷控制器區塊圖顯示中斷控制器的區塊圖。圖圖 6-2 中斷控制器區塊圖中斷控制器區塊圖 6.
47、2.2 中斷控制器暫存器定義中斷控制器暫存器定義 中斷控制器包含下幾個暫存器:Interrupt Controller IRQ Pending register(ICIP)Interrupt Controller FIQ Pending register(ICFP)Interrupt Controller Pending register(ICPR)中斷控制器遮蔽暫存器(ICMR)中斷控制器標準暫存器(ICLR)中斷控制器控制暫存器(ICCR)重置之後,CPU 中的 FIQ 和 IRQ 中斷被取消,並且所有的中斷控制器暫存器的態被設置為 0 x0。在 CPU 中的中斷再被使用前,中斷控制器暫存
48、器必須被軟體初始化。6-19 嵌入式系統硬體架構設計 6.2.2.1 中斷控制器遮蔽暫存器中斷控制器遮蔽暫存器(ICMR)中斷控制器遮蔽暫存器(ICMR)每個 pending 中斷位元各包含一個遮蔽位元(共 22 個)。這個遮蔽位元控制 pending 中斷位元是否產生一個處器中斷(IRQ或 FIQ)。當 pending 中斷有效時,如果對應的 ICMR 遮蔽位元設置為 1,他就只會被 CPU 處。當在閒置模式時,ICCRDIM必須設置此遮蔽為有效的,否則任何中斷源請求設置對應的 pending 位元,並且中斷會自動處,而會去看其遮蔽位元的態。遮蔽位元允許週期性的軟體polling 可中斷的源
49、,這是為預防他們實際的引起中斷。ICMR 暫存器在重置時被初始化為 0,這表示所有被遮蔽的中斷和ICMR 都是要經由使用者設定,依此選擇要求的中斷。表 6-31 顯示中斷控制器遮蔽暫存器的腳位圖。4-29 頁表 4-37 描述可使用的第一等級中斷和他們在ICPR暫存器中的位置。表表 6-31 ICMR 暫存器腳位圖暫存器腳位圖 實體位址:0 x40D0_0004 中斷控制器遮蔽暫存器(ICMR)SysInt 位元 名稱 描述 IMx 第x個中斷遮蔽(x=8 to 14,17 to 31)0=Pending 中斷被遮蔽而沒變成有效的(中斷沒被送到CPU 或電源管)1=Pending中斷允許變成有
50、效的(中斷被送到CPU和電源管)注意:注意:在閒置模式中,如果 ICCRDIM被清除,則 IM 位元被忽 保 6.2.2.2 中斷控制器標準暫存器中斷控制器標準暫存器(ICLR)中斷控制器標準暫存器(ICLR)控制 pending 中斷是否產生 FIQ 或是 IRQ 中斷。如果 pending 中斷沒有被遮蔽,對應的 ICLR 位元會被解碼選擇哪個處器中斷是確定的(asserted)。如果中斷被遮蔽,ICLR 中對應的位元被成無效的。重置 ICLR 暫存器是被初始化成全部為 0,而且軟體必須設定 ICLR 反映一般操作的值。表 6-32 顯示中斷控制器標準暫存器的腳位圖。6-29 頁表 6-3