通訊行業(yè)ARM接口設計技術知識_第1頁
通訊行業(yè)ARM接口設計技術知識_第2頁
通訊行業(yè)ARM接口設計技術知識_第3頁
通訊行業(yè)ARM接口設計技術知識_第4頁
通訊行業(yè)ARM接口設計技術知識_第5頁
已閱讀5頁,還剩113頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第5章ARM接口設計技術本章主要內容:鍵盤接口LED顯示器接口LCD顯示器接口觸摸屏接口通訊接口中斷接口A/D和D/A轉換器接口ARM的JTAG接口1芯片S3C44B0XⅠ本章主要基于芯片S3C44B0X,介紹其多個接口。S3C44B0X是基于ARM7TDMI的體系結構,是ARM公司最早為業(yè)界普遍認可并且贏得最廣泛應用的處理核。芯片S3C44B0X具有71個通用多功能輸入輸出引腳,這些I/O口的應用是S3C44BOX處理器的基礎應用,分別包含在如下7組端口中:1個10位輸出端口〔端口A〕;1個11位輸出端口(端口B);1個16位輸入/輸出端口(端口C);2個8位輸入/輸出端口(端口D和G);2個9位輸入/輸出端口(端口E和F)。2芯片S3C44B0XⅡ每組端口都是多功能口,需要用軟件對端口配置寄存器PCONn來設置滿足不同系統(tǒng)和設計的需要,在運行程序之前必須先對每一個用到的引腳功能進行設置。如果某些引腳的復用功能沒有使用,可以將該引腳設置成I/O口。在一般的應用中,PA作為地址線使用;PB作為bank選擇線和SDRAM的接口信號線使用;PC可以作為數(shù)據(jù)線、IIS接口或LCD數(shù)據(jù)線等使用;在系統(tǒng)具備LCD的情況下,PD主要作為LCD的信號線使用;PE可以作串口信號線和定時器輸出使用;PF和PG則是多功能I/O口。3鍵盤概述

計算機的鍵實際上就是開關,制造這種鍵的方法是多種多樣的,以下是幾種常用的按鍵:機械式按鍵

電容式按鍵

薄膜式按鍵

霍耳效應按鍵

4用ARM芯片實現(xiàn)鍵盤接口Ⅰ

本應用實例中,要與4X4的矩陣鍵盤接口,采用節(jié)省口線的“行掃描法”方法來檢測鍵盤,這樣只需要8根口線,在此選取PF口作為檢測鍵盤用端口,并設定PF0–PF3為輸出掃描碼的端口,PF4--PF7為鍵值讀入口。5用ARM芯片實現(xiàn)鍵盤接口Ⅱ矩陣鍵盤按鍵的識別方法,此方法分兩步進行:

①識別鍵盤哪一行的鍵被按下:讓所有行線均為低電平,檢查各列線電平是否為低,如果有列線為低,則說明該列有鍵被按下,否則說明無鍵被按下。②如果某列有鍵被按下,識別鍵盤哪一行的鍵被按下:逐行置低電平,并置其余各行為高電平,檢查各列線電平的變化,如果列電平變?yōu)榈碗娖?,則可確定此行此列交叉點處按鍵被按下。6行掃描法獲取鍵值的程序設計Ⅰ1.

寄存器設置

接口中利用了PF口的相關寄存器,PF口的寄存器有3個:PCONF,PDATF和PUPF。(1)設置PCONF寄存器需要設定PF0-3為輸出口,PF4-7為輸入口,因此,在端口工作之前設置:

rPCONF=0000000000001010101B=0x55;(2)設置PDATF寄存器PF0-3作為輸出口輸出掃描碼時,可采用語句:rPDATF=Oxf0;//PF0-3全寫入0PF4-7作為輸入口讀入鍵值時,采用語句:Keyval=(rPDATF&0xf0)>>4;(3)設置PUPF寄存器設置內部上拉電阻的語句為:rPUPF=0x00;//使能PF0-7的內部上拉電阻7行掃描法獲取鍵值的程序設計Ⅱ2.編寫鍵盤掃描程序3.代碼見課本P1538LED顯示器接口概述Ⅰ

LED(LightEmittingDiode)常稱為七段發(fā)光二極管,在專用的微型計算機系統(tǒng)中,特別是在嵌入式控制系統(tǒng)中,應用非常普遍。它價格低廉、體積小、功耗低,而可靠性又很好,因此,從單板微型機、袖珍計算機到許多微型機控制系統(tǒng)及數(shù)字化儀器都用LED作為輸出顯示。9LED顯示器接口概述Ⅱ在多個LED顯示電路中,通常把陰(陽)極控制端接至一輸出端口,我們稱它為位控端口;而把數(shù)據(jù)顯示段接至一個輸出端口,我們稱這個端口為段控端口。段控端口處應輸出十六進制數(shù)的7段代碼。為了將一個4位二進制數(shù)(可能為一個十六進制數(shù),也可能是一個BCD碼)在一個LED上顯示出來,就需要將4位二進制數(shù)譯為LED的7位顯示代碼。要完成譯碼功能,可以采用兩種方法:一種方法是采用專用芯片,可以實現(xiàn)對BCD碼的譯碼,但不能對大于9的二進制數(shù)譯碼。另一種常用的辦法是軟件譯碼法。在軟件設計時,將0到F共16個數(shù)字(也可以為0到9)對應的顯示代碼組成一個表。10用ARM芯片實現(xiàn)LED顯示接口Ⅰ1.接口電路11用ARM芯片實現(xiàn)LED顯示接口Ⅱ2.初始化程序如下。

(1)設置PCONF、PCONG寄存器,由于需要設定端口F、G為輸出口,因此,在端口工作之前設置:

rPCONF=0010010010101010101B=0x12555;rPCONG=0101010101010101B=0x5555;(2)設置PUPF、PUPG寄存器,設置內部上拉電阻的語句為:rPUPF=0x00;//使能PF0-7的內部上拉電阻rPUPG=0x00;//使能PG0-7的內部上拉電阻12用ARM芯片實現(xiàn)LED顯示接口Ⅲ3.7段數(shù)碼LED編程

4.代碼見課本P15813LCD顯示器接口概述液晶顯示是一種被動的顯示,它不能發(fā)光,只能使用周圍環(huán)境的光?;驹硎峭ㄟ^給不同的液晶單元供電,控制其光線的通過與否,從而達到顯示的目的。LCD有三種顯示方式:反射型,透射型和透反射型。市面上出售的LCD有兩種類型:一種是帶有驅動電路的LCD顯示模塊,這種LCD可以方便地與各種低檔單片機進行接口;另一種是LCD顯示屏,沒有驅動電路,需要與驅動電路配合使用

14

LCD控制器

LCD控制器用來把定位在系統(tǒng)存儲器中的視頻緩沖區(qū)的LCD圖象數(shù)據(jù)傳輸?shù)絃CD驅動器,并產生必須的LCD控制信號。REGBANK具有18個可編程寄存器,用于配置LCD控制器LCDCDMA為專用DMAVIDPRCS從LCDCDMA接收數(shù)據(jù),將相應格式的數(shù)據(jù)通TIMEGEN包含可編程的邏輯

TIMEGEN部分產生VFRAME,VLINE,VCLK,VM等信號。15LCD應用實例Ⅰ1.LCD接口電路

16LCD應用實例Ⅱ2.I/O口LCD功能設置通常采用S3C44BOX的PC口和PD口作為LCD驅動接口,因此需要設置PC口工作在第3功能狀態(tài)和PD口工作在第2功能狀態(tài),設置對應I/O口控制寄存器的語句:rPCONC=00000000000000001111111100000000B=OxO00Off00;rPUPC=0x00;//上拉使能rPCOND=Oxaaaa;rPUPD=0x00;17LCD應用實例Ⅲ3.LCD初始化程序代碼見課本P16918觸摸屏的工作原理

