嵌入式系統(tǒng)(第5章ARM接口設計技術(shù))_第1頁
嵌入式系統(tǒng)(第5章ARM接口設計技術(shù))_第2頁
嵌入式系統(tǒng)(第5章ARM接口設計技術(shù))_第3頁
嵌入式系統(tǒng)(第5章ARM接口設計技術(shù))_第4頁
嵌入式系統(tǒng)(第5章ARM接口設計技術(shù))_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第5章ARM接口設計技術(shù)

LEDLCD顯示器接口132鍵盤接口芯片S3C44B0X簡介1以ARM7TMDI為內(nèi)核的高性能CPU推薦最高工作頻率為66MHz。具有71個通用多功能輸入輸出引腳,分別包含在如下7組端口中: 端口A:10位,輸出端口 端口B:11位,輸出端口 端口C:16位,輸入/輸出端口 端口D:8位,輸入/輸出端口 端口E:9位,輸入/輸出端口 端口F:9位,輸入/輸出端口 端口G:8位,輸入/輸出端口芯片S3C44B0X簡介2在一般的應用中: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高速緩存器外部存儲器控制器LCD控制器2通道通用DMA、2通道外設DMA并具有外部請求引腳2通道UART,帶有握手協(xié)議和1通道SIO。1通道多主IIC-BUS控制器。1通道IIS-BUS控制器。5個PWM定時器和1通道內(nèi)部定時器??撮T狗定時器。71個通用I/O口、8通道外部中斷源。功耗控制:具有普通、慢速、空閑和停止模式。8通道10位ADC。具有日歷功能的RTC。具有PLL的片上時鐘發(fā)生器。

基于S3C44B0X嵌入式結(jié)構(gòu)

鍵盤概述幾種常用的按鍵:(1)機械式按鍵:開關(guān)構(gòu)造有兩種:

1種:內(nèi)含兩個金屬片和一個復位彈簧,按鍵時兩個金屬片被壓在一起

2種:由底面帶一小塊導電橡膠的成型泡沫硅橡膠帽做的,按鍵時導電橡膠將印制電路板上的兩條印制線短路缺點:容易產(chǎn)生抖動、觸點易變臟,氧化優(yōu)點:價格低,手感好,使用廣泛

幾種常用的按鍵(2)電容式按鍵:由印制電路板上的兩小塊金屬片和一個在泡沫橡膠片下面的可活動的另一塊金屬片構(gòu)成。按鍵時通過改變金屬片之間的電容產(chǎn)生信號。 解決了機械按鍵金屬觸點氧化變臟的問題。幾種常用的按鍵(3)薄膜式按鍵:由3層塑料或橡膠夾層構(gòu)成,通過內(nèi)部印制銀導線相連。 該類按鍵可以制成很薄的密封單元,用于環(huán)境較臟的應用中。幾種常用的按鍵(4)霍耳效應按鍵:利用活動電荷在磁場中的偏轉(zhuǎn)效果形成的。 該類按鍵是一種無機械觸點的按鍵開關(guān),密封性好,但價格較高按鍵識別方法通常采用兩種方法:(1)行掃描法使鍵盤上某一行線為低電平,而其余行接高電平;然后讀取列值,如果列值中有某位為低電平,則表明行列交點處的鍵被按下;否則掃描下一行,直到掃描完全部的行線為止。按鍵識別方法(2)行反轉(zhuǎn)法行線接并行口先讓它工作在輸出方式下,將列線也接一個并行口,先讓它工作在輸入模式下。CPU通過輸出端口往各行線上全部送低電平,然后讀入列線的值。如果有某一鍵被按下,則必定會使某一列線值為0。然后,程序再對兩個并行端口進行方式設置,使行線工作在輸入,列線工作在輸出,將剛才讀的列線值從列線所接的并行端口輸出,再讀取行線上的輸入值。

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

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

①識別鍵盤哪一行的鍵被按下:

讓所有行線均為低電平,檢查各列線電平是否為低;

如果有列線為低,則說明該列有鍵被按下,否則說明無鍵被按下。用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]當端口設定為輸入口時,這個寄存器的相應位就對應著引腳的狀態(tài);當端口設定為輸出口時,輸出引腳的狀態(tài)與該寄存器的相應位相同;當端口設定為多功能口時,PDATF中的內(nèi)容無效PUPF位描述PF[8:0][8:0]0:相應位的上拉電阻使能1:相應位的上拉電阻禁止行掃描法獲取鍵值的程序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.寄存器設置程序中,首先通過設置PCONF寄存器,來實現(xiàn)端口功能配置,然后再分別設置PDATF及PUPF寄存器。(1)設置PCONF寄存器由于需要設定PF0~PF3為輸出口,PF4~PF7為輸入口,因此,在端口工作之前設置:rPCONF=000000

000

00

01

01

01

01B=0x55;行掃描法獲取鍵值的程序3

