版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
芯片S3C44B0X簡介1S3C44B0X是以ARM7TMDI為內(nèi)核的高性能CPU,是ARM公司最早為業(yè)界普遍認可并且贏得最廣泛應(yīng)用的處理核。
S3C44B0X的推薦最高工作頻率為66MHz,按照ARM公司提供的技術(shù)資料,ARM7類CPU的運算速度可按如下公式計算:MIPS=0.9×MHz,由此可得出,S3C44B0X的最大運算速度大約為0.9×66MHz=59.4MIPS。芯片S3C44B0X具有71個通用多功能輸入輸出引腳,這些I/O口的應(yīng)用是S3C44B0X處理器的基礎(chǔ)應(yīng)用,分別包含在如下7組端口中: 端口A:10位,輸出端口 端口B:11位,輸出端口 端口C:16位,輸入/輸出端口 端口D:8位,輸入/輸出端口 端口E:9位,輸入/輸出端口 端口F:9位,輸入/輸出端口 端口G:8位,輸入/輸出端口芯片S3C44B0X簡介2每組端口都是多功能口,需要用軟件對端口配置寄存器PCONn來設(shè)置滿足不同的需要。在運行程序之前必須先對每一個用到的引腳功能進行設(shè)置。如果某些引腳的復用功能沒有使用,可以將該引腳設(shè)置成I/O口。在一般的應(yīng)用中:PA:地址線。PB:bank選擇線和SDRAM的接口信號線。PC:數(shù)據(jù)線、IIS接口或LCD數(shù)據(jù)線等。PD:LCD的信號線。PE:串口信號線和定時器輸出。PF:多功能I/O口。PG:多功能I/O口。S3C44B0X的片上功能
2.5VARM7TDMI內(nèi)核,帶有8KB高速緩存器(SAMBAII總線體系結(jié)構(gòu))。外部存儲器控制器(FP/EDO/SDRAM控制,片選邏輯)。LCD控制器(最大支持256色STN,LCD具有專用DMA)。2通道通用DMA、2通道外設(shè)DMA并具有外部請求引腳。2通道UART,帶有握手協(xié)議(支持lrDA1.0,具有16-byteFIFO)和1通道SIO。1通道多主IIC-BUS控制器。1通道IIS-BUS控制器。5個PWM定時器和1通道內(nèi)部定時器。看門狗定時器。71個通用I/O口、8通道外部中斷源。功耗控制:具有普通、慢速、空閑核停止模式。8通道10位ADC。具有日歷功能的RTC。具有PLL的片上時鐘發(fā)生器。
S3C44B0X特性1
(1)體系結(jié)構(gòu)16/32位RISC體系結(jié)構(gòu)和ARM7TDMI處理器內(nèi)核強大的指令體系。Thumb代碼壓縮機,最大化代碼密度同時保持了32位指令的性能?;贘TAG的片上集成ICE調(diào)試支持解決方案。32×8位硬件乘法器。實現(xiàn)低功耗SAMBAII的新型總線結(jié)構(gòu)。
S3C44B0X特性2(2)系統(tǒng)管理器支持大/小端方式。尋址空間:每bank的尋址空間為32M字節(jié)(共256M字節(jié))。支持每bank可編程的8/16/32位數(shù)據(jù)總線寬度。7個bank具有固定的bank起始地址和可編程的bank大小。8個存儲器bank。所有的存儲器bank具有可編程的操作周期。S3C44B0X特性3
(3)Cache存儲器和內(nèi)部SRAM一體化的8K字節(jié)Cache。未用的Cache空間用來作為0/4/8K字節(jié)的SRAM存儲空間。支持LRU替換算法。采用保持主存儲器與Cache內(nèi)容一致性的“寫穿式”策略。S3C44B0X特性4(4)時鐘和電源管理電源模式:正常、慢速、空閑和停止模式。 正常模式:正常工作模式。 慢速模式:不加PLL的低時鐘頻率模式。 空閑模式:只停止CPU的時鐘。 停止模式:停止所有的時鐘。通過EINT[7:0]或RTC報警中斷從停止模式喚醒。
S3C44B0X特性5
(5)中斷控制器30個中斷源(看門狗定時器、6個定時器、6個UART、8個外部中斷、4個DMA、兩個RTC、1個ADC、1個IIC、1個SIO)采用向量化的IRQ中斷模式以減少中斷的延遲??蛇x的電平/邊沿模式觸發(fā)外部中斷。電平/邊沿模式具有可編程的優(yōu)先級。支持FIQ為緊急的中斷請求進行服務(wù)。
S3C44B0X特性6(6)定時器和PWM(脈寬調(diào)制)5通道16位具有PWM功能的定時器,1通道16位內(nèi)部定時器(可進行基于DMA或中斷的操作)。可編程的占空比周期、頻率和優(yōu)先級。支持外部中斷源。(7)RTC(實時時鐘)充分的時鐘特性:毫秒、秒、分鐘、小時、日、星期、月、年。32.768kHz時鐘。定時警報,可用于喚醒CPU??僧a(chǎn)生時鐘節(jié)拍中斷。S3C44B0X特性7
(8)通用I/O口8個外部中斷口。71個多功能輸入/輸出口。(9)UART(異步串行通信)2通道通用UART,可進行基于DMA或中斷的操作。支持5位、6位、7位或8位串行數(shù)據(jù)傳輸/接收。可編程的波特率。支持IrDA1.0(115.2Kbps)。支持用于測試的回饋模式。每個通道具有兩個內(nèi)部32字節(jié)的FIFO分別用于輸入和輸出。
S3C44B0X特性8(10)DMA(直接存儲器操作)控制器2通道通用DMA控制器。2通道DMA橋(外設(shè)DMA)控制器。支持I/O到存儲器,存儲器到I/O,I/O到I/O的DMA請求。(11)A/D轉(zhuǎn)換器8通道的ADC。10-bit。
S3C44B0X特性9
(12)LCD控制器支持彩色/黑白/灰度LCD屏。支持單路掃描和雙路掃描。支持虛擬顯示屏功能。系統(tǒng)存儲器用來作為顯示緩存。用專門的DMA從系統(tǒng)存儲器中獲得圖像數(shù)據(jù)?;叶鹊燃墸?6級灰度。最多256種顏色。
S3C44B0X特性10(13)看門狗定時器16位的看門狗定時器。在定時器溢出時發(fā)出中斷請求或系統(tǒng)復位。(14)IIC總線接口1通道多主IIC總線,可進行基于中斷的操作模式??蛇M行串行,8位,雙向數(shù)據(jù)傳輸,標準模式速度達到100Kb/S,快速模式達到400Kb/S。
S3C44B0X特性11
(15)IIS總線接口1通道音頻IIS總線接口,可進行基于DMA的操作。串行,每通道8/16位數(shù)據(jù)傳輸。(16)SIO(同步串行I/O)1通道SIO,可進行基于DMA或中斷的操作。可編程的波特率。支持8位串行數(shù)據(jù)的傳輸和接收操作。(17)工作電壓范圍:內(nèi)核為2.5V,I/O口為3.0V~3.6V。(18)工作頻率:最大75MHz。(19)封裝:160LQFP/160FBGA。
S3C44B0X微處理器主要引腳信號1
(1)總線控制ADDR[24:0]輸出:地址總線,輸出相應(yīng)段的存儲器地址.DATA[31:0]
輸入輸出:數(shù)據(jù)總線,總線寬度可編程為8/16/32位ENDIAN
輸入:它確定數(shù)據(jù)類型是littleendian還是bigendian,邏輯電平在復位期間由該管腳的上拉下拉電阻確定.0:littleendian1:bigendianS3C44B0X微處理器主要引腳信號2
(2)TIMER/PWMTOUT[4:0]輸出:定時器輸出信號。TCLK輸入:外部時鐘信號輸入。
(3)中斷控制單元EINT[7:0]輸入:外部中斷請求信號。(4)UARTRxD[1:0]輸入:UART接收數(shù)據(jù)輸入線。TxD[1:0]輸出:UART發(fā)送數(shù)據(jù)線。nCTS[1:0]輸入:UART清除發(fā)送輸入信號。nRTS[1:0]輸出:UART請求發(fā)送輸出信號。
S3C44B0X微處理器主要引腳信號3(5)ADC
AIN[7:0]輸入:ADC模擬信號輸入
(6)通用口線
P[70:0]輸入輸出:通用I/O口(一些口只有輸出模式)。
S3C44B0X微處理器引腳圖160腳7組14類基于S3C44B0X嵌入式結(jié)構(gòu)
鍵盤概述計算機的鍵實際上就是開關(guān),制造這種鍵的方法是多種多樣的。幾種常用的按鍵:(1)機械式按鍵
(2)電容式按鍵
(3)薄膜式按鍵
(4)霍耳效應(yīng)按鍵
按鍵識別方法通常采用兩種方法:(1)行掃描法,(2)行反轉(zhuǎn)法。行掃描法:使鍵盤上某一行線為低電平,而其余行接高電平,然后讀取列值,如果列值中有某位為低電平,則表明行列交點處的鍵被按下;否則掃描下一行,直到掃描完全部的行線為止。行反轉(zhuǎn)法:行線接并行口,先讓它工作在輸出方式下,將列線也接一個并行口,先讓它工作在輸入模式下。CPU通過輸出端口往各行線上全部送低電平,然后讀入列線的值。如果有某一鍵被按下,則必定會使某一列線值為0。然后,程序再對兩個并行端口進行方式設(shè)置,使行線工作在輸入,列線工作在輸出,將剛才讀的列線值從列線所接的并行端口輸出,再讀取行線上的輸入值。用ARM芯片實現(xiàn)鍵盤接口1
例:與4X4的矩陣鍵盤接口,采用節(jié)省口線的“行掃描法”方法來檢測鍵盤,這樣只需要8根口線。選取PF口作為檢測鍵盤用端口,設(shè)定PF0–PF3為輸出掃描碼的端口,PF4--PF7為鍵值讀入口。用ARM芯片實現(xiàn)鍵盤接口2矩陣鍵盤按鍵的識別方法,此方法分兩步進行:
①識別鍵盤哪一行的鍵被按下:讓所有行線均為低電平,檢查各列線電平是否為低,如果有列線為低,則說明該列有鍵被按下,否則說明無鍵被按下。②如果某列有鍵被按下,識別鍵盤哪一行的鍵被按下:逐行置低電平,并置其余各行為高電平,檢查各列線電平的變化,如果列電平變?yōu)榈碗娖?,則可確定此行此列交叉點處按鍵被按下。行掃描法獲取鍵值的程序1
接口中利用了PF口的相關(guān)寄存器,PF口的寄存器有3個:PF口數(shù)據(jù)寄存器
PDATF、PF口上拉電阻寄存器
PUPF和PF口控制寄存器
PCONF。
PDATF位描述PF[8:0][8:0]當端口設(shè)定為輸入口時,這個寄存器的相應(yīng)位就對應(yīng)著引腳的狀態(tài);當端口設(shè)定為輸出口時,輸出引腳的狀態(tài)與該寄存器的相應(yīng)位相同;當端口設(shè)定為多功能口時,PDATF中的內(nèi)容無效PUPF位描述PF[8:0][8:0]0:相應(yīng)位的上拉電阻使能1:相應(yīng)位的上拉電阻禁止行掃描法獲取鍵值的程序2
PCONF位描述PF0[1:0]00:輸入01:輸出10:IICSCL 11:保留PF1[3:2]00:輸入01:輸出10:IICSDA 11:保留PF2[5:4]00:輸入01:輸出10:nWAIT 11:保留PF3[7:6]00:輸入01:輸出10:nXBACK 11:nXDACK0PF4[9:8]00:輸入01:輸出10:nXBREQ 11:nXDREQ0PF5[12:10]000:輸入 001:輸出 010:nRTS1011:SIOTxD 100:IISLRCK 其他:保留PF6[15:13]000:輸入 001:輸出 010:TxD1011:SIORDY 100:IISDO 其他:保留PF7[18:16]000:輸入 001:輸出 010:RxD1011:SIORxD 100:IISDI 其他:保留PF8[21:19]000:輸入 001:輸出 010:nCTS1011:SIOCLK 100:IISCLK 其他:保留行掃描法獲取鍵值的程序3
1.寄存器設(shè)置程序中,首先通過設(shè)置PCONF寄存器,來實現(xiàn)端口功能配置,然后再分別設(shè)置PDATF及PUPF寄存器。(1)設(shè)置PCONF寄存器由于需要設(shè)定PF0~PF3為輸出口,PF4~PF7為輸入口,因此,在端口工作之前設(shè)置:rPCONF=000000000
00
01
01
01
01B=0x55;(2)設(shè)置PDATF寄存器PF0~PF3作為輸出口輸出掃描碼時,可采用如下語句:rPDATF=0xf0;//PF0~PF3全寫入0PF4~PF7作為輸入口讀入鍵值時,采用如下語句:Keyval=(rPDATF&0xf0)>>4;(3)設(shè)置PUPF寄存器設(shè)置內(nèi)部上拉電阻的語句為:rPUPF=0x00;//使能PF0~PF7的內(nèi)部上拉電阻行掃描法獲取鍵值的程序4
2.鍵盤掃描程序框圖行掃描法獲取鍵值的程序53.鍵盤掃描程序代碼
#include<string.h>#include<stdio.h>charReadKeyVal(void){unsignedchari,j,H_val,L_val;charkeyval=-1;rPCONF=0x55;rPUPF=0x00;rPDATF=0xf0;if((L_val=(rPDATF&0xf0))!=0xf0){H_val=0xfe;for(i=0;i<4;i++)行掃描法獲取鍵值的程序6{rPDATF=H_val;for(j=0;j<100;j++);if((L_val=(rPDATF&0xf0))!=0xf0){L_val=((L_val>>4))|0xf0;Keyval=get_val(H_val)×4+get_val(L_val);returnkeyval;}elseH_val=H_val<<1;}}returnkeyval;}
行掃描法獲取鍵值的程序7//get_val子函數(shù)是由掃描值、讀取的列值分別得到行號、列號charget_val(unsignedcharval){unsignedchari,x;x=0;for(i=0;i<4;i++){if((~val)==1)returnx;val=(val>>1)|0x80;x=x+1;}}
LED概述
LED:七段發(fā)光二極管,在專用的微型計算機系統(tǒng)中,特別是在嵌入式控制系統(tǒng)中,應(yīng)用非常普遍。它價格低廉、體積小、功耗低,可靠性好。兩種結(jié)構(gòu):共陽極和共陰極。LED譯碼在多個LED顯示電路中,通常把陰(陽)極控制端接至一輸出端口,我們稱它為位控端口;把數(shù)據(jù)顯示段接至一個輸出端口,我們稱這個端口為段控端口。段控端口處應(yīng)輸出十六進制數(shù)的7段代碼。兩種譯碼方法:(1)采用專用芯片,可以實現(xiàn)對BCD碼的譯碼,但不能對大于9的二進制數(shù)譯碼。(2)軟件譯碼法。在軟件設(shè)計時,將0到F共16個數(shù)字(也可以為0到9)對應(yīng)的顯示代碼組成一個表。LED段碼表LED結(jié)構(gòu)數(shù)字顯示共陰極接法共陽極接法D7D6D5D4D3D2D1D07段代碼D7D6D5D4D3D2D1D07段代碼DPgfedcbaDPgfedcba0001111113FH11000000C0H10000011006H11111001F9H2010110115BH10100100A4H3010111114FH10110000B0H40110011066H1001100199H5011011016DH1001001092H6011111017DH1000001082H70000011107H11111000F8H8011111117FH1000000080H9011011116FH1001000090HA0111011177H1000100088HB011111007CH1000001183HC0011100139H11000110C6HD010111105EH10100001A1HE0111100179H1000011086HF0111000171H100011108EHP0111001173H100011008CH用ARM芯片實現(xiàn)LED顯示接口1
1.接口電路
用ARM芯片實現(xiàn)LED顯示接口22.初始化設(shè)置(1)設(shè)置PCONF、PCONG寄存器由于需要設(shè)定端口F、G為輸出口,因此,在端口工作之前設(shè)置:rPCONF=
0010010010101010101B=0x12555;
rPCONG=
0101010101010101B=0x5555;(2)設(shè)置PUPF、PUPG寄存器設(shè)置內(nèi)部上拉電阻的語句為:rPUPF=0x00;//使能PF0-7的內(nèi)部上拉電阻
rPUPG=0x00;//使能PG0-7的內(nèi)部上拉電阻用ARM芯片實現(xiàn)LED顯示接口3
3.LED顯示流程圖
用ARM芯片實現(xiàn)LED顯示接口44.LED顯示代碼在內(nèi)存中開辟一個數(shù)組dis_8_num[],用來存放將要在8個LED數(shù)碼管上顯示的字符。緩沖區(qū)第1個數(shù)據(jù)送最右邊的LED,下一個數(shù)據(jù)送右邊的第2個LED,依次進行直到最后一個數(shù)據(jù)送最左邊的LED;led_dis[]數(shù)組內(nèi)放置0~f對應(yīng)的7段段碼表,LED為共陽極結(jié)構(gòu)。#include<string.h>#include<stdio.h>voidDisplayLedl(unsignedchardis_8_num[]){unsignedcharled_dis[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0x8C}; //0~F及小數(shù)位段碼表用ARM芯片實現(xiàn)LED顯示接口5unsignedchari,j,D_val,B_val;rPCONF=0x12555;rPCONG=0x5555;rPUPF=0x00;//使能PF0~PF7的內(nèi)部上拉電阻rPUPG=0x00;//使能PG0~PG7的內(nèi)部上拉電阻B_val=0x80;for(i=0;i<8;i++){ D_val=dis_8_num[i]; rPDATF=led_dis[D_val]; rPDATG=B_val; for(j=0;j<100;j++); B_val=B_val>>1;}}
LCD顯示器接口概述液晶:一種具有規(guī)則性分子排列的有機化合物,既不是固體也不是液體,介于固態(tài)和液態(tài)之間的物質(zhì)。
液晶顯示是一種被動的顯示,它不能發(fā)光,只能使用周圍環(huán)境的光?;驹恚和ㄟ^給不同的液晶單元供電,控制其光線的通過與否,從而達到顯示的目的。三種顯示方式:反射型,透射型和透反射型。市面上出售的LCD有兩種類型:(1)帶有驅(qū)動電路的LCD顯示模塊,這種LCD可以方便地與各種低檔單片機進行接口;(2)LCD顯示屏,沒有驅(qū)動電路,需要與驅(qū)動電路配合使用
S3C44B0X內(nèi)部LCD控制器
作用:把定位在系統(tǒng)存儲器中的視頻緩沖區(qū)的LCD圖象數(shù)據(jù)傳輸?shù)絃CD驅(qū)動器,并產(chǎn)生必須的LCD控制信號。LCD控制器包含:REGBANK、LCDCDMA、VIDPRCS和TIMEGEN。
REGBANK:有18個可編程寄存器,用于配置LCD控制器。LCDCDMA:專用DMA,可以自動地將顯示數(shù)據(jù)從幀內(nèi)存中傳送到LCD驅(qū)動器中。
VIDPRCS:從LCDCDMA接收數(shù)據(jù)。TIMEGEN:包含可編程的邏輯,支持常見的LCD驅(qū)動器所需要的不同接口時間和速率的要求。產(chǎn)生VFRAME,VLINE,VCLK,VM信號。TIMEGENREGBANKLCDCDMAVIDPRCSLCD控制器和LCD驅(qū)動器之間的接口信號
(1)VFRAME:幀同步信號,告訴LCD新的一幀開始。LCD控制器在一個完整幀顯示完成后立即插入一個VFRAME信號,并開始新一幀的顯示。(2)VLINE:線同步脈沖信號,用于LCD驅(qū)動器將水平線(行)移位寄存器的內(nèi)容傳送給LCD屏顯示。LCD控制器在整個水平線(整行)數(shù)據(jù)移入LCD驅(qū)動器后,插入一個VLINE信號。(3)VCLK:像素時鐘信號,由LCD控制器送出的數(shù)據(jù)在VCLK的上升沿處送出,在VCLK的下降沿處被LCD驅(qū)動器采樣。(4)VM:電壓極性信號,VM信號被LCD驅(qū)動器用于改變行和列的電壓極性,從而控制像素點的顯示或熄滅。VM信號可以與每個幀同步,也可以與可變數(shù)量的VLINE信號同步。(5)VD[3:0]:LCD像素點數(shù)據(jù)輸出端口。(6)VD[7:4]:LCD像素點數(shù)據(jù)輸出端口。
LCD控制器的操作
(1)顯示類型3種:4位雙掃描,4位單掃描,8位單掃描顯示模式。(2)像素點字節(jié)數(shù)據(jù)格式在彩色模式下,1個字節(jié)8位(3位紅色、3位綠色、2位藍色)的圖像數(shù)據(jù)對應(yīng)于一個像素點。
(3)虛擬顯示支持硬件方式的水平或垂直滾動。如果要使屏幕滾動,顯示緩沖區(qū)的大小要大于LCD顯示屏的大小。(4)查找表查找表即調(diào)色板表,用于各種色彩選擇或灰度級別選擇。在灰度模式,通過查找表可以在16級灰度中選擇4種灰度。在彩色模式,1個字節(jié)的圖像數(shù)據(jù)組成是3位紅色,3位綠色,2位藍色。通過查找表,可以選擇16級紅色中的8種,16級綠色中的8種,16級藍色中的4種,構(gòu)成8×8×4=256色。每個色彩級別由4位數(shù)據(jù)表示,因此共有16個色彩級別可供選擇。LCD控制參數(shù)
(1)水平掃描次數(shù)HOZVAL的計算公式:HOZVAL=(顯示寬度/VD數(shù)據(jù)線的位數(shù))-1其中,在彩色模式下,顯示寬度=3×每行的像素點數(shù)目。本例采用的LCD,HOZVAL=(320×3/8)-1個像素。(2)垂直掃描次數(shù)LINEVAL的計算公式:在單掃描顯示類型下:LINEVAL=(顯示高度)-1在雙掃描顯示類型下:LINEVAL=(顯示高度/2)-1本例采用的LCD,LINEVAL=240-1個像素。(3)像素時鐘VCLK計算公式:VCLK=MCLK/(CLKVAL×2),單位為赫茲(Hz)
時鐘變量CLKVAL的值決定了VCLK的頻率,為了確定CLKVAL的值,應(yīng)計算由LCD控制器向VD端口傳輸數(shù)據(jù)的速率,以便使VCLK的值大于數(shù)據(jù)傳輸?shù)乃俾?。?)數(shù)據(jù)傳輸速率的公式為:數(shù)據(jù)傳輸速率=HS×VS×FR×MV其中,HS是LCD的行像素值;VS是LCD的列像素值;FR是幀速率;MV是模式值,其取值情況與顯示模式有關(guān)。MV的取值
系統(tǒng)實例計算
HS=320;VS=240;FR=70Hz;MV=3/8,故數(shù)據(jù)傳輸速率=320×240×70×3/8=2016000HzVCLK的值應(yīng)大于2MHz,小于16MHz在本實例系統(tǒng)中,CLKVAL可以取值3~15。VFRAME信號的頻率與LCDCON1和LCDCON2寄存器中的WLH(VLINE脈沖寬度),WHLY(VLINE脈沖之后VCLK的延時寬度),HOZVAL,LINEBLANK和LINEVAL有關(guān)。LCD控制器專用寄存器
LCD控制器主要提供液晶屏顯示數(shù)據(jù)的傳送時鐘和各種信號產(chǎn)生及控制功能。LCD控制器專用寄存器主要有:
LCD控制寄存器1(LCDCON1)LCD控制寄存器2(LCDCON2)LCD控制寄存器3(LCDCON3)幀緩沖區(qū)起始地址寄存器1(LCDSADDR1)幀緩沖區(qū)起始地址寄存器2(LCDSADDR2)幀緩沖區(qū)起始地址寄存器3(LCDSADDR3)紅色查找表寄存器(REDLUT)綠色查找表寄存器(GREENLUT)藍色查找表寄存器(BLUELUT)LCD控制寄存器1(LCDCON1)LCD控制寄存器2(LCDCON2)LCD控制寄存器3(LCDCON3)幀緩沖區(qū)起始地址寄存器1(LCDSADDR1)幀緩沖區(qū)起始地址寄存器2(LCDSADDR2)幀緩沖區(qū)起始地址寄存器3(LCDSADDR3)紅色查找表寄存器(REDLUT)綠色查找表寄存器(GREENLUT)藍色查找表寄存器(BLUELUT)LCD應(yīng)用實例-接口電路
VMI/O口LCD功能設(shè)置
通常采用S3C44B0X的PC口和PD口作為LCD驅(qū)動接口,因此需要設(shè)置PC口工作在第3功能狀態(tài)和PD口工作在第2功能狀態(tài)。設(shè)置對應(yīng)I/O口控制寄存器的語句:rPCONC=00000000000000001111111100000000B=0x0000ff00;rPUPC=0x00;//上拉使能rPCOND=0xaaaa;rPUPD=0x00;
初始化流程圖
初始化程序代碼1U32*pLCDBuffer16=(U32*)0xc000000;U32LCDBuffer[LCDHEIGHT][LCDWIDTH];voidLCD_Init(){ inti; U32LCDBASEU,LCDBASEL,LCDBANK;rPCONC=00000000000000001111111100000000B=0x0000ff00;rPUPC=0x00;//上拉使能rPCOND=0xaaaa;rPUPD=0x00;rLCDCON1=(0x0)|(2<<5)|(0<<7)|(0x3<<8)|(0x3<<10)|(8<<12);
//VCLK的頻率為8MHz,WLH為16個時鐘;
//WDLY為16個時鐘;MMODE=0;
//顯示模式為8位單掃描方式,VCLK,VLINE,
//VFRAME,VM為正常極性;不啟動LCD初始化程序代碼2rLCDCON2=(240-1)|((320*3/8-1)<<10)|(14<<21);//LINEVAL=240-1,HOZVAL=320*3/8–1,LINEBLANK=14 LCDBANK=0xc000000>>22;//((U32)LCDBuffer16)>>22; LCDBASEU=0x0;//((U32)LCDBuffer16)&0x3fffff; LCDBASEL=LCDBASEU+(160)*240; rLCDSADDR1=(0x3<<27)|(LCDBANK<<21)|LCDBASEU|((((U32)LCDBuffer16)>>1)&0x7ffffff);//彩色模式,LCDBANK,LCDBASEU定位顯示緩沖區(qū)
rLCDSADDR2=(0<<29)|(0<<21)|LCDBASEL;
rLCDSADDR3=(320/2)|(0<<9);//PAGEWIDTH=320/2,OFFSIZE=0rREDLUT=0xfca86420; rGREENLUT=0xfca86420; rBLUELUT=0xfffffa50;}
觸摸屏的概念與特點
觸摸屏:
從市場概念:計算機輸入設(shè)備,不用學習,人人都會使用。從技術(shù)原理角度:透明的絕對定位系統(tǒng),沒有光標,檢測手指觸摸。特征:透明。透明的四個特性:透明度、色彩失真度、反光性和清晰度。絕對坐標系統(tǒng),與鼠標這類相對定位系統(tǒng)的本質(zhì)區(qū)別是一次到位的直觀性。要求解決漂移現(xiàn)象。檢測觸摸并定位。各種觸摸屏技術(shù)都是依靠各自的傳感器來工作的,要求解決多點觸摸問題。
觸摸屏的類型
按工作原理分為:紅外式觸摸屏:價格低,外框易碎,容易產(chǎn)生光干擾,曲面情況下失真。電容式觸摸屏:設(shè)計理論好,圖象失真問題很難得到根本解決。電阻式觸摸屏:定位準確,價格高,怕刮易損。表面聲波觸摸屏:解決了以往觸摸屏的各種缺陷,清晰抗暴,適于各種場合,缺憾是屏表面的水滴、塵土會使觸摸屏變得遲鈍,甚至不工作。各種觸摸屏基本技術(shù)對比
電阻式觸摸屏電容式觸摸屏紅外線式觸摸屏表面聲波式觸摸屏透光率85%85%100%92%分辨率4096*40961024*1024977*7374096*4096感應(yīng)軸X、YX、YX、YX、Y、Z漂移無有無無耐磨損失好好很好很好響應(yīng)速度<10ms<3ms<20ms<10ms干擾性無電磁干擾光擾無污物影響無較小無小穩(wěn)定性好差高一般電阻式觸摸屏的工作原理
觸摸屏組成:觸摸檢測部件:安裝在顯示器屏幕前面,檢測用戶觸摸位置,接受后送觸摸屏控制器。觸摸屏控制器:接收觸摸點檢測裝置信息,并將它轉(zhuǎn)換成觸點坐標,再送給CPU。工作原理:屏體部分是一塊與顯示器表面非常配合的多層復合薄膜。由一層玻璃或有機玻璃作為基層,表面涂有透明的導電層(OTI,氧化銦,弱導電體,透光率為80%)。上面再蓋一層外表面硬化處理、光滑防刮的塑料層,它的內(nèi)表面也涂有一層OTI,在兩層導電層之間有許多細小(小于千分之一英寸)的透明隔離點把它們隔開絕緣。當手指接觸屏幕,兩層OTI導電層(層間距2.5微米)出現(xiàn)一個接觸點,因其中一面導電層接通Y軸方向的5V均勻電壓場,使得偵測層的電壓由零變?yōu)榉橇?,控制器偵測到這個接通后,進行A/D轉(zhuǎn)換,可得觸摸點的Y軸坐標。同理得出X軸的坐標。電阻屏根據(jù)引出線數(shù)多少,分為四線、五線等多線電阻觸摸屏。電阻式觸摸屏工作原理圖解觸摸屏的驅(qū)動芯片ADS7843
S3C44B0X通過端口G模擬串行的SIO接口與觸摸屏專門的控制芯片ADS7843進行數(shù)據(jù)傳輸,來完成對觸摸屏觸摸位置坐標的讀取。ADS7843完成兩件事: (1)是完成電極電壓的切換; (2)是采集接觸點處的電壓值,并進行A/D轉(zhuǎn)換。ADS7843特性: (1)可編程控制8位或者12位A/D轉(zhuǎn)換模式。 (2)低導通電阻模擬開關(guān)。 (3)實現(xiàn)觸摸屏的驅(qū)動選擇控制(X、Y通道)。 (4)供電電壓為2.7~5V。 (5)參考電壓VREF為1V~+Vcc。 (6)轉(zhuǎn)換電壓的輸入范圍為0~VREF。 (7)最高轉(zhuǎn)換速率為125kHz。ADS7843引腳配置
引腳號名稱描述1,10+Vcc供電電源輸入2.7~5V2,3X+,Y+觸摸屏X+、Y+輸入,接內(nèi)部ADC輸入通道4,5X-,Y-觸摸屏X-、Y-輸入6GND接地7,8IN3,IN4附屬ADC輸入通道9VREFADC參考電壓11PENIRQ接觸中斷輸出,必須外接10~100kΩ電阻12,14,16DOUT,DIN,DCLK控制字輸入、A/D轉(zhuǎn)換結(jié)果輸出端;在時鐘下降沿時輸出,上升沿時輸入13BUSY忙指示輸出15CS片選ADS7843的控制字
S:數(shù)據(jù)傳輸起始標志,必須為1。A2~A0:通道選擇。MODE:A/D轉(zhuǎn)換精度,“1”=8位,“0”=12位。SER/DFR:參考電壓輸入模式,“1”=固定電壓(VREF)模式,“0”=差動電壓(驅(qū)動電極)模式。PD1、PD0:省電模式,“00”=省電模式允許,在兩次A/D轉(zhuǎn)換之間掉電,且中斷允許;“01”與“00”相同,只是不允許中斷;“10”=保留;“11”=禁止省電模式。第7位(MSB)第6位第5位第4位第3位第2位第1位第0位(LSB)SA2A1A0MODESER/DFRPD1PD0ADS7843A0~A2的切換作用
A2A1A0X+Y+IN3IN4-INX開關(guān)Y開關(guān)+REF-REF001+INGNDOFFON+VREFGND101+INGNDONOFF+VREFGND010+INGNDOFFOFF+VREFGND110+INGNDOFFOFF+VREFGNDA2A1A0X+Y+IN3IN4-INX開關(guān)Y開關(guān)+REF-REF001+INY-OFFONY+Y-101+INX-ONOFFX+X-010+INGNDOFFOFF+VREFGND110+INGNDOFFOFF+VREFGNDSER/DFR=1,固定電壓(VREF)模式時,A0~A2的輸入設(shè)置SER/DFR=0,差動電壓(驅(qū)動電極)模式時,A0~A2的輸入設(shè)置ADS7843典型接口
觸摸屏在按下時分別給兩組電極通電,然后將其對應(yīng)位置的模擬電壓信號經(jīng)過A/D轉(zhuǎn)換送回處理器。S3C44B0X選取PG口與ADS7843接口,共使用PG2~PG7的6條口線,也可以選擇其他的I/O口。X+、Y+、X-、Y-引腳直接與觸摸屏的相應(yīng)管腳相連。
PG3PG4PG2PG6PG5PG7S3C44B0X+5VADS7843寄存器參數(shù)PCONG寄存器:
rPCONG=0x015fPG765432100000000101011111
入入入出出出PENIRQ加內(nèi)部上拉電阻:
rPUPG&=0x80
讀取觸摸點坐標程序流程
SER/DFR=1,采用固定電壓模式。首先檢測PENIRQ是否為低電平,如果為低電平,則認為有接觸;否則認為觸摸屏沒有接觸。利用軟件模擬DIN、DOUT和DCLK上的3線串行傳輸時序,將讀取X或Y坐標數(shù)值的控制字串行送入ADS7843,然后再串行讀出坐標值。最后將X和Y軸坐標值送串口顯示即可。
讀取觸摸點坐標程序檢測PENIRQ,程序如下:#defineTOUCH-MSR-Y0x9c; //讀Y軸坐標控制字:8位A/D轉(zhuǎn)換、參考電壓固定模式、省電模式允許#defineTOUCH-MSR_X0xdc;//讀x軸坐標控制字:8位A/D轉(zhuǎn)換、參考電壓固定模式、省電模式允許if((rPDATG&0x80==0)//PG7,PENIRO電平為低{_State.Pressed=1;//說明已經(jīng)按下
temp=TOUCH_MSR_X;_State.X=ReadTouch(temp);
temp=TOUCH_MSR_Y;_State.Y=ReadTouch(temp);}
送控制字并讀取結(jié)果子程序1
intReadTouch(unsignedcharcommand){
unsignedchartemp,i,ack,j,k;ack=0;//PG7:PENIRQ,PG6:BUSY,PG5:DOUT,PG4:CS,PG3:DCLK,PG2:DINrPDATG&=0xe7; //PG4,CS置低;DCLK置低
temp=0x80;//析取要傳送的位
for(i=0;i<8;i++) //發(fā)送1個字節(jié){
if(command&temp)rPDATG|=0x04; //將DIN置1elserPDATG&=0xfb; //將DIN清0,PG2rPDATG|=0x08; //DCLK置高,PG3delay(2);
rPDATG&=0xf7; //清除DCLK,1位送出,PG3delay(2);
temp=temp>>1; //右移1位
}送控制字并讀取結(jié)果子程序2while((temp=(rPDATG&0x40))==1);//等待BUSY變低,PG6rPDATG&=0xdf;//DOUT清零,PG5//開始接收數(shù)據(jù)
rPDATG|=0x08;//DCLK置高,PG3delay(2);rPDATG&=0xf7; //DCLK清零,PG3delay(2);for(i=0;i<7;i++)//取得前7位坐標數(shù)據(jù)(高位在前)
{rPDATG|=0x08; //DCLK置高,PG3if(temp=rPDATG&0x20)//取得DOUT上的1位數(shù)據(jù)
ack+=1;ack=ack<<1;delay(2);rPDATG&=0xf7; //DCLK清零,PG3delay(2);}送控制字并讀取結(jié)果子程序3
rPDATG|=0x08; //DCLK置高,PG3if(temp=rPDATG&0x20)//接收最后1位
ack+=1delay(2)rPDATG&=0xf7 //DCLK清零,PG3rPDATG|=0x10 //cs置高,PG4returnack; //返回接收結(jié)果}
串行通信概述串行通信:就是使數(shù)據(jù)一位一位地進行傳輸而實現(xiàn)的通信。優(yōu)點:傳輸線少、成本低。特別適合遠距離傳送。缺點:速度慢。串行數(shù)據(jù)傳送模式:單工、半雙工、全雙工串行通信方式:同步通信、異步通信RS-232C接口規(guī)格
RS-232C所用的驅(qū)動芯片通常以±12V的電源來驅(qū)動信號線,但是實際上,因為傳輸線的連接狀態(tài)及接收端負載阻抗的影響,均會造成電壓的下降,但最低仍不得低于±5V以下。
RS-232C接口信號
S3C44B0X內(nèi)部集成的UART
兩個異步串口(SIO):每個SIO可以操作在中斷模式或DMA模式。波特率:最大為115.2kbps。FIFO:每個SIO通道都包含有一個16字節(jié)的接收與發(fā)送FIFO緩沖區(qū)。每個UART模塊包含4個部件:(1)波特率發(fā)生器:MCLK作為時鐘源。
(2)發(fā)送器:可以產(chǎn)生暫停條件,暫停條件強制串口輸出保持在邏輯0狀態(tài)比一幀長的時間。
(3)接收器:可以檢測溢出錯誤、奇偶錯誤、frame錯誤和暫停條件,其中每一個設(shè)置一個錯誤標志。
(4)控制單元:發(fā)送器和接收器包含16字節(jié)的FIFO和移位寄存器。要被發(fā)送的數(shù)據(jù)首先被寫入FIFO,然后被復制到發(fā)送移位寄存器中,最后從數(shù)據(jù)輸出端口(TxDn)依次被移位輸出;被接收的數(shù)據(jù)也同樣從數(shù)據(jù)接收端口(RxDn)依次被移位輸入到移位寄存器,然后被復制到FIFO中。
UART操作
數(shù)據(jù)發(fā)送:數(shù)據(jù)發(fā)送的幀格式可編程,包含一個起始位、5~8個數(shù)據(jù)位、一個可選的奇偶位和1~2個停止位,通過線控制寄存器(ULCONn)設(shè)置。能產(chǎn)生發(fā)送中止條件。通常在一幀傳輸數(shù)據(jù)完整地傳輸完之后,再通過這個全0狀態(tài)將中止信號發(fā)送給對方。數(shù)據(jù)接收:與數(shù)據(jù)發(fā)送數(shù)據(jù)格式相同,可以檢測到溢出錯誤、奇偶校驗錯誤、幀錯誤和中止狀況。自動流控制(AFC):UART連接UART時使用,用nRTS和nCTS信號進行自動流控制。自動流控制時,nRTS由接收條件控制,發(fā)送運行由nCTS信號控制,發(fā)送時當nCTS信號有效時(意味著對方的UART準備好接收數(shù)據(jù)),發(fā)送器傳輸數(shù)據(jù)到FIFO中。在接收數(shù)據(jù)時,當FIFO有多于兩個字節(jié)的空間時,nRTS激活(指示接收FIFO準備好接收數(shù)據(jù)),F(xiàn)IFO剩余空間在一個字節(jié)以下時必須將nRTS清0,說明“不能再接收”。非自動流控制:UART連接MODEM時使用,通過軟件控制nRTS和nCTS。調(diào)制解調(diào)器接口:用nRTS、nCTS、nDSR、nDTR、DCD和nRI信號。AFC不支持RS-232C接口。
錯誤狀態(tài)描述
①溢出錯誤:新的數(shù)據(jù)已經(jīng)覆蓋了舊的數(shù)據(jù),因為舊的數(shù)據(jù)沒有及時被讀入。②奇偶校驗錯誤:接收器檢測到了意料之外的奇偶校驗結(jié)果。③幀錯誤:接收到的數(shù)據(jù)沒有有效的停止位。④中止狀況:RxDn的輸入被保持為0狀態(tài)的時間超過了一個幀傳輸?shù)臅r間。⑤接收超時:在FIFO模式下,接收FIFO非空,當接收器在3個字時間內(nèi)都沒有接收到任何數(shù)據(jù)時,就認為發(fā)生了接收超時狀況。
中斷/DMA請求產(chǎn)生器
每個UART都有7個狀態(tài)信號: 接收FIFO/緩沖區(qū)數(shù)據(jù)準備好 發(fā)送FIFO/緩沖區(qū)空 發(fā)送移位寄存器空 溢出錯誤 奇偶校驗錯誤 幀錯誤 中止接收中斷:當接收器要將接收移位寄存器的數(shù)據(jù)送到接收FIFO,會激活接收FIFO滿狀態(tài)信號,如果是中斷模式,會引發(fā)中斷。發(fā)送中斷:當發(fā)送器從發(fā)送FIFO中取出數(shù)據(jù)送到發(fā)送移位寄存器,那么FIFO空狀態(tài)信號將會被激活。如果是中斷模式,會引發(fā)中斷。如果接收/發(fā)送是DMA模式,“接收FIFO滿”和“發(fā)送FIFO空”狀態(tài)同樣可以產(chǎn)生DMA請求信號。
與FIFO有關(guān)的中斷類型FIFO類型非FIFO模式Rx中斷每當接收數(shù)據(jù)達到接收FIFO觸發(fā)的水平,就產(chǎn)生接收中斷;如果FIFO非空且連續(xù)3個字時間沒有接收到任何數(shù)據(jù),就產(chǎn)生超時中斷;每當接收數(shù)據(jù)滿,接收移位寄存器將產(chǎn)生一個中斷;Tx中斷每當發(fā)送數(shù)據(jù)達到發(fā)送FIFO觸發(fā)的水平,就產(chǎn)生發(fā)送中斷;每當發(fā)送數(shù)據(jù)空,發(fā)送保持寄存器將產(chǎn)生一個中斷;錯誤中斷幀錯誤、奇偶校驗錯誤和被檢測到并按字節(jié)接收的中止信號,都將產(chǎn)生錯誤中斷;當達到接收FIFO的頂部,就會產(chǎn)生溢出錯誤中斷;所有錯誤都會立即產(chǎn)生一個錯誤中斷。但兩個錯誤同時發(fā)生,只有一個中斷會產(chǎn)生;波特率發(fā)生器
波特率發(fā)生器:為傳輸提供串行移位時鐘。波特率發(fā)生器以MCLK作為時鐘源。波特率時鐘:由對時鐘源16分頻及波特率除數(shù)寄存器(UBRDIVn)指定的16位除數(shù)決定。UBRDIVn值計算公式:
UBRDIVn=(取整)(MCLK/(波特率×16))-1除數(shù)的范圍:1~例如:如果波特率為115200b/s,且系統(tǒng)主頻(MCLK)為40MHz,則UBRDIVn的值為:UBRDIVn=(取整)(40000000/(115200×16)+0.5)-1=22-1=21
回送模式與紅外通信模式(1)回送模式:一個測試模式。在這種模式下,發(fā)送出的數(shù)據(jù)會立即被接收。這一特性用于校驗運行處理器內(nèi)部發(fā)送和接收通道的功能。這種模式可以通過設(shè)置UART控制寄存器(UCONn)中的回送位來實現(xiàn)。(2)紅外通信模式:S3C44BOX的UART模塊支持紅外線(IR)發(fā)送和接收。可以通過設(shè)置UART控制寄存器(UCONn)中的紅外模式位來選擇這一模式。UART線控制寄存器
作用:規(guī)定傳輸幀的格式。線控制寄存器0(ULCON0)地址0x01D00000,可讀寫,初始值為0x00。
線控制寄存器1(ULCON1)地址0x01D04000,可讀寫,初始值為0x00。
ULCONn位描述初始值保留[7]
0紅外線模式[6]該位確定是否使用紅外通信模式0:正常模式1:紅外收發(fā)模式0奇偶校驗模式[5:3]
該位確定奇偶如何產(chǎn)生和校驗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位00UART控制寄存器
作用:確定發(fā)送/接收的控制參數(shù)。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ā)生錯誤時的錯誤中斷響應(yīng)0:不產(chǎn)生錯誤狀態(tài)中斷1:產(chǎn)生錯誤狀態(tài)中斷0回送模式[5]該位使UART自動進入回送模式0:正常操作1:回送模式0發(fā)送中止信號[4]
該位將引發(fā)UART在一幀時間內(nèi)發(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)00FIFO控制寄存器
作用:確定發(fā)送/接收FIFO的控制參數(shù)。UFCON0地址為0x01D00008,可讀寫,初始值為0x00。
UFCON1地址為0x01D04008,可讀寫,初始值為0x00。
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使能0Modem控制寄存器
作用:確定自動流控制和RTS設(shè)置。UMCON0地址為0x01D0000C,可讀寫,初始值為0x00。UMCON1地址為0x01D0400C,可讀寫,初始值為0x00。UMCONn位描述初始值保留[7:5]這3位必須為0000自動流控制4AFC是否允許0:禁止1:使能0保留[3:1]這3位必須為0000請求發(fā)送0如果AFC允許,該位忽略;如果AFC禁止,必須由軟件來控制nRTS。0:高電平(不激活nRTS)1:低電平(激活nRTS)0發(fā)送/接收狀態(tài)寄存器
作用:提供發(fā)送接收狀態(tài)。UTSTAT0地址為0x01D00010,可讀,初始值為0x06。
UTSTAT1地址為0x01D04010,可讀,初始值為0x06。UTRSTATn位描述初始狀態(tài)發(fā)送移位寄存器為空[2]當發(fā)送移位寄存器中不包含有效數(shù)據(jù)或移位寄存器為空,該位自動被置位。0:非空1:發(fā)送保持和移位寄存器為空1發(fā)送緩沖器為空[1]當發(fā)送緩沖區(qū)寄存器中不包含有效數(shù)據(jù),這一位將自動被置位0:緩沖區(qū)寄存器非空1:空如果使用了FIFO,則用戶不用檢測這個位,而應(yīng)當檢測UFSTAT中發(fā)送FIFO計數(shù)器位和FIFO滿位1接收緩沖器數(shù)據(jù)準備好[0]當接收緩沖器寄存器中包含了有效數(shù)據(jù),這一位將自動被置位0:完全為空1:緩沖區(qū)寄存器中包含有效數(shù)據(jù)如果使用了FIFO則用戶不用檢測這個位,而應(yīng)當檢測UFSTAT中接收FIFO計數(shù)器位0UART錯誤狀態(tài)寄存器
作用:提供各種接收過程中的錯誤情況。UERSTAT0地址為0x01D00014,可讀,初始值為0x00。UERSTAT1地址為0x01D04014,可讀,初始值為0x00。UERSTATn位描述初始值間隔中斷[3]如果接收到某個中止信號,該位將自動置10:未接收到中止信號1:接收到中止信號0數(shù)據(jù)幀錯誤[2]如果在接收操作中發(fā)生了幀錯誤,該位將自動置10:接收中沒有發(fā)生幀錯誤1:幀錯誤0奇偶錯誤[1]如果在接收操作中發(fā)生了奇偶校驗錯誤,該位將自動置11:奇偶校驗錯誤0:接收中沒有發(fā)生奇偶校驗錯誤0Overrun錯誤[0]如果在接收操作中發(fā)生了溢出錯誤,該位將自動置10:接收中沒有發(fā)生溢出錯誤1:溢出錯誤0UART的FIFO狀態(tài)寄存器
作用:提供FIFO發(fā)送、接收、計數(shù)器的狀態(tài)。UFSTAT0地址為0x01D00018,可讀,初始值為0x00。UFSTAT1地址為0x01D04018,可讀,初始值為0x00。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ù)量0000其他寄存器地址(1)Modem狀態(tài)寄存器UMSTAT0地址為0x01D0001C,可讀,初始值為0x00。UMSTAT1地址為0x01D0401C,可讀,初始值為0x00。(2)UART發(fā)送/接收保持(緩沖區(qū))寄存器UTXH0地址在小模式下為0x01D00020,在大模式下為0x01D00023,可寫,初始值可編程。UTXH1地址在小模式下為0x01D04020,在大模式下為0x01D04023,可寫,初始值可編程。(3)UART波特率除數(shù)寄存器UBRDIV0地址為0x01D00028,可讀寫,初始值可編程。
UBRDIV1地址為0x01D04028,可讀寫,初始值可編程。S3C44B0X的UART的應(yīng)用1
1.電路接口和I/O口設(shè)置S3C44BOX的串行應(yīng)用接口電路中的PC12,PC13,PE1,PE2是多功能I/O口,因此,在編寫串口數(shù)據(jù)收發(fā)程序之前,首先需要對PC口和PE口的工作模式進行設(shè)置。
rPCONC=0x0f000000|rPCONC;rPUPC=0x3000;//設(shè)置內(nèi)部上拉
rPCONE=(rPCONE&0xfc3)|0xeb;rPUPE=0x6;S3C44B0X的UART的應(yīng)用22.UART初始化對UART口的可配置參數(shù)進行初始化,使其能夠按照所要求的通訊方式進行通訊。對UART口進行初始化的設(shè)置程序見教材P186。3.字符發(fā)送程序Uart_SendByte()見教材P187。4.字符接收程序Uart_GetByte()見教材P187。S3C44BOX中斷接口概述S3C44BOX具有30個中斷源,包括1個看門狗定時器,6個定時器,6個UART,8個外部,4個DMA,2個RTC,1個ADC,1個IIC和1個SIO共30個中斷。S3C44BOX內(nèi)置的中斷控制器可以接收來自30個中斷源的請求。S3C44B0X支持新的中斷處理模式稱為矢量中斷模式。中斷控制器的角色,就是響應(yīng)來自FIQ(快速中斷請求)或IRQ(普通中斷請求)的中斷,并請求內(nèi)核對中斷進行處理。多個中斷請求發(fā)生時,由硬件優(yōu)先級邏輯確定應(yīng)該有哪個中斷得到服務(wù),同時硬件邏輯使中斷向量表的跳轉(zhuǎn)指令加載到(0X18或0X1C)位置,在該位置執(zhí)行跳轉(zhuǎn)指令使程序跳到相應(yīng)的中斷服務(wù)線程,因此相對于傳統(tǒng)的ARM的軟件方法能夠大大減少中斷進入延時。中斷模式
ARM7TDMI的兩種中斷模式:FIQ和IRQ。IRQ和FIQ的區(qū)別: (1)對于FIQ,必須盡快處理事件并離開這個模式; (2)IRQ可以被FIQ中斷,但IRQ不能中斷FIQ; (3)為使FIQ更快,F(xiàn)IQ模式具有更多的私有寄存器。程序狀態(tài)寄存器PSR的F位和I位: (1)PSR的F位=1,處理器不接受FIQ; (2)PSR的I位=1,處理器不接受IRQ。因此,為了使能相應(yīng)中斷機制,PSR的F位或I位必須被清0,同時中斷屏蔽寄存器INTMSK的相應(yīng)位也必須被清0。
中斷請求寄存器INTPND
INTPND:指示某個中斷請求是否還未被處理。INTPND中被置位的中斷位稱為pending位。Pending=1時,若CPSR的I標志位或F標志位為0,中斷服務(wù)程序就會被啟動執(zhí)行。INTPND是只讀寄存器,故要想清除pending位,需要對中斷服務(wù)寄存器I_ISPC或F_ISPC的相應(yīng)位寫入1。讀取INTPND可以了解中斷發(fā)生的情況,通過軟件查詢確定中斷服務(wù)優(yōu)先級。INTPND中的26個位對應(yīng)著每一個中斷源。某個中斷產(chǎn)生時,INTPND中的相應(yīng)位就會置1。中斷服務(wù)程序中,處理結(jié)束后須及時清除pending位,使系統(tǒng)能夠及時再次響應(yīng)該類型的中斷。中斷請求可通過INTMSK屏蔽,但如果被屏蔽的中斷發(fā)生,INTPND中的pending位仍然會置1。INTMSK中斷屏蔽寄存器
INTMSK=1,則與該位對應(yīng)的中斷響應(yīng)被禁止。INTMSK=0,則這個中斷發(fā)生時將會被正常響應(yīng)。如果某個中斷在INTMSK寄存器中的對應(yīng)位為1,但是又有這個中斷發(fā)生,則它的pending位還是會置位,只是不會自動轉(zhuǎn)入中斷服務(wù)程序。如果全局屏蔽位被置1,那么,當任一中斷發(fā)生時,中斷pending位還是會置位,但是所有的中斷都不會得到服務(wù)。S3C44B0X中斷源1在30個中斷源中有26個中斷源提供給中斷控制器,4個外部中斷(EINT4/5/6/7)請求是通過“或”的形式合成為1個中斷源送至中斷控制器,兩個UART錯誤中斷(UERRORO/1)也是如此。
S3C44B0X中斷源2注意:EINT4,EINT5,EINT6和EINT7分享同一個中斷請求源。中斷服務(wù)程序ISR要通過讀取EXTINTPND3~EXTINTPND0寄存器來區(qū)別這4個中斷源,并在處理結(jié)束時通過將EXTINTPND3~EXTINTPND0中對應(yīng)位寫1來清除該位。
中斷優(yōu)先級產(chǎn)生模塊
確定中斷優(yōu)先級方式:軟件查詢,硬件排隊(矢量中斷模式)。IRQ中斷請求有一個中斷優(yōu)先級產(chǎn)生模塊,如果使用中斷向量模式,并且中斷源被配置為IRQ中斷,中斷將被中斷優(yōu)先級產(chǎn)生模塊處理。中斷優(yōu)先級產(chǎn)生模塊包括5個單元:1個主單元,4個從單元。從單元:管理6個中斷源,包括4個可編程優(yōu)先級中斷源sGA、sGB、sGC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度文化產(chǎn)品出口代理協(xié)議模板3篇
- 2025年度征收補償與安置補償協(xié)議執(zhí)行監(jiān)督辦法4篇
- 2024年04月湖南國家開發(fā)銀行湖南分行暑期實習生招考筆試歷年參考題庫附帶答案詳解
- 個人汽車租借協(xié)議2024年標準格式樣張版B版
- 2025年度文化創(chuàng)意產(chǎn)業(yè)園區(qū)場地租賃管理協(xié)議4篇
- 個人與公司買賣合同范本完整版
- 2025年度文化產(chǎn)業(yè)園區(qū)場地合作開發(fā)合同協(xié)議書4篇
- 2024版室外房屋墻面裝修合同書版B版
- 2025年度化妝品全球包銷代理合同范本4篇
- 2024裝飾裝修合同的法律適用
- 2025年河南鶴壁市政務(wù)服務(wù)和大數(shù)據(jù)管理局招聘12345市長熱線人員10人高頻重點提升(共500題)附帶答案詳解
- 建設(shè)項目安全設(shè)施施工監(jiān)理情況報告
- 春節(jié)期間安全施工措施
- 2025年大唐集團招聘筆試參考題庫含答案解析
- 建筑工地春節(jié)期間安全保障措施
- 2025山東水發(fā)集團限公司招聘管理單位筆試遴選500模擬題附帶答案詳解
- 2024-2030年中國建筑玻璃行業(yè)市場深度調(diào)研及競爭格局與投資價值預測研究報告
- 泌尿:膀胱腫瘤病人的護理查房王雪-課件
- 企業(yè)短期中期長期規(guī)劃
- 中華民族共同體概論講稿專家版《中華民族共同體概論》大講堂之第一講:中華民族共同體基礎(chǔ)理論
- 《商務(wù)溝通-策略、方法與案例》課件 第一章 商務(wù)溝通概論
評論
0/150
提交評論