觸摸屏按其工作原理的不同可分為電阻式觸摸屏、表面聲波觸摸屏、紅外式觸摸屏和電容式觸摸屏幾種。最常見的是電阻式觸摸屏,其屏體部分是一塊與顯示器表面非常配合的多層復合薄膜。觸摸屏工作時,上下導體層相當于電阻網(wǎng)絡。當某一層電極加上電壓時,會在該網(wǎng)絡上形成電壓梯度。如有外力使得上下兩層在某一點接觸,則在另一層未加電壓的電極上可測得接觸點處的電壓,從而知道接觸點處的坐標。19

觸摸屏的驅動芯片ADS7843ⅠS3C44BOX通過端口G模擬串行的SIO接口與觸摸屏專門的控制芯片ADS7843進行數(shù)據(jù)傳輸,來完成對觸摸屏觸摸位置坐標的讀取。ADS7843要完成兩件事:(1)是完成電極電壓的切換;(2)是采集接觸點處的電壓值,并進行A/D轉換。20觸摸屏的驅動芯片ADS7843Ⅱ1.ADS7843引腳配置及功能引腳號名稱描述1,10+Vcc供電電源輸入2.7-5V2,3X+,Y+觸摸屏X+、Y+輸入,接內部ADC輸入通道4,5X-,Y-觸摸屏X-、Y-輸入6GND接地7,8IN3,IN4附屬ADC輸入通道9VREFADC參考電壓11PENIRQ接觸中斷輸出,必須外接10-100KΩ電阻12,1416DOUT,DIN,DCLK控制字輸入、A/D轉換結果輸出端;在時鐘下降沿時輸出,上升沿時輸入13BUSY忙指示輸出15CS片選21觸摸屏的驅動芯片ADS7843Ⅲ2.ADS7843的控制字第7位(MSB)第6位第5位第4位第3位第2位第1位第0位(LSB)SA2A1A0MODESER/DFRPD1PD022觸摸屏的接口設計Ⅰ1.觸摸屏的驅動芯片ADS7843典型接口觸摸屏的控制采用專用芯片,專門處理是否有筆或手指按下觸摸屏,并在按下時分別給兩組電極通電,然后將其對應位置的模擬電壓信號經(jīng)過A/D轉換送回處理器。S3C44B0選取PG口與ADS7843接口,共使用PG2-PG7的6條口線,也可以選擇其他的I/O口,但注意不要與I/O口上已經(jīng)設定的功能相沖突.其中,X+、Y+、X-、Y-引腳直接與觸摸屏的相應管腳相連。23觸摸屏的接口設計Ⅱ2編程實現(xiàn)利用連接好的電路設置PCONG寄存器如下:

rPCONG=Ox015f;其中,PENIRQ最好加上內部上拉,設置為:

rPUPG&=Ox80。(1)讀取觸摸點坐標程序:

編程采用固定參考電壓模式,因此SER/DFR=1。首先檢測PENIRQ是否為低電平,如果為低電平,則認為有接觸;否則認為觸摸屏沒有接觸。利用軟件模擬DIN,DOUT和DCLK上的3線串行傳輸時序,將讀取的x或Y坐標數(shù)值的控制字串行送入ADS7843,然后再串行讀出坐標值。最后將X和Y軸坐標值送串口顯示即可。(2)送控制字并讀取結果子程序。24

串行通信概述

串行數(shù)據(jù)傳送模式:單工半雙工全雙工串行通信方式:同步通信異步通信25RS-232C串行接口Ⅰ

1.RS-232C接口規(guī)格26RS-232C串行接口Ⅱ2.RS-232C接口信號。

實際應用中,并不是每只管腳信號都用到27

S3C44BOX內部集成的UART

S3C44B0XUART單元提供了兩個異步串口(SIO),每個SIO可以操作在中斷模式或DMA模式,支持波特率最大為115.2kbps,每個SIO通道包含都有一個16字節(jié)的接收與發(fā)送FIFO緩沖區(qū)。每個UART模塊包含以下幾個部件:波特率發(fā)生器,發(fā)送器,接收器和控制單元。

28UART操作數(shù)據(jù)發(fā)送數(shù)據(jù)接收

動流控制(AFC)

非自動流控制(通過軟件控制nRTS和nCTS)

調制解調器接口29中斷/DMA請求產生器

S3C44BOX的每個UART都有7個狀態(tài)信號:接收FIFO/緩沖區(qū)數(shù)據(jù)準備好、發(fā)送FIFO/緩沖區(qū)空、發(fā)送移位寄存器空、溢出錯誤、奇偶校驗錯誤、幀錯誤和中止,所有這些狀態(tài)都由對應的UART狀態(tài)寄存器(UTRSTATn/UERSTATn)中的相應位來表現(xiàn)。當接收器要將接收移位寄存器的數(shù)據(jù)送到接收FIFO,它會激活接收FIFO滿狀態(tài)信號,如果控制寄存器中的接收模式選為中斷模式,就會引發(fā)接收中斷。當發(fā)送器從發(fā)送FIFO中取出數(shù)據(jù)送到發(fā)送移位寄存器,那么FIFO空狀態(tài)信號將會被激活。如果控制寄存器中的發(fā)送模式選為中斷模式,就會引發(fā)發(fā)送中斷。

30與FIFO有關的中斷

類型FIFO類型非FIFO模式Rx中斷每當接收數(shù)據(jù)達到接收FIFO觸發(fā)的水平,就產生接收中斷;如果FIFO非空且連續(xù)3個字時間沒有接收到任何數(shù)據(jù),就產生超時中斷;每當接收數(shù)據(jù)滿,接收移位寄存器將產生一個中斷;Tx中斷每當發(fā)送數(shù)據(jù)達到發(fā)送FIFO觸發(fā)的水平,就產生發(fā)送中斷;每當發(fā)送數(shù)據(jù)空,發(fā)送保持寄存器將產生一個中斷;錯誤中斷幀錯誤、奇偶校驗錯誤和被檢測到并按字節(jié)接收的中止信號,都將產生錯誤中斷;當達到接收FIFO的頂部,就會產生溢出錯誤中斷;所有錯誤都會立即產生一個錯誤中斷。但兩個錯誤同時發(fā)生,只有一個中斷會產生;31波特率發(fā)生器

波特率發(fā)生器以MCLK作為時鐘源

每個UART的波特率發(fā)生器為傳輸提供了串行移位時鐘。波特率時鐘由通過時鐘源的16分頻及一個由UART波特率除數(shù)寄存器(UBRDIVn)指定的16位除數(shù)決定。

UBRDIVn=(取整)(MCLK/(波特率×16))-1

32回送模式與紅外通信模式回送模式:S3C44BOX的UART提供的一個測試模式。在這種模式下,發(fā)送出的數(shù)據(jù)會立即被接收。這一特性用于校驗運行處理器內部發(fā)送和接收通道的功能,這種模式可以通過設置UART控制寄存器(UCONn)中的回送位來實現(xiàn)。紅外通信模式:S3C44BOX的UART模塊支持紅外線(IR)發(fā)送和接收。可以通過設置UART控制寄存器(UCONn)中的紅外模式位來選擇這一模式。33UART的寄存器Ⅰ1.UART線控制寄存器

ULCONn位描述初始值保留[7]

0紅外線模式[6]該位確定是否使用紅外通信模式0:正常模式1:紅外收發(fā)模式0奇偶校驗模式[5:3]

