第5章-嵌入式系統(tǒng)常用模塊設(shè)計(jì)_第1頁(yè)
第5章-嵌入式系統(tǒng)常用模塊設(shè)計(jì)_第2頁(yè)
第5章-嵌入式系統(tǒng)常用模塊設(shè)計(jì)_第3頁(yè)
第5章-嵌入式系統(tǒng)常用模塊設(shè)計(jì)_第4頁(yè)
第5章-嵌入式系統(tǒng)常用模塊設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩154頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第5章_嵌入式系統(tǒng)常用模塊設(shè)計(jì)第一頁(yè),共159頁(yè)。嵌入式系統(tǒng)常用外設(shè)除了存儲(chǔ)設(shè)備以外還包括:通信總線及接口(如UART、USB、I2C、SPI等)、人機(jī)交互設(shè)備(如LCD、鍵盤、觸摸屏等)、其他輸入輸出設(shè)備(如A/D、D/A、PWM等)。第二頁(yè),共159頁(yè)。本章提要132546復(fù)位電路鍵盤模塊設(shè)計(jì)UART異步串口模塊設(shè)計(jì)A/D轉(zhuǎn)換器觸摸屏模塊設(shè)計(jì)

電源模塊設(shè)計(jì)

7LCD模塊設(shè)計(jì)9PWM直流電機(jī)控制接口8I2C總線接口應(yīng)用設(shè)計(jì)第三頁(yè),共159頁(yè)。5.1電源模塊設(shè)計(jì)5.1.1電源工作原理系統(tǒng)工作狀態(tài)(1)系統(tǒng)掛起模式只有SDRAM、處理器功耗管理電路、喚醒電路處于工作狀態(tài)

圖5-1系統(tǒng)運(yùn)行模式的轉(zhuǎn)換

第四頁(yè),共159頁(yè)。(1)系統(tǒng)掛起模式只有SDRAM、處理器功耗管理電路、喚醒電路處于工作狀態(tài)。以下是進(jìn)入掛起模式的典型步驟。 用戶指定、超時(shí)、低電量狀態(tài)等因素啟動(dòng)了掛起模式 操作系統(tǒng)調(diào)用驅(qū)動(dòng)程序把外設(shè)調(diào)整到節(jié)電狀態(tài) 處理器為保存的寄存器存入SDRAM SDRAM進(jìn)入自刷新模式 處理器進(jìn)入掛起模式。在該模式下,處理器的主時(shí)鐘停止,系統(tǒng)中各供電模塊關(guān)閉。第五頁(yè),共159頁(yè)。(2) 系統(tǒng)關(guān)閉狀態(tài)對(duì)ARM系統(tǒng)來(lái)說(shuō),掛起狀態(tài)雖然已大大減小了功耗,但系統(tǒng)在掛起狀態(tài)下也消耗能量,因而需要一種關(guān)閉模式,像系統(tǒng)沒有電源一樣。這種模式在電池耗盡時(shí)可以有效保護(hù)電池不被損壞;同時(shí)可使系統(tǒng)在安裝有電池的情況下進(jìn)行傳輸和存儲(chǔ)。(3) 軟啟動(dòng)大多數(shù)系統(tǒng)需要一種軟啟動(dòng)功能,軟啟動(dòng)時(shí),處理器被復(fù)位,但SDRAM里面的內(nèi)容仍舊保持。目前,大部分編寫式系統(tǒng)都選擇在SDRAM中存儲(chǔ)用戶文件,這是一項(xiàng)非常有用的功能。第六頁(yè),共159頁(yè)。2.外設(shè)耗電考慮顯示及背光低功耗SDRAM音頻備用電源緊急情況漏電問(wèn)題第七頁(yè),共159頁(yè)。5.1.2硬件電路設(shè)計(jì)電源線與地線設(shè)計(jì)(1)電源/電源線設(shè)計(jì)盡量加粗電源線的寬度電源線、地線的走向和數(shù)據(jù)線傳遞的方向一致模擬電路和數(shù)字電路部分要獨(dú)立供電一種是數(shù)字電源與模擬電源,以及數(shù)字地與模擬地之間加鐵氧體磁珠或電感構(gòu)成無(wú)源濾波電路,如圖5-3(a)所示。另一種是采用多路穩(wěn)壓器的方法,如圖5-3(b)所示。第八頁(yè),共159頁(yè)。圖5-3電源數(shù)/模獨(dú)立供電設(shè)計(jì)第九頁(yè),共159頁(yè)。(2)地線設(shè)計(jì)地線設(shè)計(jì)的原則如下所示。數(shù)字地與模擬地分開。如線路板上既有數(shù)字電路又有模擬電路,則應(yīng)使它們盡可能分開。低頻電路的地應(yīng)盡量采用單點(diǎn)并聯(lián)接地,實(shí)際布線有困難時(shí)可部分串聯(lián)后再并聯(lián)接地。高頻電路宜采用多點(diǎn)串聯(lián)接地,地線應(yīng)粗而短,高頻元件周圍應(yīng)盡量用柵格狀大面積地箔。接地線應(yīng)盡量加粗。若接地線用很細(xì)的線條,則接地點(diǎn)位隨電流的變化而變化,使抗噪性能降低。因此應(yīng)將接地線加粗,使它能通過(guò)3倍于電路板上的允許電流。如有可能,接地線應(yīng)在2~3mm以上。接地線構(gòu)成比環(huán)路。只由數(shù)字電路組成的印制板,其接地電路布成閉環(huán)路大多能提高抗噪聲能力。第十頁(yè),共159頁(yè)。(3)電源濾波設(shè)計(jì)電源濾波如圖5-4所示。電源引入出必須考慮低頻和高頻的濾波。低頻濾波電容均勻分布在PCB上,每個(gè)大功率器件應(yīng)安裝一個(gè)16uF以上的電解電容或鉭電容,并由其所放位置處負(fù)載的特性及紋波要求來(lái)確定適當(dāng)?shù)娜葜怠T骷拿總€(gè)(組)電源/地均應(yīng)安裝至少一個(gè)高頻濾波電容。高頻濾波電容必須靠近器件的電源/地引腳。第十一頁(yè),共159頁(yè)。2.直流電壓產(chǎn)生方法在系統(tǒng)中需要使用+12VDC、+5VDC、+3.3VDC的直流穩(wěn)壓電源,其中,內(nèi)核工作需3.3V電源,ARM的IO端口工作和部分器件需3.3V電源,為L(zhǎng)CD提供5V的直流穩(wěn)壓電源。擴(kuò)展板的電源模塊負(fù)責(zé)提供核心板和擴(kuò)展板上電路的供電,采用線性穩(wěn)壓器。這3種電壓的產(chǎn)生方法是+12VDC從外部直接引入,作為整個(gè)系統(tǒng)的總電源,一路直接供給作為工作電源,一路分流到LM7805的輸入端;LM7805電源穩(wěn)壓芯片的輸出端產(chǎn)生+5VDC,一路供給核心板上器件各+5V,一路分流到+3.3VDC穩(wěn)壓芯片ALSlll7的輸入端,其輸出端產(chǎn)生+3.3VDC。還可以采用線性穩(wěn)壓電源LM1085將DC5V轉(zhuǎn)換成2.5V。第十二頁(yè),共159頁(yè)。第十三頁(yè),共159頁(yè)。本章提要132546復(fù)位電路

鍵盤模塊設(shè)計(jì)UART異步串口模塊設(shè)計(jì)A/D轉(zhuǎn)換器觸摸屏模塊設(shè)計(jì)

電源模塊設(shè)計(jì)

7LCD模塊設(shè)計(jì)9PWM直流電機(jī)控制接口8I2C總線接口應(yīng)用設(shè)計(jì)第十四頁(yè),共159頁(yè)。5.2復(fù)位電路5.2.1ARM復(fù)位原理1.ARM復(fù)位源類型復(fù)位源復(fù)位對(duì)象復(fù)位邏輯系統(tǒng)配置時(shí)鐘模塊上電復(fù)位是是是外部硬件復(fù)位否是是內(nèi)部硬件復(fù)位鎖相環(huán)失鎖復(fù)位否是是軟件看門狗復(fù)位檢錯(cuò)停機(jī)復(fù)位測(cè)試端口硬復(fù)位JTAG復(fù)位否否否外部軟件復(fù)位否否否內(nèi)部軟件復(fù)位調(diào)試端口軟復(fù)位否否否JTAG軟復(fù)位第十五頁(yè),共159頁(yè)。2.復(fù)位工作原理圖5-6系統(tǒng)復(fù)位過(guò)程第十六頁(yè),共159頁(yè)。5.2.2復(fù)位硬件電路設(shè)計(jì)1.復(fù)位電路原理圖

第十七頁(yè),共159頁(yè)。3.看門狗軟件復(fù)位

看門狗復(fù)位電路主要是利用ARM正常工作時(shí),定時(shí)復(fù)位計(jì)數(shù)器,使得計(jì)數(shù)器的值不超過(guò)某一值:當(dāng)ARM不能正常工作時(shí),由于計(jì)數(shù)器不能被復(fù)位,因此其計(jì)數(shù)會(huì)超過(guò)某一值,從而產(chǎn)生復(fù)位脈沖,使得ARM恢復(fù)正常工作狀態(tài)??撮T狗復(fù)位電路的可靠性主要取決于軟件設(shè)汁,即將定時(shí)問(wèn)復(fù)位電路發(fā)出脈沖的程序放在何處,在—般設(shè)計(jì)中,將此段程序放在定時(shí)器中斷服務(wù)子程序中。第十八頁(yè),共159頁(yè)。在進(jìn)行ARM處理器復(fù)位電路設(shè)計(jì)時(shí)需要注意如下問(wèn)題:要正確理解上電復(fù)位.硬件復(fù)位、軟件復(fù)位和測(cè)試復(fù)位的功能及其之間的區(qū)別。當(dāng)上電復(fù)位有效時(shí).可以產(chǎn)生處理器內(nèi)部硬復(fù)位和軟復(fù)位;當(dāng)硬件復(fù)位時(shí),可以產(chǎn)生處理器內(nèi)部硬復(fù)位和軟復(fù)位;但是,軟件復(fù)位只能產(chǎn)生處理器內(nèi)部的軟復(fù)位。在進(jìn)行具有下電模式的低功耗嵌入式系統(tǒng)復(fù)位電路設(shè)計(jì)時(shí),由于要求上電復(fù)位電路的供電來(lái)自帶有電池的保持電源有效,因此在設(shè)計(jì)時(shí)應(yīng)盡量選擇低功耗器件作為復(fù)位電路的主器件。第十九頁(yè),共159頁(yè)。本章提要132546復(fù)位電路鍵盤模塊設(shè)計(jì)UART異步串口模塊設(shè)計(jì)A/D轉(zhuǎn)換器觸摸屏模塊設(shè)計(jì)