(2)設置PDATF寄存器PF0~PF3作為輸出口輸出掃描碼時,可采用如下語句:rPDATF=0xf0;//PF0~PF3全寫入0PF4~PF7作為輸入口讀入鍵值時,采用如下語句:Keyval=(rPDATF&0xf0)>>4;行掃描法獲取鍵值的程序3

(3)設置PUPF寄存器設置內(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;//行值,從第0行開始判斷

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; } else

H_val=H_val<<1;//判斷下一行 } } returnkeyval;}

行掃描法獲取鍵值的程序7//get_val子函數(shù)是由掃描值、讀取的列值分別得到行號、列號//根據(jù)輸入8位2進制數(shù)判斷是哪一行,哪一列charget_val(unsignedcharval){ unsignedchari,x; x=0;

for(i=0;i<4;i++) {

if((~val)==1)returnx;//全1返回

val=(val>>1)|0x80; x=x+1; }}

LED概述

LED:七段發(fā)光二極管,在專用的微型計算機系統(tǒng)中,特別是在嵌入式控制系統(tǒng)中,應用非常普遍。它價格低廉、體積小、功耗低,可靠性好。兩種結(jié)構(gòu):共陽極和共陰極。LED譯碼在多個LED顯示電路中,通常把陰(陽)極控制端接至一輸出端口,我們稱它為位控端口;把數(shù)據(jù)顯示段接至一個輸出端口,我們稱這個端口為段控端口。段控端口處應輸出十六進制數(shù)的7段代碼。LED譯碼兩種譯碼方法:(1)采用專用芯片,可以實現(xiàn)對BCD碼的譯碼,但不能對大于9的二進制數(shù)譯碼。(2)軟件譯碼法。在軟件設計時,將0到F共16個數(shù)字(也可以為0到9)對應的顯示代碼組成一個表。LED段碼表LED結(jié)構(gòu)數(shù)字顯示共陰極接法共陽極接法D7D6D5D4D3D2D1D07段代碼D7D6D5D4D3D2D1D07段代碼DPgfedcbaDPgfedcba0001111113FH11000000C0H10000011006H11111001F9H2010110115BH10100100A4H3010111114FH10110000B0H40110011066H1001100199H5011011016DH1001001092H6011111017DH1000001082H70000011107H11111000F8H8011111117FH1000000080H9011011116FH1001000090HA0111011177H1000100088HB011111007CH1000001183HC0011100139H11000110C6HD010111105EH10100001A1HE0111100179H1000011086HF0111000171H100011108EHP0111001173H100011008CH用ARM芯片實現(xiàn)LED顯示接口1

1.接口電路

用ARM芯片實現(xiàn)LED顯示接口22.初始化設置(1)設置PCONF、PCONG寄存器由于需要設定端口F、G為輸出口,因此,在端口工作之前設置:

rPCONF=

001001

0010101

01

01

01B=0x12555;

rPCONG=

0101

01

01

01

01

01

01B=0x5555;(2)設置PUPF、PUPG寄存器設置內(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對應的7段段碼表,LED為共陽極結(jié)構(gòu)。用ARM芯片實現(xiàn)LED顯示接口4#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ù)位段碼表unsignedchari,j,D_val,B_val;用ARM芯片實現(xiàn)LED顯示接口5rPCONF=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顯示器接口概述三種顯示方式:反射型,透射型和透反射型。市面上出售的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。

S3C44B0X內(nèi)部LCD控制器

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信號。LCD控制器和LCD驅(qū)動器之間的接口信號

(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ù)對應于一個像素點。

(3)虛擬顯示支持硬件方式的水平或垂直滾動。如果要使屏幕滾動,顯示緩沖區(qū)的大小要大于LCD顯示屏的大小。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個像素。LCD控制參數(shù)

(3)像素時鐘VCLK計算公式:VCLK=MCLK/(CLKVAL×2),單位為赫茲(Hz)

時鐘變量CLKVAL的值決定了VCLK的頻率,由LCD控制器向VD端口傳輸數(shù)據(jù)的速率,以便使VCLK的值大于數(shù)據(jù)傳輸?shù)乃俾?。?)數(shù)據(jù)傳輸速率的公式為:數(shù)據(jù)傳輸速率=HS×VS×FR×MV其中,HS是LCD的行像素值;VS是LCD的列像素值;FR是幀速率;MV是模式值,

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應用實例-接口電路

I/O口LCD功能設置

通常采用S3C44B0X的PC口和PD口作為LCD驅(qū)動接口,因此需要設置PC口工作在第3功能狀態(tài)和PD口工作在第2功能狀態(tài)。(見教材附錄AS3C44B0X端口引腳定義,非普通輸入/輸出功能狀態(tài))設置對應I/O口控制寄存器的語句:rPCONC=0000

00

00

00

00

00

001111

11

110000

0000B=0x0000ff00;rPUPC=0x00;//上拉使能rPCOND=0xaaaa;rPUPD=0x00;

初始化流程圖

初始化程序代碼1U32*pLCDBuffer16=(U32*)0xc000000;U32LCDBuffe

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論