該位確定奇偶如何產生和校驗0xx:無校驗位100:奇校驗101:偶校驗110:校驗位強制/檢測置1111:校驗位強制/檢測置0000停止位的數(shù)量[2]該位確定停止位的個數(shù),0:1位停止位1:2位停止位0數(shù)據(jù)位長度[1:0]該位確定數(shù)據(jù)位的個數(shù)00:5位01:6位10:7位11:8位0034UART的寄存器Ⅱ2.UART控制寄存器UCONn位描述初始值發(fā)送中斷類型[9]發(fā)送中斷請求類型0:脈沖(在發(fā)送緩沖區(qū)變空時立即引發(fā)中斷)1:電平(在發(fā)送緩沖區(qū)為空時引發(fā)中斷)0接收中斷類型[8]接收中斷請求類型0:脈沖(接收緩沖區(qū)接收到數(shù)據(jù)時立即引發(fā)中斷)1:電平(接收緩沖區(qū)正在接收數(shù)據(jù)時引發(fā)中斷)0接收超時中斷使能[7]在UART的FIFO使能的情況下,使能/禁止接收超時中斷0:禁止1:使能0接收錯誤狀態(tài)中斷使能[6]使能UART在接收操作中發(fā)生錯誤時的錯誤中斷響應0:不產生錯誤狀態(tài)中斷1:產生錯誤狀態(tài)中斷0回送模式[5]該位使UART自動進入回送模式0:正常操作1:回送模式0發(fā)送中止信號[4]該位將引發(fā)UART在一幀時間內發(fā)送中止信號,該信號發(fā)送完后,該位自動被清除0:正常操作1:發(fā)送中止信號

0發(fā)送模式[3:2]這2位決定當前哪個功能項能夠向UART發(fā)送保持寄存器寫入發(fā)送數(shù)據(jù)00:禁止01:中斷請求或輪流檢測模式10:BDMAO請求(僅對UARTO)11:BDMAI請求(僅對UART1)00接收模式[1:0]這2位決定當前哪個功能項能夠從UART接收保持寄存器中讀出接收數(shù)據(jù)00:禁止01:中斷請求或輪流檢測模式IO:BDMAO請求(僅對UARTO)11:BDMAl請求(僅對UART1)0035UART的寄存器Ⅲ3.FIFO控制寄存器

UFCONn位描述初始值發(fā)送FIFO的觸發(fā)電平[7:6]這兩位確定發(fā)送FIFO的觸發(fā)條件00:空01:4字節(jié)10:8字節(jié)11:12字節(jié)00接收FIFO的觸發(fā)電平[5:4]這兩位確定接收FIFO的觸發(fā)條件00:4字節(jié)01:8字節(jié)10:12字節(jié)11:16字節(jié)00保留3

0發(fā)送FIFO復位2該位在FIFO復位后自動清除0:正常1:發(fā)送FIFO復位0接收FIFO復位1該位在FIFO復位后自動清除0:正常1:接收FIFO復位0FIFO使能00:禁止FIFO1:FIFO使能036UART的寄存器Ⅳ4.Modem控制寄存器UMCONn位描述初始值保留[7:5]這3位必須為0000自動流控制4AFC是否允許0:禁止1:使能0保留[3:1]這3位必須為0000請求發(fā)送0如果AFC允許,該位忽略;如果AFC禁止,必須由軟件來控制nRTS。0:高電平(不激活nRTS)1:低電平(激活nRTS)037UART的寄存器Ⅴ5.發(fā)送/接收狀態(tài)寄存器

UTRSTATn位描述初始狀態(tài)發(fā)送移位寄存器為空[2]當發(fā)送移位寄存器中不包含有效數(shù)據(jù)或移位寄存器為空,該位自動被置位。0:非空1:發(fā)送保持和移位寄存器為空1發(fā)送緩沖器為空[1]當發(fā)送緩沖區(qū)寄存器中不包含有效數(shù)據(jù),這一位將自動被置位0:緩沖區(qū)寄存器非空1:空如果使用了FIFO,則用戶不用檢測這個位,而應當檢測UFSTAT中發(fā)送FIFO計數(shù)器位和FIFO滿位1接收緩沖器數(shù)據(jù)準備好[0]當接收緩沖器寄存器中包含了有效數(shù)據(jù),這一位將自動被置位0:完全為空1:緩沖區(qū)寄存器中包含有效數(shù)據(jù)如果使用了FIFO則用戶不用檢測這個位,而應當檢測UFSTAT中接收FIFO計數(shù)器位038UART的寄存器Ⅵ6.UART錯誤狀態(tài)寄存器

UERSTATn位描述初始值間隔中斷[3]如果接收到某個中止信號,該位將自動置10:未接收到中止信號1:接收到中止信號0數(shù)據(jù)幀錯誤[2]如果在接收操作中發(fā)生了幀錯誤,該位將自動置10:接收中沒有發(fā)生幀錯誤1:幀錯誤0奇偶錯誤[1]如果在接收操作中發(fā)生了奇偶校驗錯誤,該位將自動置11:奇偶校驗錯誤0:接收中沒有發(fā)生奇偶校驗錯誤0Overrun錯誤[0]如果在接收操作中發(fā)生了溢出錯誤,該位將自動置10:接收中沒有發(fā)生溢出錯誤1:溢出錯誤039UART的寄存器Ⅶ7.UART的FIFO狀態(tài)寄存器UFSTATn位描述初始值保留[15:10]

000000發(fā)送FIFO滿9當發(fā)送FIFO滿時該位為10:0字節(jié)≤發(fā)送FIFO的數(shù)據(jù)個數(shù)≤15字節(jié)1:滿

0接收FIFO滿8當FIFO將要滿時,該位為10:0字節(jié)≤接收FIFO數(shù)據(jù)個數(shù)≤15字節(jié)1:滿0發(fā)送FIFO計數(shù)器[7:4]發(fā)送FIFO里的數(shù)據(jù)數(shù)量0000接收FIFO計數(shù)器[3:0]接收FIFO里的數(shù)據(jù)數(shù)量000040UART的寄存器Ⅷ8.Modem狀態(tài)寄存器:

Modem狀態(tài)寄存器0(UMSTAT0)、寄存器1(UMSTAT1)的地址分別為0x01D0001C、0x01D0401C,可讀,初始值為0x06。9.UART發(fā)送/接收保持(緩沖區(qū))寄存器:

發(fā)送/接收保持寄存器0(UTXH0)、寄存器1(UTXH1)的地址在小模式下分別為0x01D00020、0x01D04020,在大模式下分別為0x01D00023、0x01D04023,可寫,初始值可編程。10.UART波特率除數(shù)寄存器

UART波特率除數(shù)寄存器0(UBRDIV0)、寄存器1(UBRDIV1)的地址分別為0x01D00028、0x01D04028,可讀寫,初始值可編程。41S3C44BOX的UART的應用Ⅰ1.電路接口和I/O口設置S3C44BOX的串行應用接口電路中的PC12,PC13,PE1,PE2是多功能I/O口,因此,在編寫串口數(shù)據(jù)收發(fā)程序之前,首先需要對PC口和PE口的工作模式進行設置。

Rpconc=Ox0f000000|rPCONC;rPUPC=0x3000;//設置內部上拉rPCONE=(rPCONE&Oxfc3)|Oxeb;rPUPE=0x6;42S3C44BOX的UART的應用Ⅱ2.UART初始化

對UART口的可配置參數(shù)進行初始化,使其能夠按照所要求的通訊方式進行通訊。對UART口進行初始化的設置程序見課本P186。3.字符發(fā)送程序Uart_SendByte()見課本P187。4.字符接收程序Uart_GetByte()見課本P187。43

USB接口概述

USB(通用串行總線)接口正在被用于多種嵌入式系統(tǒng)設備的數(shù)據(jù)通信中,如移動硬盤、數(shù)碼相機、PDA、高速數(shù)據(jù)采集設備等。它是由Compaq、HP、Intel、Lucent、Microsoft、NEC和Philips七家公司聯(lián)合推出的新一代標準接口總線。是一種連接外圍設備的機外總線。其主要性能特點如下:

提供機箱外的熱即插即用功能;每個USB系統(tǒng)中有個主機,采用“級聯(lián)”方式USB總線可連接多個外部設備;適用于帶寬范圍在幾千位/秒(Kb/s)一幾百兆位l秒(Mb/s)的設備;低成本的電纜和連接器;具有錯誤檢測和處理機制;較低的協(xié)議開銷帶來了高的總線性能;支持主機與設備之間的多數(shù)據(jù)流和多消息流傳輸。44USB系統(tǒng)組成一個USB系統(tǒng)由三部分來描述:USB主機:在任一USB系統(tǒng)中只有一個主機,到主計算機系統(tǒng)的USB接口被稱作主控制器。