電源模塊設(shè)計(jì)

7LCD模塊設(shè)計(jì)9PWM直流電機(jī)控制接口8I2C總線接口應(yīng)用設(shè)計(jì)第二十頁(yè),共159頁(yè)。5.3.1異步串行通信概述UART(UniversalAsynchronousReceiverandTransmitter,通用異步收發(fā)器)接口。而RS232、RS499、RS423、RS422和RS485等,是物理接口標(biāo)準(zhǔn)規(guī)范和總線標(biāo)準(zhǔn)規(guī)范,對(duì)應(yīng)各種異步串行通信口的接口標(biāo)準(zhǔn)和總線標(biāo)準(zhǔn),它規(guī)定了通信口的電氣特性、傳輸速率、連接特性和接口的機(jī)械特性等內(nèi)容。第二十一頁(yè),共159頁(yè)。1.異步串行通信協(xié)議

異步串行方式是將傳輸數(shù)據(jù)的每個(gè)字符一位接一位(例如先低位、后高位)地傳送。數(shù)據(jù)的各不同位可以分時(shí)使用同一傳輸通道,因此串行I/O可以減少信號(hào)連線,最少用一對(duì)線即可進(jìn)行。

1111/01/01/01/01/01/01/01/01100D0D0D0D3D4D5D6第n個(gè)字符空閑位空閑位空閑位停止位奇偶位起始位數(shù)據(jù)位微機(jī)異步串行通信中,常用的波特率為50,95,110,150,300,600,1200,2400,4800,9600,115200等。第二十二頁(yè),共159頁(yè)。接收方按約定的格式接收數(shù)據(jù),并進(jìn)行檢查,一般可以查出以下三種錯(cuò)誤:1)奇偶錯(cuò):在約定奇偶檢查的情況下,接收到的字符奇偶狀態(tài)和約定不符。2)幀格式錯(cuò):一個(gè)字符從起始位到停止位的總位數(shù)不對(duì)。3)溢出錯(cuò):若先接收的字符尚未被微機(jī)讀取,后面的字符又傳送過(guò)來(lái),則產(chǎn)生溢出錯(cuò)。第二十三頁(yè),共159頁(yè)。2.異步串行通信接口定義一般UART接口定義四根引腳,分別如下:1)RxD(ReceiveData)——數(shù)據(jù)接收引腳,用于串行通信數(shù)據(jù)接收;2)TxD(TransmitData)——數(shù)據(jù)發(fā)送引腳,用于串行通信數(shù)據(jù)發(fā)送;3)RTS(RequesttoSend)——請(qǐng)求數(shù)據(jù)發(fā)送引腳,用于標(biāo)明接收設(shè)備有沒有準(zhǔn)備好接收數(shù)據(jù),即當(dāng)終端要發(fā)送數(shù)據(jù)時(shí),使該信號(hào)有效;4)CTS(CleartoSend)——允許數(shù)據(jù)發(fā)送引腳,用于CTS來(lái)起動(dòng)和暫停來(lái)自計(jì)算機(jī)的數(shù)據(jù)流,用來(lái)表示從設(shè)備準(zhǔn)備好接收主設(shè)備發(fā)來(lái)的數(shù)據(jù),是對(duì)請(qǐng)求發(fā)送信號(hào)RTS的響應(yīng)信號(hào)。UARTAUARTBTxDRxDCTSRTSTxDRxDCTSRTS第二十四頁(yè),共159頁(yè)。3、RS-232-C目前RS-232是PC機(jī)與通信工業(yè)中應(yīng)用最廣泛的種串行接口。RS-232被定義為一種在低速率串行通信中增加通信距離的單端標(biāo)準(zhǔn)。RS-232遵循RS-232-C標(biāo)準(zhǔn),美國(guó)電子工業(yè)協(xié)會(huì)(ElectronicIndustriesAssociation,EIA)把RS-232-C定義為:“在數(shù)據(jù)終端設(shè)備和數(shù)據(jù)通信設(shè)備之間使用串行二進(jìn)制數(shù)據(jù)交換的接口”。RS-232-C標(biāo)準(zhǔn)是一種硬件協(xié)議,用于連接DIE(DataTerminalEquipment,數(shù)據(jù)終端設(shè)備)和DCE(DataCommunicationsEquipment,數(shù)據(jù)通信設(shè)備)兩種設(shè)備。RS-232-C定義包括以下幾個(gè)方面:接口的機(jī)械特性;電氣信號(hào)特征;交換功能特性。第二十五頁(yè),共159頁(yè)。

RS-232-C采用25針連接器,陽(yáng)極(插頭)接DTE,陰極(插座)接DCE。雖然本標(biāo)準(zhǔn)沒有規(guī)定連接器的實(shí)際類型,但工業(yè)上對(duì)D-25類型的連接器實(shí)行了標(biāo)準(zhǔn)化。

在電氣方向,RS-232-C作了以下規(guī)定:驅(qū)動(dòng)器上的負(fù)載電容不超過(guò)2500pF。驅(qū)動(dòng)器上的負(fù)載電阻在3000歐-7000歐之間。在指定負(fù)載下,數(shù)據(jù)信號(hào)傳輸率(或波特率)低于2000bps。相對(duì)于信號(hào)地線,RS-232-C線的最高電壓不超過(guò)15v驅(qū)動(dòng)器能產(chǎn)生+5-+15v(邏輯0)和-5--15v(邏輯1)的電壓。輸入端能接收+5-+15v(邏輯0)和-5--15v(邏輯1)的信號(hào)。第二十六頁(yè),共159頁(yè)。

在RS-232-C標(biāo)準(zhǔn)建議信號(hào)的傳輸速度控制在20kbps內(nèi),在高速傳輸時(shí),建議電纜長(zhǎng)度不超過(guò)50英尺。簡(jiǎn)單的計(jì)算公式為:25英尺(半負(fù)載量)時(shí)數(shù)據(jù)信號(hào)傳輸率增加到40kbps、12.5英尺時(shí)數(shù)據(jù)信號(hào)傳輸率增加到80kbps、6英尺時(shí)數(shù)據(jù)信號(hào)傳輸率增加到160kbps。事實(shí)上,許多通信包能使兩臺(tái)計(jì)算機(jī)之間的數(shù)據(jù)信號(hào)傳輸率達(dá)到115.2kbps。注意,RS-232-C標(biāo)準(zhǔn)并沒有定義“標(biāo)推”波特率。RS-232-C標(biāo)準(zhǔn)允許數(shù)據(jù)在同一時(shí)刻收發(fā),也就是全雙工通信方式。RS-232-C標(biāo)準(zhǔn)定義的25針實(shí)際上僅用了其中9針。RS-232-C通信所保留的9針見表6-7。注意,PC機(jī)上的通信端口一般是作為DTE連接(即陽(yáng)性連接器)。在實(shí)際的應(yīng)用中,利用RS-232-C的通信通常只使用其中的3根線,即Rd、TxD和GND。第二十七頁(yè),共159頁(yè)。說(shuō)明編寫詞DTEDB-25M針腳號(hào)DTEDB-9M針腳號(hào)方向DTEDB-9F針腳號(hào)DTEDB-25F針腳號(hào)發(fā)送TxD2333接收RxD3222發(fā)送請(qǐng)求RTS4785清除發(fā)送CTS5874數(shù)據(jù)設(shè)置準(zhǔn)備好DSR66420數(shù)據(jù)載波準(zhǔn)備好DCD8118數(shù)據(jù)終端準(zhǔn)備好DTR20466振鈴檢測(cè)IndicatorTL2299信號(hào)地GroundSG755第二十八頁(yè),共159頁(yè)。

4.RS-422RS-422由RS-232發(fā)展而來(lái)。為改進(jìn)RS-232通信距離短、速度低的缺點(diǎn),RS-422定義了一種平衡通信接口,將傳輸速率提高到10Mbps,允許在一條平衡總線上連接最多10個(gè)接收器。RS-422是一種單機(jī)發(fā)送、多機(jī)接收的單向、平衡傳輸規(guī)范。RS-422的數(shù)據(jù)信號(hào)采用差分傳輸方式,也稱做平衡傳輸。它使用一對(duì)雙絞線進(jìn)行數(shù)據(jù)傳輸。驅(qū)動(dòng)器能產(chǎn)生+2-+6v(邏輯0)和-2--6v(邏輯1)第二十九頁(yè),共159頁(yè)。

RS-422標(biāo)準(zhǔn)全稱是“平衡電壓數(shù)字接口電路的電氣特性”。由于接收器采用高輸入阻抗并且發(fā)送驅(qū)動(dòng)器具有比RS-232更強(qiáng)的驅(qū)動(dòng)能力,故允許在相同傳輸線上連接多個(gè)接收節(jié)點(diǎn),最多可接10個(gè)節(jié)點(diǎn),即一個(gè)主設(shè)備(Master),其余為從設(shè)備(Slave),從設(shè)備之間不能通信,所以RS-422支持點(diǎn)對(duì)多的雙向通信。RS-422四線接口由于采用單獨(dú)的發(fā)送和接收通道,因此不必控制數(shù)據(jù)方向,備裝置之間任何必須的信號(hào)交換均可以按軟件方式(XON/XOFF握手)或硬件方式(一對(duì)單獨(dú)的雙絞線)實(shí)現(xiàn)。第三十頁(yè),共159頁(yè)。

RS-422的最大傳輸距離為4000英尺(約1219米),最大傳輸速率為1Mbps。其平衡雙絞線的長(zhǎng)度與傳輸速率成反比,在100Kbps速率以下,才可能達(dá)到最大傳輸距離。只有在很短的距離廠才能獲得最高傳輸速率。一般100米長(zhǎng)的雙絞線上所能獲得的最大傳輸速率僅為1Mbps。RS-422需要一終接電阻,要求其阻值約等于傳輸電纜的特性阻抗。在短距離傳輸時(shí)可不需終接電阻,即一般在300米以下不需終接電阻。終接電阻接在傳輸電纜的最遠(yuǎn)端。第三十一頁(yè),共159頁(yè)。

