版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第6章片內(nèi)功效模塊劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第1頁(yè)本章重點(diǎn):⑴S3C2410A
PWM(脈寬調(diào)制)定時(shí)器概述;
PWM定時(shí)器操作;PWM定時(shí)器特殊功效存放器;
PWM定時(shí)器應(yīng)用舉例。在PWM定時(shí)器操作中,詳細(xì)講述了自動(dòng)重裝與雙緩沖、手動(dòng)更新、脈寬調(diào)制、輸出電平控制、死區(qū)發(fā)生器、DMA請(qǐng)求模式等內(nèi)容。⑵S3C2410A
RTC(實(shí)時(shí)時(shí)鐘)概述;RTC組成與
操作;RTC特殊功效存放器;RTC程序舉例。在
RTC組成與操作中,詳細(xì)講述了閏年產(chǎn)生器、讀/寫存放器、后備電池、報(bào)警功效、節(jié)拍時(shí)間中止等內(nèi)容。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第2頁(yè)⑶S3C2410A看門狗定時(shí)器(WDT)概述;看門狗
定時(shí)器操作;看門狗定時(shí)器特殊功效存放器;看門狗定時(shí)器程序舉例。(4)串行異步通信基礎(chǔ);S3C2410A
UART組成及操作;UART特殊功效存放器;UART與RS-232C接口連接舉例;UART程序舉例;UART與紅外收發(fā)器連接舉例。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第3頁(yè)模數(shù)轉(zhuǎn)換器與觸摸屏接口,包含:ADC與基礎(chǔ)觸摸屏接口基礎(chǔ)知識(shí);ADC與觸摸屏接口概述;
ADC與觸摸屏接口操作;ADC與觸摸屏接口特殊功效存放器;ADC程序舉例;ADC與觸摸屏接口程序舉例。S3C2410A
IIC總線接口概述;IIS總線接口概述;SPI總線接口概述;MMC/SD/SDIO概述。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第4頁(yè)6.1
PWM定時(shí)器劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第5頁(yè)6.1.1
PWM定時(shí)器概述⒈定時(shí)器模塊參見(jiàn)圖6.1,S3C2410A有5個(gè)16位定時(shí)器。定時(shí)
器0~3帶有脈寬調(diào)制(Pulse
Width
Modulation,PWM)功效,這4個(gè)定時(shí)器輸出信號(hào)連接到
S3C2410ATOUT0~TOUT3引腳,輸出波形頻率和占空比可編程控制。定時(shí)器4是一個(gè)內(nèi)部定時(shí)器,沒(méi)有PWM功效,輸出信號(hào)不連接到
S3C2410A引腳。定時(shí)器0有一個(gè)死區(qū)發(fā)生器(dead
zone
generator),能夠用于對(duì)大電流設(shè)備進(jìn)行控制。定時(shí)器0和1共用一個(gè)8位預(yù)分頻器(prescaler),定時(shí)器2~4共用另一個(gè)8位預(yù)分頻器。定時(shí)器計(jì)數(shù)時(shí)鐘信號(hào)起源于時(shí)鐘分頻器(clock
divider)經(jīng)過(guò)編程能夠選擇時(shí)鐘分頻器1/2、1/4、1/8、1/16分頻信號(hào)或選擇使用TCLK0、TCLK1。8位預(yù)分頻器是可編程,依據(jù)保留在定時(shí)器配置存放器
TCFG0中預(yù)分頻值,對(duì)PCLK分頻。定時(shí)器配置存放器TCFG1為每個(gè)定時(shí)器選擇時(shí)鐘分頻信號(hào)(1/2、1/4、1/8、1/16)或選擇TCLK0、TCLK1。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第6頁(yè)S3C2410A片內(nèi)定時(shí)器,支持自動(dòng)重裝模式(一次定時(shí)結(jié)束,以重裝值開始下一次定時(shí))或一次脈沖模式(一次定時(shí)結(jié)束,停頓定時(shí)器)。定時(shí)器模塊圖見(jiàn)圖6.1。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第7頁(yè)劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第8頁(yè)⒉定時(shí)器存放器組成和定時(shí)器主要操作過(guò)程
參見(jiàn)圖6.2,除了定時(shí)器4,定時(shí)器0~3中每個(gè)定時(shí)器內(nèi)部,都有下述存放器。⑴定時(shí)器計(jì)數(shù)緩沖器存放器TCNTBn,程序可讀寫,用于保留定時(shí)器計(jì)數(shù)初值。在手動(dòng)更新(manual
update)允許時(shí),將這個(gè)初值送到定時(shí)器計(jì)數(shù)存放器TCNTn,在TCNTn中進(jìn)行遞減計(jì)數(shù)操作。當(dāng)自動(dòng)重裝(auto
reload)允許時(shí),一次計(jì)數(shù)結(jié)束(TCNTn遞減計(jì)數(shù)到達(dá)0時(shí)),自
動(dòng)將TCNTBn值裝到TCNTn。TCNTBn值不一樣,決定了輸出信號(hào)TOUTn頻率不一樣。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第9頁(yè)劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第10頁(yè)⑵定時(shí)器比較緩沖器存放器TCMPBn,程序可讀寫,用于保留定時(shí)器比較初值。在手動(dòng)更新允許時(shí),將這個(gè)初值送到定時(shí)器比較存放器
TCMPn。當(dāng)執(zhí)行計(jì)數(shù)TCNTn值與TCMPn值相等
時(shí),計(jì)數(shù)器輸出信號(hào)TOUTn電平由低變高。當(dāng)自動(dòng)重裝允許時(shí),一次計(jì)數(shù)結(jié)束(TCNTn遞減計(jì)數(shù)到達(dá)0時(shí)),自動(dòng)將TCMPBn值裝到TCMPn。TCMPBn值,被用作脈寬調(diào)制,即在輸出信號(hào)
TOUTn頻率不變時(shí),對(duì)每個(gè)輸出脈沖低電平、高電平占用時(shí)間調(diào)制,也稱為輸出信號(hào)占空比調(diào)制。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第11頁(yè)⑶定時(shí)器計(jì)數(shù)存放器TCNTn,是內(nèi)部存放器,程序不可讀寫。TCNTn也稱為減法計(jì)數(shù)器、倒計(jì)數(shù)器或遞減計(jì)數(shù)器。定時(shí)器計(jì)數(shù)操作在
TCNTn中執(zhí)行。TCNTn計(jì)數(shù)時(shí)鐘信號(hào)起源于時(shí)鐘分頻器。當(dāng)TCNTn一次計(jì)數(shù)結(jié)束,或產(chǎn)生DMA請(qǐng)求,或產(chǎn)生中止請(qǐng)求,由編程決定。當(dāng)一次計(jì)數(shù)結(jié)束,假如自動(dòng)重裝允許時(shí),TCNTBn值送TCNTn、TCMPBn值送TCMPn,開始下一次計(jì)數(shù);假如自動(dòng)重裝禁止,則計(jì)數(shù)器停頓。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第12頁(yè)⑷定時(shí)器比較存放器TCMPn,是內(nèi)部存放器,程序不可讀寫。在計(jì)數(shù)過(guò)程中,一旦TCNTn值與TCMPn值相等,計(jì)數(shù)器輸出TOUTn電平由低變高。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第13頁(yè)⑸定時(shí)器計(jì)數(shù)觀察存放器TCNTOn,程序可讀寫。在計(jì)數(shù)過(guò)程中,假如希望讀出TCNTn值,只能經(jīng)過(guò)讀出
TCNTOn實(shí)現(xiàn),不能直接讀TCNTn值。要使定時(shí)器0~3運(yùn)行,主要操作包含:經(jīng)過(guò)編程先送出計(jì)數(shù)值到TCNTBn,送出比較值(脈寬調(diào)制值)到TCMPBn。當(dāng)設(shè)置為手動(dòng)更新允許時(shí),定時(shí)器自動(dòng)將
TCNTBn、TCMPBn內(nèi)容送TCNTn、TCMPn。然后設(shè)置開啟定時(shí)器(TCON存放器對(duì)應(yīng)start/stop位為1),則TCNTn開始遞減計(jì)數(shù)。計(jì)數(shù)過(guò)程中當(dāng)TCNTn值與TCMPn值相等時(shí),輸出信號(hào)TOUTn電平由低變高。假
如允許自動(dòng)重裝,當(dāng)TCNTn計(jì)數(shù)到達(dá)0時(shí),進(jìn)行重裝,同時(shí)產(chǎn)生中止請(qǐng)求或DMA請(qǐng)求,再開始下一次定時(shí)。假如不允許自動(dòng)重裝,則定時(shí)器停頓。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第14頁(yè)在計(jì)數(shù)過(guò)程中,能夠給TCNTBn和TCMPBn裝入
一個(gè)新值,在自動(dòng)重裝方式,新值只能用于下一次定時(shí),對(duì)當(dāng)前正在進(jìn)行定時(shí)操作,不產(chǎn)生影響。定時(shí)器4除了沒(méi)有TCMPB4和TCMP4存放器外,
其它存放器與定時(shí)器0~3相同。定時(shí)器4不能進(jìn)行脈寬調(diào)制,只能經(jīng)過(guò)對(duì)TCNTB4設(shè)置不一樣值,改變輸出信號(hào)頻率。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第15頁(yè)⒊PWM定時(shí)器用到S3C2410A引腳信號(hào)
PWM定時(shí)器輸出信號(hào),作為
S3C2410ATOUT0~TOUT3引腳信號(hào)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第16頁(yè)能夠?qū)3C2410A引腳引入時(shí)鐘源TCLK1、TCLK0,作為定時(shí)器時(shí)鐘信號(hào)。6.1.2
PWM定時(shí)器操作⒈基本定時(shí)操作基本定時(shí)操作見(jiàn)圖6.3(p179)。⒉自動(dòng)重裝與雙緩沖S3C2410A
PWM定時(shí)器有雙緩沖功效,也就是說(shuō)有兩個(gè)緩沖器,定時(shí)器計(jì)數(shù)緩沖器存放器
TCNTBn和定時(shí)器比較緩沖器存放器TCMPBn。圖6.4(p181)是雙緩沖功效一個(gè)舉例,圖中省略了TCMPBn存放器值。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第17頁(yè)⒊定時(shí)器初始使用手動(dòng)更新位和反相器位
(p181)⒋定時(shí)器操作舉例定時(shí)器操作舉例見(jiàn)圖6.5(p182)。⒌脈寬調(diào)制脈寬調(diào)制(Pulse
Width
Modulation,PWM)功效經(jīng)過(guò)使用TCMPBn存放器來(lái)實(shí)現(xiàn),而PWM頻率由TCNTBn存放器值確定。圖6.6(p183)經(jīng)過(guò)舉例,表明了TCMPBn值越小,
TOUTn輸出高電平時(shí)間越短,輸出低電平時(shí)間越長(zhǎng);而TCMPBn值越大,TOUTn輸出高電平時(shí)間越長(zhǎng),輸
出低電平時(shí)間越短。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第18頁(yè)⒍輸出電平控制
如圖6.7(p183)所示,反相器設(shè)定為off或on,其輸出信號(hào)TOUTn波形高低電平恰好相反。⒎死區(qū)發(fā)生器(dead
zone
generator)
使用PWM對(duì)大電流設(shè)備進(jìn)行控制時(shí),經(jīng)常用到死區(qū)(dead
zone)功能。死區(qū)功能在切斷一個(gè)開關(guān)設(shè)備和接通另一個(gè)開關(guān)設(shè)備之間,允許插入一個(gè)時(shí)間間隙。在這個(gè)時(shí)間間隙,禁止兩個(gè)開關(guān)設(shè)備同時(shí)被接通,即使接通非常短時(shí)間也不允許。劉·彥文等LINUX當(dāng)環(huán)境嵌入定式系統(tǒng)時(shí)開發(fā)基器死區(qū)功能被允許時(shí),輸出波形見(jiàn)圖礎(chǔ)
第19頁(yè)⒏DMA請(qǐng)求模式定時(shí)器在每段指定時(shí)間后(一次定時(shí)結(jié)束)能夠產(chǎn)生DMA請(qǐng)求信號(hào)。DMA模式配置和DMA/中止操作見(jiàn)表6.1(p184)。圖6.9(p185)表明,定時(shí)器3一旦設(shè)置為DMA模式,將不產(chǎn)生中止請(qǐng)求。定時(shí)器3DMA請(qǐng)求和響應(yīng)時(shí)間關(guān)系,也在圖6.9中給出。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第20頁(yè)6.1.3
PWM定時(shí)器特殊功效存放器⒈定時(shí)器配置存放器0定時(shí)器配置存放器0,即TCFG0,用于對(duì)兩個(gè)8位預(yù)分頻器配置,而且設(shè)置死區(qū)長(zhǎng)度。其地址為0x51000000,可讀寫,Reset值為0x00000000,詳細(xì)含義見(jiàn)表6.2(p185)。定時(shí)器輸入時(shí)鐘頻率=PCLK/{prescaler值+1}/{divider值}{prescaler值}=0~255{divider值}=2、4、8、16劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第21頁(yè)⒉定時(shí)器配置存放器1定時(shí)器配置存放器1,即TCFG1,用于選擇DMA請(qǐng)求通道和選擇各定時(shí)器MUX(多路開關(guān))輸入。其地址為0x51000004,可讀寫,Reset值為0x00000000,詳細(xì)含義見(jiàn)表6.3(p185)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第22頁(yè)⒊定時(shí)器控制存放器定時(shí)器控制存放器,即TCON,用于對(duì)各定時(shí)器自動(dòng)重裝on/off、手動(dòng)更新是否、開啟/停頓和輸出反相器on/off進(jìn)行設(shè)置,其地址為0x51000008,可讀寫,Reset值為0x00000000,詳細(xì)含義見(jiàn)表6.4(p186)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第23頁(yè)⒋定時(shí)器計(jì)數(shù)緩沖器存放器、比較緩沖器存放器和計(jì)數(shù)觀察存放器定時(shí)器0~4都有計(jì)數(shù)緩沖器存放器TCNTBn和計(jì)
數(shù)觀察存放器TCNTOn,定時(shí)器4沒(méi)有比較緩沖器存放器,定時(shí)器0~3有比較緩沖器存放器TCMPBn。除了地址不一樣以外,各定時(shí)器對(duì)應(yīng)存放器含義相同,如表6.5(p187)和表6.6(p188)所表示。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第24頁(yè)6.1.4
PWM定時(shí)器應(yīng)用舉例【例6.1】當(dāng)PCLK=66.5MHz時(shí),選擇不一樣時(shí)
鐘分頻(1/2、1/4、1/8、1/16)輸入,分別計(jì)算定時(shí)器最小分辨率、最大分辨率及最大定時(shí)區(qū)間。參見(jiàn)6.1.3節(jié)中定時(shí)器配置存放器TCFG0內(nèi)容,依據(jù)定時(shí)器輸入時(shí)鐘頻率計(jì)算式,計(jì)算結(jié)果見(jiàn)表6.7(p188)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第25頁(yè)⑴最小分辨率:定時(shí)器輸入時(shí)鐘頻率=PCLK/{prescaler值+1}/{divider值}=66.5(MHz)/{0+1}/{2}=33.2500(MHz)一個(gè)計(jì)數(shù)脈沖時(shí)間=1/33.2500(MHz)=0.0300(μs)劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第26頁(yè)⑵最大分辨率:定時(shí)器輸入時(shí)鐘頻率=PCLK/{255+1}/{2}=66.5(MHz)/256/2=129.8828(kHz)一個(gè)計(jì)數(shù)脈沖時(shí)間=1/129.8828(kHz)=7.6992(μs)劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第27頁(yè)⑶最大定時(shí)區(qū)間:因?yàn)門CNTBn=65535,計(jì)數(shù)到0共65536個(gè)計(jì)數(shù)脈沖,所以65536×7.6992(μs)=0.5045(sec)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第28頁(yè)【例6.2】下面給出了使用C語(yǔ)言編寫,對(duì)定時(shí)器
0/1/2/3測(cè)試程序片段,假定程序中用到存放器地址在別程序中已定義過(guò)。(見(jiàn)參考書p189)劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第29頁(yè)6.2實(shí)時(shí)時(shí)鐘劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第30頁(yè)6.2.1
RTC概述S3C2410A芯片內(nèi)部有一個(gè)實(shí)時(shí)時(shí)鐘(Real
TimeClock,RTC)模塊,當(dāng)系統(tǒng)電源閉合時(shí),使用系統(tǒng)提供電源,當(dāng)系統(tǒng)電源切斷時(shí),由后備電池為
RTC模塊供電。不論系統(tǒng)加電或切斷電源,RTC都在運(yùn)行;能夠?qū)TC設(shè)定報(bào)警時(shí)間。使用STRB/LDRB指令,能夠在RTC和CPU之間傳送8位BCD碼數(shù)據(jù),包含秒、分、時(shí)、日、星期、月、年。RTC模塊使用32.768kHz外部晶振工作?!?/p>
RTC作為系統(tǒng)時(shí)鐘使用,也能夠執(zhí)行報(bào)警功效、產(chǎn)生節(jié)拍時(shí)間中止。主要特點(diǎn)有:
·使用BCD碼表示秒、分、時(shí)、日、星期、月、年;·有閏年產(chǎn)生器;
·報(bào)警功效:有報(bào)警中止或從Power_OFF模式中喚醒功效;·處理了問(wèn)題;·獨(dú)立電源引腳(RTCVDD);·支持毫秒級(jí)節(jié)拍時(shí)間中止,可用于RTOS內(nèi)核;劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)
第31頁(yè)RTC用到S3C2410A引腳信號(hào)有:劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第32頁(yè)外接晶振引腳信號(hào)XTIrtc、XTOrtc和外接電源引腳RTCVDD(1.8V)。6.2.2
RTC組成與操作
RTC組成框圖見(jiàn)圖6.10。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第33頁(yè)⒈閏年產(chǎn)生器
閏年產(chǎn)生器基于從BCDDATE、BCDMON、BCDYEAR來(lái)數(shù)據(jù),確定每個(gè)月最終一天是28、29、30或31日。一個(gè)8位計(jì)數(shù)器只能表示2位BCD數(shù)字,所以它不能確定00(年最低2位數(shù)字)年是閏年或不是閏年。為了處理這一問(wèn)題,在S3C2410ARTC模塊中有一個(gè)硬件邏輯支持作為閏年。要注意19不是閏年而是閏年。所以在
S3C2410A中,2位BCD碼00代表,而不是19。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第34頁(yè)⒉讀/寫存放器RTCCON控制存放器位[0]必須被設(shè)置為1,然后才能夠?qū)慠TC模塊中存放器。假如這一位被設(shè)置為0,不能寫入RTC模塊中存放器。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第35頁(yè)⒊后備電池當(dāng)系統(tǒng)電源切斷時(shí),經(jīng)過(guò)RTC引腳提供電源到
RTC模塊,RTC邏輯由后備電池驅(qū)動(dòng)。這時(shí)CPU接口與RTC邏輯被阻塞,后備電池僅僅驅(qū)動(dòng)晶振電路和BCD計(jì)數(shù)器,使得BCD計(jì)數(shù)器功耗為最小。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第36頁(yè)⒋報(bào)警功效在Power_OFF模式或Normal操作模式,RTC在要求時(shí)間產(chǎn)生一個(gè)報(bào)警信號(hào)。在Normal操作模式,報(bào)警中止ALMINT被激活;在Power_OFF模式,像ALMINT一樣,電源管理喚醒信號(hào)
PMWKUP也能夠被激活。RTC報(bào)警控制存放器
RTCALM,確定報(bào)警允許/禁止和報(bào)警時(shí)間設(shè)定條件。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第37頁(yè)⒌節(jié)拍時(shí)間(tick
time)中止RTC節(jié)拍時(shí)間被用作中止請(qǐng)求。節(jié)拍時(shí)間計(jì)數(shù)存放器TICNT有1位中止允許位和7位節(jié)拍時(shí)間計(jì)數(shù)值位。計(jì)數(shù)值到達(dá)0時(shí),節(jié)拍時(shí)間中止出現(xiàn)。中止周期計(jì)算以下:Period=(n+1)/128(second)式中:n為節(jié)拍時(shí)間計(jì)數(shù)值,范圍為1~127。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第38頁(yè)⒍進(jìn)位復(fù)位功效(round
reset
function)進(jìn)位復(fù)位功效由RTC進(jìn)位復(fù)位存放器RTCRST來(lái)實(shí)現(xiàn)。產(chǎn)生秒進(jìn)位邊界(30、40或50秒)能夠
選擇,在進(jìn)位復(fù)位后,秒值被設(shè)置為0。比如,假如當(dāng)前時(shí)間是23:37:47,而且設(shè)置進(jìn)位邊界為40秒,則進(jìn)位復(fù)位功效改變當(dāng)前時(shí)間為23:38:00。⒎32.768kHz外接晶振連接舉例圖6.11(p193)是使用32.768KHz晶振作為RTC單元晶振電路一個(gè)實(shí)例。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第39頁(yè)6.2.3
RTC特殊功效存放器⒈RTC控制存放器RTC控制存放器RTCCON由4位組成,位[0]即RTCEN用作控制禁止/允許對(duì)RTC存放器寫入,
而其它3位CLKSEL、CNTSEL、CLKRST用于測(cè)試。RTCCON存放器地址、Reset值及各位含義見(jiàn)表
6.8(p194)和表6.9(p194)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第40頁(yè)⒉RTC報(bào)警控制和報(bào)警數(shù)據(jù)存放器RTC報(bào)警控制存放器RTCALM,確定允許/禁止報(bào)警和報(bào)警時(shí)間。在Power_OFF模式,經(jīng)過(guò)
ALMINT和PMWKUP,RTCALM存放器產(chǎn)生報(bào)警信號(hào),參見(jiàn)圖6.10(p192)。在Normal操作模式,僅僅經(jīng)過(guò)ALMINT產(chǎn)生報(bào)警信號(hào)。RTC報(bào)警控制和報(bào)警數(shù)據(jù)存放器地址及Reset值見(jiàn)表6.10(p194),存放器各位含義見(jiàn)表
6.11(p195)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第41頁(yè)⒊RTC進(jìn)位復(fù)位存放器RTC進(jìn)位復(fù)位存放器RTCRST,Reset值為0x0,地址及各位含義見(jiàn)表6.12(p196)。⒋節(jié)拍時(shí)間計(jì)數(shù)存放器節(jié)拍時(shí)間計(jì)數(shù)存放器TICNT,Reset值為0x00,地址及各位含義見(jiàn)表6.13(p196)。⒌秒、分、時(shí)、日、星期、月、年數(shù)據(jù)存放器能夠?qū)@些存放器設(shè)置當(dāng)前時(shí)間和日期,讀取當(dāng)前時(shí)間和日期。這些存放器使用BCD值,Reset值未定義,地址及各位含義見(jiàn)表6.14(p196)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第42頁(yè)6.2.4
RTC程序舉例【例6.3】下面給出了使用C語(yǔ)言編寫測(cè)試RTC程序片段。(見(jiàn)參考書P197)劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第43頁(yè)6.3看門狗定時(shí)器劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第44頁(yè)6.3.1看門狗定時(shí)器概述看門狗定時(shí)器(Watch
Dog
Timer,WDT)簡(jiǎn)稱看門狗,屬于定時(shí)器中一個(gè)。⒈普通看門狗定時(shí)器概述普通看門狗定時(shí)器,通常能夠由程序控制允許/禁止看門狗定時(shí)器,允許即開啟定時(shí)器,禁止即停頓定時(shí)器??撮T狗定時(shí)器內(nèi)部最少有一個(gè)計(jì)數(shù)存放器,執(zhí)行計(jì)數(shù)
操作。使用時(shí)應(yīng)該由程序給這個(gè)計(jì)數(shù)存放器設(shè)定一個(gè)
計(jì)數(shù)初值,然后允許看門狗定時(shí)器(開啟),來(lái)一個(gè)
計(jì)數(shù)脈沖,計(jì)數(shù)存放器計(jì)一次數(shù)。對(duì)于減法計(jì)數(shù)器,
當(dāng)減到0時(shí),產(chǎn)生一個(gè)定時(shí)輸出信號(hào),通常把這個(gè)定時(shí)輸出信號(hào)作為內(nèi)部Reset信號(hào)使用,重新開啟控制器(指CPU中控制器)。簡(jiǎn)單地說(shuō),使用看門狗定時(shí)器,目標(biāo)是當(dāng)運(yùn)行程序受到了干擾,發(fā)生了死循環(huán),或者因?yàn)檫\(yùn)行程序內(nèi)部事先未發(fā)覺(jué)錯(cuò)誤,造成程序不是按照程序員預(yù)定運(yùn)行路線運(yùn)行時(shí),看門狗定時(shí)器能夠重新開啟控制器。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第45頁(yè)⒉S3C2410A看門狗定時(shí)器概述S3C2410A片內(nèi)有一個(gè)看門狗定時(shí)器模塊,當(dāng)控制器操作受到像噪音或系統(tǒng)錯(cuò)誤干擾時(shí),看門狗定時(shí)器能夠重新開啟控制器操作;這個(gè)定時(shí)器也能被用作一個(gè)通常16位間隔時(shí)間定時(shí)器,產(chǎn)生中止請(qǐng)求??撮T狗定時(shí)器用于重啟控制器時(shí),在看門狗定時(shí)器計(jì)數(shù)存放器WTCNT中執(zhí)行計(jì)數(shù)操作,當(dāng)允許看門狗定時(shí)器時(shí)(WTCON[5]=1),每來(lái)一
個(gè)計(jì)數(shù)脈沖,減1。當(dāng)計(jì)數(shù)值減到0時(shí),能夠產(chǎn)生一個(gè)長(zhǎng)度為128個(gè)PCLK時(shí)間長(zhǎng)度復(fù)位(Reset)信號(hào)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第46頁(yè)6.3.2
WDT操作看門狗定時(shí)器功效框圖如圖6.12所表示。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第47頁(yè)看門狗定時(shí)器用PCLK作為它唯一源時(shí)鐘。為了
產(chǎn)生對(duì)應(yīng)看門狗定時(shí)器時(shí)鐘,PCLK先被預(yù)分頻,之后再次被分頻(稱為時(shí)鐘分頻)。預(yù)分頻值和時(shí)鐘分頻值選擇,在看門狗定時(shí)器控制存放器WTCON中被指定。正當(dāng)預(yù)分頻值范圍從0到255。時(shí)鐘分頻值能夠選擇16、32、64或128。使用下式計(jì)算看門狗定時(shí)器時(shí)鐘頻率和每個(gè)定時(shí)時(shí)鐘周期時(shí)長(zhǎng)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第48頁(yè)⒉WTDAT和WTCNT一旦看門狗定時(shí)器被允許(開啟),看門狗定時(shí)器數(shù)據(jù)存放器WTDAT(Watchdog
TimerData
Register)值不能被自動(dòng)裝入定時(shí)器計(jì)數(shù)存放器WTCNT中,因?yàn)檫@個(gè)原因,計(jì)數(shù)初值必須同時(shí)寫入WTDAT和WTCNT中,而且應(yīng)該在看
門狗定時(shí)器開啟以前寫入。3.調(diào)試環(huán)境考慮劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第49頁(yè)6.3.3看門狗定時(shí)器特殊功效存放器⒈看門狗定時(shí)器控制存放器經(jīng)過(guò)配置看門狗定時(shí)器控制存放器WTCON,能
夠允許/禁止看門狗定時(shí)器;能夠選擇不一樣時(shí)鐘分頻值;允許/禁止中止;允許/禁止看門狗定時(shí)器Reset功效。假如用戶要求把看門狗定時(shí)器用作通常定時(shí)器,應(yīng)該設(shè)置允許中止,同時(shí)禁止看門狗定時(shí)器Reset功效。詳細(xì)內(nèi)容見(jiàn)表
6.15(p201)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第50頁(yè)⒉看門狗定時(shí)器數(shù)據(jù)存放器看門狗定時(shí)器數(shù)據(jù)存放器WTDAT用作指定定時(shí)輸出時(shí)長(zhǎng)區(qū)間。WTDAT存放器地址及Reset值見(jiàn)表6.16(p201)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第51頁(yè)⒊看門狗定時(shí)器計(jì)數(shù)存放器看門狗定時(shí)器計(jì)數(shù)存放器WTCNT,含有看門狗定時(shí)器在通常操作時(shí)當(dāng)前計(jì)數(shù)值,執(zhí)行遞減計(jì)數(shù)操作。WTCNT存放器地址及Reset值見(jiàn)表6.17(p202)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第52頁(yè)6.3.4
WDT程序舉例以下內(nèi)容在包括到C語(yǔ)言語(yǔ)句時(shí),假定使用環(huán)境為μC/OS-Ⅱ,而且存放器地址已經(jīng)定義過(guò)了。⑴電源加電開啟后看門狗定時(shí)器狀態(tài)⑵看門狗定時(shí)器作為通常計(jì)數(shù)器使用⑶允許看門狗定時(shí)器產(chǎn)生Reset信號(hào)
(P202-203)劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第53頁(yè)【例6.4】以下程序允許看門狗定時(shí)器產(chǎn)生中止請(qǐng)求,中止5次后屏蔽看門狗定時(shí)器中止。程序運(yùn)行環(huán)境為μC/OS-Ⅱ,需要在main.c中調(diào)用看門狗定時(shí)器測(cè)試程序watchdog_test。(見(jiàn)參考書p203)劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第54頁(yè)6.4
UART劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第55頁(yè)6.4.1
串行異步通信基礎(chǔ)⒈串行、異步、全雙工通信⑴并行通信與串行通信計(jì)算機(jī)與計(jì)算機(jī)、計(jì)算機(jī)與外設(shè)之間通信方式能夠分為并行通信與串行通信兩種方式。如圖
6.13所表示,并行通信在一個(gè)時(shí)間單位,或者說(shuō)一次傳輸,數(shù)據(jù)線D7-D0同時(shí)傳輸8位(bit)數(shù)據(jù);而串行通信一次傳輸,在發(fā)送數(shù)據(jù)線上只傳輸1位(bit)數(shù)據(jù)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第56頁(yè)并行通信普通一次傳輸8位,也有傳輸16位、
32位。早期PC/XT計(jì)算機(jī)與打印機(jī)連接接口就是8位并行接口。串行通信最簡(jiǎn)單連接方式只使用三條線,一條為發(fā)送線,另一條為接收線,還有一條信號(hào)地。常見(jiàn)例子是PC串行口,也稱為COM口、串口、RS-232C。能夠?qū)C串口與嵌入式系統(tǒng)串口連接,實(shí)現(xiàn)串行通信。能夠連接串口設(shè)備在
USB接口出現(xiàn)之前非常多,比如繪圖機(jī)、數(shù)字化儀、串口打印機(jī)等等,也能夠?qū)膳_(tái)PC經(jīng)過(guò)串口互連進(jìn)行通信。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第57頁(yè)⑵同時(shí)、異步傳輸串行通信有同時(shí)傳輸、異步傳輸兩種方式。同時(shí)傳輸要求在發(fā)送方和接收方使用同一個(gè)同時(shí)信號(hào),也就是說(shuō)每傳送1位數(shù)據(jù),需要使用另外同時(shí)線傳輸一次同時(shí)信號(hào)。因?yàn)殡娐穼?shí)現(xiàn)較為復(fù)雜,同時(shí)傳輸極少使用。異步傳輸發(fā)送方和接收方?jīng)]有共同同時(shí)信號(hào)。發(fā)送方能夠在任何時(shí)候隨時(shí)發(fā)送,接收方一直在監(jiān)聽并接收信息,雙方各自使用自己時(shí)鐘信號(hào)。因?yàn)楫惒絺鬏旊娐穼?shí)現(xiàn)相對(duì)簡(jiǎn)單,使用較為廣泛。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第58頁(yè)⑶單工、半雙工、全雙工串行通信三種傳輸方式,如圖6.14所表示。
單工指是數(shù)據(jù)傳輸方向是固定,只能從一方(A)送往另一方(B)。半雙工雙方均具備接收和發(fā)送數(shù)據(jù)能力,但只有一條傳輸線,盡管能夠雙向傳輸,但同一時(shí)刻只能一方(A)發(fā)送,另一方(B)接收。經(jīng)過(guò)切換線路,然后才能由B方發(fā)送,A方接收。全雙工指雙方均具備發(fā)送、接收能力,發(fā)送和接收數(shù)據(jù)分別在兩條不一樣線路上傳輸。全雙工傳輸使用較為廣泛。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第59頁(yè)劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第60頁(yè)⒉傳輸率、波特率、數(shù)據(jù)幀格式⑴傳輸率、波特率傳輸率指每秒傳輸多少位(bit),傳輸率通常也稱波特率。在計(jì)算機(jī)中,每秒傳輸多少位與波特率含義是相同。但在最初定義上,傳輸率指每秒傳輸多少位,而波特率是指每秒傳輸離散信號(hào)個(gè)數(shù)。離散信號(hào)是指不均勻、不連續(xù)、也不相關(guān)信號(hào)。在計(jì)算機(jī)中,只有兩種離散信號(hào)0和1,所以波特率與每秒傳輸位數(shù)相同。在一些采取脈沖調(diào)制設(shè)備中,允許取4種相位,這時(shí)傳輸率與波特率是不相同。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第61頁(yè)慣用波特率有:1200、2400、4800、9600、19200波特等。⑵幀格式串行異步通信數(shù)據(jù)幀格式,也稱數(shù)據(jù)格式、字符格式,見(jiàn)圖6.15。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第62頁(yè)⒊經(jīng)典UART舉例通用異步收發(fā)器(Universal
AsynchronousReceiver
and
Transmitter,UART)電路模塊,有集成在微處理器芯片內(nèi)部,如S3C2410A中包含了UART;有集成為一個(gè)單獨(dú)芯片,如Intel8251A,與8086/8088微處理器配套使用。一個(gè)經(jīng)典微處理器片外UART組成,如圖6.16所表示。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第63頁(yè)劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第64頁(yè)⒋電平/邏輯轉(zhuǎn)換在圖6.16中,假如將UARTTxD輸出引腳由電纜直接連接到另一個(gè)UARTRxD引腳,當(dāng)電纜線長(zhǎng)度大于0.5m時(shí),標(biāo)準(zhǔn)TTL輸出信號(hào)(TxD)傳輸?shù)綄?duì)方(RxD)會(huì)變得不可靠,通常方法是連接線路驅(qū)動(dòng)器(line
driver)電路,如MC1488發(fā)送器及MC1489接收器、MAX3232收發(fā)器等。使用線路驅(qū)動(dòng)器時(shí),在20kbps速率下,提議最大傳輸距離為17m。使用線路驅(qū)動(dòng)器連接兩個(gè)UART電路圖,見(jiàn)圖
6.17。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第65頁(yè)圖6.17中,UART輸入、輸出是TTL電平信號(hào),經(jīng)過(guò)線路驅(qū)動(dòng)器后,變成RS-232C信號(hào)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第66頁(yè)⒌調(diào)制解調(diào)器在計(jì)算機(jī)網(wǎng)絡(luò)普及以前,串行異步通信使用很廣泛。為了使串行異步通信信號(hào)能夠遠(yuǎn)距離傳輸,或者經(jīng)過(guò)電話線傳輸,曾經(jīng)廣泛地使用過(guò)調(diào)制解調(diào)器(modem)。調(diào)制解調(diào)器是由調(diào)制器和解調(diào)器兩部分組成。圖6.18是串行異步通信使用MODEM互連一個(gè)例子。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第67頁(yè)6.4.2
UART組成及操作⒈UART組成位于S3C2410A芯片內(nèi)部通用異步收發(fā)器(Universal
Asynchronous
Receiver
andTransmitter,UART)提供了三個(gè)獨(dú)立異步串行
I/O(Serial
I/O,SIO)端口(或通道)。每個(gè)端口能夠基于中止或基于DMA方式操作。換句話說(shuō),UART能夠產(chǎn)生中止或DMA請(qǐng)求,用來(lái)在CPU(或內(nèi)存)與UART之間傳輸數(shù)據(jù)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第68頁(yè)UART各通道也支持查詢方式在UART與CPU之間傳輸數(shù)據(jù)。使用系統(tǒng)時(shí)鐘時(shí),UART能夠支持位傳輸速率最高到達(dá)230Kbps。假如外設(shè)為UART提供時(shí)鐘UEXTCLK,那么UART能夠以更高速度操作。每個(gè)UART通道含有兩個(gè)16字節(jié)FIFO(First
InFirst
Out,先進(jìn)先出)存放器,一個(gè)用于接收數(shù)據(jù),一個(gè)用于發(fā)送數(shù)據(jù)。能夠?qū)3C2410A
UART以下參數(shù)經(jīng)過(guò)編程設(shè)置:波特率;通常方式或紅外(Infra
Red,IR)發(fā)送/接收方式;1位或2位停頓位;5~8位數(shù)據(jù)位;奇偶校驗(yàn)方式。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第69頁(yè)如圖6.19所表示,每個(gè)UART通道含有一個(gè)波特率發(fā)生器,一個(gè)發(fā)送器,一個(gè)接收器和一個(gè)控制單元。波特率發(fā)生器使用PCLK或UEXTCLK時(shí)鐘。發(fā)送器和接收器各有一個(gè)16字節(jié)FIFO(即緩沖區(qū))存放器和移位器。在FIFO方式,要發(fā)送數(shù)據(jù)先寫入FIFO存放器,然后復(fù)制到發(fā)送移位器,經(jīng)過(guò)發(fā)送數(shù)據(jù)引腳TxDn移位輸出;而接收數(shù)據(jù)從接收數(shù)據(jù)引腳RxDn輸入并移位,然后從接收移位器復(fù)制到FIFO存放器。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第70頁(yè)劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第71頁(yè)圖6.19中,在FIFO方式,每個(gè)緩沖區(qū)存放器全部
16字節(jié)用作FIFO存放器。在非FIFO方式,僅僅每個(gè)緩沖區(qū)存放器中1字節(jié)用作保持存放器。在非FIFO方式,要發(fā)送數(shù)據(jù)先寫入發(fā)送保持存放器,然后復(fù)制到發(fā)送移位器,經(jīng)過(guò)TxDn引腳移位輸出;要接收數(shù)據(jù)經(jīng)過(guò)RxDn引腳輸入并移位,然后從移位器復(fù)制到接收保持存放器。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第72頁(yè)S3C2410A中UART有以下特點(diǎn):⑴三個(gè)端口中每個(gè)端口數(shù)據(jù)發(fā)送/接收能夠基于中止或基于DMA方式操作,也能夠基于查詢方式操作;⑵UART通道0、1和2支持紅外通信協(xié)議IrDA1.0;⑶UART通道0和1帶有nRTS0、nCTS0、nRTS1和nCTS1。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第73頁(yè)⒉UART使用引腳信號(hào)(p211)劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第74頁(yè)3.UART操作(1)數(shù)據(jù)發(fā)送發(fā)送數(shù)據(jù)幀格式是可編程。一幀數(shù)據(jù)由1位起始位,5~8位數(shù)據(jù)位,1位可選擇奇偶校驗(yàn)位和1位或2位停頓位組成。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第75頁(yè)(2)數(shù)據(jù)接收與數(shù)據(jù)發(fā)送一樣,接收數(shù)據(jù)幀格式也是可編程。由1位起始位,5~8位數(shù)據(jù)位,1位可選擇奇偶校驗(yàn)位和1位或2位停頓位組成。接收器能夠檢測(cè)溢犯錯(cuò)誤(overrun
error)和幀錯(cuò)誤(frame
error)。接收超時(shí)條件出現(xiàn),指示當(dāng)接收器在(接收)3個(gè)字時(shí)間內(nèi)沒(méi)有接收到任何數(shù)據(jù),而且在FIFO方式Rx(接收)FIFO不空。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第76頁(yè)自動(dòng)流控制S3C2410AUART0和UART1使用nRTS和nCTS信號(hào),支持自動(dòng)流控制(Auto
Flow
Control,AFC)。非自動(dòng)流控制(由軟件控制nRTS和nCTS)RS-232C接口假如用戶要經(jīng)過(guò)RS-232C連接UART到調(diào)制解調(diào)器接口,nRTS、nCTS、nDSR、nDTR、nDCD
和nRI信號(hào)是需要,不過(guò)UART不支持這么多信號(hào)。在這種情況下,用戶應(yīng)該使用通用I/O端口(GPIO),由軟件控制產(chǎn)生這些信號(hào)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第77頁(yè)(6)中止/DMA請(qǐng)求產(chǎn)生S3C2410A每個(gè)UART有5種狀態(tài)信號(hào),溢犯錯(cuò)誤、幀錯(cuò)誤、接收緩沖區(qū)數(shù)據(jù)準(zhǔn)備好、發(fā)送緩沖區(qū)空和發(fā)送移位器空,它們由對(duì)應(yīng)UART狀態(tài)存放器UTRSTATn和UERSTATn表示。與FIFO相關(guān)中止見(jiàn)表6.18(p213)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第78頁(yè)(7)UART錯(cuò)誤狀態(tài)FIFO除了接收FIFO,UART還有錯(cuò)誤狀態(tài)FIFO。錯(cuò)
誤狀態(tài)FIFO指示,在接收FIFO中哪一個(gè)數(shù)據(jù)接收時(shí)有錯(cuò)誤。只有當(dāng)有錯(cuò)誤數(shù)據(jù)準(zhǔn)備讀出時(shí),錯(cuò)誤中止將被發(fā)出。帶有錯(cuò)誤字符在未被讀出時(shí),不產(chǎn)生錯(cuò)誤中止,如表6.19和圖6.21(p214)所表示。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第79頁(yè)(8)波特率發(fā)生器每個(gè)UART通道波特率發(fā)生器(baud
rategenerator),為發(fā)送器和接收器提供連續(xù)時(shí)鐘信號(hào)。用于波特率發(fā)生器源時(shí)鐘(source
clock)能夠選擇S3C2410A內(nèi)部系統(tǒng)時(shí)鐘PCLK,或由外部UART設(shè)備、系統(tǒng),經(jīng)過(guò)S3C2410A引腳
UEXTCLK引入,方法是經(jīng)過(guò)UCONn存放器時(shí)鐘
選擇位UCONn[10]選擇。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第80頁(yè)(9)回送方式(loop
back
mode)(p215)劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第81頁(yè)(10)紅外方式S3C2410A
UART模塊支持紅外(Infra
Red,IR)方式發(fā)送和接收數(shù)據(jù),能夠在UART線控制存放器ULCONn中經(jīng)過(guò)設(shè)置紅外方式位指定。圖
6.22給出了紅外方式功效模塊圖。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第82頁(yè)在紅外方式,當(dāng)發(fā)送數(shù)據(jù)位是0時(shí),發(fā)送脈沖寬度是通常方式(非紅外方式)串行發(fā)送一位時(shí)長(zhǎng)3/16。在紅外接收方式,接收器必須檢出這個(gè)3/16脈沖,并識(shí)別作為0,詳見(jiàn)圖6.23~圖6.25(p216)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第83頁(yè)6.4.3
UART特殊功效存放器⒈UART線控制存放器UART3個(gè)通道各有1個(gè)線控制存放器,分別是
ULCON0、ULCON1和ULCON2,對(duì)應(yīng)地址是
0x50000000、0x50004000和0x50008000,可讀寫,Reset值均為0x00,詳細(xì)含義見(jiàn)表6.20(p217)。⒉UART控制存放器UART3個(gè)通道各有1個(gè)控制存放器,分別是
UCON0、UCON1和UCON2,對(duì)應(yīng)地址是
0x50000004、0x50004004和0x50008004,可讀寫,Reset值均為0x00,詳細(xì)含義見(jiàn)劉彥文表等LINUX6環(huán)境.嵌2入式1系統(tǒng)(開p發(fā)基2礎(chǔ)17)。第84頁(yè)⒊UART
FIFO控制存放器UART3個(gè)通道各有1個(gè)FIFO控制存放器,分別是
UFCON0、UFCON1和UFCON2,對(duì)應(yīng)地址是
0x50000008、0x50004008和0x50008008,可讀寫,Reset值均為0x00,詳細(xì)含義見(jiàn)表6.22(p218)。⒋UART調(diào)制解調(diào)器控制存放器UMCON0和UMCON1是UART通道0和通道1調(diào)制解調(diào)器控制存放器,地址分別是0x5000000C和0x5000400C,可讀寫,Reset值均為0x00,詳細(xì)含義見(jiàn)表6.23(p219)。另外,地址為
0x5000800C存放器保留。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第85頁(yè)⒌UART發(fā)送/接收狀態(tài)存放器UTRSTAT0、UTRSTAT1和UTRSTAT2分別是UART通道0、通道1和通道2發(fā)送和接收狀態(tài)存放器,對(duì)應(yīng)地址是0x50000010、0x50004010和0x50008010,只讀,Reset值均為0x6,詳細(xì)含義見(jiàn)表6.24(p219)。⒍UART(接收)錯(cuò)誤狀態(tài)存放器UART3個(gè)通道各有1個(gè)(接收)錯(cuò)誤狀態(tài)存放器,分別是UERSTAT0、UERSTAT1和UERSTAT2,對(duì)應(yīng)地址是0x50000014、0x50004014和0x50008014,只讀,Reset值均為0x0,詳細(xì)含義見(jiàn)表6.25(p220)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第86頁(yè)⒎UART
FIFO狀態(tài)存放器UART3個(gè)通道各有1個(gè)UART
FIFO狀態(tài)存放器,分別是UFSTAT0、UFSTAT1和UFSTAT2,對(duì)應(yīng)地址是0x50000018、0x50004018和0x50008018,只讀,Reset值均為0x0000,詳細(xì)含義見(jiàn)表6.26(p220)。⒏UART調(diào)制解調(diào)器狀態(tài)存放器UART通道0和通道1各有1個(gè)UART調(diào)制解調(diào)器狀態(tài)存放器,分別是UMSTAT0和UMSTAT1,對(duì)應(yīng)地址是0x5000001C和0x5000401C,只讀,Reset值均為0x0,詳細(xì)含義見(jiàn)表6.27和圖6.26。另外,地址為0x5000801C存放器保留。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第87頁(yè)⒐UART發(fā)送緩沖區(qū)存放器(發(fā)送保持存放器與發(fā)送
FIFO存放器)UART發(fā)送緩沖區(qū)存放器,在禁止使用FIFO方式,僅僅把緩沖區(qū)1字節(jié)用作發(fā)送保持存放器;在允許使用FIFO方式,緩沖區(qū)全部16字節(jié)用作發(fā)送FIFO存放器。在表6.22(p218)中,假如UFCONn[0]=0,禁止使用
FIFO,由處理器送來(lái)8位發(fā)送數(shù)據(jù),保留到發(fā)送保持存放器。假如UFCONn[0]=1,允許使用FIFO,由處理器
送來(lái)8位發(fā)送數(shù)據(jù),保留到發(fā)送FIFO存放器。UART通道0、通道1和通道2各有1個(gè)發(fā)送緩沖區(qū)存放器,分別是UTXH0、UTXH1和UTXH2,詳細(xì)內(nèi)容見(jiàn)表
6.28(p221)。UTXHn中位[7:0]稱為TXDATAn域。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第88頁(yè)⒑UART接收緩沖區(qū)存放器(接收保持存放器與接收
FIFO存放器)UART接收緩沖區(qū)存放器,在禁止使用FIFO方式,僅僅把緩沖區(qū)1字節(jié)用作接收保持存放器;在允許使用FIFO方式,緩沖區(qū)全部16字節(jié)用作接收FIFO存放器。在表6.22(p218)中,假如UFCONn[0]=0,禁止使用
FIFO,UART接收到數(shù)據(jù)保留在接收保持存放器。假如
UFCONn[0]=1,允許使用FIFO,UART接收到數(shù)據(jù)保留在接收FIFO存放器。UART通道0、通道1和通道2各有1個(gè)接收緩沖區(qū)存放器,分別是URXH0、URXH1和URXH2,詳細(xì)內(nèi)容見(jiàn)表
6.29(p222)。URXHn中位[7:0]稱為RXDATAn域。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第89頁(yè)⒒UART波特率分頻存放器UART3個(gè)通道各有1個(gè)波特率分頻存放器,分別是UBRDIV0、UBRDIV1和UBRDIV2,用于確定每個(gè)通道發(fā)送/接收波特率,詳細(xì)含義見(jiàn)表
6.30(p222)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第90頁(yè)6.4.4
UART與RS-232C接口連接舉例⒈RS-232C接口介紹RS-232C接口簡(jiǎn)稱RS-232C。RS-232C標(biāo)準(zhǔn)是由
美國(guó)EIA(電子工業(yè)聯(lián)合會(huì))與BELL企業(yè)共同開發(fā)并于1969年公布一個(gè)串行通信協(xié)議。這個(gè)協(xié)議適合于數(shù)據(jù)傳輸速率比較低場(chǎng)所。協(xié)議要求了信號(hào)線功效和電氣特征等內(nèi)容。RS-232C接口當(dāng)前廣泛地用于PC機(jī)、嵌入式系統(tǒng)和外部設(shè)備之間短距離、低速度通信中。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第91頁(yè)協(xié)議要求了TxD(Transmitted
Data,發(fā)送數(shù)據(jù))和RxD(Received
Data,接收數(shù)據(jù))數(shù)據(jù)信號(hào)線邏輯0電平為+5V~+15V,邏輯1電平為-
5V~-15V,即使用負(fù)邏輯表示。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第92頁(yè)⒉UART與RS-232C連接舉例S3C2410A
UART0與MAX3232、MAX3232與DB-9連接見(jiàn)圖6.30(p224)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第93頁(yè)⒊UART編程舉例對(duì)于圖6.30,UART初始化、讀UART、寫UART等程序部分代碼見(jiàn)例6.5。程序中開始部分定義了UART特殊功效存放器地址和存放器中一些位(或域)。例6.5中對(duì)于設(shè)置GPIO端口和中止處理,沒(méi)有列出全部程序,重點(diǎn)是對(duì)UART編程?!纠?.5】S3C2410A
UART通道0、1、2初始化,等候發(fā)送移位器空,查詢方式得到一個(gè)字符和發(fā)送一字節(jié)程序。(見(jiàn)參考書p224)劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第94頁(yè)6.4.6
UART與紅外收發(fā)器連接舉例⒈紅外通信概述紅外通信以紅外線作為信息載體進(jìn)行數(shù)據(jù)傳輸,適合于短距離、點(diǎn)對(duì)點(diǎn)、直線式數(shù)據(jù)傳輸。紅外通信技術(shù)在嵌入式系統(tǒng)有著比較廣泛應(yīng)用。紅外通信利用波長(zhǎng)850nm~900nm之間紅外線
作為信息載體進(jìn)行通信。紅外通信技術(shù)將二進(jìn)制數(shù)調(diào)制成脈沖序列,驅(qū)動(dòng)紅外線發(fā)射管向外發(fā)射紅外光;而接收端則將收到紅外光脈沖信號(hào)轉(zhuǎn)換成電信號(hào),再進(jìn)行放大、濾波、解調(diào)后還原成二進(jìn)制數(shù)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第95頁(yè)經(jīng)典紅外數(shù)據(jù)傳輸模塊由4部分組成:接口電路、編/解碼器、發(fā)送器和接收器。S3C2410A
UART接口電路中包含了編/解碼器,見(jiàn)圖6.22~圖6.25,實(shí)現(xiàn)了信號(hào)調(diào)制和解調(diào)。紅外發(fā)送和接收器能夠做成一個(gè)器件,簡(jiǎn)稱紅外收發(fā)器。紅外通信按發(fā)送速率能夠分為SIR(Serial
InfraRed)、MIR(Medium
Infra
Red)、FIR(FastInfra
Red)和VFIR(Vary
Fast
Infra
Red)方式。其中SIR方式通信速率較低,最高速率為115.2Kbps,支持異步、半雙工方式,通常依靠
UART接口。其它三種方式傳輸速率較高。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第96頁(yè)IrDA1.0是一個(gè)紅外通信協(xié)議,IrDA(InfraredData
Association,紅外數(shù)據(jù)協(xié)會(huì))協(xié)議要求了紅外傳輸距離為1m,速率為9.6~115.2Kbps,響應(yīng)角度為±15o,響應(yīng)時(shí)間為10ms等內(nèi)容。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第97頁(yè)⒉UART與紅外收發(fā)器連接S3C2410A
UART2與紅外收發(fā)器連接見(jiàn)圖
6.31(p228)。⒊支持紅外方式UART編程舉例對(duì)于圖6.31,例6.6給出了對(duì)應(yīng)初始化、發(fā)送一字節(jié)和接收一字節(jié)程序片段。因?yàn)椴扇“腚p工方式,數(shù)據(jù)收、發(fā)之間加了一定間隔延時(shí)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第98頁(yè)【例6.6】支持紅外方式UART編程舉例。⑴初始化UART⑵發(fā)送一字節(jié)程序⑶接收一字節(jié)程序
(見(jiàn)參考書p228)劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第99頁(yè)6.5
ADC與觸摸屏接口基礎(chǔ)知識(shí)劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第100頁(yè)ADC(Analog
to
Digital
Converter,模數(shù)轉(zhuǎn)換器)也稱A/D轉(zhuǎn)換器。ADC把輸入模擬量,轉(zhuǎn)換成對(duì)應(yīng)二進(jìn)制數(shù)。觸摸屏(Touch
Screen,TS
)接口對(duì)觸摸屏進(jìn)行控制;對(duì)電阻式觸摸屏面板,將觸點(diǎn)X/Y位置模擬信號(hào)轉(zhuǎn)換成對(duì)應(yīng)二進(jìn)制數(shù)。6.5.1
ADC與TS接口基礎(chǔ)知識(shí)1.ADC基礎(chǔ)知識(shí)A/D轉(zhuǎn)換器電路,有做成一個(gè)單獨(dú)芯片,也有集成在微處理器芯片內(nèi)部。高檔單片機(jī)、嵌入式微處理器通常將ADC電路集成在芯片內(nèi)部。A/D轉(zhuǎn)換器模擬輸入信號(hào)通常是直流電壓信號(hào),信號(hào)電壓范圍有0~5V,也有0~3.3V。通常有多路模擬輸入信號(hào),比如8路,連接到一個(gè)A/D轉(zhuǎn)換器8個(gè)引腳。A/D轉(zhuǎn)換器內(nèi)部有一個(gè)模擬多路選擇器,某一時(shí)刻只能將一路模擬輸入信號(hào),經(jīng)過(guò)模擬多路選擇器接通進(jìn)行A/D轉(zhuǎn)換,而其它路模擬輸入信號(hào)被斷開。多路模擬輸入信號(hào)需要分時(shí)、分別進(jìn)行轉(zhuǎn)換。A/D轉(zhuǎn)換器內(nèi)部模擬多路選擇器,也稱為通道選擇電路或多路模擬開關(guān)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第101頁(yè)采樣、保持電路有與A/D轉(zhuǎn)換器集成在一起,有是分開。采樣、保持電路組成見(jiàn)圖6.32。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第102頁(yè)圖6.32中,采樣、保持電路輸入端連接模擬輸入信號(hào),在采樣脈沖高電平控制下,狀態(tài)控制開關(guān)閉合,對(duì)輸入信號(hào)采樣,電容電壓隨模擬輸入信號(hào)改變。采樣脈沖變?yōu)榈碗娖胶?,狀態(tài)控制開關(guān)斷開電容電壓保持不變,A/D轉(zhuǎn)換器對(duì)電容電壓進(jìn)行轉(zhuǎn)換。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第103頁(yè)一次A/D轉(zhuǎn)換結(jié)束,A/D轉(zhuǎn)換器停頓轉(zhuǎn)換操作,等候處理器讀取數(shù)據(jù)。表示一次A/D轉(zhuǎn)換結(jié)束,慣用一個(gè)方法是ADC轉(zhuǎn)換結(jié)束發(fā)出中止請(qǐng)求,
通知處理器讀取轉(zhuǎn)換數(shù)據(jù);慣用另一個(gè)方法是在ADC內(nèi)部設(shè)置一個(gè)轉(zhuǎn)換結(jié)束標(biāo)志位,一次A/D轉(zhuǎn)換結(jié)束,將標(biāo)志位置1,處理器讀取標(biāo)志位,判斷A/D轉(zhuǎn)換是否結(jié)束,決定是否讀取轉(zhuǎn)換數(shù)據(jù)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第104頁(yè)A/D轉(zhuǎn)換器開始新一次轉(zhuǎn)換有兩種慣用方法,一個(gè)方法是指定A/D轉(zhuǎn)換器中某一控制位,設(shè)置為
1表示開始新一次轉(zhuǎn)換操作;另一個(gè)方法是以每次讀取A/D轉(zhuǎn)換數(shù)據(jù)操作,觸發(fā)開始新一次轉(zhuǎn)換。慣用A/D轉(zhuǎn)換器有8位、10位、12位等,這里位是指二進(jìn)制數(shù)位。不一樣型號(hào)A/D轉(zhuǎn)換器,表示轉(zhuǎn)換結(jié)果二進(jìn)制數(shù),可能使用不一樣編碼,慣用原碼、反碼、補(bǔ)碼等表示轉(zhuǎn)換結(jié)果。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第105頁(yè)2.四線電阻式觸摸屏接口基礎(chǔ)知識(shí)(1)四線電阻式觸摸屏組成及工作原理圖6.33為四線電阻式觸摸屏截面圖及在X電極對(duì)上施加確定電壓后,X方向?qū)щ妼硬灰粯游恢秒妷菏疽鈭D。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第106頁(yè)圖6.34給出了上導(dǎo)電層X(jué)+、X-電極、下導(dǎo)電層
Y+、Y-電極位置。圖6.34(a)和圖6.34(b)分別表示,確定觸點(diǎn)位置時(shí),要先在X+、X-電極對(duì)施加電壓,Y+、Y-電極對(duì)不施加電壓;然后在Y+、Y-電極對(duì)施加電壓,X+、X-電極對(duì)不施加電壓。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第107頁(yè)(2)四線電阻式觸摸屏接口主要操作接口主要操作包含:有觸摸動(dòng)作時(shí)首先控制X+、X-電極對(duì)施加電壓,Y+電極與A/D轉(zhuǎn)換器連
接、Y-電極對(duì)地高阻,讀A/D轉(zhuǎn)換值;然后控制
Y+、Y-電極對(duì)施加電壓,X+電極與A/D轉(zhuǎn)換器
連接,X-電極對(duì)地高阻,讀A/D轉(zhuǎn)換值;另外還有檢測(cè)觸摸動(dòng)作,產(chǎn)生中止請(qǐng)求等操作。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第108頁(yè)6.5.2
ADC與觸摸屏接口概述1.概述S3C2410A芯片內(nèi)有一個(gè)帶有8通道模擬輸入10位ADC,是一個(gè)能夠重復(fù)循環(huán)進(jìn)行模數(shù)轉(zhuǎn)換設(shè)備。ADC轉(zhuǎn)換模擬輸入信號(hào)成為10位二進(jìn)制數(shù)代碼,使用2.5MHz
A/D轉(zhuǎn)換器時(shí)鐘時(shí),最大轉(zhuǎn)換速率為500KSPS。A/D轉(zhuǎn)換器操作使用采樣和保持功效,由芯片內(nèi)部提供。ADC支持節(jié)電模式。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第109頁(yè)S3C2410A支持觸摸屏接口,接口由觸摸屏面板,4個(gè)外部晶體管,1個(gè)外部電壓源,AIN[7]和AIN[5]組成,見(jiàn)圖6.37(p234)。觸摸屏接口能夠控制和選擇控制信號(hào)(nYPON、YMON、nXPON和XMON),模擬信號(hào)輸入引
腳AIN[7]、AIN[5]分別與觸摸屏面板XP、YP引腳連接,同時(shí)與X位置轉(zhuǎn)換晶體管、Y位置轉(zhuǎn)換晶體管連接。觸摸屏接口含有外部晶體管控制邏輯和帶中止產(chǎn)生邏輯ADC接口邏輯。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第110頁(yè)主要特點(diǎn)分辨率為10位(bit);微分線性誤差:±1.0LSB;積分線性誤差:±2.0LSB;最大轉(zhuǎn)換速度為500KSPS;電源電壓:3.3V;模擬輸入電壓范圍:0~3.3V;采樣和保持功效在S3C2410A片內(nèi)實(shí)現(xiàn);支持通常(Normal)轉(zhuǎn)換模式;支持分別X/Y位置轉(zhuǎn)換模式;支持自動(dòng)連續(xù)X/Y位置轉(zhuǎn)換模式;支持等候外部中止模式;低功耗。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第111頁(yè)3.ADC與觸摸屏接口用到S3C2410A引腳信號(hào)
VDDA_ADC引腳連接3.3V;VSSA_ADC引腳連接地線。AIN[7:0]引腳分別連接8路模擬輸入信號(hào)。
EINT[23:20]引腳分別輸出nYPON、YMON、nXPON和XMON
4個(gè)控制信號(hào),控制X方向電極劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第112頁(yè)對(duì)連接外部電壓源及地線是否;控制Y方向電極對(duì)連接外部電壓源及地線是否。6.5.3
ADC與觸摸屏接口操作1.功效框圖圖6.36給出了S3C2410A
A/D轉(zhuǎn)換器與觸摸屏接口功效框圖。(圖6.36見(jiàn)參考書p233)圖6.36中,假如不使用觸摸屏接口功效,全部模擬信號(hào)輸入引腳AIN[7:0]都能夠作為普通模擬信號(hào)輸入通道;假如使用觸摸屏接口功效,
AIN[7]和AIN[5]用于對(duì)觸摸屏模擬信號(hào)進(jìn)行轉(zhuǎn)換,其余引腳仍能夠作為普通模擬信號(hào)輸入通道。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第113頁(yè)2.觸摸屏應(yīng)用舉例本例中觸摸屏面板XP引腳與AIN[7]連接,YP引腳與AIN[5]連接。為了控制觸摸屏面板XP、XM、YP和YM引腳,S3C2410A芯片外使用了4個(gè)外部晶體管,控制信號(hào)nYPON、YMON、nXPON和XMON與這4個(gè)晶體管連接。見(jiàn)圖6.37(p234)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第114頁(yè)3.功效描述(1)A/D轉(zhuǎn)換時(shí)間當(dāng)PCLK頻率是50MHz,而且能夠在ADCCON存放器中設(shè)置預(yù)分頻值為49,那么全部10位轉(zhuǎn)換時(shí)間是:A/D轉(zhuǎn)換頻率=50MHz/(49+1)=1MHz轉(zhuǎn)換時(shí)間=1/(1MHz/5cycles)=
1/200KHz=
5μsA/D轉(zhuǎn)換器被設(shè)計(jì)成能夠在最大2.5MHz時(shí)鐘下操作,所以轉(zhuǎn)換速率最高為500KSPS。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第115頁(yè)(2)觸摸屏接口模式通常(Normal)轉(zhuǎn)換模式分別X/Y位置轉(zhuǎn)換模式自動(dòng)連續(xù)X/Y位置轉(zhuǎn)換模式等候中止模式備用(Standby)模式編程注意
能夠用中止或查詢(polling)方法,讀取A/D轉(zhuǎn)換數(shù)據(jù)。
當(dāng)一次A/D轉(zhuǎn)換完成,A/D轉(zhuǎn)換器停頓操作,等候轉(zhuǎn)換后數(shù)據(jù)被讀取。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第116頁(yè)6.5.4
ADC與觸摸屏接口特殊功效存放器⒈ADC控制存放器ADC控制存放器,即ADCCON,地址為0x58000000,可讀寫,Reset值為0x3FC4,詳細(xì)含義見(jiàn)表6.35(p236)。⒉ADC觸摸屏控制存放器ADC觸摸屏控制存放器,即ADCTSC,地址為0x58000004,可讀寫,Reset值為0x058,詳細(xì)含義見(jiàn)表6.36(p237)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第117頁(yè)⒊ADC開始或區(qū)間延時(shí)存放器ADC開始或區(qū)間延時(shí)存放器,即ADCDLY,地址為0x58000008,可讀寫,Reset值為0x00FF,詳細(xì)含義見(jiàn)表6.37(p238)。⒋ADC轉(zhuǎn)換數(shù)據(jù)存放器0ADC轉(zhuǎn)換數(shù)據(jù)存放器0,即ADCDAT0,地址為0x5800000C,只讀,Reset值不確定,詳細(xì)含義見(jiàn)表6.38(p238)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第118頁(yè)⒌A(chǔ)DC轉(zhuǎn)換數(shù)據(jù)存放器1ADC轉(zhuǎn)換數(shù)據(jù)存放器1,即ADCDAT1,地址為0x58000010,只讀,Reset值不確定,詳細(xì)含義見(jiàn)表6.39(p238)。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第119頁(yè)6.5.5
ADC程序舉例【例6.7】以下程序片段讀ADC
AIN[0]~AIN[7]通道模擬輸入信號(hào),轉(zhuǎn)換后顯示。(代碼見(jiàn)參考書p239)6.5.6
ADC與觸摸屏接口程序舉例【例6.8】以下程序片段將ADC與觸摸屏接口設(shè)置為等候中止模式,進(jìn)入中止服務(wù)程序后,按分別
X/Y轉(zhuǎn)換模式讀X位置值、Y位置值,顯示。程序從void
Ts_Sep(void)處開始閱讀。(代碼見(jiàn)參考書p240)劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第120頁(yè)6.6
IIC、IIS、SPI總線接口及
SD主控制器概述劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第121頁(yè)6.6.1.IIC總線接口概述⒈慣用IIC總線接口概述IIC(Intel
Integrated
Circuit)總線普通稱為內(nèi)部集成電路總線,也寫作I2C或I2C。IIC總線是20世紀(jì)80年代初由飛利浦企業(yè)創(chuàng)造一個(gè)雙向同
時(shí)串行總線,是當(dāng)前較為慣用一個(gè)串行總線。
總線接口能夠做成專用芯片,也能夠集成在微
處理器內(nèi)部,如S3C2410A微處理器內(nèi)部就集成
了IIC總線模塊。IIC總線能夠與許多設(shè)備連接,如圖6.38所表示。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第122頁(yè)圖6.38劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第123頁(yè)IIC總線數(shù)據(jù)傳送速率在標(biāo)準(zhǔn)模式下為100Kb/s;快模式下為400Kb/s;高速模式下為3.4Mb/s。IIC總線僅有兩條信號(hào)線:SDA(Serial
Data
Line,串行數(shù)據(jù)線)是數(shù)據(jù)信號(hào)線,SCL(SerialClock
Line,串行時(shí)鐘線)是時(shí)鐘信號(hào)線,另外設(shè)備之間還要連接一條地線,圖6.38中未畫出地線。與IIC總線連接設(shè)備,使用集電級(jí)/漏級(jí)開路門電路,以“線與”(Wired-AND)方式分別連接到
SDA、SCL線上,SDA和SCL線要外接上拉電阻,如圖6.38所表示。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第124頁(yè)連接到IIC總線上設(shè)備能夠分為總線主設(shè)備和總線從設(shè)備??偩€主設(shè)備是能夠發(fā)起傳送,發(fā)出從設(shè)備地址和數(shù)據(jù)傳送方向標(biāo)識(shí)、發(fā)送或接收數(shù)據(jù)、能夠產(chǎn)生時(shí)鐘同時(shí)信號(hào)、能夠結(jié)束傳送設(shè)備??偩€主設(shè)備也稱總線主、主設(shè)備??偩€從設(shè)備是能被主設(shè)備尋址、接收主設(shè)備發(fā)出數(shù)據(jù)傳送方向標(biāo)識(shí)、接收主設(shè)備送來(lái)數(shù)據(jù),或者給主設(shè)備發(fā)送數(shù)據(jù)設(shè)備??偩€從設(shè)備也稱從設(shè)備。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第125頁(yè)IIC總線是一個(gè)真正多主(multi-master)總線,總線上能夠連接多個(gè)總線主設(shè)備,也能夠連接多個(gè)總線從設(shè)備,如圖6.39所表示。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第126頁(yè)每一個(gè)連接在IIC總線上設(shè)備,在系統(tǒng)中都被分配了一個(gè)唯一地址。地址用7位二進(jìn)制數(shù)表示。擴(kuò)展IIC總線允許使用10位地址。設(shè)備地址用7位表示時(shí),地址為0000000普通用于發(fā)出通用
呼叫,也稱總線廣播。IIC總線被設(shè)計(jì)成多主總線結(jié)構(gòu),多個(gè)主設(shè)備中任何一個(gè),能夠在不一樣時(shí)刻起到主控設(shè)備作用,所以不需要一個(gè)全局主控設(shè)備在SCL上產(chǎn)生時(shí)鐘信號(hào)。只有傳送數(shù)據(jù)主設(shè)備驅(qū)動(dòng)SCL。當(dāng)總線空閑時(shí),SDA和SCL同時(shí)為高電平。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第127頁(yè)IIC多主總線接口中含有沖突檢測(cè)機(jī)制,確保了多個(gè)主設(shè)備同時(shí)要求發(fā)送數(shù)據(jù)時(shí),只能有一個(gè)主設(shè)備占有總線,不會(huì)造成數(shù)據(jù)沖突??偩€主設(shè)備數(shù)據(jù)傳輸基本狀態(tài)及轉(zhuǎn)換圖見(jiàn)圖
6.40.劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第128頁(yè)⒉S3C2410A微處理器IIC總線接口特點(diǎn)在多主IIC總線模式,多個(gè)S3C2410A微處理器中每一個(gè),能夠接收由從設(shè)備發(fā)送來(lái)串行數(shù)據(jù),或發(fā)送串行數(shù)據(jù)給從設(shè)備。主S3C2410A能夠開啟或停頓IIC總線數(shù)據(jù)傳送。在S3C2410A中,標(biāo)準(zhǔn)總線仲裁過(guò)程用于IIC總線。當(dāng)IIC總線空閑時(shí),SDA和SCL兩條線都應(yīng)該是高電平。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第129頁(yè)當(dāng)SCL穩(wěn)定在高電平,SDA從高電平變到低電平,能夠開啟開始條件;而SDA從低電平變到高電平能夠開啟停頓條件。開始和停頓條件總是由主設(shè)備產(chǎn)生。開始條件之后總線上傳送第一字節(jié)數(shù)據(jù)中7位是地址值,能夠確定總線主設(shè)備所選擇從設(shè)備,另外一位確定傳送方向是讀還是寫。送到SDA線上每個(gè)數(shù)據(jù)以字節(jié)為單位,為8位。在總線傳送期間發(fā)送或接收字節(jié)數(shù)沒(méi)有限制。數(shù)據(jù)先從最高有效位(Most-Significant
Bit,MSB)發(fā)送,每一字節(jié)之后應(yīng)該馬上被跟隨一
個(gè)響應(yīng)(ACKnowledge,ACK)位。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第130頁(yè)6.6.2
IIS總線接口概述1.慣用IIS總線接口概述當(dāng)前許多數(shù)字電子產(chǎn)品,如便攜式CD機(jī)、手機(jī)、MP3、MD、VCD、DVD和數(shù)字電視機(jī)等,都使用了數(shù)字音頻系統(tǒng)。IIS(Intel-IC
Sound)總線普通稱為集成電路內(nèi)部聲音總線,也寫作I2S,因?yàn)镾3C2410A英文資料中,IIS在相關(guān)引腳信號(hào)和文字描述中使用了不一樣寫法,本章也沿用了這些寫法。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第131頁(yè)IIS總線源于SONY和PHILIPS等企業(yè)共同提出一個(gè)串行數(shù)字音頻總線協(xié)議,許多音頻編解碼器(CODEC)和微處理器都提供了對(duì)IIS總線支持。IIS總線只傳送音頻數(shù)據(jù),其它信號(hào)(如控制信號(hào))必須另外單獨(dú)傳送。劉彥文等LINUX環(huán)境嵌入式系統(tǒng)開發(fā)基礎(chǔ)第132頁(yè)為了盡可能降低芯片引腳數(shù),通常IIS只使用3條串行總線(不一樣芯片可能會(huì)有所不一樣),3條線分別是:提供分時(shí)復(fù)用功效數(shù)據(jù)線SD,SD傳送數(shù)據(jù)時(shí)由時(shí)鐘信號(hào)同時(shí)控制,且以字節(jié)為單位傳送,每字節(jié)數(shù)據(jù)傳送從左邊二進(jìn)制位MSB開始;字段選擇線WS,WS為0或1表示
選擇左聲道或右聲道;時(shí)鐘信號(hào)線SCK,能夠產(chǎn)生SCK信號(hào)設(shè)備稱為主設(shè)備,從設(shè)備引入SCK作為內(nèi)部時(shí)鐘使用。IIS總線接口支持通常IIS和MSB_justified(MSB調(diào)整IIS)兩種數(shù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版農(nóng)戶土地承包流轉(zhuǎn)合同中包含農(nóng)村電商合作條款范本4篇
- 2025版木枋行業(yè)綠色生產(chǎn)與節(jié)能減排合同4篇
- 2025年度配電室電氣設(shè)備安裝與調(diào)試合同4篇
- 2025年度智能煤場(chǎng)租賃與運(yùn)營(yíng)管理合同
- 避孕套婦產(chǎn)科學(xué)講解
- 二零二五年度農(nóng)產(chǎn)品電商平臺(tái)數(shù)據(jù)分析及用戶行為研究合同
- 2025年度農(nóng)產(chǎn)品電商運(yùn)營(yíng)托管服務(wù)合同4篇
- 二零二五版木結(jié)構(gòu)建筑項(xiàng)目管理與咨詢服務(wù)合同3篇
- 二零二五年度木門安裝與售后服務(wù)合同規(guī)范范本2篇
- 二零二五年度公務(wù)用車全生命周期維護(hù)服務(wù)合同3篇
- 圖像識(shí)別領(lǐng)域自適應(yīng)技術(shù)-洞察分析
- 個(gè)體戶店鋪?zhàn)赓U合同
- 禮盒業(yè)務(wù)銷售方案
- 二十屆三中全會(huì)精神學(xué)習(xí)試題及答案(100題)
- 中石化高級(jí)職稱英語(yǔ)考試
- 小學(xué)五年級(jí)英語(yǔ)閱讀理解(帶答案)
- 2024二十屆三中全會(huì)知識(shí)競(jìng)賽題庫(kù)及答案
- 仁愛(ài)版初中英語(yǔ)單詞(按字母順序排版)
- (正式版)YS∕T 5040-2024 有色金屬礦山工程項(xiàng)目可行性研究報(bào)告編制標(biāo)準(zhǔn)
- 小學(xué)一年級(jí)拼音天天練
- 新概念英語(yǔ)第二冊(cè)考評(píng)試卷含答案(第49-56課)
評(píng)論
0/150
提交評(píng)論