USB設備:分為Hub(集線器)和Function(功能)兩大類。Hub提供到USB的附加連接點,功能為主機系統(tǒng)提供附加的性能。USB互連:USB互連指的是USB設備與主機的連接和通信方式,它包括總線拓撲結構、內層關系、數(shù)據(jù)流模型和USB調度表。

USB總線用來連接各USB設備和USB主機。45USB的物理接口USB總線的電纜有4根導線:一對標準尺寸的雙絞信號線和一對標準尺寸的電源線。USB總線支持的數(shù)據(jù)傳輸率有三種:高速信令位傳輸率為480Mbs;全速信令位傳輸率為12Mbs;低速信令位傳輸率為1.5Mb/s。USB2.0支持在主控制器與Hub之間用高速傳輸全速和低速數(shù)據(jù),而Hub與設備之間以全速或低速傳輸數(shù)據(jù),這種支持能力可以將全速設備和低速設備對高速設備可用帶寬的影響減到最小。46USB的電源

USB的電源規(guī)范包括兩個方面:電源分配用來處理USB設備如何使用主機通過USB總線提供的電源。電源管理用來處理USB系統(tǒng)軟件和設備如何適應主機上的電源管理系統(tǒng)。47USB的總線協(xié)議

USB是一種查詢(Polling)總線,由主控制器啟動所有的數(shù)據(jù)傳輸。USB上所掛連的外設通過由主機調度的(Host-Scheduled)、基于令牌的(Token-Based)協(xié)議來共享USB帶寬。大部分總線事務涉及3個包的傳輸:令牌包

(TokenPacket)

數(shù)據(jù)包(DataPacket)

握手包(HandshakePacket)主控制器和Hub之間的某些總線事務涉及4個包的傳輸,這些類型的事務用來管理主機與全/低速設備之間的數(shù)據(jù)傳輸。主機與設備端點之間的USB數(shù)據(jù)傳輸模型被稱作管道,管道有兩種類型:流和消息。48USB接口工作原理

USB設備最大的特點就是即插即用,之所以能夠這樣,是因為USB協(xié)議規(guī)定在主機啟動或USB設備插入系統(tǒng)時都要對設備進行配置。就是按照USB協(xié)議,在USB主機與USB設備之間進行的一系列“問答”過程。從而主機知道了設備的情況以及該如何與設備通訊,并為設備設置一個唯一的地址。在配置階段主機也了解了設備端點的使用情況,便可以通過這些端點來進行特定傳輸方式的通訊。對于標準USB設備,操作系統(tǒng)帶有它的驅動,而不需要編寫專門的主機驅動程序。但這樣就必須為它選擇一種標準命令集;但對于非標準設備,則可以自定義一套請求指令集,,并需要編寫專門的主機驅動程序來實現(xiàn)對USB設備的操作。49USB設備應用Ⅰ對USB設備的開發(fā)需要考慮的因素:選擇USB接口控制器芯片。編寫USB設備要執(zhí)行的USB通信代碼(也稱為固件程序)。USB設備需要執(zhí)行的其他功能,例如處理接收數(shù)據(jù)和即將發(fā)送數(shù)據(jù)所需要的硬件和程序代碼。一臺支持USB接口的主機。主機上裝有與USB設備通信的驅動軟件。如果USB設備不是操作系統(tǒng)支持的標準設備,則主機上必須具有專用的應用軟件來訪問USB設備。50USB設備應用ⅡUSB設備開發(fā)的一般步驟:①根據(jù)所要開發(fā)的設備的功能需要,確定設備在USB總線上的位置、傳輸數(shù)據(jù)的速度以及傳輸數(shù)據(jù)的量等,從而確定選擇哪一類的USB控制器芯片,并進一步具體決定采用芯片的廠家和型號,然后根據(jù)該器件和其他所需芯片進行電路設計。②編寫固件程序,其作用是讓主機能夠識別該設備,并響應主機的各種請求。③根據(jù)所用設備是否為標準USB設備,來決定是另外編寫驅動,還是使用操作系統(tǒng)自帶的驅動程序來訪問USB設備。④把編寫好的固件程序載入USB設備,并將USB設備插入主機總線打開應用程序可以對該設備進行指定的操作。⑤按需要調試和重復以上步驟。51以太網(wǎng)接口概述以太網(wǎng)以其高度靈活、相對簡單、易于實現(xiàn)的特點,成為當今最重要的一種局域網(wǎng)建網(wǎng)技術。通常所說的以太網(wǎng)主要是指以下3種不同的局域網(wǎng)技術:以太網(wǎng)/IEEE802.3采用同軸電纜作為網(wǎng)絡介質,傳輸速率達到10Mbps。100Mbps以太網(wǎng)又稱為快速以太網(wǎng),采用雙紋線作為網(wǎng)絡介質,傳輸速率達到100Mbps。1000Mbps以太網(wǎng)又稱為千兆以太網(wǎng),采用光纜或雙紋線作為網(wǎng)絡介質,傳輸速率達到1000Mbps(1Gbps)。

52以太網(wǎng)工作原理

以太網(wǎng)最早是由Xeros公司開發(fā)的一種基帶局域網(wǎng)技術;使用同軸電纜作為網(wǎng)絡介質;以太網(wǎng)采用廣播機制;采用載波多路訪問和碰撞檢測(CSMA/CD)機制;數(shù)據(jù)傳輸速率達到10Mbps;以太網(wǎng)/IEEE802.3通常使用專門的網(wǎng)絡接口卡或通過系統(tǒng)主電路板上的電路實現(xiàn)。53以太網(wǎng)的傳輸編碼

曼徹斯特編碼差分曼徹斯特編碼

54以太網(wǎng)幀格式

字段同步位分隔位目的地址源地址類型/長度數(shù)據(jù)段填充位FCS長度56848481646~1500X32在以太網(wǎng)幀中,同步位、分隔位、填充位和校驗位這幾個字段都是由以太網(wǎng)控制器自動產生的;人們所關心的只是目的地址、源地址、類型和數(shù)據(jù)這4個字段的內容;所有數(shù)據(jù)位的傳輸由低位開始(傳輸?shù)奈涣魇褂寐鼜厮固鼐幋a);以太網(wǎng)的沖突退避算法是由硬件自動執(zhí)行的;

55以太網(wǎng)控制器RTL8019

RTL8019是高度集成的以太網(wǎng)控制器,為即插即用式NE2000兼容網(wǎng)絡適配器提供了簡易的解決方案。RTL8019共有32個輸入輸出地址,對應地址偏移量為00h—lFh。RTL8019的內部寄存器是分頁的,每個寄存器都是8位。56RTL8019的復位RTL8019的復位引腳RSTDRV是高電平有效的復位信號,高電平時間長度需大于800ns,通常在RSTDRV從高電平回到低電平之后的100ms時,再對RTL8019進行讀寫操作,以確保完全復位。當處理器復位時,以太網(wǎng)控制器也復位。熱復位:為了保證能夠完全復位,可以使用熱復位方法。18h一1Fh的8個地址,為復位端口,對該端口的偶數(shù)地址讀或寫入任何數(shù),都會引起以太網(wǎng)控制器的復位,這種方式稱為熱復位。中斷狀態(tài)寄存器中的第7位RST跟復位有關,它的地址為07h,位于第0頁,可直接讀寫。在以太網(wǎng)控制器執(zhí)行了正確復位之后該位為1。一般在復位之后檢查該標志位,以確認是否復位成功。57RTL8019寄存器Ⅰ

1.命令寄存器CR:地址偏移量是00h,長度為一個字節(jié)。