5.RS-485串行總線接口

為擴(kuò)展應(yīng)用范圍,EIA在RS-422的基礎(chǔ)上制定了RS-485標(biāo)準(zhǔn),增加了多點(diǎn)、雙向通信能力,通常在要求通信距離為幾十米至上千米時(shí),廣泛采用R5-485收發(fā)器。RS-485收發(fā)器采用平衡發(fā)送和差分接收,即在發(fā)送端,驅(qū)動(dòng)器將TTL電平信號(hào)轉(zhuǎn)換成差分信號(hào)輸出;在接收端,接收器將差分信號(hào)變成TTL電平,因此具有抑制共模干擾的能力,加上接收器具有高的靈敏度,能檢測(cè)低達(dá)200mV的電壓,故數(shù)據(jù)傳輸可達(dá)千米以外。第三十二頁(yè),共159頁(yè)。

RS-485許多電氣規(guī)定與RS-422相仿,如都采用平衡傳輸方式、都需要在傳輸線上接終接電阻等。RS-485可以采用二線與四線方式,二線制可實(shí)現(xiàn)真正的多點(diǎn)雙向通信。而采用四線連接時(shí),與RS-422一樣只能實(shí)現(xiàn)點(diǎn)對(duì)多的通信,即只能有一個(gè)主(Master)設(shè)備,其余為從設(shè)備,但它比RS-422有所改進(jìn)。無(wú)論四線還是二線連接方式總線上都可連接多達(dá)32個(gè)設(shè)備。第三十三頁(yè),共159頁(yè)。RS-485與RS-422的共模輸出電壓是不同的。RS-485共模輸出電壓在-7V至+12V之間,而RS-422在-6V至+6V之間,RS-485接收器最小輸入阻抗為12千歐;RS-422是4千歐;RS-485滿足所有RS-422的規(guī)范,所以RS-485的驅(qū)動(dòng)器可以在RS-422網(wǎng)絡(luò)中應(yīng)用,但RS-422的驅(qū)動(dòng)器并不完全適用于RS-485網(wǎng)絡(luò)。RS-485與RS-422一樣,最大傳輸速率為10Mb/s。當(dāng)波特率為1.2kbps時(shí),最大傳輸距離理論上可達(dá)15千米。平衡雙絞線的長(zhǎng)度與傳輸速率成反比,在100kbps速率以下,才可能使用規(guī)定最長(zhǎng)的電纜長(zhǎng)度。RS-485需要2個(gè)終接電阻,接在傳輸總線的兩端,其阻值要求等于傳輸電纜的特性阻抗。在矩距離傳輸時(shí)可不需終接電阻,即一般在300米以下不需終接電阻。第三十四頁(yè),共159頁(yè)。5.3.2S3C440BXUART串口介紹通用異步收發(fā)器(UART)

S3C44B0X的UART(UniversalAsynchronousReceiverandTransmitter,通用異步收發(fā)器)單元提供兩個(gè)獨(dú)立的異步串行I/O口,都可以運(yùn)行于中斷模式或DMA模式。也就是說(shuō),UART可以產(chǎn)生中斷請(qǐng)求或DMA請(qǐng)求,以便在CPU和UART之間傳遞數(shù)據(jù)。它最高可支持115200bps的傳輸率。S3C44B0X中每個(gè)UART通道包含兩個(gè)用于接收或發(fā)送數(shù)據(jù)的16位FIFOs隊(duì)列。第三十五頁(yè),共159頁(yè)。通用異步收發(fā)器(UART)的結(jié)構(gòu)數(shù)據(jù)接收器數(shù)據(jù)接收器控制單元波特率發(fā)生器接收FIFO(16Byte)接收移相器發(fā)送移相器發(fā)送FIFO(16Byte)TXDnRXDn時(shí)鐘源第三十六頁(yè),共159頁(yè)。5.3.3串口硬件電路設(shè)計(jì)第三十七頁(yè),共159頁(yè)。5.3.4串口驅(qū)動(dòng)程序設(shè)計(jì)與UART有關(guān)的寄存器主要有以下幾個(gè):(1)UART線性控制寄存器ULCONn,主要對(duì)串口的功能、奇偶校驗(yàn)、數(shù)據(jù)位長(zhǎng)度等進(jìn)行配置。(2)UART控制寄存器UCONn,該寄存器決定UART的各種摸式。(3)UARTFIFO控制寄存器UFCONn,決定UART中FIFO的摸式。UFCONn的第0位決定是否啟用FIFO。(4)UARTMODEM控制寄存器,決定UART中MODEM的摸式。UMCONn的第0位是請(qǐng)求發(fā)送位,對(duì)我們來(lái)說(shuō)是比較重要的。(5)讀寫狀態(tài)寄存器UTRSTAT以及錯(cuò)誤狀態(tài)寄存UERSTAT,可以反映芯片目前的讀寫狀態(tài)以及錯(cuò)誤類型。FIFO狀態(tài)寄存器UFSTAT和MODEM狀態(tài)寄存器UMSTAT,通過(guò)前者可以讀出目前FIFO是否滿以及其中的字節(jié)數(shù);通過(guò)后者可以讀出目前MODEM的CTS狀態(tài)。(6)發(fā)送寄存器UTXH和接收寄存器URXH,這兩個(gè)寄存器存放著發(fā)送和接收的數(shù)據(jù),當(dāng)然只有一個(gè)字節(jié)8位數(shù)據(jù)。需要注意的是在發(fā)生溢出錯(cuò)誤的時(shí)候,接收的數(shù)據(jù)必須要被讀出來(lái),否則會(huì)引發(fā)下次溢出錯(cuò)誤。第三十八頁(yè),共159頁(yè)。(7)最后是波特率配置寄存器UBRDIV。計(jì)算公式如下:UBRDIVn=(round_off)(MCLK/(bps×16))-1其中MCLK是系統(tǒng)頻率,例如在40MHz的情況下,當(dāng)波特率取115200時(shí),UBRDIVn=(int)(40000000/(115200×16)+0.5)-1=(int)(21.7+0.5)-1=22-1=21第三十九頁(yè),共159頁(yè)。定義各個(gè)寄存器地址#definerULCON0(*(volatileunsigned*)0x1d00000)#definerULCON1(*(volatileunsigned*)0x1d04000)

volatile關(guān)鍵字是一種類型修飾符,用它聲明的類型變量表示可以被某些編譯器未知的因素更改,比如:操作系統(tǒng)、硬件或者其它線程等。遇到這個(gè)關(guān)鍵字聲明的變量,編譯器對(duì)訪問(wèn)該變量的代碼就不再進(jìn)行優(yōu)化,從而可以提供對(duì)特殊地址的穩(wěn)定訪問(wèn)。一般說(shuō)來(lái),volatile用在如下的幾個(gè)地方:

(1)、中斷服務(wù)程序中修改的供其它程序檢測(cè)的變量需要加volatile;

(2)、多任務(wù)環(huán)境下各任務(wù)間共享的標(biāo)志應(yīng)該加volatile;

(3)、存儲(chǔ)器映射的硬件寄存器通常也要加volatile說(shuō)明,因?yàn)槊看螌?duì)它的讀寫都可能由不同意義;第四十頁(yè),共159頁(yè)。寄存器宏定義#definerULCON0(*(volatileunsigned*)0x1d00000)#definerUCON0(*(volatileunsigned*)0x1d00004)#definerUFCON0(*(volatileunsigned*)0x1d00008)#definerUMCON0(*(volatileunsigned*)0x1d0000c)#definerUTRSTAT0(*(volatileunsigned*)0x1d00010)#definerUERSTAT0(*(volatileunsigned*)0x1d00014)#definerUFSTAT0(*(volatileunsigned*)0x1d00018)#definerUMSTAT0(*(volatileunsigned*)0x1d0001c)#definerUBRDIV0(*(volatileunsigned*)0x1d00028)#definerUTXH0(*(volatileunsignedchar*)0x1d00020)#definerURXH0(*(volatileunsignedchar*)0x1d00024)#definerUTXH0(*(volatileunsignedchar*)0x1d00020)#definerURXH0(*(volatileunsignedchar*)0x1d00024)#defineUTXH0(*(volatileunsignedchar*)0x1d00020)//byte_accessaddressbyBDMA#defineURXH0(*(volatileunsignedchar*)0x1d00024)第四十一頁(yè),共159頁(yè)。編寫串口驅(qū)動(dòng)函數(shù)串口初始化串口初始化包括:設(shè)置波特率;設(shè)置起始位、奇偶校驗(yàn)位等設(shè)置中斷等將寄存器ULCONn、UCONn置零設(shè)置寄存器ULCONn、UCONn、UBRDIV延時(shí)第四十二頁(yè),共159頁(yè)。voidUart_Init(intmclk,intbaud){ inti; if(mclk==0) mclk=MCLK; rUFCON0=0x0;//FIFOdisable rUMCON0=0x0;//UART0 rULCON0=0x3;//Normal,Noparity,1stop,8bit rUCON0=0x245;//rx=edge,tx=level,disabletimeoutint., enablerxerrorint.,normal,interruptorpolling rUBRDIV0=((int)(mclk/16./baud+0.5)-1); for(i=0;i<100;i++);}第四十三頁(yè),共159頁(yè)。編寫收發(fā)數(shù)據(jù)函數(shù)發(fā)送數(shù)據(jù)主要是將需發(fā)送的數(shù)據(jù)放入發(fā)送數(shù)據(jù)寄存器發(fā)送數(shù)據(jù)開始發(fā)送隊(duì)列是否為空延時(shí)發(fā)送數(shù)據(jù)WrUTXHO(data)否是第四十四頁(yè),共159頁(yè)。UTRSTATn寄存器第四十五頁(yè),共159頁(yè)。voidUart_SendByte(unsignedchardata){while(!(rUTRSTAT0&0x2));//WaituntilTHRisempty. Delay(1); rUTXH0=data;} 第四十六頁(yè),共159頁(yè)。接收數(shù)據(jù)主要是將已到達(dá)的數(shù)據(jù)從接受寄存器中取出接收數(shù)據(jù)開始接收隊(duì)列是否為滿延時(shí)接收數(shù)據(jù)RdURXHn()否是第四十七頁(yè),共159頁(yè)。unsignedcharUart_Getch(unsignedchar*Revdata){ while(!(rUTRSTAT0&0x1));//Receivedataread *Revdata=rURXH0; returnTRUE;}第四十八頁(yè),共159頁(yè)。本章提要132546復(fù)位電路鍵盤模塊設(shè)計(jì)UART異步串口模塊設(shè)計(jì)A/D轉(zhuǎn)換器觸摸屏模塊設(shè)計(jì)

