版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第八章通信網(wǎng)絡(luò)接口8.0概述基于網(wǎng)絡(luò)的分布式嵌入式系統(tǒng)應(yīng)用處理的任務(wù)是分布式的,需要把計(jì)算源置于靠近事件的發(fā)生地,并通過(guò)網(wǎng)絡(luò)進(jìn)行協(xié)調(diào)工作希望減少交互的數(shù)據(jù),對(duì)采集的數(shù)據(jù)就地做初始化處理。模塊化的設(shè)計(jì)需求,并且分布式系統(tǒng)比較容易調(diào)試。嵌入式系統(tǒng)需要較高的容錯(cuò)性能,采用分布嵌入式結(jié)構(gòu)可以提高系統(tǒng)的容錯(cuò)性。隨著Internet應(yīng)用的日益廣泛,信息共享的程度不斷提高,對(duì)以嵌入式系統(tǒng)為核心的設(shè)備需要遠(yuǎn)程診斷和升級(jí)。實(shí)際應(yīng)用中,根據(jù)需要選取所需的協(xié)議來(lái)構(gòu)造嵌入式系統(tǒng)的網(wǎng)絡(luò)。可用于構(gòu)造嵌入式網(wǎng)絡(luò)的協(xié)議有多種,常見的有:RS-485,I2C總線,CAN總線,以太網(wǎng)協(xié)議等2分布式嵌入式系統(tǒng)結(jié)構(gòu)基本組成要素:處理單元(元素:PE)和通信網(wǎng)絡(luò)。處理單元可以是一個(gè)完整的控制器(內(nèi)部有CPU、存儲(chǔ)器及相關(guān)I/O等),也可以是支持網(wǎng)絡(luò)協(xié)議的不可編程單元(如具有網(wǎng)絡(luò)接口的傳感器和其他執(zhí)行機(jī)構(gòu)等)控制器1控制器2傳感器1執(zhí)行機(jī)構(gòu)其他I/O設(shè)備網(wǎng)絡(luò)圖8.1分布嵌入式系統(tǒng)基本結(jié)構(gòu)
8.0.1分布嵌入式系統(tǒng)結(jié)構(gòu)3說(shuō)明:分布式嵌入式系統(tǒng)中的網(wǎng)絡(luò)鏈路有時(shí)也被稱為“總線”,但這里的“總線”與微處理器總線是不同的(無(wú)存儲(chǔ)系統(tǒng),不支持網(wǎng)絡(luò)總線上的取指操作)分布式嵌入式系統(tǒng)中網(wǎng)絡(luò)鏈路通常采用“分層”的體系結(jié)構(gòu)模型來(lái)實(shí)現(xiàn)各部件之間的通信(對(duì)分布式嵌入式系統(tǒng)中的網(wǎng)絡(luò)而言,一般只實(shí)現(xiàn)OSI七層協(xié)議中的幾層)4OSI:OpenSystemInterconnectionReferenceModel(開放系統(tǒng)互連參考模型):由國(guó)際標(biāo)準(zhǔn)化組織ISO提出的一個(gè)網(wǎng)絡(luò)系統(tǒng)互連模型。雖然OSI參考模型的實(shí)際應(yīng)用意義不是很大,但其的確對(duì)于理解網(wǎng)絡(luò)協(xié)議內(nèi)部的運(yùn)作很有幫助。1)物理層規(guī)定了激活、維持、關(guān)閉通信端點(diǎn)之間的機(jī)械特性、電氣特性、功能特性以及過(guò)程特性。該層為上層協(xié)議提供了一個(gè)傳輸數(shù)據(jù)的物理媒體。
在這一層,數(shù)據(jù)的單位稱為比特(bit)。屬于物理層定義的典型規(guī)范代表包括:EIARS-232、EIARS-485、V.35、RJ-45等。2)數(shù)據(jù)鏈路層在不可靠的物理介質(zhì)上提供可靠的傳輸。該層的作用包括:物理地址尋址、數(shù)據(jù)的成幀、流量控制、數(shù)據(jù)的檢錯(cuò)、重發(fā)等。在這一層,數(shù)據(jù)的單位稱為幀(frame)。數(shù)據(jù)鏈路層協(xié)議的代表包括:SDLC、HDLC、PPP、STP、幀中繼等。53)網(wǎng)絡(luò)層負(fù)責(zé)對(duì)子網(wǎng)間的數(shù)據(jù)包進(jìn)行路由選擇。網(wǎng)絡(luò)層還可以實(shí)現(xiàn)擁塞控制、網(wǎng)際互連等功能。
在這一層,數(shù)據(jù)的單位稱為數(shù)據(jù)包(packet)。
網(wǎng)絡(luò)層協(xié)議的代表包括:IP、IPX、RIP、OSPF等。4)傳輸層是第一個(gè)端到端,即主機(jī)到主機(jī)的層次。傳輸層負(fù)責(zé)將上層數(shù)據(jù)分段并提供端到端的、可靠的或不可靠的傳輸。此外,傳輸層還要處理端到端的差錯(cuò)控制和流量控制問題。
在這一層,數(shù)據(jù)的單位稱為數(shù)據(jù)段(segment)。
傳輸層協(xié)議的代表包括:TCP、UDP、SPX等。65)會(huì)話層管理主機(jī)之間的會(huì)話進(jìn)程,即負(fù)責(zé)建立、管理、終止進(jìn)程之間的會(huì)話。會(huì)話層還利用在數(shù)據(jù)中插入校驗(yàn)點(diǎn)來(lái)實(shí)現(xiàn)數(shù)據(jù)的同步。
會(huì)話層協(xié)議如RPC(遠(yuǎn)程過(guò)程調(diào)用協(xié)議)等。6)表示層對(duì)上層數(shù)據(jù)或信息進(jìn)行變換以保證一個(gè)主機(jī)應(yīng)用層信息可以被另一個(gè)主機(jī)的應(yīng)用程序理解。表示層的數(shù)據(jù)轉(zhuǎn)換包括數(shù)據(jù)的加密、壓縮、格式轉(zhuǎn)換等。表示層協(xié)議如LPP(輕量級(jí)表示協(xié)議)等。7)應(yīng)用層為操作系統(tǒng)或網(wǎng)絡(luò)應(yīng)用程序提供訪問網(wǎng)絡(luò)服務(wù)的接口。
應(yīng)用層協(xié)議的代表包括:Telnet、FTP、HTTP、SNMP、DNS等。78.0.2嵌入式網(wǎng)絡(luò)通信方式
在分布嵌入式系統(tǒng)應(yīng)用領(lǐng)域,通常是按成本預(yù)算和實(shí)際需求來(lái)構(gòu)造不同方式的分布嵌入式網(wǎng)絡(luò)??捎糜诜植记度胧较到y(tǒng)的網(wǎng)絡(luò)有許多,分布嵌入式網(wǎng)絡(luò)通信方式主要有點(diǎn)對(duì)點(diǎn)通信方式和總線通信方式。所謂點(diǎn)對(duì)點(diǎn)通信方式是指兩臺(tái)或兩臺(tái)以上嵌入式系統(tǒng)之間相互交換信息的方式,它具有安全、快捷、直觀、同步和經(jīng)濟(jì)等優(yōu)點(diǎn)。如兩臺(tái)嵌入式系統(tǒng)采用RS-232通信即是一種典型的點(diǎn)對(duì)點(diǎn)通信方式。8
在分布式嵌入式系統(tǒng)網(wǎng)絡(luò)應(yīng)用中,通常是多個(gè)設(shè)備相互連接,這時(shí),需要采用總線通信方式。在總線通信方式中,連接到總線上的所有處理單元都必須有自己的唯一地址或標(biāo)識(shí);總線上的通信一般是以報(bào)文組的形式進(jìn)行的,一個(gè)分組報(bào)文中包含一個(gè)目的地址和要被傳送的數(shù)據(jù)以及檢錯(cuò)糾錯(cuò)信息,見圖8.2所示。圖8.2分組報(bào)文格式
9
分布嵌入式網(wǎng)絡(luò)中的總線必須要滿足仲裁機(jī)制,即網(wǎng)絡(luò)總線上同時(shí)出現(xiàn)傳送操作時(shí)需要進(jìn)行必要的選擇。仲裁機(jī)制主要有兩種類型:固定優(yōu)先級(jí)仲裁機(jī)制,即嵌入式網(wǎng)絡(luò)中采用固定優(yōu)先級(jí)方式給予競(jìng)爭(zhēng)系統(tǒng)優(yōu)先級(jí)。當(dāng)嵌入式網(wǎng)絡(luò)中高優(yōu)先級(jí)和低優(yōu)先級(jí)的嵌入式系統(tǒng)都要同時(shí)進(jìn)行大量的數(shù)據(jù)傳送時(shí),往往是高優(yōu)先級(jí)系統(tǒng)先傳送數(shù)據(jù)包,然后低優(yōu)先級(jí)系統(tǒng)再傳送數(shù)據(jù)包;公平仲裁機(jī)制,即嵌入式網(wǎng)絡(luò)中各系統(tǒng)具有相同的待遇,循環(huán)仲裁是一種常見的公平仲裁機(jī)制。10通信方式與外界的信息交換稱為通訊?;镜耐ㄓ嵎绞接胁⑿型ㄓ嵑痛型ㄓ崈煞N。一條信息的各位數(shù)據(jù)被同時(shí)傳送的通訊方式稱為并行通訊。并行通訊的特點(diǎn)是:各數(shù)據(jù)位同時(shí)傳送,傳送速度快、效率高,但有多少數(shù)據(jù)位就需多少根數(shù)據(jù)線,因此傳送成本高,且只適用于近距離(相距數(shù)米)的通訊。11串行通訊的概念串行通訊:一條信息的各位數(shù)據(jù)被逐位按順序傳送的通訊方式稱為串行通訊。串行通訊的特點(diǎn)是:數(shù)據(jù)傳送按位順序進(jìn)行,最少只需一根傳輸線即可完成,成本低但傳送速度慢。串行通訊的距離可以從幾米到幾千米。根據(jù)信息的傳送方向,串行通訊可以進(jìn)一步分為單工、半雙工和全雙工三種。128.1.1基本術(shù)語(yǔ)1.串行數(shù)據(jù)傳送模式單工半雙工全雙工2.數(shù)據(jù)速率通信速率(波特率):數(shù)據(jù)線上每秒傳送的碼元數(shù)。計(jì)量單位:波特 1波特=1位/秒(bps)信息寬度(持續(xù)時(shí)間)=1/波特率例:數(shù)據(jù)傳送的速率為120字符/秒,每幀包括10個(gè)數(shù)據(jù)位,則傳送波特率為:10位/字符×120字符/秒=1200位/秒=1200波特持續(xù)時(shí)間=1/1200=0.833ms
3.奇偶校驗(yàn)
校驗(yàn)位:由于對(duì)字符傳送做正確性檢查,可以分為奇校驗(yàn)和偶校驗(yàn)。奇校驗(yàn)就是整個(gè)數(shù)據(jù)幀(包括奇偶校驗(yàn)位在內(nèi))為1的個(gè)數(shù)為奇數(shù)。偶校驗(yàn)就是整個(gè)數(shù)據(jù)幀(包括奇偶校驗(yàn)位在內(nèi))為1的個(gè)數(shù)為偶數(shù)。154.數(shù)據(jù)格式
起始位傳送數(shù)據(jù)偶校驗(yàn)位停止位000010011118.1.2異步串行通信協(xié)議RS-232C是由美國(guó)電子工業(yè)協(xié)會(huì)(ElectronicIndustriesAssociation,EIA)于1969年制定的一種串行通信接口標(biāo)準(zhǔn),并被推薦為串行通信接口的國(guó)際標(biāo)準(zhǔn),得到了廣泛應(yīng)用。EIA把RS-232C定義為:“在數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通信設(shè)備(DCE)之間使用串行二進(jìn)制數(shù)據(jù)交換的接口”。RS-232C標(biāo)準(zhǔn)包括了接口的機(jī)械特性、電氣信號(hào)特征和交換功能特征。它用于連接2種設(shè)備:數(shù)據(jù)終端設(shè)備和數(shù)據(jù)通信設(shè)備。電氣特性EIA-RS-232C對(duì)電器特性、邏輯電平和各種信號(hào)線功能都作了規(guī)定。在TxD和RxD上:邏輯1(MARK)=-3V~-15V邏輯0(SPACE)=+3~+15V在RTS、CTS、DSR、DTR和DCD等控制線上:信號(hào)有效(接通,ON狀態(tài),正電壓)=+3V~+15V信號(hào)無(wú)效(斷開,OFF狀態(tài),負(fù)電壓)=-3V~-15V計(jì)算機(jī)系統(tǒng)外圍接口一般采用TTL標(biāo)準(zhǔn),即以+5V代表邏輯“1”,而接地電壓代表邏輯“0”,而RS-232C以+12V的電壓視為邏輯“0”,-12V的電壓視為邏輯“1”。所以,串行接口電路中需要將TTL標(biāo)準(zhǔn)與RS-232C標(biāo)準(zhǔn)之間進(jìn)行電平轉(zhuǎn)換。18連接器的機(jī)械特性19串口通信基本接線方法
9針串口(DB9)
25針串口(DB25)
針號(hào)功能說(shuō)明縮寫針號(hào)功能說(shuō)明縮寫1數(shù)據(jù)載波檢測(cè)DCD8數(shù)據(jù)載波檢測(cè)DCD2接收數(shù)據(jù)RXD3接收數(shù)據(jù)RXD3發(fā)送數(shù)據(jù)TXD2發(fā)送數(shù)據(jù)TXD4數(shù)據(jù)終端準(zhǔn)備DTR20數(shù)據(jù)終端準(zhǔn)備DTR5信號(hào)地GND7信號(hào)地GND6數(shù)據(jù)設(shè)備準(zhǔn)備好DSR6數(shù)據(jù)準(zhǔn)備好DSR7請(qǐng)求發(fā)送RTS4請(qǐng)求發(fā)送RTS8清除發(fā)送CTS5清除發(fā)送CTS9振鈴指示DELL22振鈴指示DELL20RS-232C的接口信號(hào)DSRDTRRS-232C規(guī)定標(biāo)準(zhǔn)接口有25條線,4條數(shù)據(jù)線、11條控制線、3條定時(shí)線、7條備用和未定義線,常用的只有9根,它們是:聯(lián)絡(luò)控制信號(hào)線:數(shù)據(jù)裝置準(zhǔn)備好(Datasetready-DSR)——有效時(shí)(ON狀態(tài))表明通信裝置處于可以使用的狀態(tài)。數(shù)據(jù)終端準(zhǔn)備好(DataTerminalready-DTR)——有效時(shí)(ON狀態(tài))表明數(shù)據(jù)終端可以使用。這兩個(gè)信號(hào)有時(shí)連到電源上,一上電就立即有效。這兩個(gè)設(shè)備狀態(tài)信號(hào)有效,只表示設(shè)備本身可用,并不說(shuō)明通信鏈路可以開始進(jìn)行通信了,能否開始進(jìn)行通信要由下面的控制信號(hào)決定。21RS-232C的接口信號(hào)RTSCTS請(qǐng)求發(fā)送(Requesttosend-RTS)——用來(lái)表示DTE請(qǐng)求DCE發(fā)送數(shù)據(jù),即當(dāng)終端要發(fā)送數(shù)據(jù)時(shí),使該信號(hào)有效(ON狀態(tài)),向MODEM請(qǐng)求發(fā)送。它用來(lái)控制MODEM是否要進(jìn)入發(fā)送狀態(tài)。允許發(fā)送(Cleartosend-CTS)——用來(lái)表示DCE準(zhǔn)備好接收DTE發(fā)來(lái)的數(shù)據(jù),是對(duì)請(qǐng)求發(fā)送信號(hào)RTS的響應(yīng)信號(hào)。當(dāng)MODEM已準(zhǔn)備好接收終端傳來(lái)的數(shù)據(jù),并向前發(fā)送時(shí),使該信號(hào)有效,通知終端開始沿發(fā)送數(shù)據(jù)線TxD發(fā)送數(shù)據(jù)。這對(duì)RTS/CTS請(qǐng)求應(yīng)答聯(lián)絡(luò)信號(hào)是用于半雙工MODEM系統(tǒng)中發(fā)送方式和接收方式之間的切換。在全雙工系統(tǒng)中,因配置雙向通道,故不需要RTS/CTS聯(lián)絡(luò)信號(hào),應(yīng)使其為高。22RS-232C的接口信號(hào)DCDRI接收線信號(hào)檢出(ReceivedLinedetection-RLSD)——用來(lái)表示DCE已接通通信鏈路,告知DTE準(zhǔn)備接收數(shù)據(jù)。當(dāng)本地的MODEM收到由通信鏈路另一端(遠(yuǎn)地)的MODEM送來(lái)的載波信號(hào)時(shí),使RLSD信號(hào)有效,通知終端準(zhǔn)備接收,并且由MODEM將接收下來(lái)的載波信號(hào)解調(diào)成數(shù)字量數(shù)據(jù)后,沿接收數(shù)據(jù)線RxD送到終端。此線也叫做數(shù)據(jù)載波檢出(DataCarrierdectection-DCD)線。振鈴指示(Ringing-RI)——當(dāng)MODEM收到交換臺(tái)送來(lái)的振鈴呼叫信號(hào)時(shí),使該信號(hào)有效(ON狀態(tài)),通知終端,已被呼叫。23RS-232C的接口信號(hào)---TxDRxD數(shù)據(jù)發(fā)送與接收線:發(fā)送數(shù)據(jù)(Transmitteddata-TxD)——通過(guò)TxD終端將串行數(shù)據(jù)發(fā)送到MODEM,(DTE→DCE)。接收數(shù)據(jù)(Receiveddata-RxD)——通過(guò)RxD線終端接收從MODEM發(fā)來(lái)的串行數(shù)據(jù),(DCE→DTE)。地線有兩根線SG、FG——信號(hào)地和保護(hù)地信號(hào)線,無(wú)方向。24實(shí)際應(yīng)用AB(1)使用RS-232進(jìn)行遠(yuǎn)距離通信時(shí),一般要加調(diào)制解調(diào)器(modem),并借助于公用電話網(wǎng)。使用信號(hào)線較多。25實(shí)際應(yīng)用(2)當(dāng)進(jìn)行近距離通信時(shí),可以不需要modem,通信雙方可以直接連接。在這種情況下,只需要使用少數(shù)幾根信號(hào)線。最簡(jiǎn)單的情況,在通信中根本不需要RS-232C的控制聯(lián)絡(luò)信號(hào),只需三根線(發(fā)送線、接收線、信號(hào)地線)便可實(shí)現(xiàn)全雙工異步串行通信。無(wú)modem時(shí),最大通信距離按如下方式計(jì)算:RS-232C標(biāo)準(zhǔn)規(guī)定:當(dāng)誤碼率小于4%時(shí),要求導(dǎo)線的電容值應(yīng)小于2500pF。對(duì)于普通導(dǎo)線,其電容值約為170pF/米。則允許距離L=2500pF/(170pF/米)=15米。這一距離的計(jì)算是偏于保守的,實(shí)際應(yīng)用中,當(dāng)使用9600bps,普通雙絞屏蔽線時(shí),通信距離可達(dá)30~35米。26其它串口通信RS-422由RS-232發(fā)展而來(lái)差分傳輸將傳輸速率提高到10Mbps(RS-232在1M以下)單發(fā)多收,最多可連接10個(gè)接收器RS-485在RS-422的基礎(chǔ)上定制了RS-485具有多點(diǎn)、雙向通信能力,最多可接32個(gè)接收器通信距離長(zhǎng),可達(dá)千米以外27USB通用串行總線(UniversalSerialBus)由Intel等廠商制定的連接計(jì)算機(jī)與具有USB接口的多種外設(shè)之間通信的串行總線。目前最為流行的計(jì)算機(jī)外設(shè)接口總線形式越來(lái)越多的嵌入式系統(tǒng)采用288.1.3S3C2410的串行接口S3C2410內(nèi)部具有3個(gè)獨(dú)立的UART控制器,每個(gè)UART可以操作在中斷模式或DMA模式采用系統(tǒng)時(shí)鐘時(shí),支持的波特率最大為230.4kbps,每個(gè)UART通道都有兩個(gè)16字節(jié)的接收與發(fā)送FIFO緩沖區(qū)每個(gè)UART模塊包含以下幾個(gè)部件:波特率發(fā)生器,發(fā)送器,接收器和控制單元。如圖:UART的操作1.數(shù)據(jù)傳送和接收一個(gè)需發(fā)送的數(shù)據(jù)幀包括1位起始位,5~8位數(shù)據(jù)位,一位可選的奇偶校驗(yàn)位和1~2位停止位,發(fā)送的數(shù)據(jù)幀是可編程的。用戶可以通過(guò)線性控制寄存器ULCONn來(lái)設(shè)置。與數(shù)據(jù)發(fā)送類似,接收的數(shù)據(jù)幀也是可編程的,其數(shù)據(jù)格式與發(fā)送方的數(shù)據(jù)幀格式一致,用戶也是通過(guò)線性控制寄存器ULCONn來(lái)設(shè)置。UART的操作接收器可以檢測(cè)到溢出錯(cuò)誤,奇偶校驗(yàn)錯(cuò)誤,幀錯(cuò)誤和通信中斷,并設(shè)置相應(yīng)的錯(cuò)誤標(biāo)志。溢出錯(cuò)誤是指在舊數(shù)據(jù)被讀取前新數(shù)據(jù)覆蓋了舊數(shù)據(jù)。奇偶校驗(yàn)錯(cuò)誤是指接收器檢測(cè)到一個(gè)不希望的奇偶條件。幀錯(cuò)誤是指接收到的數(shù)據(jù)沒有一個(gè)有效的停止位。通信中斷是指RxDn輸入保持邏輯0狀態(tài)的持續(xù)時(shí)間超過(guò)一個(gè)數(shù)據(jù)幀的傳輸時(shí)間。UART的操作2.自動(dòng)流量控制(AFC) S3C2410的UART0和UART1通過(guò)nRTS和nCTS信號(hào)來(lái)支持自動(dòng)流量控制。除此之外,它可以與外部的UART設(shè)備連接。例如用戶想把UART與Modem連接,則通過(guò)使用UMCONn寄存器中的自動(dòng)流量控制位無(wú)效,且通過(guò)軟件控制nRTS信號(hào)。 在AFC模式下,nRTS信號(hào)根據(jù)接收器的狀況及nCTS信號(hào)控制發(fā)送器的操作。當(dāng)nCTS信號(hào)被激活時(shí),表示接收方的UART在FIFO模式下準(zhǔn)備好接收數(shù)據(jù)。 而非自動(dòng)流量控制模式下,nRTS和nCTS信號(hào)由軟件控制。 UART2不支持AFC功能,因此S3C2410A沒有nRTS2和nCTS2。UART的操作例如:非自動(dòng)流量控制舉例(用軟件控制nRTS和nCTS)(1)使用FIFO的接收操作選擇接收模式(中斷或DMA模式)檢查UFSTATn寄存器中的RxFIFO計(jì)數(shù)器。如果其值小于16,用戶應(yīng)該將UMCONn[0]的值置1(激活nRTS),如果其等于大于16,用戶應(yīng)該將其置0。重復(fù)步驟2(2)有FIFO的發(fā)送操作選擇發(fā)送模式(中斷或DMA模式)檢查UMSTATn[0]的值,如果其值為1,用戶寫數(shù)據(jù)到發(fā)送FIFO寄存器。34UART的操作3.中斷/DMA請(qǐng)求的產(chǎn)生S3C2410的每個(gè)UART有七個(gè)狀態(tài)(Tx/Rx/Error)信號(hào):溢出錯(cuò)誤奇偶校驗(yàn)錯(cuò)誤幀錯(cuò)誤通信中斷接收緩存數(shù)據(jù)準(zhǔn)備好發(fā)送緩存空和發(fā)送移位器空其中溢出錯(cuò)誤,奇偶校驗(yàn)錯(cuò)誤,幀錯(cuò)誤和通信中斷是作為接收錯(cuò)誤狀態(tài)信號(hào)。 如果把控制寄存器UCONn中的接收錯(cuò)誤狀態(tài)中斷使能位置1,則每種錯(cuò)誤狀態(tài)都可以產(chǎn)生接收錯(cuò)誤的中斷請(qǐng)求。UART的操作如果控制寄存器(UCONn)中的接收模式設(shè)置為中斷請(qǐng)求模式,在FIFO模式下,當(dāng)接收器把接收移位寄存器上的數(shù)據(jù)傳送到FIFO寄存器,且接收到的數(shù)據(jù)恰好填滿FIFO寄存器,則接收中斷產(chǎn)生。在非FIFO模式下,如果允許發(fā)送中斷或輪詢,當(dāng)接收器把接收移位寄存器的數(shù)據(jù)傳輸?shù)浇邮沾鎯?chǔ)器時(shí),則會(huì)產(chǎn)生接收中斷。如果控制寄存器(UCONn)中的發(fā)送模式設(shè)置為中斷請(qǐng)求模式,在FIFO模式下,當(dāng)傳送器把數(shù)據(jù)從它的FIFO寄存器傳送到傳輸移位寄存器,并且此時(shí)FIFO寄存器為空,則會(huì)產(chǎn)生發(fā)送中斷。在非FIFO模式下,如果允許發(fā)送中斷或輪詢,當(dāng)把數(shù)據(jù)從傳輸存儲(chǔ)寄存器傳送到傳輸移位寄存器時(shí),會(huì)產(chǎn)生發(fā)送中斷。UART的操作5.紅外模式S3C2410AUART模塊支持紅外發(fā)送和接收(即IR模式),其通過(guò)設(shè)置UART線性控制寄存器ULCONn的紅外模式位來(lái)選定。在紅外發(fā)送模式下,當(dāng)傳送的數(shù)據(jù)位為0時(shí),其傳送脈沖的寬度是常規(guī)UART數(shù)據(jù)位寬度的3/16;在紅外接收模式下,接收器必須進(jìn)行周期性的檢測(cè),當(dāng)檢測(cè)到一個(gè)寬度為常規(guī)UART數(shù)據(jù)位寬度3/16的脈沖時(shí),判斷為數(shù)據(jù)0,否則判斷為數(shù)據(jù)1。UART的操作TxDREIRSRxDUART模塊0101IrDATx編碼器IrDARx解碼器&RxDTxD
紅外模式功能框圖波特率的計(jì)算每個(gè)UART波特率發(fā)生器都為自身的發(fā)送器和接收器提供串行時(shí)鐘。波特率發(fā)生器的源時(shí)鐘可以選擇S3C2410A的內(nèi)部系統(tǒng)時(shí)鐘或外部時(shí)鐘UCLK。換言之,被除數(shù)可以設(shè)定,通過(guò)時(shí)鐘選擇器UCONn來(lái)實(shí)現(xiàn)。波特率時(shí)鐘通過(guò)把源時(shí)鐘(PCLK或UCLK)和UART的波特率除數(shù)寄存器(UBRDIVn)產(chǎn)生的16位除數(shù)相除產(chǎn)生的。UBRDIVn由以下表達(dá)式來(lái)決定。UBRDIVn=(int)(源時(shí)鐘/(波特率x16))–1UBRDIVn的范圍應(yīng)該是從1到216-1。并且UCLK必須要小于PCLK。波特率的計(jì)算例如,如果波特率是115200bps,且UART時(shí)鐘是40MHz,那么UBRDIVn計(jì)算得到如下的值:UBRDIVn=(int)(40000000/(115200x16))-1 =(int)(21.7)-1 =21-1=20上述計(jì)算時(shí)的小數(shù)被舍棄,這樣必然會(huì)引起誤差。但UART波特率發(fā)生器容許有一定的誤差,其誤差范圍是:UART的10位時(shí)間誤差應(yīng)該少于1.87%(即3/160).tUPCLK=(UBRDIVn+1)x16x10/PCLKtUPCLK:實(shí)際的UART的10位時(shí)間tUEXACT=10/波特率tUEXACT:理想的UART的10位時(shí)間UART誤差=(tUPCLK–tUEXACT)/tUEXACTx100%S3C2410UART專用寄存器S3C2410UART專用寄存器主要包括:線路控制寄存器(ULCON0,ULCON1和ULCON2)控制寄存器(UCON0,UCON1和UCON2)FIFO控制寄存器(UFCON0,UFCON1和UFCON2)MODEM控制寄存器(UMCON0和UMCON1)發(fā)送接收狀態(tài)寄存器(UTRSTAT0,UTRSTAT1和UTRSTAT2)錯(cuò)誤狀態(tài)寄存器(UERSTAT0,UERSTAT1和UERSTAT2)FIFO狀態(tài)寄存器(UFSTAT0,UFSTAT1和UFSTAT2)MODEM狀態(tài)寄存器(UMSTAT0和UMSTAT1)發(fā)送緩存寄存器(UTXH0,UTXH1和UTXH2)接收緩存寄存器(URXH0,URXH1和URXH2)波特率分頻系數(shù)寄存器(UBRDIV0,UBRDIV1和UBRDIV2)UART接口寄存器41每個(gè)UART的使用都必須初始化設(shè)置一些控制寄存器,下面主要介紹這些寄存器的格式。1.UART線性控制寄存器UART線性控制寄存器(ULCONn)有三個(gè):ULCON0、ULCON1、ULCON2。每個(gè)UART接口通道分別對(duì)應(yīng)1個(gè),均是可讀/寫的.地址分別為0x50000000、0x50004000、0x50008000,復(fù)位后的值為0x00。UART接口寄存器引腳名稱位描述初始值Reserved[7]保留.0InfraredMode[6]確定是否使用紅外模式。0=正常模式操作;1=紅外接收發(fā)送模式。0ParityMode[5:3]在UART發(fā)送接收操作中,確定奇偶碼的生成和檢驗(yàn)類型。0xx=無(wú)校驗(yàn);100=奇校驗(yàn);101=偶校驗(yàn);000NumberofStopBit[2]確定停止位數(shù)。0=1位停止位;1=2位停止位。0WordLength[1:0]確定數(shù)據(jù)位數(shù)。00=5位;01=6位;10=7位;11=8位。00ULCONn寄存器的格式UART接口寄存器2.UART控制寄存器UART控制寄存器(UCONn)共有三個(gè):UCON0、UCON1、UCON2。每個(gè)UART接口通道分別對(duì)應(yīng)1個(gè),均是可讀/寫的.地址分別為0x50000004、0x50004004、0x50008004,復(fù)位后的值均為0x00。UART接口寄存器引腳名稱位描述初始值ClockSelection[10]選擇波特率所用的時(shí)鐘0=PCLK;1=UCLK0TxInterruptType[9]確定發(fā)送中斷請(qǐng)求信號(hào)的類型0=邊沿觸發(fā)方式;1=電平觸發(fā)方式0RxInterruptType[8]確定接收中斷請(qǐng)求信號(hào)的類型。0=邊沿觸發(fā)方式;1=電平觸發(fā)方式0RxTimeOutEnable[7]確定接收超時(shí)使能0=不使能;1=使能0RxErrorStatusInterruptEnable[6]確定接收錯(cuò)誤狀態(tài)使能0=不使能;1=使能0UCONn寄存器的格式UART接口寄存器引腳名稱位描述初始值LoopbackMode[5]確定是否采用回送模式0=正常操作模式;1=回送模式0Reserved[4]保留0TransmitMode[3:2]確定將發(fā)送數(shù)據(jù)寫入發(fā)送緩存區(qū)的模式00=不能寫;01=中斷請(qǐng)求模式10=DMA0(UART0)或DMA3(UART2);11=DMA1(UART1)0ReceiveMode[1:0]確定從接收緩存區(qū)讀出數(shù)據(jù)的模式00=不能寫;01=中斷請(qǐng)求模式10=DMA0(UART0)或DMA3(UART2);11=DMA1(UART1)0UCONn寄存器的格式UART接口寄存器3.UARTFIFO控制寄存器UARTFIFO控制寄存器(UFCONn)共有三個(gè):UFCON0、UFCON1、UFCON2。每個(gè)UART接口通道分別對(duì)應(yīng)1個(gè),均是可讀/寫的。地址分別為0x50000008、0x50004008、0x50008008,復(fù)位后的值均為0x00。UART接口寄存器引腳名稱位描述初始值TxFIFOTriggerLeve[7:6]確定發(fā)送FIFO寄存器的觸發(fā)選擇。00=空;01=4字節(jié);10=8字節(jié);11=12字節(jié)。00RxFIFOTriggerLeve[5:4]確定接收FIFO寄存器的觸發(fā)選擇。00=空;01=4字節(jié);10=8字節(jié);11=12字節(jié)。00Reserved[3]保留。0TxFIFOReset[2]確定復(fù)位FIFO之后自動(dòng)清除。0=正常;1=復(fù)位清除發(fā)送FIFO。0RxFIFOReset[1]確定復(fù)位FIFO之后自動(dòng)清除。0=正常;1=復(fù)位清除接受FIFO。0FIFOEnable[0]確定FIFO使能。0=不使能;1=使能。0UFCONn寄存器的格式UART接口寄存器4.UARTMODEM控制寄存器UARTMODEM控制寄存器(UMCONn)共有兩個(gè):UMCON0、UMCON1。均是可讀/寫的。地址分別為0x5000000C、0x5000400C,復(fù)位后的值均為0x00。UART接口寄存器引腳名稱位描述初始值Reserved[7:5]這些位必須是0000AutoFlowControl(AFC)[4]確定自動(dòng)回流控制(AFC)使能。0=不使能;1=使能。0Reserved[3:1]這些位必須是0000RequesttoSend[0]如果AFC使能,該位被忽略;如果AFC不使能,nRST必須由軟件控制,則當(dāng)該位為0=高電平(nRST不激活);當(dāng)該位為1=低電平(nRST激活)。0UMCONn寄存器的格式UART接口寄存器5.UART接收/發(fā)送狀態(tài)寄存器UART接收/發(fā)送狀態(tài)寄存器(UTRSTATn)共有三個(gè):UTRSTAT0、UTRSTAT1、UTRSTAT2。均是只讀的。地址分別為0x50000010、0x50004010、0x50008010,復(fù)位后的值均為0x00。UART接口寄存器引腳名稱位描述初始值Transmitterempty[2]當(dāng)發(fā)送緩沖寄存器中沒有有效數(shù)據(jù),并且發(fā)送移位寄存器為空時(shí),該位自動(dòng)置為1。0=非空;1=發(fā)送器空(發(fā)送緩沖和移位寄存器)。1Transmitbufferempty[1]當(dāng)發(fā)送緩沖寄存器為空時(shí),該位自動(dòng)置為1。該位為0時(shí),發(fā)送緩沖寄存器非空。1Receivebufferdataready[0]當(dāng)接收緩沖寄存器接受到一個(gè)數(shù)據(jù)時(shí),該位自動(dòng)置為1。該位為0時(shí),接受緩沖寄存器為空。0UTRSTATn寄存器的格式UART接口寄存器6.UART錯(cuò)誤狀態(tài)寄存器UART錯(cuò)誤狀態(tài)寄存器(UERSTATn)共有三個(gè):UERSTAT0、UERSTAT1、UERSTAT2。均是只讀的。地址分別為0x50000014、0x50004014、0x50008014,復(fù)位后的值均為0x00。UART接口寄存器引腳名稱位描述初始值Reserved[3]保留0FrameError[2]當(dāng)接收出現(xiàn)幀錯(cuò)誤時(shí),該位自動(dòng)置為1。0=接收過(guò)程中無(wú)幀錯(cuò)誤;1=幀錯(cuò)誤(已請(qǐng)求中斷)。0Reserved[1]保留0OverrunError[0]當(dāng)接收出現(xiàn)溢出錯(cuò)誤時(shí),該位自動(dòng)置為1。0=接收過(guò)程中無(wú)溢出錯(cuò)誤;1=溢出錯(cuò)誤(已請(qǐng)求中斷)。0UERSTATn寄存器的格式UART接口寄存器7.UARTFIFO狀態(tài)寄存器UARTFIFO狀態(tài)寄存器(UFSTATn)共有三個(gè):UFSTAT0、UFSTAT1、UFSTAT2。均是只讀的。地址分別為0x50000018、0x50004018、0x50008018,復(fù)位后的值均為0x00。9.2.4UART接口寄存器引腳名稱位描述初始值Reserved[15:10]保留。0TxFIFOFull[9]當(dāng)發(fā)送期間,若發(fā)送FIFO滿,該位自動(dòng)置為1。0=0字節(jié)≤TxFIFO數(shù)據(jù)≤15字節(jié);1=滿。0RxFIFOFull[8]當(dāng)接收期間,若接收FIFO滿,該位自動(dòng)置為1。0=0字節(jié)≤TxFIFO數(shù)據(jù)≤15字節(jié);1=滿。TxFIFOCount[7:4]在發(fā)送FIFO中的數(shù)據(jù)個(gè)數(shù)。000000RxFIFOCount[3:0]接收FIFO中的數(shù)據(jù)個(gè)數(shù)。000000UFSTATn寄存器的格式UART接口寄存器8.UARTMODEM狀態(tài)寄存器UARTMODEM狀態(tài)寄存器(UMSTATn)共有兩個(gè):UMSTAT0、UMSTAT1。均是只讀的,地址分別為0x5000001C、0x5000401C,復(fù)位后的值均為0x00。UART接口寄存器引腳名稱位描述初始值DeltaCTS[4]在CPU上次讀取該位后,若nCTS信號(hào)發(fā)生變化,該位自動(dòng)設(shè)置為1。0表示nCTS信號(hào)未發(fā)生改變。0Reserved[3:1]保留。0CleartoSend[0]確定CTS的電平狀態(tài)。0=CTS信號(hào)未激活(nCTS引腳為高電平)1=CTS信號(hào)激活(nCTS引腳為低電平)0UMSTATn寄存器的格式UART接口寄存器9.UART傳送緩沖寄存器UART傳送緩沖寄存器(UTXHn)共有三個(gè):UTXH0、UTXH1、UTXH2。均是只能寫入的,地址分別為0x50000020、0x50004020、0x50008020,復(fù)位后的值不確定。UART接口寄存器引腳名稱位描述初始值TXDATAn[7:0]UARTn的要發(fā)送的8位數(shù)據(jù)。-UTXHn寄存器的格式UART接口寄存器10.UART接收緩沖寄存器UART接收緩沖寄存器(URXHn)共有三個(gè):URXH0、URXH1、URXH2。均是只讀的,地址分別為0x50000024、0x50004024、0x50008024,復(fù)位后的值不確定。UART接口寄存器引腳名稱位描述初始值RXDATAn[7:0]UARTn的要接收的8位數(shù)據(jù)。-UTXHn寄存器的格式8.3I2C總線技術(shù)I2C/IIC(Inter-IntegratedCircuit)總線是一種由PHILIPS公司針對(duì)MCU需要而研制的兩線式串行總線,用于連接MCU及其外圍設(shè)備。I2C總線最主要的優(yōu)點(diǎn)是其簡(jiǎn)單性和有效性。由于接口直接在組件之上,因此I2C總線占用的空間非常小,減少了電路板的空間和芯片管腳的數(shù)量,降低了互聯(lián)成本??偩€的長(zhǎng)度可高達(dá)25英尺(約7.6m),并且能夠以100Kbps的最大傳輸速率支持40個(gè)組件。另一個(gè)優(yōu)點(diǎn)是,它支持多主控(multi-mastering),其中任何能夠進(jìn)行發(fā)送和接收的設(shè)備都可以成為主總線。一個(gè)主控能夠控制信號(hào)傳輸和時(shí)鐘頻率。當(dāng)然,在任何時(shí)間點(diǎn)上只能有一個(gè)主控。63I2C總線工作原理
I2C總線系統(tǒng)組成I2C總線是由數(shù)據(jù)線SDA(SerialDAtaline)和時(shí)鐘SCL(SerialClockLine)構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)在CPU與被控IC之間、IC與IC之間進(jìn)行雙向傳送,最高傳送速率100kbps各種從設(shè)備均并聯(lián)在這條總線上,但就像電話機(jī)一樣只有撥通各自的號(hào)碼才能工作,因此每個(gè)設(shè)備都有唯一的地址在信息的傳輸過(guò)程中,I2C總線上并接的每一設(shè)備既是主設(shè)備(或從設(shè)備)又是發(fā)送器(或接收器),這取決于它所要完成的功能64
I2C總線是多主系統(tǒng):系統(tǒng)可以有多個(gè)I2C節(jié)點(diǎn)設(shè)備組成,并且可以是多主系統(tǒng),任何一個(gè)設(shè)備都可以為主I2C;但是任一時(shí)刻只能有一個(gè)主I2C設(shè)備,I2C具有總線仲裁功能,保證系統(tǒng)正確運(yùn)行。
主I2C設(shè)備發(fā)出時(shí)鐘信號(hào)、地址信號(hào)和控制信號(hào),選擇通信的從IIC設(shè)備并控制收發(fā)。系統(tǒng)要求:各個(gè)節(jié)點(diǎn)設(shè)備必須具有IIC接口功能;各個(gè)節(jié)點(diǎn)設(shè)備必須共地;兩根信號(hào)線必須接上拉電阻。如下圖所示。圖10.3多IIC設(shè)備接口示意圖
65I2C總線的狀態(tài)和信號(hào)
1.空閑狀態(tài)SCL和SDA均處于高電平狀態(tài),即為總線空閑狀態(tài)(空閑狀態(tài)為何是高電平的道理很簡(jiǎn)單,因?yàn)樗鼈兌冀由侠娮?。2.占有總線和釋放總線
器件若想使用總線應(yīng)當(dāng)先占有它,占有總線的主控器向SCL線發(fā)出時(shí)鐘信號(hào)。數(shù)據(jù)傳送完成后應(yīng)當(dāng)及時(shí)釋放總線,即解除對(duì)總線的控制(或占有),使其恢復(fù)成空閑狀態(tài)。3.開始/啟動(dòng)信號(hào)(S)啟動(dòng)信號(hào)由主控器產(chǎn)生;在SCL信號(hào)為高時(shí),SDA產(chǎn)生一個(gè)由高變低的電平變化,產(chǎn)生啟動(dòng)信號(hào)。664.結(jié)束/停止信號(hào)(P)
當(dāng)SCL線高電平時(shí),主控器在SDA線上產(chǎn)生一個(gè)由低電平向高電平跳變,產(chǎn)生停止信號(hào)。啟動(dòng)信號(hào)和停止信號(hào)的產(chǎn)生見下圖如所示。5.應(yīng)答/響應(yīng)信號(hào)(A/ACK)應(yīng)答信號(hào)是對(duì)字節(jié)數(shù)據(jù)傳輸?shù)拇_認(rèn)。占1位,數(shù)據(jù)接收者接收1字節(jié)數(shù)據(jù)后,應(yīng)向數(shù)據(jù)發(fā)出者發(fā)送一個(gè)應(yīng)答信號(hào)。對(duì)應(yīng)于SCL第9個(gè)應(yīng)答時(shí)鐘脈沖,若SDA線仍保持高電平,則為非應(yīng)答信號(hào)(ACK/NA)。低電平為應(yīng)答,繼續(xù)發(fā)送;高電平為非應(yīng)答,結(jié)束發(fā)送。
6.控制位信號(hào)占1位,I2C主機(jī)發(fā)出的讀寫控制信號(hào),高為讀、低為寫(對(duì)I2C主機(jī)而言)??刂莆?方向位)在尋址字節(jié)中。圖10.4啟動(dòng)信號(hào)和停止信號(hào)的產(chǎn)生
677.地址信號(hào)為從機(jī)地址,占7位,如下表所示,稱之為“尋址字節(jié)”,各字段含義如下:器件地址(DA3---DA0):是I2C總線接口器件固有的地址編碼,由器件生產(chǎn)廠家給定。如I2C總線EEPROMAT24C××器件的地址為1010等。
引腳地址(A2、A1、A0):由I2C總線接口器件的地址引腳A2、A1、A0的高低來(lái)確定,接電源者為1,接地者為0。
讀寫控制位/方向位(R/W):1表示主機(jī)讀,0表示主機(jī)寫。
7位地址和讀寫控制位組成1個(gè)字節(jié)(尋址字節(jié))。D7D6D5D4D3D2D1D0DA3DA2DA1DA0A2A1A0R/W688.等待狀態(tài)(*)在I2C總線中,賦予接收數(shù)據(jù)的器件有使系統(tǒng)進(jìn)行等待狀態(tài)的權(quán)力,但等待狀態(tài)只能在一個(gè)數(shù)據(jù)字節(jié)完整接收之后進(jìn)行。例如,當(dāng)進(jìn)行主機(jī)發(fā)送從機(jī)接收的數(shù)據(jù)傳送操作時(shí),若從機(jī)在接收到一個(gè)數(shù)據(jù)字節(jié)后,由于中斷處理等原因而不能按時(shí)接收下一個(gè)字節(jié);從機(jī)可以通過(guò)把SCL下拉為低電平,強(qiáng)行使主機(jī)進(jìn)入等待狀態(tài)。在等待狀態(tài)下,主機(jī)不能發(fā)送數(shù)據(jù),直到從機(jī)認(rèn)為自己能繼續(xù)接收數(shù)據(jù)時(shí),再釋放SCL線,使系統(tǒng)退出等待狀態(tài),主機(jī)才可以繼續(xù)進(jìn)行后續(xù)的數(shù)據(jù)傳送。69IIC總線基本操作串行數(shù)據(jù)SDA和串行時(shí)鐘SCL線在連接到總線的器件間傳遞信息。每個(gè)器件都有一個(gè)唯一的地址標(biāo)識(shí),無(wú)論是MCU、LCD驅(qū)動(dòng)器、存儲(chǔ)器或鍵盤接口。都可以作為一個(gè)發(fā)送器或接收器,由器件的功能決定。很明顯,LCD驅(qū)動(dòng)器只是一個(gè)接收器,而存儲(chǔ)器則既可以接收又可以發(fā)送數(shù)據(jù)。器件除了能看作發(fā)送器和接收器外,在執(zhí)行數(shù)據(jù)傳輸時(shí)它也可以被看作是主機(jī)或從機(jī)。主機(jī)是初始化總線的數(shù)據(jù)傳輸并產(chǎn)生允許傳輸時(shí)鐘信號(hào)的器件,此時(shí)任何被尋址的器件都被認(rèn)為是從機(jī)。70術(shù)語(yǔ)描述發(fā)送器發(fā)送數(shù)據(jù)到總線的器件接收器從總線接收數(shù)據(jù)的器件主機(jī)初始化發(fā)送產(chǎn)生時(shí)鐘信號(hào)和終止發(fā)送的器件從機(jī)被主機(jī)尋址的器件多主機(jī)同時(shí)有多于一個(gè)主機(jī)嘗試控制總線但不破壞報(bào)文仲裁是一個(gè)在有多個(gè)主機(jī)同時(shí)嘗試控制總線但只允許其中一個(gè)控制總線并使報(bào)文不被破壞的過(guò)程同步兩個(gè)或多個(gè)器件同步時(shí)鐘信號(hào)的過(guò)程71啟動(dòng)和停止條件在SCL線是高電平時(shí),SDA線從高電平向低電平切換,這個(gè)情況表示啟動(dòng)條件當(dāng)SCL是高電平時(shí),SDA線由低電平向高電平切換,表示停止條件啟動(dòng)和停止條件一般由主機(jī)產(chǎn)生??偩€在起始條件后被認(rèn)為處于忙的狀態(tài),在停止條件的某段時(shí)間后,總線被認(rèn)為再次處于空閑狀態(tài)如果產(chǎn)生重復(fù)啟動(dòng)條件Sr而不產(chǎn)生停止條件,總線會(huì)一直處于忙狀態(tài)72I2C總線數(shù)據(jù)傳輸格式S從I2C地址(7位)R/WA傳輸數(shù)據(jù)……APS從I2C地址W
A
數(shù)據(jù)1
A
數(shù)據(jù)2
A……數(shù)據(jù)n
A/A
PS從I2C地址R
A數(shù)據(jù)1A數(shù)據(jù)2A……數(shù)據(jù)nA
P(1)一般格式:(2)主控制器寫操作格式:
紅色起始信號(hào)S、地址信號(hào)、控制信號(hào)W、各個(gè)數(shù)據(jù)、結(jié)束信號(hào)P,均為主I2C設(shè)備發(fā)送、從I2C設(shè)備接收;黑色的應(yīng)答信號(hào)A/A由從I2C設(shè)備發(fā)送、主I2C設(shè)備接收。(3)主控制器讀操作格式:
紅色的信號(hào)均為主I2C設(shè)備發(fā)送、從I2C設(shè)備接收;黑色的信號(hào)均為從I2C設(shè)備發(fā)送、主I2C設(shè)備接收。73(4)主控制器讀/寫操作格式
:
由于在一次傳輸過(guò)程中要改變數(shù)據(jù)的傳輸方向,因此起始信號(hào)和尋址字節(jié)都要重復(fù)一次,而中間可以不要結(jié)束信號(hào)。在一次傳輸中,可以有多次啟動(dòng)信號(hào)。S從IIC地址R
A數(shù)據(jù)1A數(shù)據(jù)2A…A
Sr
從地址WA數(shù)據(jù)1
A
數(shù)據(jù)2
A
數(shù)據(jù)3
A……數(shù)據(jù)m
A/A
P74標(biāo)準(zhǔn)模式I2C總線規(guī)范的擴(kuò)展標(biāo)準(zhǔn)模式I2C總線規(guī)范在80年代初期已經(jīng)存在。它規(guī)定數(shù)據(jù)傳輸速率可高達(dá)100kbit/s,而且7位尋址。這個(gè)概念在普及中迅速成長(zhǎng)。今天它已經(jīng)作為一個(gè)標(biāo)準(zhǔn)被全世界接受,而且PhilipsSemiconductors和其他供應(yīng)商提供了幾百種不同的兼容IC。為了符合更高速度的要求以及制造更多可使用的從機(jī)地址給數(shù)量不斷增長(zhǎng)的新器件,標(biāo)準(zhǔn)模式I2C總線規(guī)范不斷升級(jí)。到今天它提供了以下的擴(kuò)展:快速模式位速率高達(dá)400kbit/s高速模式(Hs模式)位速率高達(dá)3.4Mbit/s10位尋址允許使用高達(dá)1024個(gè)額外的從機(jī)地址(*)758.3.2S3C2410I2C接口S3C2410的I2C主要有5部分構(gòu)成:數(shù)據(jù)收發(fā)寄存器、數(shù)據(jù)移位寄存器、地址寄存器、時(shí)鐘發(fā)生器、控制邏輯等部分。如下圖所示。圖10.9S3C2410IIC串行總線控制器框圖
76S3C2410I2C總線接口具有一個(gè)專門的串行數(shù)據(jù)線和串行時(shí)鐘線。它有主機(jī)發(fā)送模式、主機(jī)接收模式、從機(jī)發(fā)送模式和從機(jī)接收模式4種操作模式??刂芐3C2410I2C總線操作,需要寫數(shù)據(jù)到IICCON(I2C總線控制寄存器)、IICSTAT(I2C總線控制/狀態(tài)寄存器)、IICDS(I2C總線Tx/Rx數(shù)據(jù)移位寄存器)和IICADD(I2C總線地址寄存器)。77S3C2410芯片支持I2C總線序列接口,其端口E的GPE15用作數(shù)據(jù)線(SDA),GPE14用作連續(xù)時(shí)鐘線(SCL)。這2根信號(hào)線用于在S3C2410芯片內(nèi)部的總線主控器和連接到I2C總線上的外圍設(shè)備之間傳輸信息,此數(shù)據(jù)線和連續(xù)時(shí)鐘線均是雙向的。當(dāng)I2C總線空閑時(shí),GPE15引腳(SDA信號(hào)線)和GPE14引腳(SCL信號(hào)線)都應(yīng)設(shè)置成高電平。GPE15引腳從高電平轉(zhuǎn)換到低電平時(shí),啟動(dòng)一次傳輸。當(dāng)GPE14保持在高電平時(shí),GPE15引腳從低電平轉(zhuǎn)換到高電平則表示傳輸結(jié)束。其傳輸協(xié)議遵循上節(jié)所介紹的I2C總線協(xié)議。78
在發(fā)送器模式下,數(shù)據(jù)被發(fā)送之后,I2C總線接口會(huì)等待直到IICDS(I2C數(shù)據(jù)移位寄存器)被程序?qū)懭胄碌臄?shù)據(jù)。在新的數(shù)據(jù)被寫入之前,SCL線都被拉低。新的數(shù)據(jù)寫入之后,SCL線被釋放。 S3C2410可以利用中斷來(lái)判斷當(dāng)前數(shù)據(jù)字節(jié)是否已經(jīng)完全送出。在CPU接收到中斷請(qǐng)求后,在中斷處理中再次將下一個(gè)新的數(shù)據(jù)寫入IICDS,如此循環(huán)。
在接收模式下,數(shù)據(jù)被接收到后,I2C總線接口將等待直到IICDS寄存器被程序讀出。在數(shù)據(jù)被讀出之前,SCL線保持低電平。新的數(shù)據(jù)從讀出之后,SCL線才釋放。 S3C2410也利用中斷來(lái)判別是否接收到了新的數(shù)據(jù)。CPU收到中斷請(qǐng)求之后,處理程序?qū)腎ICDS讀取數(shù)據(jù)。讀寫操作79
總線仲裁發(fā)生在兩個(gè)主I2C設(shè)備中。如果一個(gè)主設(shè)備欲使用總線,而測(cè)得SDA為低電平,則該主設(shè)備仲裁不能夠使用總線啟動(dòng)傳輸。這個(gè)仲裁過(guò)程會(huì)延長(zhǎng),直到信號(hào)線SDA變?yōu)楦唠娖健? 每次操作都要進(jìn)行仲裁??偩€仲裁80S3C2410I2C專用寄存器S3C2410有4個(gè)專用寄存器RegisterAddressR/WDescriptionResetValue
IICCON0x54000000R/WIIC總線控制寄存器0x0XIICSTAT0x54000004R/WIIC總線控制/狀態(tài)寄存器0x0IICADD0x54000008R/WIIC總線地址寄存器0xXXIICDS0x5400000CR/WIIC數(shù)據(jù)發(fā)送/接收寄存器0xXX811.I2C控制寄存器(IICCON)字段名位意義初值A(chǔ)cknowledgegeneration7應(yīng)答使能。0:禁止應(yīng)答;1:自動(dòng)應(yīng)答應(yīng)答電平:Tx時(shí)為高;Rx時(shí)為低00Txclocksourceselection6
發(fā)送時(shí)鐘分頻選擇。
0:IICCLK=fPCLK/16;1:IICCLK=fPCLK/5120Tx/RxInterrupt5收發(fā)中斷控制位。0:禁止;1:允許0InterruptPendingflag4
中斷標(biāo)志位。讀:0無(wú),1示有中斷請(qǐng)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)折疊乒乓臺(tái)行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 2024-2025年中國(guó)二氧化錫行業(yè)發(fā)展趨勢(shì)預(yù)測(cè)及投資戰(zhàn)略咨詢報(bào)告
- 2025年云南野生菌項(xiàng)目投資可行性研究分析報(bào)告
- 2025年中國(guó)米糠油行業(yè)調(diào)查研究及投資戰(zhàn)略規(guī)劃研究報(bào)告
- 2025年鋼鋁門窗配件項(xiàng)目可行性研究報(bào)告
- 2025年網(wǎng)絡(luò)竊密泄密防范工作自查報(bào)告
- 2025年盤齒項(xiàng)目可行性研究報(bào)告
- 遙感課程設(shè)計(jì)個(gè)人總結(jié)
- 鴨子的班本課程設(shè)計(jì)
- 超聲初學(xué)者教學(xué)課程設(shè)計(jì)
- 臺(tái)資企業(yè)A股上市相關(guān)資料
- 電 梯 工 程 預(yù) 算 書
- 羅盤超高清圖
- 參會(huì)嘉賓簽到表
- 機(jī)械車間員工績(jī)效考核表
- 形式發(fā)票格式2 INVOICE
- 2.48低危胸痛患者后繼治療評(píng)估流程圖
- 人力資源管理之績(jī)效考核 一、什么是績(jī)效 所謂績(jī)效簡(jiǎn)單的講就是對(duì)
- 山東省醫(yī)院目錄
- 云南地方本科高校部分基礎(chǔ)研究
- 廢品管理流程圖
評(píng)論
0/150
提交評(píng)論