位符號描述7,6PS1,PS0選擇寄存器頁00:0頁01:1頁10:2頁11:3頁(為RTL8019AS配置)5—3RD2—0表示要執(zhí)行的功能000:不允許001:遠程讀取以太網(wǎng)控制器內存010:遠程寫入以太網(wǎng)控制器內存011:發(fā)送包1XX:中止/完成遠程DMA2TXP要發(fā)送數(shù)據(jù)包時,要將該位置1,該位可能在發(fā)送完成后或者發(fā)送中止時內部清0,對該位寫0操作無效1STA寫STP組合使用0STP該位是停止命令。該位被置1,就停止接收或發(fā)送任何數(shù)據(jù)包,上電時該位為1。STA與STP組合使用,10:啟動命令01:停止命令58RTL8019寄存器Ⅱ(1)2.與發(fā)送/接收相關的寄存器:①PSTART:接收緩沖區(qū)的起始頁地址(位于01h,在第0頁可寫,在第2頁可讀)。②PSTOP:接收緩沖區(qū)的結束頁地址(該頁不用于接收,位于02h,在第0頁可寫,在第2頁可讀)。③BNRY:邊界寄存器(作為讀指針使用,位于03h,在第0頁可讀寫)。這個寄存器用來避免對環(huán)形接收緩沖區(qū)中數(shù)據(jù)的錯誤覆蓋,通常用作指針,指向接收緩沖區(qū)中已經(jīng)被讀取的最后一個頁。④CURR:當前頁寄存器(作為寫指針使用,位于07h,在第1頁可讀寫)。這個寄存器的內容指向接收緩沖區(qū)中第一個可用于接收新數(shù)據(jù)的頁面。⑤DCR:數(shù)據(jù)配置寄存器。將它設置為使用FIFO緩存,普通模式,8位數(shù)據(jù)傳輸模式。字節(jié)順序為高位字節(jié)在前,低位字節(jié)在后。59RTL8019寄存器Ⅱ(2)⑥TPSR:為發(fā)送頁的起始頁地址。初始化為指向第一個發(fā)送緩沖區(qū)的頁。⑦RCR:接收配置寄存器,設置為使用接收緩沖區(qū),僅接收與自己地址相匹配的數(shù)據(jù)包(以及廣播地址數(shù)據(jù)包)和多點播送地址包;小于64字節(jié)的包和校驗錯的數(shù)據(jù)包將被丟棄。⑧TCR:發(fā)送配置寄存器,啟用CRC(循環(huán)冗余校驗)自動生成和校驗功能,工作在正常模式。⑨RSAR0,1:對存儲器進行操作的起始地址寄存器,RSAR0存放低8位,RSARl存放高8位。⑩RBCR0,1:對存儲器操作的字節(jié)計數(shù)寄存器,RBCR0存放低8位,RBCRl存放高8位。⑩TBCR0,1:發(fā)送字節(jié)計數(shù)器,這兩個寄存器設置了要發(fā)送數(shù)據(jù)包中的字節(jié)個數(shù)。TBCR0存放低8位,TBCRl存放高8位。60RTL8019寄存器Ⅲ3.其他寄存器:①IMR:中斷屏蔽寄存器,設置成0x00時,屏蔽所有的中斷,設置成0xFF將允許中斷。②MAR0一MAR8:多點播送地址,可以全寫0xFF。③PAGE2的寄存器是只讀的,不用設置。PAGE3的寄存器不是NE2000兼容的,所以也不用設置。61

RAM空間結構

以太網(wǎng)控制器含有16KB的RAM,地址為0x4000—0x7FFF,每256個字節(jié)稱為一頁,共有64頁。

使用0x40—0x45作為以太網(wǎng)控制器的發(fā)送緩沖區(qū),共6頁。使用0x46~0x5F作為以太網(wǎng)控制器的接收緩沖區(qū),共32頁。CURR和BNRY寄存器是以太網(wǎng)數(shù)據(jù)收發(fā)中用到的兩個最主要的寄存器,CURR和BNRY主要用來控制緩沖區(qū)的存取過程,保證能順次寫入和讀出。

CURR是以太網(wǎng)控制器寫接收緩沖區(qū)的指針。BNRY指向接收緩沖區(qū)中已經(jīng)被讀取的最后一個頁。62網(wǎng)卡的物理地址

在完成對寄存器的初始化后,還要對以太網(wǎng)控制器的物理地址(即48位的以太網(wǎng)控制器地址)進行設置。RAM地址中的0x0000~0x000B的12字節(jié)是網(wǎng)卡的物理地址。網(wǎng)卡的物理地址本應該是6個字節(jié)的,這12字節(jié)是單雙地址重復存儲的。0x000B后面的地址存儲的是生產廠商的代碼和產品標識代碼,也是單雙地址重復存儲的。

63以太網(wǎng)模塊的接口設計Ⅰ配置RTL8019:為了系統(tǒng)的精簡,配置RTL8019為非即插即用模式。有著固定的中斷,有著固定的端口地址。以太網(wǎng)模塊與處理器的接口電路:64以太網(wǎng)模塊的接口設計Ⅱ1.寄存器地址映射:采用nGCS5作為以太網(wǎng)模塊的地址使能位,將以太網(wǎng)卡映射在了系統(tǒng)的Bank5上,地址從0xa000000開始,由此,要在程序中定義RTL8019的寄存器地址。2.書寫RTL8019中的頁面切換函數(shù),熱復位函數(shù)(硬件復位之后的一次熱復位)和初始化函數(shù)(設置接收緩沖區(qū)的位置和以太網(wǎng)物理地址,初始化寄存器,設置中斷的模式)。通過RTL8019傳輸數(shù)據(jù):數(shù)據(jù)的發(fā)送校驗,總線數(shù)據(jù)包的碰撞檢測與避免都由芯片自己完成的,我們只需要配置發(fā)送數(shù)據(jù)的物理層地址的源地址、目的地址、數(shù)據(jù)包類型以及發(fā)送的數(shù)據(jù)就可以進行數(shù)據(jù)發(fā)送了。65IIC接口概述IIC是一種雙向兩線制的串行總線,由于它支持任何一種IC制造工藝,且能夠提升硬件的效率和簡化電路的設計,因此眾多廠商都提供了IIC兼容芯片。S3C44BOX內部也具有IIC總線接口模塊,支持一個多主IIC-BUS串形接口,主S3C44B0X能發(fā)送或接收串形數(shù)據(jù)到從設備,并遵守標準的IIC協(xié)議。IIC總線操作模式為:主發(fā)送模式、主接收模式、從發(fā)送模式、從接收模式。

66

IIC總線通用傳輸格式

1.起始條件和停止條件:起始條件發(fā)生在SCL信號為高時,SDA產生一個由高變低的電平變化處。停止條件發(fā)生在SCL信號為高時,SDA產生一個由低變高的電平變化處。

2.數(shù)據(jù)傳輸格式:每個字節(jié)長度都是8位,每次傳輸中字節(jié)的數(shù)量沒有限制。在起始條件后面的第一個字節(jié)是地址域,之后,每個傳輸?shù)淖止?jié)后面都有一個應答(ACK)位。傳輸中串行數(shù)據(jù)的MSB(字節(jié)的高位)首先發(fā)送。應答信號:ACK脈沖信號在SCL線上第9個時鐘處發(fā)出。67S3C44B0X的IIC總線

S3C44B0X處理器多主模式的IIC總線串行接口。S3C44B0X采用專門的串行數(shù)據(jù)線(SDA)和串行時鐘線(SCL)與總線上的其他外設傳輸信息。IIC總線操作讀寫操作配置IIC總線IIC總線接口專用寄存器68

CAN總線概述CAN全稱為ControllerAreaNetwork,即控制器局域網(wǎng),是國際上應用最廣泛的現(xiàn)場總線之一。CAN的主要特點包括:低成本;極高的總線利用率;很遠的數(shù)據(jù)傳輸距離(長達10公里);高速的數(shù)據(jù)傳輸速率(高達1Mbit/s);可根據(jù)報文的ID決定接收或屏蔽該報文;可靠的錯誤處理和檢錯機制;發(fā)送的信息遭到破壞后可自動重發(fā);節(jié)點在錯誤嚴重的情況下具有自動退出總線的功能;報文不包含源地址或目標地址,僅用標志符來指示功能信息優(yōu)先級;