電源模塊設(shè)計(jì)

7LCD模塊設(shè)計(jì)9PWM直流電機(jī)控制接口8I2C總線接口應(yīng)用設(shè)計(jì)第四十九頁(yè),共159頁(yè)。5.4A/D轉(zhuǎn)換器

A/D轉(zhuǎn)換器有以下類型:逐位比較型、積分型、計(jì)數(shù)型、并行比較型、電壓-頻率型,主要應(yīng)根據(jù)使用場(chǎng)合的具體要求,按照轉(zhuǎn)換速度、精度、價(jià)格、功能以及接口條件等因素來(lái)決定選擇何種類型。常用的有以下兩種:1)雙積分型的A/D轉(zhuǎn)換器

雙積分式也稱二重積分式,其實(shí)質(zhì)是測(cè)量和比較兩個(gè)積分的時(shí)間,一個(gè)是對(duì)模擬輸入電壓積分的時(shí)間T0,此時(shí)間往往是固定的;另一個(gè)是以充電后的電壓為初值,對(duì)參考電源VRef反向積分,積分電容被放電至零所需的時(shí)間T1。模擬輸入電壓Vi與參考電壓VRef之比,等于上述兩個(gè)時(shí)間之比。由于VRef、T0固定,而放電時(shí)間T1可以測(cè)出,因而可計(jì)算出模擬輸入電壓的大小(VRef與Vi符號(hào)相反)。第五十頁(yè),共159頁(yè)。第五十一頁(yè),共159頁(yè)。

由于T0、VRef為已知的固定常數(shù),因此反向積分時(shí)間T1與輸入模擬電壓Vi在T0時(shí)間內(nèi)的平均值成正比。輸入電壓Vi愈高,VA愈大,T1就愈長(zhǎng)。在T1開始時(shí)刻,控制邏輯同時(shí)打開計(jì)數(shù)器的控制門開始計(jì)數(shù),直到積分器恢復(fù)到零電平時(shí),計(jì)數(shù)停止。則計(jì)數(shù)器所計(jì)出的數(shù)字即正比于輸入電壓Vi在T0時(shí)間內(nèi)的平均值,于是完成了一次A/D轉(zhuǎn)換。由于雙積分型A/D轉(zhuǎn)換是測(cè)量輸入電壓Vi在T。時(shí)間內(nèi)的平均值,所以對(duì)常態(tài)干擾(串模干擾)有很強(qiáng)的抑制作用,尤其對(duì)正負(fù)波形對(duì)稱的干擾信號(hào),抑制效果更好。第五十二頁(yè),共159頁(yè)。2)逐次逼近型的A/D轉(zhuǎn)換器逐次逼近型(也稱逐位比較式)的A/D轉(zhuǎn)換器,應(yīng)用比積分型更為廣泛,其原理框圖如圖所示,主要由逐次逼近寄存器SAR、D/A轉(zhuǎn)換器、比較器以及時(shí)序和控制邏輯等部分組成。它的實(shí)質(zhì)是逐次把設(shè)定的SAR寄存器中的數(shù)字量經(jīng)D/A轉(zhuǎn)換后得到電壓Vc與待轉(zhuǎn)換模擬電壓V。進(jìn)行比較。比較時(shí),先從SAR的最高位開始,逐次確定各位的數(shù)碼應(yīng)是“1”還是“0”,其工作過(guò)程如下:第五十三頁(yè),共159頁(yè)。第五十四頁(yè),共159頁(yè)。逐次逼近式的A/D轉(zhuǎn)換器的主要特點(diǎn)是:

轉(zhuǎn)換速度較快,在1—100/μs以內(nèi),分辨率可以達(dá)18位,特別適用于工業(yè)控制系統(tǒng)。轉(zhuǎn)換時(shí)間固定,不隨輸入信號(hào)的變化而變化。抗干擾能力相對(duì)積分型的差。例如,對(duì)模擬輸入信號(hào)采樣過(guò)程中,若在采樣時(shí)刻有一個(gè)干擾脈沖迭加在模擬信號(hào)上,則采樣時(shí),包括干擾信號(hào)在內(nèi),都被采樣和轉(zhuǎn)換為數(shù)字量,這就會(huì)造成較大的誤差,所以有必要采取適當(dāng)?shù)臑V波措施。第五十五頁(yè),共159頁(yè)。2.A/D轉(zhuǎn)換的重要指標(biāo)1)分辨率(Resolution)

分辨率反映A/D轉(zhuǎn)換器對(duì)輸入微小變化響應(yīng)的能力,通常用數(shù)字輸出最低位(LSB)所對(duì)應(yīng)的模擬輸入的電平值表示。n位A/D能反應(yīng)1/2n滿量程的模擬輸入電平。由于分辨率直接與轉(zhuǎn)換器的位數(shù)有關(guān),所以一般也可簡(jiǎn)單地用數(shù)字量的位數(shù)來(lái)表示分辨率,即n位二進(jìn)制數(shù),最低位所具有的權(quán)值,就是它的分辨率。2)精度(Accuracy)

精度有絕對(duì)精度(AbsoluteAccuracy)和相對(duì)精度(RelativeAccuracy)兩種表示方法。第五十六頁(yè),共159頁(yè)。①絕對(duì)誤差

在一個(gè)轉(zhuǎn)換器中,對(duì)應(yīng)于一個(gè)數(shù)字量的實(shí)際模擬輸入電壓和理想的模擬輸入電壓之差并非是一個(gè)常數(shù)。我們把它們之間的差的最大值,定義為“絕對(duì)誤差”。通常以數(shù)字量的最小有效位(LSB)的分?jǐn)?shù)值來(lái)表示絕對(duì)誤差,例如:±1LSB等。絕對(duì)誤差包括量化誤差和其它所有誤差。②相對(duì)誤差

是指整個(gè)轉(zhuǎn)換范圍內(nèi),任一數(shù)字量所對(duì)應(yīng)的模擬輸入量的實(shí)際值與理論值之差,用模擬電壓滿量程的百分比表示。例如,滿量程為10V,10位A/D芯片,若其絕對(duì)精度為±1/2LSB,則其最小有效位的量化單位:9.77mV,其絕對(duì)精度為=4.88mV,其相對(duì)精度為4.88/104=0.048%。第五十七頁(yè),共159頁(yè)。3)轉(zhuǎn)換時(shí)間(ConversionTime)

轉(zhuǎn)換時(shí)間是指完成一次A/D轉(zhuǎn)換所需的時(shí)間,即由發(fā)出啟動(dòng)轉(zhuǎn)換命令信號(hào)到轉(zhuǎn)換結(jié)束信號(hào)開始有效的時(shí)間間隔。轉(zhuǎn)換時(shí)間的倒數(shù)稱為轉(zhuǎn)換速率。例如AD570的轉(zhuǎn)換時(shí)間為25us,其轉(zhuǎn)換速率為40KHz。4)電源靈敏度(powersupplysensitivity)

電源靈敏度是指A/D轉(zhuǎn)換芯片的供電電源的電壓發(fā)生變化時(shí),產(chǎn)生的轉(zhuǎn)換誤差。一般用電源電壓變化1%時(shí)相當(dāng)?shù)哪M量變化的百分?jǐn)?shù)來(lái)表示。第五十八頁(yè),共159頁(yè)。5)量程

量程是指所能轉(zhuǎn)換的模擬輸入電壓范圍,分單極性、雙極性兩種類型。例如,單極性量程為0~+5V,0~+10V,0~+20V;雙極性量程為-5~+5V,-10~+10V。6)輸出邏輯電平

多數(shù)A/D轉(zhuǎn)換器的輸出邏輯電平與TTL電平兼容。在考慮數(shù)字量輸出與微處理的數(shù)據(jù)總線接口時(shí),應(yīng)注意是否要三態(tài)邏輯輸出,是否要對(duì)數(shù)據(jù)進(jìn)行鎖存等。第五十九頁(yè),共159頁(yè)。7)工作溫度范圍

由于溫度會(huì)對(duì)比較器、運(yùn)算放大器、電阻網(wǎng)絡(luò)等產(chǎn)生影響,故只在一定的溫度范圍內(nèi)才能保證額定精度指標(biāo)。一般A/D轉(zhuǎn)換器的工作溫度范圍為(0~70℃),軍用品的工作溫度范圍為(-55~+125℃)。第六十頁(yè),共159頁(yè)。3.A/D轉(zhuǎn)換過(guò)程A/D轉(zhuǎn)換過(guò)程分為4個(gè)階段:即采樣、保持、量化和編碼。采樣是將一個(gè)時(shí)間上連續(xù)變化的信號(hào)轉(zhuǎn)換成時(shí)間上離散的信號(hào),根據(jù)奈奎斯特采樣定理fs≥2fh,考慮到模數(shù)轉(zhuǎn)換器件的非線性失真、量化噪聲積極手機(jī)噪聲等因素的影響,采樣頻率一般取2.5~3倍的最高頻率成分。要把一個(gè)采樣信號(hào)準(zhǔn)確地?cái)?shù)字化,就需要將采樣所得的瞬時(shí)模擬信號(hào)保持一段時(shí)間,這就是保持過(guò)程。保持實(shí)將時(shí)間離散、數(shù)值連續(xù)的信號(hào)變成時(shí)間連續(xù)、數(shù)值離散信號(hào),雖然邏輯上保持器是一個(gè)獨(dú)立單元,但是,實(shí)際上保持其總是和采樣器集成到一起,兩者合稱采樣保持器。第六十一頁(yè),共159頁(yè)。5.4.2S3C440BXA/D轉(zhuǎn)換器介紹