69CAN總線與同步串行接口SIOS3C44B0X的SIO能與各種類型的串行外設接口,這個SIO模塊能以一定的頻率(由寄存器設定)發(fā)送或接收8位串行數(shù)據(jù)。時鐘源可以選擇內部時鐘或外部時鐘。SIO模塊功能:8位數(shù)據(jù)緩沖(SIODAT);12位的預定標器(SBRDR);8位間隔計數(shù)器(ITVCNT);時鐘源選擇邏輯;串行數(shù)據(jù)I/O腳(SIORXD和SIOTXD);外部時鐘輸入輸出腳(SIOCK);DMA運行模式。70SIO正常操作模式操作模式:發(fā)送與接收同時進行,一個發(fā)送數(shù)據(jù)腳,一個接收數(shù)據(jù)腳,當一個字節(jié)寫入SIODAT數(shù)據(jù)寄存器,如果SIO運行位設置和發(fā)送模式允許,則SIO開始發(fā)送數(shù)據(jù)。對SIO模塊編程的步驟:①配置I/O腳(SIOTXD,SIOCLK,SIORXD);②設置SIOCON為適當?shù)呐渲?;③設置串行I/O中斷允許位;④如果想發(fā)送數(shù)據(jù),寫數(shù)據(jù)到SIODAT;⑤設置SIOCON[3]為1,開始數(shù)據(jù)移位操作;⑥當數(shù)據(jù)移位操作完成時,SIO中斷被請求和SIODAT接收到數(shù)據(jù);⑦返回第4步。71

SIODMA操作Ⅰ

在自動運行模式(非握手模式)下,SIO等待直到發(fā)送的數(shù)據(jù)被外部目標設備讀走,在每次8位數(shù)據(jù)發(fā)送后,SIO插入一個可編程的間隔周期。1.DMA發(fā)送數(shù)據(jù)步驟:①清DCNTZ為0,使SIO能請求DMA服務。除了SIOCON[1:0]必須為00外,適當?shù)呐渲肧IO;②適當?shù)呐渲肈MA;③SIO被配置為DMA發(fā)送模式;④SIO自動請求DMA服務;⑤SIO發(fā)送數(shù)據(jù);⑥返回步驟4直到DMA計數(shù)為0;⑦設置DCNTZ為1,停止SIO請求進一步的DMA服務。72SIODMA操作Ⅱ2.DMA接收數(shù)據(jù)步驟:①清DCNTZ為0,使SIO能請求DMA服務.除了SIOCON[1:0]必須為00外,適當?shù)呐渲肧IO;②適當?shù)呐渲肈MA;③SIO被配置為DMA只接模式;④設置SIOCON[3](SIO開始位)來開始接收操作;⑤SIO在接收到8位數(shù)據(jù)后請求DMA服務;⑥返回步驟5直到DMA計數(shù)為0;⑦設置DCNTZ為1,停止SIO請求進一步的DMA服務。

73SIO接口寄存器1)SIO控制寄存器(SIOCON):其地址為0x01D14000,可讀寫,初始值為0x00。2)SIO數(shù)據(jù)寄存器(SIODAT):是一個8位的SIO數(shù)據(jù)寄存器,它用于存放要發(fā)送數(shù)據(jù)或已接收的數(shù)據(jù),地址為0x01D14004,可讀寫,

初始值為0x00。3)SIO波特率預定標器寄存器(SBRDR):用來確定SIO的波特率。是12位寄存器,地址為0x01D14008,可讀寫,初始值為0x00。

SIO的

波特率=MCLK/2/(SBRDR寄存器的值+1)4)SIO間隔計數(shù)寄存器(IVTCNT):IVTCNT是一個8位計數(shù)器,地址為0x01D1400C,可讀寫,初始值為0x00。在自動運行模式下,每傳送8位數(shù)據(jù)插入一個時間間隔:

時間間隔=

MCLK/4/(IVTCNT+1)

5)SIO間隔計數(shù)寄存器(IVTCNT):當SIO工作在DMA模式時,對應的DCNTZ必須為0,當DMA完成時,對應的DCNTZ設置為1。DCNTZ地址為0x01D14010,可讀寫,初始值為0x00。74中斷接口概述S3C44BOX具有30個中斷源,包括1個看門狗定時器,6個定時器,6個UART,8個外部,4個DMA,2個RTC,1個ADC,1個IIC和1個SIO共30個中斷。S3C44BOX內置的中斷控制器可以接收來自30個中斷源的請求。S3C44B0X支持新的中斷處理模式稱為矢量中斷模式。中斷控制器的角色,就是響應來自FIQ(快速中斷請求)或IRQ(普通中斷請求)的中斷,并請求內核對中斷進行處理。多個中斷請求發(fā)生時,由硬件優(yōu)先級邏輯確定應該有哪個中斷得到服務,同時硬件邏輯使中斷向量表的跳轉指令加載到(0X18或0X1C)位置,在該位置執(zhí)行跳轉指令使程序跳到相應的中斷服務線程,因此相對于傳統(tǒng)的ARM的軟件方法能夠大大減少中斷進入延時。

75中斷控制器Ⅰ

1.中斷模式ARM7TDMI有2種類型的中斷模式:FIQ和IRQ。IRQ和FIQ之間的區(qū)別是:對于FIQ必須盡快處理事件并離開這個模式;IRQ可以被FIQ中斷,但IRQ不能中斷FIQ;為了使FIQ更快,FIQ模式具有更多的私有寄存器。2.PSR的F位和I位PSR指ARM7TDMI處理器的程序狀態(tài)寄存器。如果PSR的F位被設置為1,處理器將不接受來自中斷控制器的FIQ;如果PSR的I位被設置為1,處理器將不接受來自中斷控制器的IRQ。因此,為了使能相應中斷機制,PSR的F位或I位必須被清0,同時中斷屏蔽寄存器INTMSK的相應位也必須被清0。76中斷控制器Ⅱ3.中斷請求寄存器INTPNDINTPND的各位指示了某個中斷請求是否還未被處理。在INTPND中將要或已被置位的中斷位稱為pending位。INTPND是一個只讀寄存器,在中斷服務程序中要想清除pending位時,需要采用在中斷服務寄存器I_ISPC或F_ISPC的相應位寫入1的方式實現(xiàn)。INTPND寄存器中的26個位對應著每一個中斷源。當某個中斷產生時,INTPND中的相應位就會置1,說明該中斷還未被處理。在中斷服務程序中,當處理結束后必須及時清除該pending位,從而使系統(tǒng)能夠及時再次響應該類型的中斷。4.中斷屏蔽寄存器INTMSK如果該寄存器的某位被置1,則與該位對應的中斷響應被禁止。如果對應位為0,則這個中斷發(fā)生時將會被正常響應。如果某個中斷在INTMSK寄存器中的對應位為1,但是又有這個中斷發(fā)生,則它的pending位還是會置位,只是不會自動轉入中斷服務程序。如果全局屏蔽位被置1,那么,當任一中斷發(fā)生時,中斷pending位還是會置位,但是所有的中斷都不會得到服務。77中斷源Ⅰ在30個中斷源中有26個中斷源提供給中斷控制器,4個外部中斷(EINT4/5/6/7)請求是通過“或”的形式合成為1個中斷源送至中斷控制器,2個UART錯誤中斷(UERRORO/1)也是如此。

下頁續(xù)78中斷源Ⅱ注意:EINT4,EINT5,EINT6和EINT7分享同一個中斷請求源,中斷服務程序ISR要通過讀取EXTINTPND3-0寄存器來區(qū)別這4個中斷源,并在處理結束時通過將EXTINTPND3-0中對應位寫1來清除該位。

79中斷優(yōu)先級產生模塊

S3C44BOX中斷優(yōu)先級的決定有兩種方式:通過軟件查詢決定中斷優(yōu)先級,該方式在跳到相應服務程序之前需要一個較長的延遲時間;通過硬件決定中斷優(yōu)先級:矢量中斷模式。