S3C44B0X具有8路模擬信號(hào)輸入的10位模/數(shù)轉(zhuǎn)換器(ADC),它是一個(gè)逐次逼近型的ADC,內(nèi)部結(jié)構(gòu)中包括模擬輸入多路復(fù)用器、自動(dòng)調(diào)零比較器、時(shí)鐘產(chǎn)生器、10位逐次逼近寄存器(SAR)、輸出寄存器(ADCDAT)。其內(nèi)部結(jié)構(gòu)如圖5-15所示。第六十二頁(yè),共159頁(yè)。它的主要特性是:-分辨率:10位;-微分線性度誤差:±1LSB-積分線性度誤差:±2LSB(最大±3LSB)-最大轉(zhuǎn)換速率:100KSPS(SamplePerSecond:采樣次數(shù)/秒)-輸入電壓范圍:0-2.5V-輸入帶寬:0-100Hz(不具備采樣保持(S/H)電路)-低功耗第六十三頁(yè),共159頁(yè)。表5-2A/D功能有關(guān)的引腳在電路中,對(duì)上述引腳需要按照下圖加上電容。第六十四頁(yè),共159頁(yè)。與AD相關(guān)的寄存器主要是如下三個(gè):⑴ADCPSR:采樣比率寄存器。其地址和意義參見下表:表6-13采樣比率寄存器第六十五頁(yè),共159頁(yè)。通過(guò)設(shè)置該寄存器,可以設(shè)置采樣率,最后得到的除數(shù)因子=2(寄存器值+1)參考:ADCPSR=20。當(dāng)系統(tǒng)的時(shí)鐘頻率微64MHz且ADC時(shí)鐘源的預(yù)分頻值為20時(shí),10位數(shù)字量的轉(zhuǎn)換時(shí)間如下:64MHz/2*(20+1)/16(10位操作至少要16個(gè)周期)=95.2KHz=10.5us第六十六頁(yè),共159頁(yè)。⑵ADCCON:采樣控制寄存器。其地址和意義參見下表:第六十七頁(yè),共159頁(yè)。ADCCON位描述初始狀態(tài)FLAG[6]轉(zhuǎn)換標(biāo)志位(只讀)0=A/D轉(zhuǎn)換進(jìn)行中1=轉(zhuǎn)換完畢0SLEEP[5]睡眠模式設(shè)定0=正常模式1=睡眠模式1INPUTSELECT[4:2]通道號(hào)000=AIN0001=AIN1010=AIN2011=AIN3100=AIN4101=AIN5110=AIN6111=AIN700READ_START[1]讀操作使能轉(zhuǎn)換0=允許1=禁止00ENABLE_START[0]轉(zhuǎn)換使能位如果READ_START開啟,此位無(wú)效0=無(wú)操作1=A/D轉(zhuǎn)換開始,開始后自動(dòng)清零0第六十八頁(yè),共159頁(yè)。通過(guò)該寄存器設(shè)置A/D轉(zhuǎn)換開始可以參見下例:rADCCON=0x11(通道4開始轉(zhuǎn)換)⑶ADCDAT:轉(zhuǎn)換結(jié)果數(shù)據(jù)寄存器。該寄存器的十位表示轉(zhuǎn)換后的結(jié)果,全為1時(shí)為滿量程2.5伏。第六十九頁(yè),共159頁(yè)。5.4.3A/D轉(zhuǎn)換器驅(qū)動(dòng)程序設(shè)計(jì)1.宏定義在該驅(qū)動(dòng)程序中,需要宏定義的主要有寄存器。由于通道選擇是在控制寄存器rADCCON的2~4位,為了便于操作,也可以直接將通道號(hào)進(jìn)行宏定義。#defineADCCON_FLAG 0x40#defineADCCON_SLEEP 0x20//A/D啟動(dòng)宏定義#defineADCCON_READ_START 0x2#defineADCCON_ENABLE_START 0x1//寄存器宏定義#definerADCCON(*(volatileunsignedchar*)0x01D40000)#definerADCPSR(*(volatileunsignedchar*)0x01D40004)#definerADCDAT(*(volatileunsignedint*)0x01D40008)第七十頁(yè),共159頁(yè)。2.初始化函數(shù)初始化函數(shù)主要對(duì)A/D的轉(zhuǎn)化率及A/D的模式進(jìn)行配置,主要涉及寄存器rADCPSR和控制寄存器rADCCON,voidinit_ADdevice(){//初始化 rADCPSR=20; rADCCON=ADCCON_SLEEP;}第七十一頁(yè),共159頁(yè)。3.A/D轉(zhuǎn)換函數(shù)A/D轉(zhuǎn)換函數(shù)功能主要是對(duì)需要轉(zhuǎn)換的通道進(jìn)行選擇,然后啟動(dòng)轉(zhuǎn)換,返回轉(zhuǎn)換結(jié)果。主要對(duì)控制寄存器進(jìn)行操作。intGetADresult(unsignedcharchannel){ rADCCON=(channel<<2)|ADCCON_ENABLE_START;//選擇通道號(hào)及啟動(dòng)A/D轉(zhuǎn)換 Delay(10); while(!(rADCCON&ADCCON_FLAG));//轉(zhuǎn)換結(jié)束 returnrADCDAT;//返回采樣值}第七十二頁(yè),共159頁(yè)。本章提要132546復(fù)位電路鍵盤模塊設(shè)計(jì)

UART異步串口模塊設(shè)計(jì)A/D轉(zhuǎn)換器觸摸屏模塊設(shè)計(jì)

電源模塊設(shè)計(jì)

7LCD模塊設(shè)計(jì)9PWM直流電機(jī)控制接口8I2C總線接口應(yīng)用設(shè)計(jì)第七十三頁(yè),共159頁(yè)。5.5鍵盤模塊設(shè)計(jì)鍵盤模塊鍵盤可能用來(lái)輸入數(shù)字型數(shù)據(jù)或者選擇控制設(shè)備的操作模式。常用按鍵接口可分為獨(dú)立式按鍵接口、行列式按鍵接口和專用芯片式等。具體采用哪種方式,可根據(jù)所設(shè)計(jì)系統(tǒng)的實(shí)際情況而定。第七十四頁(yè),共159頁(yè)。5.5.1常用鍵盤及原理1.獨(dú)立式按鍵接口優(yōu)點(diǎn):電路配置靈活,軟件實(shí)現(xiàn)簡(jiǎn)單。缺點(diǎn):每個(gè)按鍵需要占用一根口線,若按鍵數(shù)量較多.資源浪費(fèi)將比較嚴(yán)重應(yīng)用:主要用于按鍵較少或?qū)Σ僮魉俣纫筝^高的場(chǎng)合,軟件實(shí)現(xiàn)時(shí),可以采用中斷方式,也可采用查詢方式第七十五頁(yè),共159頁(yè)。2.行列式按鍵接口優(yōu)點(diǎn):相對(duì)于獨(dú)立接口方式可以節(jié)省很多I/O資源,相對(duì)于專用芯片鍵盤可以節(jié)省成本,且更為靈活;缺點(diǎn):需要用軟件處理消抖、重鍵等應(yīng)用:行列式按鍵接口適應(yīng)于按鍵數(shù)量較多,又不想使用專用鍵盤芯片的場(chǎng)合。第七十六頁(yè),共159頁(yè)。鍵盤掃描陣列一個(gè)瞬時(shí)接觸開關(guān)(按鈕)放置在每一行與線一列的交叉點(diǎn)。矩陣所需的鍵的數(shù)目顯然根據(jù)應(yīng)用程序而不同。每一行由一個(gè)輸出端口的一位驅(qū)動(dòng),而每一列由一個(gè)電阻器上拉且供給輸入端口一位。掃描次數(shù)輸出(行)輸入(列)鍵剛按下時(shí)000110第一次掃描011111第二次掃描101111第三次掃描110110鍵9按下時(shí)掃描過(guò)程第七十七頁(yè),共159頁(yè)。3.專用芯片式設(shè)計(jì)專用鍵盤處理芯片一般功能比較完善.芯片本身能完成對(duì)按鍵的編碼、掃描、消抖和重鍵等問(wèn)題的處理,甚至還集成了顯示接口功能。專用鍵盤處理芯片的優(yōu)點(diǎn)很明顯,可靠性高,接口簡(jiǎn)單,使用方便,適合處理按鍵較多的情況。但在很多應(yīng)用場(chǎng)合,考慮成本因素.可能并不是最佳選擇。第七十八頁(yè),共159頁(yè)。5.5.2行列式鍵盤硬件電路設(shè)計(jì)S3C44B0X的PortA、PortB、PortC主要用于外圍芯片信號(hào)的控制,PortD具有輸入輸出功能,同時(shí)功能復(fù)用少,因此在本設(shè)計(jì)中采用PortD來(lái)設(shè)計(jì)一個(gè)4×4陣列鍵盤。電路原理圖如圖5-19所示。KB0~KB3連接到PortD0~PortD3,KB4~KB7連接到PortD4~PortD7。

第七十九頁(yè),共159頁(yè)。1.鍵盤初始化函數(shù)鍵盤初始化函數(shù)主要針對(duì)鍵盤所用的端口屬性進(jìn)行初始化。在鍵盤工作之前,根據(jù)行列鍵盤電路設(shè)計(jì)原理將PortD口0~3配置為輸出,4~7配置為輸入。如果采用了中斷,還要初始化中斷寄存器。程序清單如下所示。#definerPCOND(*(volatileunsignedint*)0x01D2001C)//端口D控制寄存器宏定義#definerPDATD(*(volatileunsignedchar*)0x01D20020)//端口D數(shù)據(jù)寄存器宏定義#definerPUPD(*(volatileunsignedchar*)0x01D20024)//端口D上拉電阻寄存器宏定義voidKeyInitial()//該函數(shù)對(duì)鍵盤使用的端口進(jìn)行初始化{rPCOND=0x0055//設(shè)置PortD口4~7配置為輸入,0~3配置為輸出。rPUPD=0x00;//設(shè)置PortD無(wú)上拉電阻rPDATD=0xF0;//設(shè)置PortD口0~3輸出為0。}第八十頁(yè),共159頁(yè)。2.鍵盤掃描程序BYTEGetKey()//鍵盤掃描子程序{ BYTEi,keytemp;keytemp=rPDATD&0xF0;//將列的值存入keytemp高四位 for(i=1;i<=8;i<<=1) { rPDATD=~i; if((rPDATD&0xF0)==keytemp)//比較是否有零輸入{keytemp=(~keytemp&0xF0)|i;//將行的值存入keytemp低四位 break;} } returnkeytemp;}第八十一頁(yè),共159頁(yè)。3.按鍵判斷函數(shù)該函數(shù)主要通過(guò)對(duì)輸入端口是否有低電平產(chǎn)生來(lái)判斷是否有鍵被按下。用于在輪詢方式查詢鍵盤時(shí)檢測(cè)是否有鍵按下。采用中斷方式時(shí)不需要該函數(shù)。BYTEIsKeyPressed()//是否處于按下狀態(tài){ if(rPDATD&0xF0==0xF0)//輸入端口是否出現(xiàn)0 returnFALSE; else returnTRUE;}第八十二頁(yè),共159頁(yè)。4.鍵盤去抖函數(shù)由于在鍵盤掃描過(guò)程中有可能出現(xiàn)外界因素引起的鍵盤抖動(dòng)造成按鍵瞬間接觸的情況,如果不進(jìn)行去抖可能造成按鍵的誤輸入。通常是采用程序延時(shí)來(lái)消抖unsignedcharKeyValue[4][4]={1,2,3,4,5,6,7,8,9,0,+,-,*,/,=,#};//鍵值映射表BYTEScanKey(){BYTEkey;key=GetScanKey();OSTimeDly(50);//延時(shí)50毫秒if(key!=GetScanKey())//延時(shí)50毫秒return0;//返回錯(cuò)誤代碼returnkey=KEYVALUE[(key&0xF0)>>4][key&0x0F];//返回按鍵值}第八十三頁(yè),共159頁(yè)。本章提要132546復(fù)位電路鍵盤模塊設(shè)計(jì)UART異步串口模塊設(shè)計(jì)A/D轉(zhuǎn)換器

觸摸屏模塊設(shè)計(jì)

電源模塊設(shè)計(jì)

7LCD模塊設(shè)計(jì)9PWM直流電機(jī)控制接口8I2C總線接口應(yīng)用設(shè)計(jì)第八十四頁(yè),共159頁(yè)。5.6觸摸屏5.6.1觸摸屏原理觸摸屏按其工作原理的不同分為表面聲波屏、電容屏、電阻屏和紅外屏幾種。常見的又?jǐn)?shù)電阻觸摸屏。如圖5-21所示,電阻觸摸屏的屏體部分是一塊與顯示器表面非常配合的多層復(fù)合薄膜,由一層玻璃或有機(jī)玻璃作為基層,表面涂有一層透明的導(dǎo)電層,上面再蓋有一層外表面硬化處理、光滑防刮的塑料層,它的內(nèi)表面也涂有一層透明導(dǎo)電層,在兩層導(dǎo)電層之間有許多細(xì)小(小于千分之一英寸)的透明隔離點(diǎn)把它們隔開絕緣。第八十五頁(yè),共159頁(yè)。觸摸屏結(jié)構(gòu)示意圖第八十六頁(yè),共159頁(yè)。觸摸屏分壓原理

如圖所示,當(dāng)手指或筆觸摸屏幕時(shí)(圖c),平常相互絕緣的兩層導(dǎo)電層就在觸摸點(diǎn)位置有了一個(gè)接觸,因其中一面導(dǎo)電層(頂層)接通X軸方向的5V均勻電壓場(chǎng)(圖a),而Y方向電極對(duì)上不加電壓時(shí),在X平行電壓場(chǎng)中,觸點(diǎn)處的電壓值可以在Y+(或Y-)電極上反映出來(lái),使得檢測(cè)層(底層)的電壓由零變?yōu)榉橇悖刂破鱾蓽y(cè)到這個(gè)接通后,進(jìn)行A/D轉(zhuǎn)換,并將得到的電壓值與5V相比即可得觸摸點(diǎn)的X軸坐標(biāo)為(原點(diǎn)在靠近接地點(diǎn)的那端):Xi=Lx*Vi/V(即分壓原理)同理得出Y軸的坐標(biāo),這就是所有電阻觸摸屏共同的最基本原理。第八十七頁(yè),共159頁(yè)。第八十八頁(yè),共159頁(yè)。5.6.2電阻觸摸屏的有關(guān)技術(shù)透明的導(dǎo)電涂層材料有兩種:1)ITO,氧化鋼,弱導(dǎo)電體,特性是當(dāng)厚度降到1800埃以下時(shí)會(huì)突然變得透明,透光度為80%,再薄下去透光率反而下降,到300埃厚度時(shí)又上升到80%。2)鎳金涂層,五線電阻觸摸屏的外層導(dǎo)電層使用的是延展性極好的鎳金涂層材料,外導(dǎo)電層由于頻繁觸摸,使用延展性好的鎳金材料目的是為了延長(zhǎng)使用壽命,但是成本較高,鎳金導(dǎo)電層雖然延展性好,但是只能作透明導(dǎo)體,不適合作為電阻觸摸屏的工作面,因?yàn)樗鼘?dǎo)電性太好,不宜作精密電阻測(cè)量,而且金屬不易做到厚度非常均勻。第八十九頁(yè),共159頁(yè)。電阻式觸摸屏分為四線電阻和五線電阻觸摸屏電阻技術(shù)觸摸屏是一種對(duì)外界完全隔離的工作環(huán)境,故不怕灰塵、水汽和油污,可以用任何物體來(lái)觸摸,比較適合工業(yè)控制領(lǐng)域及辦公室內(nèi)有限人的使用。第九十頁(yè),共159頁(yè)。四線電阻觸摸屏原理第九十一頁(yè),共159頁(yè)。測(cè)量原理在觸摸點(diǎn)X、Y坐標(biāo)的測(cè)量過(guò)程中,測(cè)量電壓與測(cè)量點(diǎn)的等效電路圖所示,圖中P為測(cè)量點(diǎn)XVYY第九十二頁(yè),共159頁(yè)。5.6.3觸摸屏電路設(shè)計(jì)觸摸屏芯片第九十三頁(yè),共159頁(yè)。FM(ADS)7843的特點(diǎn)實(shí)現(xiàn)觸摸屏的驅(qū)動(dòng)選擇控制(X、Y通道)對(duì)于輸入電壓或附加電壓進(jìn)行AD轉(zhuǎn)換同步串行接口最大轉(zhuǎn)換速率125KHz可編程控制8位或者12位轉(zhuǎn)換模式工作電壓2.7V-5.0V兩個(gè)附加的輸入端口第九十四頁(yè),共159頁(yè)。FM7843與ARM的連接第九十五頁(yè),共159頁(yè)。表5-6控制字功能描述BITNAME功能描述7S啟動(dòng)位。一個(gè)新的控制字在12位轉(zhuǎn)換時(shí)需要15個(gè)時(shí)鐘周期,在8位轉(zhuǎn)換模式下12個(gè)時(shí)鐘周期。6-4A2-A0通道選擇位。和ER/DFR位一起設(shè)置,這些位控制多路輸入設(shè)置、開關(guān)和參考輸入。3MODE12/8位轉(zhuǎn)換選擇位。這位控制轉(zhuǎn)換模式選擇:0為12位轉(zhuǎn)換,1為8位轉(zhuǎn)換。2SER/DFR單端/差分參考輸入選擇位。和A2-A0一起配置,該位控制多路輸入設(shè)置、開關(guān)和參考輸入。1-0PD1-PD0省電模式選擇位。參考:采樣x軸坐標(biāo)A2-A0為101,采樣y軸坐標(biāo)A2-A0為001;參考電壓輸入模式為差分模式(值0);允許省電模式。第九十六頁(yè),共159頁(yè)。觸摸屏控制命令宏定義#defineFM7843_CTRL_START0x80#defineFM7843_GET_X0x50#defineFM7843_GET_Y0x10#defineFM7843_CTRL_12MODE0x0#defineFM7843_CTRL_8MODE0x8#defineFM7843_CTRL_SER0x4#defineFM7843_CTRL_DFR0x0#defineFM7843_CTRL_DISPWD0x3//Disablepowerdown#defineFM7843_CTRL_ENPWD0x0//enablepowerdown第九十七頁(yè),共159頁(yè)。觸摸屏初始化函數(shù)觸摸屏初始化函數(shù)主要對(duì)與FM7843項(xiàng)連接的端口屬性進(jìn)行配置。包括初始化端口GPF5、7、8配置為SIO端口,GPF6配置為輸出屬性,GPG5配置為EXINT5。寄存器宏定義:#definerPCONF(*(volatileunsignedint*)0x01D20034)#definerPDATF(*(volatileunsignedint*)0x01D20038)#definerPCONG(*(volatileunsignedint*)0x01D20040)第九十八頁(yè),共159頁(yè)。初始化函數(shù)voidTchScr_Init(){rPCONF=(rPCONF&0x0003FF|0x1B2C00;//設(shè)置端口GPF5、7、8為SIO端口,GPF6為輸出rPCONG=rPCONG|(3<<10);//設(shè)置GPG5為EXINT5}第九十九頁(yè),共159頁(yè)。轉(zhuǎn)換/輸出時(shí)序(需要16個(gè)時(shí)鐘周期)第一百頁(yè),共159頁(yè)。觸摸屏坐標(biāo)獲取函數(shù)觸摸屏坐標(biāo)獲取是根據(jù)觸摸屏被按下產(chǎn)生的中斷或通過(guò)輪詢方式檢測(cè)導(dǎo)游觸摸動(dòng)作時(shí)從FM7843讀出對(duì)應(yīng)坐標(biāo)值。第一百零一頁(yè),共159頁(yè)。坐標(biāo)讀取unsignedintReadXYPosition(unsignedcharCMD){unsignedinttemp;SendSIOData(CMD);//發(fā)送讀取x電壓值控制字 SendSIOData(0);//等待8個(gè)時(shí)鐘節(jié)拍,因?yàn)橥瓿梢晦D(zhuǎn)換需要16個(gè)時(shí)鐘 temp=ReadSIOData();//讀取采樣值高8位 SendSIOData(CMD); temp<<=8; temp|=ReadSIOData();//讀取低8位并與以前高8位組成16位數(shù)據(jù) temp=(temp>>4);//去掉低4位,保留12位有效數(shù)據(jù)returntemp;}第一百零二頁(yè),共159頁(yè)。