如果中斷向量模式使用和一個中斷源被配置為ISQ中斷,中斷將被中斷優(yōu)先級產生模塊處理。中斷優(yōu)先級產生模塊處理包括五個單元:1個主單元,4個從單元,每個從單元管理6個中斷源,包括4個優(yōu)先級次序可編程的優(yōu)先級源(sGn)和2個固定優(yōu)先級源。一個主單元管理4個從單元mGn和2個中斷源mGKn,用來確定4個從單元和2個中斷源的優(yōu)先級mGKn。80中斷優(yōu)先級如果中斷源A被設置為FIQ中斷,而中斷源B設置為IRQ中斷,那么中斷源A比中斷源B具有更高的中斷優(yōu)先級,因為在任何情況下,FIQ中斷都比IRQ中斷具有更高的優(yōu)先級。如果中斷源A和中斷源B在不同的主單元中,并且A所在的主單元的優(yōu)先級比B所在的主單元優(yōu)先級高,則中斷源A的優(yōu)先級肯定比中斷源B的優(yōu)先級高。如果中斷源A和B在同一個主單元中,且中斷源A的優(yōu)先級比B高,則A具有更高的優(yōu)先級。位于sGA,sGB,sGC和sGD的中斷優(yōu)先級總是高于位于sGKA和sGKB的中斷優(yōu)先級。在sGA,sGB,sGC和sGD之間的優(yōu)先級的高低是可編程的,或者通過Round一Robin(輪轉)方式來決定。在sGKA和sGKB之間,sGKA總是擁有更高的優(yōu)先級。mGA,mGB,mGC和mGD組中的中斷優(yōu)先級總是高于mGKA和mGKB。因此,MGKA和mGKB在所有中斷源之中優(yōu)先級是最低的。81中斷矢量地址表Ⅰ分支指令機器代碼=0xea000000+((<destinationaddress>-<vectoraddress>-0x8)>>2)其中destinationaddress為中斷服務線程ISR的開始地址,vectoraddress為中斷源在中斷相量表中的地址,即分支指令所在地址,分支指令機器代碼有硬件自動產生。82中斷矢量地址表Ⅱ每個中斷源對應的矢量地址

中斷源矢量地址中斷源矢量地址EINT00x00000020INT_TIMER10x00000064EINT10x00000024INT_TIMER20x00000068EINT20x00000028INT_TIMER30x0000006cEINT30x0000002cINT_TIMER40x00000070EINT4/5/6/70x00000030INT_TIMER50x00000074TICK0x00000034INT_URXD00x00000080INT_ZDMA00x00000040INT_URXD10x00000084INT_ZDMA10x00000044INT_IIC0x00000088INT_BDMA00x00000048INT_SIO0x0000008cINT_BDMA10x0000004cINT_UTXD00x00000090INT_WDT0x00000050INT_UTXD10x00000094INT_UERR0/10x00000054NT_RTC0x000000a0INT_TIMER00x00000060INT_ADC0x000000c083控制中斷的寄存器Ⅰ1.中斷控制寄存器:在實際編程中,對中斷控制寄存器進行讀取和設置來實現(xiàn)對中斷的響應和控制。中斷控制寄存器INTCON的地址為0x01E00000,可讀寫,初始值為0x07。

INTCON位描述初始狀態(tài)保留300V2禁止/使能IRQ中斷的“矢量中斷模式”0:矢量中斷模式1:非矢量中斷模式1I1禁止/使能CPU響應IRQ中斷請求0:IRQ中斷使能1:IRQ中斷禁止1F0禁止/使能CPU響應FIQ中斷請求0:FIQ中斷使能1:FIQ中斷禁止184控制中斷的寄存器Ⅱ(1)2.中斷請求寄存器INTPND:INTPND寄存器的地址為0x01E00004,用來指示中斷請求狀態(tài)。下頁續(xù)85控制中斷的寄存器Ⅱ(2)86控制中斷的寄存器Ⅲ(1)3.中斷模式寄存器INTMOD:INTMOD中的26位分別對應著每個中斷源,當INTMOD中的某個位設置為1,則ARM7TDM1內核將以FIQ(快速中斷)模式操作那個中斷;否則,將以IRQ(普通中斷)模式操作。中斷模式寄存器INTMOD的地址為0x01E00008,可讀寫。下頁續(xù)87控制中斷的寄存器Ⅲ(2)88控制中斷的寄存器Ⅳ(1)4.中斷屏蔽寄存器INTMSK:中斷屏蔽寄存器INTMSK的地址為0x01E0000C,可讀寫,用以確定哪個中斷源被屏蔽,屏蔽的中斷源將不被服務。

下頁續(xù)89控制中斷的寄存器Ⅳ(2)90控制中斷的寄存器Ⅴ5.IRQ矢量模式寄存器:主優(yōu)先級產生單元通過I_PMST寄存器決定4個輔單元和2個中斷源之間的優(yōu)先級。2個中斷源INT_RTC和INT_ADC在26個中斷源中優(yōu)先級是最低的。如果幾個中斷請求同時發(fā)生,在I_ISPR寄存器中將其中具有最高優(yōu)先級的中斷源對應位置1。

91控制中斷的寄存器Ⅵ(1)6.IRQ/FIQ中斷服務寄存器(I_ISPC/F_ISPC):

對應著IRQ的I_ISPR和I_ISPC寄存器,在FIQ中斷模式下,也與中斷服務相關的寄存器。寄存器地址R/W描述復位值F_ISPR0x01E00038R未經(jīng)中斷處理的FIQ中斷寄存器(只有1位置位)0x00000000F_ISPC0x01E0003CWFIQ中斷服務清除寄存器(一旦被置位,INTPND中的相應位被清0)未定義92控制中斷的寄存器Ⅵ(2)I_ISPC/F_ISPC寄存器的位定義如下表所示:下頁續(xù)93控制中斷的寄存器Ⅵ(3)94控制中斷的寄存器Ⅶ7.外部中斷控制寄存器EXTINT:外部中斷控制寄存器EXTINT用來設置外部中斷的觸發(fā)模式。

EXTINT位描述EINT7[30:28]設置EINT7觸發(fā)模式000:低電平中斷001:高電平中斷01X:下降沿觸發(fā)10X:上升沿觸發(fā)11X邊沿觸發(fā)EINT6[26:24]設置EINT6觸發(fā)模式000:低電平中斷001:高電平中斷01X:下降沿觸發(fā)10X:上升沿觸發(fā)11X邊沿觸發(fā)EINT5[22:20]設置EINT5觸發(fā)模式000:低電平中斷001:高電平中斷01X:下降沿觸發(fā)10X:上升沿觸發(fā)11X邊沿觸發(fā)EINT4[18:16]設置EINT4觸發(fā)模式000:低電平中斷001:高電平中斷01X:下降沿觸發(fā)10X:上升沿觸發(fā)11X邊沿觸發(fā)EINT3[14:12]設置EINT3觸發(fā)模式000:低電平中斷001:高電平中斷01X:下降沿觸發(fā)10X:上升沿觸發(fā)11X邊沿觸發(fā)EINT2[10:8]設置EINT2觸發(fā)模式000:低電平中斷001:高電平中斷01X:下降沿觸發(fā)10X:上升沿觸發(fā)11X邊沿觸發(fā)EINT1[6:4]設置EINT1觸發(fā)模式000:低電平中斷001:高電平中斷01X:下降沿觸發(fā)10X:上升沿觸發(fā)11X邊沿觸發(fā)EINT0[2:0]設置EINT0觸發(fā)模式000:低電平中斷001:高電平中斷01X:下降沿觸發(fā)10X:上升沿觸發(fā)11X邊沿觸發(fā)95控制中斷的寄存器Ⅷ8.外部中斷請求寄存器EXTINTPND:EINT4,EINT5,EINT6和EINT7分享同一個中斷請求源,因此,中斷服務程序要通過讀取EXTINTPND寄存器來區(qū)別這4個中斷源。它們的中斷處理程序(ISR)必須在處理結束時,通過將EXTINTPND中對應位寫1來清除該位。EXTINTPND位描述EXTINTPNDO0如果中斷發(fā)生在EINT4上,該位置1,同時INTPND21也置1EXTINTPND11如果中斷發(fā)生在EINT5上,該位置1,同時INTPND21也置1EXTINTPND22如果中斷發(fā)生在EINT6上,該位置1,同時INTPND21也置1EXTINTPND33如果中斷發(fā)生在EINT7上,該位置1,同時INTPND21也置196外部中斷的應用Ⅰ1.I/O口設置首先對PG口的工作模式進行設置,要讓PG4-7工作在外部中斷輸入狀態(tài)。因此,要將PG口設置在功能3模式下,采用語句:rPCONG=11111111xxxxxxxxB;如果希望采用內部上拉,則語句為:

rPUPG=0000xxxxB。97外部中斷的應用Ⅱ2.外部中斷觸發(fā)模式設置利用外部中斷控制寄存器來設置外部中斷的觸發(fā)模式.由于采用電平觸發(fā)容易引起重復觸發(fā),因此建議采用下降沿或上升沿觸發(fā),不同觸發(fā)方式的語句如下:①采用下降沿觸發(fā)時:rEXTINT=01x01x01x01xxxxxxxxxxxxxB;②采用上升沿觸發(fā)時:

rEXTINT=10x10x10x10xxxxxxxxxxxxxB;③采用邊沿觸發(fā)時:rEXTINT=11x11x11x11xxxxxxxxxxxxxB;④采用低電平觸發(fā)時:rEXTINT=000000000000xxxxxxxxxxxxB;98外部中斷的應用Ⅲ3中斷寄存器設置將EINT4-7設置為IRQ中斷模式的語句為:rINTCON=0x5;//非矢量中斷模式,禁止FIQ中斷,使能IRQ中斷設置好了,采用以下語句開啟中斷:rINTMSK=~(BIT_GLOBAL|BIT_EINT4567)。4主程序編寫,代碼見課本P219.5中斷處理程序

voidirq_Eint4567lsr(void){which_int=rEXTINTPND;rEXTINTPND=Ox0f;//清除EXTINTPND寄存器rl_lSPC=BIT_EINT4567;//清除pending_bitDelay(1000);//延時消抖}99模/數(shù)轉換概述所謂模/數(shù)轉換器就是把電模擬量轉換成為數(shù)字量的電路.微機與控制系統(tǒng)的接口框圖100模/數(shù)轉換的方法和原理Ⅰ1.計數(shù)式A/D轉換法

其中,Vi是模擬輸入電壓,V0是D/A轉換器的輸出電壓,C是控制計數(shù)端,當C=1時,計數(shù)器開始計數(shù),C=0時,則停止計數(shù)。D7~D0是數(shù)字量輸出,數(shù)字輸出量又同時驅動一個D/A轉換器。

101模/數(shù)轉換的方法和原理Ⅱ2.雙積分式A/D轉換法

雙積分式A/D轉換的基本原理是對輸入模擬電壓和參考電壓進行兩次積分,變換成與輸入電壓均值成正比的時間間隔,利用時鐘脈沖和計數(shù)器測出其時間間隔,因此,此類A/D轉換器具有很強的抗工頻干擾能力,轉換精度高,但速度較慢.(a)電路工作原理圖

(b)雙積分圖示102模/數(shù)轉換的方法和原理Ⅲ3.逐次逼近式A/D轉換法

逐次逼近式A/D轉換原理框圖逐次逼近式A/D轉換過程103

A/D轉換的重要指標

1.分辨率(Resolution):反映A/D轉換器對輸入微小變化響應的能力,通常用數(shù)字輸出最低位(LSB)所對應的摸擬輸入的電平值表示。

2.精度(Accuracy):絕對精度(AbsoluteAccuracy);相對精度(RelativeAccuracy)。3.轉換時間(ConversionTime):指完成一次A/D轉換所需的時間,即由發(fā)出啟動轉換命令信號到轉換結束信號開始有效的時間間隔。轉換時間的倒數(shù)稱為轉換速率。4.量程:量程是指所能轉換的摸擬輸入電壓范圍,分單極性、雙極性兩種類型。例如,單極性

量程為0~+5V,0~+10V;雙極性量程為-5~+5V,-10~+10V。

104S3C440BX自帶的A/D轉換器ARMS3C440BX芯片自帶一個8路10位A/D轉換器,該轉換器可以通過軟件設置為Sleep摸式,可以節(jié)電減少功率損失,最大轉換率為100K,非線性度為正負1。ARM芯片與A/D功能有關的引腳:AIN[7:0]為8路摸擬采集通道,ADC的模擬輸入;AREFT為參考正電壓,AREFB為參考負電壓,AVCOM為摸擬公共參考電壓。105ADC的相關寄存器Ⅰ1.A/D轉換控制寄存器(ADCCON):地址為0x01D40000(在小模式下,以字、半字、字符單位存取)、0x01D40002(在大模式下,以半字單位存取)、0x01D40003(在大模式下,以字符單位存取),可讀寫,初始值為0x20。ADCCON位描述初始狀態(tài)標志6ADC狀態(tài)標志(只讀)0:正在進行A/D轉換1:A/D轉換結束0睡眠5系統(tǒng)省電模式0:正常模式,1:睡眠模式1輸入選擇[4:2]時鐘源選擇OOO:AINO001:AIN1Ol0:AIN2011:AIN3100:AIN4101:AIN5110:AIN6111:AIN7000讀啟動1通過讀操作啟動A/D轉換0:禁止通過讀操作啟動轉換1:使能通過讀操作啟動轉換0使能啟動0通過使能操作啟動A/D轉換,如果讀啟動位置1,則該位無效0:無操作1:A/D轉換啟動,啟動后該位被清零0106ADC的相關寄存器Ⅱ2.A/D轉換預分頻寄存器地址為0x01D40004(在小模式下,以字、半字、字符單位存取)、0x01D40006(在大模式下,以半字單位存取)、0x01D40007(在大模式下,以字符單位存取),可讀寫,初始值為0x00。

ADCPSR位描述初始狀態(tài)預分頻值[7:0]預分頻值(0-255),除數(shù)=2×(預分頻值+1)A/D轉換時,時鐘頻率=2×(預分頻值+1)×160x003.A/D轉換數(shù)據(jù)寄存器地址為0x01D40008(在小模式下,以字、半字、字符單位存取)、0x01D4000A(在大模式下,以半字單位存取)、0x01D4000B(在大模式下,以字符單位存取),可讀寫,初始值為0x00。107數(shù)/模轉換器原理

D/A轉換器的主要功能是將數(shù)字量轉換為模擬量。數(shù)字量是由若干數(shù)位構成的,每個數(shù)位都有一定的權。我們說把一個數(shù)字量變?yōu)槟M量,就是把每一位上的代碼按照權轉換為對應的模擬量,再把各位所對應的模擬量相加,所得到各位模擬量的和便是數(shù)字量所對應的模擬量?;谏鲜鏊悸罚诩呻娐分?,通常采用T型網(wǎng)絡實現(xiàn)將數(shù)字量轉換為模擬電流,然后再用運算放大器完成模擬電流到模擬電壓的轉換。所以,要把一個數(shù)字量轉換為模擬電壓,實際上需要兩個環(huán)節(jié):即先由D/A轉換器把數(shù)字量轉換為模擬電流,再由運算放大器將模擬電流轉換為模擬電壓。

108T型電阻解碼網(wǎng)絡

109數(shù)/模轉換器的分類

1.電壓輸出型(如TLC5620):雖有直接從電阻陣列輸出電壓的,但一般采用內置輸出放大器以低阻抗輸出。直接輸出電壓的器件僅用于高阻抗負載,由于無輸出放大器部分的延遲,故常作為高速D/A轉換器使用。2.電流輸出型(如THS5661A):很少直接利用電流輸出,大多外接電流—電壓轉換電路得到電壓輸出。當外接運算放大器進行電流電壓轉換時,則電路構成基本上與內置放大器的電壓輸出型相同,這時由于在D/A轉換器的電流建立時間上加入了達算放入器的延遲,使響應變慢。3.乘算型(如AD7533):在基準電壓輸入上加交流信號的,能得到數(shù)字輸入和基準電壓輸入相乘的結果而

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論