ADS7843送回控制器的X與Y值僅是對(duì)當(dāng)前觸摸點(diǎn)的電壓值的A/D轉(zhuǎn)換值,它不具有使用價(jià)值。這個(gè)值得大小不但與觸摸屏的分辨率有關(guān),而且也與觸摸屏與LCD貼合的情況有關(guān)。而且,LCD分辨率與觸摸屏的分辨率一般不一樣,坐標(biāo)也不一樣,因此,如果想得到體現(xiàn)LCD坐標(biāo)的觸摸屏位置,還需要在程序中進(jìn)行轉(zhuǎn)換。假設(shè)LCD分辨率是320X240,坐標(biāo)原點(diǎn)在左上角;觸摸屏分辨率為900X900,坐標(biāo)原點(diǎn)在左上角,則轉(zhuǎn)換公式如下:xLCD=[320×(x-x2)/(x1-x2)];yLCD=[320×(y-y2)/(y1-y2)];其中,(x,y)為觸點(diǎn)位置,(x1,y1)為觸摸屏最大坐標(biāo)點(diǎn),,(x2,y2)為觸摸屏原點(diǎn)第一百零三頁(yè),共159頁(yè)。

如果坐標(biāo)原點(diǎn)不一致,比如LCD坐標(biāo)原點(diǎn)在右下角,而觸摸屏原點(diǎn)在左上角,則可以進(jìn)行如下轉(zhuǎn)換:xLCD=320-[320×(x-x2)/(x1-x2)];yLCD=240-[320×(y-y2)/(y1-y2)];這樣就可以得到LCD和觸摸屏一致的坐標(biāo)。第一百零四頁(yè),共159頁(yè)。坐標(biāo)值平均處理voidTchScr_GetScrXY(int*x,int*y){//獲得觸摸點(diǎn)坐標(biāo) unsignedchari; rPDATF&=~FM7843_PIN_CS;//打開FM7843for(i=0;i<4;i++)*x+=ReadXYPosition(FM7843_CMD_X);*x>>=2; //采樣4次取平均值for(i=0;i<4;i++)*y+=ReadXYPosition(FM7843_CMD_Y);*y>>=2; //采樣4次取平均值 rPDATF|=FM7843_PIN_CS;//關(guān)閉FM7843//對(duì)采樣結(jié)果進(jìn)行轉(zhuǎn)換*x=(*x-TchScr_Xmin)*LCDWIDTH/(TchScr_Xmax-TchScr_Xmin);*y=(*y-TchScr_Ymin)*LCDHEIGHT/(TchScr_Ymax-TchScr_Ymin);}第一百零五頁(yè),共159頁(yè)。3.觸摸動(dòng)作判斷函數(shù)

除了基本的觸摸動(dòng)作以外,觸摸屏動(dòng)作還包括雙擊、移動(dòng)等動(dòng)作。觸摸屏的單擊和雙擊動(dòng)作的區(qū)分是在規(guī)定時(shí)間內(nèi)同一范圍坐標(biāo)內(nèi)的觸摸次數(shù);觸摸屏的移動(dòng)動(dòng)作的判斷是通過(guò)觸摸屏按下的時(shí)間和觸摸屏抬起時(shí)的不同坐標(biāo)值來(lái)實(shí)現(xiàn)的。觸摸屏動(dòng)作判斷流程圖如圖6.18所示。第一百零六頁(yè),共159頁(yè)。本章提要132546復(fù)位電路鍵盤模塊設(shè)計(jì)UART異步串口模塊設(shè)計(jì)A/D轉(zhuǎn)換器

觸摸屏模塊設(shè)計(jì)

電源模塊設(shè)計(jì)

7LCD模塊設(shè)計(jì)

9PWM直流電機(jī)控制接口8I2C總線接口應(yīng)用設(shè)計(jì)第一百零七頁(yè),共159頁(yè)。LCD接口設(shè)計(jì)LCD顯示模塊液晶顯示是一種被動(dòng)的顯示,它不能發(fā)光,只能使用周圍環(huán)境的光。它顯示圖案或字符只需很小能量。液晶顯示所用的液晶材料是一種兼有液態(tài)和固體雙重性質(zhì)的有機(jī)物,它的棒狀結(jié)構(gòu)在液晶盒內(nèi)一般平行排列,但在電場(chǎng)作用下能改變其排列方向。LCD的背光:EL(場(chǎng)致發(fā)光):2000-3000小時(shí)和LED光源:字符模式,50000小時(shí)第一百零八頁(yè),共159頁(yè)。LCD的顯示方式反射型LCD:底偏光片后面加了一塊反射板,它一般在戶外和光線良好的辦公室使用。透射型LCD:底偏光片是透射偏光片,它需要連續(xù)使用背光源,一般在光線差的環(huán)境使用。透反射型LCD:是處于以上兩者之間,底偏光片能部分反光,一般也帶背光源,光線好的時(shí)候,可關(guān)掉背光源;光線差時(shí),可點(diǎn)亮背光源使用LCD。第一百零九頁(yè),共159頁(yè)。常見LCD分類及原理1.TN型液晶顯示原理

TN型的液晶顯示技術(shù)可說(shuō)是液晶顯示器中最基本的,而之后其它種類的液晶顯示器也可說(shuō)是以TN型為原點(diǎn)來(lái)加以改良。

當(dāng)加入電場(chǎng)的情況時(shí),每個(gè)液晶分子的光軸轉(zhuǎn)向與電場(chǎng)方向一致,液晶層因此失去了旋光的能力,結(jié)果來(lái)自入射偏光片的偏光,其偏光方向與另一偏光片的偏光方向成垂直的關(guān)系,并無(wú)法通過(guò),電極面因此呈現(xiàn)黑暗的狀態(tài)。

其顯像原理是將液晶材料置于兩片貼附光軸垂直偏光板之透明導(dǎo)電玻璃間,液晶分子會(huì)依配向膜的細(xì)溝槽方向依序旋轉(zhuǎn)排列,如果電場(chǎng)未形成,光線會(huì)順利的從偏光板射入,依液晶分子旋轉(zhuǎn)其行進(jìn)方向,然后從另一邊射出。第一百一十頁(yè),共159頁(yè)。

如果在兩片導(dǎo)電玻璃通電之后,兩片玻璃間會(huì)造成電場(chǎng),進(jìn)而影響其間液晶分子的排列,使其分子棒進(jìn)行扭轉(zhuǎn),光線便無(wú)法穿透,進(jìn)而遮住光源。這樣所得到光暗對(duì)比的現(xiàn)象,叫做扭轉(zhuǎn)式向列場(chǎng)效應(yīng),簡(jiǎn)稱TNFE(twisted

nematic

field

effect)。在電子產(chǎn)品中所用的液晶顯示器,幾乎都是用扭轉(zhuǎn)式向列場(chǎng)效應(yīng)原理所制成。對(duì)于負(fù)性TN-LCD,當(dāng)未加電壓到電極時(shí),LCD處于“ON”態(tài),光能透過(guò)LCD呈白態(tài):當(dāng)在電極上加上電壓LCD處于“0FF”態(tài),液晶分子長(zhǎng)軸方向沿電場(chǎng)方向排列,光不能透過(guò)LCD,呈黑態(tài)。有選擇地在電極上施加電壓,就可以顯示出不同的圖案。TN液晶顯示器本身只有明暗兩種情形(或稱黑白)。第一百一十一頁(yè),共159頁(yè)。第一百一十二頁(yè),共159頁(yè)。2.STN液晶顯示原理

與TN相類似,不同的是TN扭轉(zhuǎn)式向列場(chǎng)效應(yīng)的液晶分子是將入射光旋轉(zhuǎn)90度,而STN超扭轉(zhuǎn)式向列場(chǎng)效應(yīng)是將入射光旋轉(zhuǎn)180-270度。要在這里說(shuō)明的是,單純的TN液晶顯示器本身只有明暗兩種情形(或稱黑白),并沒有辦法做到色彩的變化。而STN液晶顯示器牽涉液晶材料的關(guān)系,以及光線的干涉現(xiàn)象,因此顯示的色調(diào)都以淡綠色與橘色為主。但如果在傳統(tǒng)單色STN液晶顯示器加上一彩色濾光片(color

filter),并將單色顯示矩陣之任一像素(pixel)分成三個(gè)子像素(sub-pixel),分別通過(guò)彩色濾光片顯示紅、綠、藍(lán)三原色,再經(jīng)由三原色比例之調(diào)和,也可以顯示出全彩模式的色彩。另外,TN型的液晶顯示器如果顯示屏幕做的越大,其屏幕對(duì)比度就會(huì)顯得較差,由STN的改良技術(shù),可以彌補(bǔ)對(duì)比度不足的情況。第一百一十三頁(yè),共159頁(yè)。3.TFT液晶顯示原理

TFT型的液晶顯示器較為復(fù)雜,主要的構(gòu)成包括了,螢光管、導(dǎo)光板、偏光板、濾光板、玻璃基板、配向膜、液晶材料、薄模式晶體管等等。首先液晶顯示器必須先利用背光源,也就是螢光燈管投射出光源,這些光源會(huì)先經(jīng)過(guò)一個(gè)偏光板然后再經(jīng)過(guò)液晶,這時(shí)液晶分子的排列方式進(jìn)而改變穿透液晶的光線角度。然后這些光線接下來(lái)還必須經(jīng)過(guò)前方的彩色的濾光膜與另一塊偏光板。因此我們只要改變刺激液晶的電壓值就可以控制最后出現(xiàn)的光線強(qiáng)度與色彩,并進(jìn)而能在液晶面板上變化出有不同深淺的顏色組合了。第一百一十四頁(yè),共159頁(yè)。三種液晶顯示器的比較1.TN型液晶顯示器因技術(shù)層次較低,價(jià)格低廉,應(yīng)用范圍多在3英寸以下的小尺寸產(chǎn)品,而且僅能呈現(xiàn)出黑白單色及做一些簡(jiǎn)單文字、數(shù)字的顯示,主要應(yīng)用于電子表、計(jì)算器、簡(jiǎn)單的掌上游戲機(jī)等消費(fèi)性電子產(chǎn)品。

2.STN型液晶顯示器較TFT型工藝簡(jiǎn)單,成品率較高、價(jià)格相對(duì)便宜,面向?qū)Ρ葟?qiáng)烈與畫面轉(zhuǎn)換反應(yīng)時(shí)間較快的商品,因此多應(yīng)用于信息處理設(shè)備。如果在液晶面板前加一片彩色濾光片,則可顯示多種色彩,甚全可達(dá)全彩化程度。此種產(chǎn)品多使用于文字、數(shù)字及繪圖功能的顯示,例如低檔的筆記本電腦、掌上電腦、股票機(jī)和個(gè)人數(shù)字助理(PDA)等便攜式產(chǎn)品。

3.TFT液晶顯示器因?yàn)轱@示反應(yīng)速度更快,適用于動(dòng)畫及顯像顯示,故廣泛應(yīng)用于數(shù)碼相機(jī)、液晶投影儀、筆記本電腦、桌上型液晶顯示器。由于其在色彩品質(zhì)及反應(yīng)速度方面較STN型產(chǎn)品為佳,因此也是目前市場(chǎng)上的主流產(chǎn)品。第一百一十五頁(yè),共159頁(yè)。反射型LCD的結(jié)構(gòu)第一百一十六頁(yè),共159頁(yè)。LCD通常由兩種方式,一種是帶有驅(qū)動(dòng)芯片的LCD模塊,基本上屬于半成品。如果有需要,也可以直接使用芯片上的內(nèi)置LCD控制器來(lái)構(gòu)造顯示模塊,它可以支持彩色/灰度/單色三種模式,灰度模式下可支持4級(jí)灰度和16級(jí)灰度,彩色模式下最多支持256色,LCD的實(shí)際尺寸可支持到320X240。LCD的驅(qū)動(dòng)方式第一百一十七頁(yè),共159頁(yè)。嵌入式處理器LCD模塊(自帶控制器)數(shù)據(jù)總線寄存器選擇使能信號(hào)有LCD控制器的嵌入式處理器LCDLCD控制信號(hào)線嵌入式處理器與LCD的連接第一百一十八頁(yè),共159頁(yè)。

從系統(tǒng)結(jié)構(gòu)上來(lái)講,由于顯示器模塊中已經(jīng)有顯示存儲(chǔ)器。顯存中的每一個(gè)單元對(duì)應(yīng)LCD上的一個(gè)點(diǎn),只要顯存中的內(nèi)容改變,顯示結(jié)果便進(jìn)行刷新。于是便存在兩種刷新:1.直接根據(jù)系統(tǒng)要求對(duì)顯存進(jìn)行修改,一種是只需修改相應(yīng)的局部就可以,不需要判斷覆蓋等;另一種就是有覆蓋問(wèn)題,計(jì)算起來(lái)比較復(fù)雜,而且每做一點(diǎn)小的屏幕改變就進(jìn)行刷新,將增加系統(tǒng)負(fù)擔(dān)。2.專門開辟顯示內(nèi)存,在需要刷新時(shí)候由程序進(jìn)行顯示更新。這樣,不但可以減輕總線負(fù)荷,而且也比較合理,在有需要的時(shí)候進(jìn)行統(tǒng)一的顯示更新,界面也可以比較美觀,不致由于無(wú)法預(yù)料的刷新動(dòng)作導(dǎo)致顯示界面閃爍。LCD的顯示控制第一百一十九頁(yè),共159頁(yè)。前后臺(tái)雙重顯示緩存的顯示模塊結(jié)構(gòu)

第一百二十頁(yè),共159頁(yè)。ER/WRSDB7–DB0LCDcontrollercommunicationsbusmicrocontroller8第一百二十一頁(yè),共159頁(yè)。第一百二十二頁(yè),共159頁(yè)。第一百二十三頁(yè),共159頁(yè)。voidWriteChar(charc){RS=1;/*indicatedatabeingsent*/DATA_BUS=c;/*senddatatoLCD*/EnableLCD(45);/*toggletheLCDwithappropriatedelay*/}第一百二十四頁(yè),共159頁(yè)。本章提要132546復(fù)位電路鍵盤模塊設(shè)計(jì)UART異步串口模塊設(shè)計(jì)A/D轉(zhuǎn)換器

觸摸屏模塊設(shè)計(jì)

電源模塊設(shè)計(jì)

7LCD模塊設(shè)計(jì)9PWM直流電機(jī)控制接口

8I2C總線接口應(yīng)用設(shè)計(jì)

第一百二十五頁(yè),共159頁(yè)。I2C總線接口應(yīng)用設(shè)計(jì)I2C(Inter-IC)Philips公司20多年前開發(fā)的兩線制串行總線外部設(shè)備IC芯片可以使用簡(jiǎn)單的通信硬件進(jìn)行相互通信數(shù)據(jù)傳送率可達(dá)100kbits/s,且提供7位尋址位在快速模式下,可達(dá)3.4Mbits/s以及10位尋址許多IC芯片支持該總線接口:如,EPROMS,Flash,一些RAM,實(shí)時(shí)時(shí)鐘芯片,看門狗,微控制器第一百二十六頁(yè),共159頁(yè)。5.8.1I2C總線及接口簡(jiǎn)介I2C(Inter-IntegratedCircuit芯片間電路接口)總線是一種由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備1.I2C總線的特征I2C總線主要有以下幾個(gè)特征:⑴只要求兩條總線線路一條串行數(shù)據(jù)線SDA,一條串行時(shí)鐘線SCL;⑵每個(gè)連接到總線的器件都可以通過(guò)唯一的地址和一直存在的簡(jiǎn)單的主機(jī)從機(jī)關(guān)系軟件設(shè)定地址,主機(jī)可以作為主機(jī)發(fā)送器或主機(jī)接收器;⑶它是一個(gè)真正的多主機(jī)總線,如果兩個(gè)或更多主機(jī)同時(shí)初始化數(shù)據(jù)傳輸時(shí),可以通過(guò)沖突檢測(cè)和仲裁防止數(shù)據(jù)被破壞;⑷串行的8位雙向數(shù)據(jù)傳輸位速率在標(biāo)準(zhǔn)模式下可達(dá)100kb/s,快速模式下可達(dá)400kb/s,高速模式下可達(dá)3.4Mb/s;⑸片上的濾波器可以濾去總線數(shù)據(jù)線上的毛刺波保證數(shù)據(jù)完整;⑹連接到相同總線的IC數(shù)量只受到總線的最大電容400pF限制。

第一百二十七頁(yè),共159頁(yè)。2.I2C總線硬件結(jié)構(gòu)及數(shù)據(jù)傳輸?shù)湫偷腎2C總線結(jié)構(gòu)如圖5-37。SCLSDA微控制器(主器件)EEPROM(從器件)溫度傳感器(從器件)LCD控制器(從器件)<400pFAddr=0x01Addr=0x02Addr=0x03圖5-37I2C總線結(jié)構(gòu)第一百二十八頁(yè),共159頁(yè)。傳輸數(shù)據(jù)的過(guò)程如下a.主器件要發(fā)送信息到從器件主器件尋址從器件主器件發(fā)送器發(fā)送數(shù)據(jù)到從器件接收器主器件終止傳輸b.如果主器件想從器件接收信息主器件尋址從器件主器件接收器從器件發(fā)送器接收數(shù)據(jù)主器件終止傳輸當(dāng)在總線上傳輸數(shù)據(jù)時(shí),每個(gè)主器件產(chǎn)生自己的時(shí)鐘信號(hào)。第一百二十九頁(yè),共159頁(yè)。3.I2C總線通信協(xié)議SDASCLSDASCLSDASCLSDASCL起始條件發(fā)送0發(fā)送1終止條件圖5-38總線開始/停止第一百三十頁(yè),共159頁(yè)。DCSTARTA6A5A0R/wACKD8D7D0ACKSTOP來(lái)自從設(shè)備來(lái)自接收設(shè)備典型的讀/寫周期P8位DATAAR/W7位地址域S讀寫控制位起始位應(yīng)答位停止位對(duì)于7位地址的數(shù)據(jù)傳輸合法的數(shù)據(jù)傳輸格式如圖5-39。第一百三十一頁(yè),共159頁(yè)。4.I2C總線的分類除了標(biāo)準(zhǔn)模式外,為了符合更高速度的要求以及制造更多可使用的從機(jī)地址給數(shù)量不斷增長(zhǎng)的新器件,I2C提供了以下的擴(kuò)展:快速模式位速率高達(dá)400kb/s高速模式Hs模式位速率高達(dá)3.4Mb/s10位尋址允許使用高達(dá)1024個(gè)額外的從機(jī)地址第一百三十二頁(yè),共159頁(yè)。5.I2C總線的應(yīng)用場(chǎng)合I2C總線是各種總線中使用信號(hào)線最少,并具有自動(dòng)尋址,多主機(jī)時(shí)鐘同步和仲裁等功能很強(qiáng)的總線,主要用在EEPROM、Flash、一些RAM、實(shí)時(shí)時(shí)鐘芯片、看門狗、微控制器等應(yīng)用中。第一百三十三頁(yè),共159頁(yè)。5.8.2S3C44B0X的I2C接口S3C44B0X帶有一個(gè)I2C總線接口,通過(guò)該接口可以擴(kuò)展EEPROM、時(shí)鐘芯片、看門狗芯片等??梢怨?jié)約I/O口資源。該端口支持的操組模式如下。主設(shè)備發(fā)送模式主設(shè)備接收模式從設(shè)備發(fā)送模式從設(shè)備接收模式第一百三十四頁(yè),共159頁(yè)。IIC-BusBlockDiagram第一百三十五頁(yè),共159頁(yè)。1.讀寫操作在任何I2C發(fā)送/接收操作中,遵循以下步驟:1)如果需要,在自身的從地址寄存器IICADD中寫入地址;2)設(shè)置IICCON寄存器:a)使能中斷;b)定義SCL周期;3)設(shè)置IICSTAT來(lái)使能串行輸出第一百三十六頁(yè),共159頁(yè)。2.I2C總線接口專用寄存器介紹S3C44B0XI2C總線接口寄存器主要包括控制寄存器(IICCON)、狀態(tài)寄存器(IICSTAT)、總線地址寄存器和總線發(fā)送/接收數(shù)據(jù)移位寄存器(IICDS)。(1)多主I2C總線控制寄存器該控制寄存器主要對(duì)應(yīng)答使能、輸出時(shí)鐘源選擇、中斷使能、中斷標(biāo)志位及清除、發(fā)送時(shí)鐘分頻等功能設(shè)置。(2)I2C狀態(tài)寄存器狀態(tài)寄存器主要包括模式選擇、

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論