嵌入式系統(tǒng)學(xué)習(xí)課件C7_第1頁
嵌入式系統(tǒng)學(xué)習(xí)課件C7_第2頁
嵌入式系統(tǒng)學(xué)習(xí)課件C7_第3頁
嵌入式系統(tǒng)學(xué)習(xí)課件C7_第4頁
嵌入式系統(tǒng)學(xué)習(xí)課件C7_第5頁
已閱讀5頁,還剩80頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本節(jié)提要132546基于ARM的硬件系統(tǒng)體系結(jié)構(gòu)存儲器接口設(shè)計網(wǎng)絡(luò)接口設(shè)計I/O接口設(shè)計人機交互接口設(shè)計其它通訊接口設(shè)計第一頁第二頁,共86頁?;贏RM的硬件設(shè)計主要介紹基于ARM7的嵌入式硬件開發(fā)平臺的設(shè)計方法,包括結(jié)構(gòu)、主要接口、存儲器選用方案以及外設(shè)、顯示等方面的內(nèi)容。嵌入式硬件開發(fā)平臺的體系結(jié)構(gòu)外圍存儲器接口設(shè)計方法鍵盤、LCD等人機交互接口的設(shè)計觸摸屏的設(shè)計以太網(wǎng)設(shè)計CAN總線設(shè)計第二頁第三頁,共86頁。SamsungS3C44B0XSamsungS3C44B0X微處理器是三星公司專為手持設(shè)備和一般應(yīng)用提供的高性價比和高性能的微控制器解決方案,它使用ARM7TDMI核,工作在66MHZ。為了降低系統(tǒng)總成本和減少外圍器件,這款芯片中還集成了下列部件:8KBCache、外部存儲器控制器、LCD控制器、4個DMA通道、2通道UART、1個多主I2C總線控制器、1個IIS總線控制器,5通道PWM定時器及一個內(nèi)部定時器、71個通用I/O口、8個外部中斷源、實時時鐘、8通道10位ADC等。第三頁第四頁,共86頁?;贏RM的嵌入式硬件平臺體系結(jié)構(gòu)第四頁第五頁,共86頁。芯片體系結(jié)構(gòu)第五頁第六頁,共86頁。本節(jié)提要132546基于ARM的硬件系統(tǒng)體系結(jié)構(gòu)存儲器接口設(shè)計網(wǎng)絡(luò)接口設(shè)計I/O接口設(shè)計人機交互接口設(shè)計其它通訊接口設(shè)計第六頁第七頁,共86頁。S3C44B0X存儲系統(tǒng)的特征支持?jǐn)?shù)據(jù)存儲的大/小端選擇(通過外部引腳進行選擇)地址空間:具有8個存儲體,每個存儲體可達(dá)32Mb,總共可達(dá)256Mb。對所有存儲體的訪問大小均可進行改變(8位/16位/32位)8個存儲體中,Bank0-Bank5可支持ROM、SRAM;Bank6、Bank7可支持ROM、SRAM和FP/EDO/SDRAM等。7個存儲體的起始地址固定,1個存儲體的起始地址可變。第七頁第八頁,共86頁。復(fù)位后的S3C44B0X的存儲器映射表第八頁第九頁,共86頁。Bank0總線寬度配置第九頁第十頁,共86頁。系統(tǒng)的存儲空間分配Bank0:兩片512KFlash,放置系統(tǒng)引導(dǎo)程序,系統(tǒng)上電復(fù)位后,PC指針自動指向Bank0的第一個單元,進行系統(tǒng)自舉。。Bank1:K9F2808(三星16MbyteFlash),非線性尋址。具體的時序可以參考K9F2808的datasheetBank2:USBN9603。USB設(shè)備端接口芯片,占用系統(tǒng)外部中斷0。8位數(shù)據(jù)總線。Bank3、Bank4未接設(shè)備??梢怨U展使用Bank5:RTL8019AS,ISA總線兼容的10M以太網(wǎng)(PHY+MAC層)控制芯片。占用系統(tǒng)外部中斷1,16位數(shù)據(jù)總線第十頁第十一頁,共86頁。Bank6:SDRAM,起始地址為0xC000000。在SDRAM中,前512Kbyte的空間劃分出來,作為系統(tǒng)的LCD顯示緩沖區(qū)使用(更新其中的數(shù)據(jù),就可以更新LCD的顯示)。系統(tǒng)的程序存儲空間從0xC080000開始。也就是,引導(dǎo)系統(tǒng)的時候,需要把system.bin文件復(fù)制到0xC080000開始的地址空間,把PC指針指向0xC080000。Bank7:未使用。可以擴展另一片SDRAM,或者其他的外設(shè)。系統(tǒng)的同步串行口(SIO),連接著觸摸屏控制芯片F(xiàn)M7843(與ADS7843完全兼容)。在同步串行口上,還可以擴展其他的芯片。靠IO口控制設(shè)備的片選信號(CS)來防止設(shè)備的沖突。注:系統(tǒng)的擴展接口上,A0的標(biāo)號,連接在S3C44B0X的ADDR1上,后面的地址依次向后錯位。第十一頁第十二頁,共86頁。S3C44B0X與FLASH的連接(HalfWord方式)第十二頁第十三頁,共86頁。與2片8位的ROM連接方法第十三頁第十四頁,共86頁。與1片16位的ROM連接第十四頁第十五頁,共86頁。關(guān)于BOOTROMBank0:系統(tǒng)的啟動ROM(FlashRom)。在系統(tǒng)復(fù)位的時候,處理器的PC(程序計數(shù)器)指針指向0x0地址。在Bank0的起始地址的程序,就是系統(tǒng)的初始化程序。此程序的主要任務(wù)是:1、管理處理器的中斷服務(wù)程序處理器的中斷是從0x0地址開始,引導(dǎo)ROM負(fù)責(zé)把這一部分的中斷映射到另一個區(qū)域,以便系統(tǒng)處理。具體的做法,可以參考44binit.s里面的代碼。(這部分代碼是三星主頁可以提供,它把系統(tǒng)的中斷,映射到了不同的指針?biāo)赶虻牡刂房臻g(主要就是系統(tǒng)RAM的空間))。第十五頁第十六頁,共86頁。2、初始化硬件平臺,配置其他的BankS3C44B0X的Bank0是通過外部的一個管腳提供的上拉、下拉電阻來配置的。主要包括:數(shù)據(jù)位數(shù)(8位、16位、32位),數(shù)據(jù)格式(大端、小端)。而其他的Bank的配置,以及讀寫周期等信息是靠Bank0內(nèi)部的代碼配置相應(yīng)的寄存器來實現(xiàn)的。同時,系統(tǒng)的引導(dǎo)Rom也負(fù)責(zé)配置系統(tǒng)的其他的一些寄存器,比如,系統(tǒng)的PLL(鎖頻環(huán))配置,系統(tǒng)的IO口等一些端口功能的配置等等。第十六頁第十七頁,共86頁。3、系統(tǒng)自動檢測引導(dǎo)Rom負(fù)責(zé)檢測系統(tǒng)的啟動所必須的外設(shè)是否正常。主要是系統(tǒng)的SDRAM的檢測。4、系統(tǒng)的軟件設(shè)置,更新系統(tǒng)(system.bin)用戶可以在系統(tǒng)啟動的時候,按任意鍵,進入系統(tǒng)的軟件設(shè)置狀態(tài)。通過引導(dǎo)Rom設(shè)置或者查看系統(tǒng)的一些軟件信息。包括:通過開啟USB端口;更新系統(tǒng)文件system.bin;LCD顯示測試;演示程序的裝載測試;鍵盤測試;觸摸屏的坐標(biāo)校準(zhǔn);觸摸屏測試;以太網(wǎng)地址的設(shè)置等第十七頁第十八頁,共86頁。本節(jié)提要132546基于ARM的硬件系統(tǒng)體系結(jié)構(gòu)存儲器接口設(shè)計網(wǎng)絡(luò)接口設(shè)計I/O接口設(shè)計人機交互接口設(shè)計其它通訊接口設(shè)計第十八頁第十九頁,共86頁。I/O子系統(tǒng)的層次模型I/O子系統(tǒng):I/O設(shè)備、相關(guān)的設(shè)備驅(qū)動程序和I/O子系統(tǒng)組成嵌入式I/O子系統(tǒng)。I/O子系統(tǒng)的目標(biāo)是對RTOS和應(yīng)用程序員隱藏設(shè)備特定的信息,并且對系統(tǒng)的外圍I/O設(shè)備提供一個統(tǒng)一的訪問方法。第十九頁第二十頁,共86頁。從不同角度看I/O系統(tǒng)從系統(tǒng)軟件開發(fā)者角度看,I/O操作意味著與設(shè)備的通信、對設(shè)備編程初始化和請示執(zhí)行設(shè)備與系統(tǒng)之間的實際數(shù)據(jù)傳輸以及操作完成后通知請求者。系統(tǒng)軟件工程師必須理解設(shè)備的物理特性,如寄存器的定義和設(shè)備的訪問方法。從RTOS的角度看,I/O操作意味著對I/O請求定位正確的設(shè)備,對設(shè)備定位正確的設(shè)備驅(qū)動程序,并解決對設(shè)備驅(qū)動程序的請求。有時要求RTOS保證對設(shè)備的同步訪問。RTOS必須進行抽象,對應(yīng)用程序員隱含設(shè)備的特性。從應(yīng)用程序員角度看,目標(biāo)是找到一個簡單、統(tǒng)一和精練的方法與系統(tǒng)中出現(xiàn)的所有類型的設(shè)備通信。第二十頁第二十一頁,共86頁。I/O接口設(shè)計

I/O接口電路也簡稱接口電路。它是主機和外圍設(shè)備之間交換信息的連接部件(電路)。它在主機和外圍設(shè)備之間的信息交換中起著橋梁和紐帶作用。設(shè)置接口電路的必要性:a)解決CPU和外圍設(shè)備之間的時序配合和通信聯(lián)絡(luò)問題。b)解決CPU和外圍設(shè)備之間的數(shù)據(jù)格式轉(zhuǎn)換和匹配問題。c)解決CPU的負(fù)載能力和外圍設(shè)備端口選擇問題。第二十一頁第二十二頁,共86頁。I/O接口的編址方式

1)I/O接口獨立編址:這種編址方式是將存儲器地址空間和I/O接口地址空間分開設(shè)置,互不影響。設(shè)有專門的輸入指令(IN)和輸出指令(OUT)來完成I/O操作。2)I/O接口與存儲器統(tǒng)一編址方式:這種編址方式不區(qū)分存儲器地址空間和I/O接口地址空間,把所有的I/O接口的端口都當(dāng)作是存儲器的一個單元對待,每個接口芯片都安排一個或幾個與存儲器統(tǒng)一編號的地址號。也不設(shè)專門的輸入/輸出指令,所有傳送和訪問存儲器的指令都可用來對I/O接口操作。第二十二頁第二十三頁,共86頁。兩種編址方式有各自的優(yōu)缺點1)獨立編址方式:主要優(yōu)點:內(nèi)存地址空間與I/O接口地址空間分開,互不影響,譯碼電路較簡單,并設(shè)有專門的I/O指令,所以編程序易于區(qū)分,且執(zhí)行時間短,快速性好。缺點:只用I/O指令訪問I/O端口,功能有限且要采用專用I/O周期和專用I/O控制線,使微處理器復(fù)雜化。2)統(tǒng)一編址方式主要優(yōu)點:訪問內(nèi)存的指令都可用于I/O操作,數(shù)據(jù)處理功能強;同時I/O接口可與存儲器部分共用譯碼和控制電路。缺點:一是I/O接口要占用存儲器地址空間的一部分;二是因不用專門的I/O指令,程序中較難區(qū)分I/O操作。第二十三頁第二十四頁,共86頁。通用設(shè)計原則(I/O設(shè)備)I/O接口接口的概念CPU與外部設(shè)備的接口(I/O適配器)接口的功能控制緩沖狀態(tài)轉(zhuǎn)換整理程序中斷

第二十四頁第二十五頁,共86頁。S3C44B0X的I/O接口ARM系統(tǒng)完成I/O功能的標(biāo)準(zhǔn)方法是使用存儲器映射I/O。這種方法使用特定的存儲器地址。當(dāng)從這些地址加載或向這些地址存儲時,它們提供I/O功能。典型情況下,從存儲器映射I/O地址加載用于輸入,而向存儲器映射I/O地址存儲用于輸出。S3C44B0X有71個多功能輸入\輸出管腳,構(gòu)成了7個I/O接口:兩個9位的輸入/輸出接口(E和F)兩個8位的輸入/輸出接口(D和G)一個16位的輸入/輸出接口(C)一個10位的輸出接口(A)一個11位的輸出接口(B)第二十五頁第二十六頁,共86頁。嵌入式開發(fā)板與PC機的串行通訊嵌入式開發(fā)板和PC機的通訊電纜可以按照如圖所示的方式連接。第二十六頁第二十七頁,共86頁。UART控制框圖第二十七頁第二十八頁,共86頁。異步串行通訊簡介在一條傳輸線上完成單向傳輸。將傳輸數(shù)據(jù)的字符一位接一位的傳送。接收方對于同一條線上的一連串連續(xù)數(shù)學(xué)信號,首先將其分割成位,再按位組成字符。每個字符需要確定起始位和結(jié)束位,字符與字符間還可能有長度不定的空閑時間,因此傳輸效率較低。第二十八頁第二十九頁,共86頁。字符串行輸出格式:發(fā)送前:線路處于空閑狀態(tài),連續(xù)發(fā)送“1”開始發(fā)送:首先,發(fā)送一位起始位“0”然后,發(fā)送連續(xù)的二進制位,數(shù)據(jù)位可以為5、6、7、8隨后,緊跟一位奇偶校驗位(可選擇奇/偶/無校驗)最后,發(fā)送停止位“1”,可以有1位、1.5位或2位停止位第二十九頁第三十頁,共86頁。串行通訊硬件規(guī)范及連接方法EIARS-232C

物理特征:DB-25DB-15DB-9信號連線:保護地、TXD/RXD、RTS/CTS、DCD、DSR、DTR、R1電平規(guī)定:-5V~-15V之間的電平表示邏輯“1”+5V~+15V之間的電平表示邏輯“0”第三十頁第三十一頁,共86頁。比特率在數(shù)字信道中,比特率是數(shù)字信號的傳輸速率,它用單位時間內(nèi)傳輸?shù)亩M制代碼的有效位(bit)數(shù)來表示,其單位為每秒比特數(shù)bit/s(bps)、每秒千比特數(shù)(Kbps)或每秒兆比特數(shù)(Mbps)來表示(此處K和M分別為1000和1000000,而不是涉及計算機存儲器容量時的1024和1048576)。.波特率波特率指數(shù)據(jù)信號對載波的調(diào)制速率,它用單位時間內(nèi)載波調(diào)制狀態(tài)改變次數(shù)來表示,其單位為波特(Baud)。波特率與比特率的關(guān)系為:比特率=波特率X單個調(diào)制狀態(tài)對應(yīng)的二進制位數(shù)。顯然,兩相調(diào)制(單個調(diào)制狀態(tài)對應(yīng)1個二進制位)的比特率等于波特率;四相調(diào)制(單個調(diào)制狀態(tài)對應(yīng)2個二進制位)的比特率為波特率的兩倍;八相調(diào)制(單個調(diào)制狀態(tài)對應(yīng)3個二進制位)的比特率為波特率的三倍;依次類推。第三十一頁第三十二頁,共86頁。第三十二頁第三十三頁,共86頁。第三十三頁第三十四頁,共86頁。UART的操作串口初始化發(fā)送數(shù)據(jù)接收數(shù)據(jù)第三十四頁第三十五頁,共86頁。本節(jié)提要132546基于ARM的硬件系統(tǒng)體系結(jié)構(gòu)存儲器接口設(shè)計網(wǎng)絡(luò)接口設(shè)計I/O接口設(shè)計人機交互接口設(shè)計其它通訊接口設(shè)計第三十五頁第三十六頁,共86頁。鍵盤接口設(shè)計鍵盤模塊鍵盤可能用來輸入數(shù)字型數(shù)據(jù)或者選擇控制設(shè)備的操作模式。鍵盤有兩種方案:一是采用現(xiàn)有的一些芯片實現(xiàn)鍵盤掃描;再就是用軟件實現(xiàn)鍵盤掃描。嵌入式控制器的功能很強,可能允分利用這一資源。第三十六頁第三十七頁,共86頁。一個瞬時接觸開關(guān)(按鈕)放置在每一行與每一列的交叉點。矩陣所需的鍵的數(shù)目顯然根據(jù)應(yīng)用程序而不同。每一行由一個輸出端口的一位驅(qū)動,而每一列由一個電阻器上拉且供給輸入端口一位。鍵盤掃描陣列第三十七頁第三十八頁,共86頁。鍵盤掃描過程就是讓微處理器按有規(guī)律的時間間隔查看鍵盤矩陣,以確定是否有鍵被按下。每個鍵被分配一個稱為掃描碼的唯一標(biāo)識符。應(yīng)用程序利用該掃描碼,根據(jù)按下的鍵來判定應(yīng)該采取什么行動。

消抖算法:組合鍵處理鍵盤掃描方法第三十八頁第三十九頁,共86頁。//得到按鍵的掃描碼,格式為0xXYZWU16GetScanKey(){ U16key; U8i,temp; for(i=1;i<0x10;i<<=1){ //I/O口送出數(shù)據(jù) rPDATD|=0xf; rPDATD&=~i; key<<=4; OSTimeDly(1);//操作系統(tǒng)延時 temp=rPDATD; key|=(temp>>4); } returnkey;}鍵盤掃描程序第三十九頁第四十頁,共86頁。LCD接口設(shè)計LCD顯示模塊液晶顯示是一種被動的顯示,它不能發(fā)光,只能使用周圍環(huán)境的光。它顯示圖案或字符只需很小能量。液晶顯示所用的液晶材料是一種兼有液態(tài)和固體雙重性質(zhì)的有機物,它的棒狀結(jié)構(gòu)在液晶盒內(nèi)一般平行排列,但在電場作用下能改變其排列方向。LCD的背光:EL(場致發(fā)光):2000-3000小時和LED光源:字符模式,50000小時第四十頁第四十一頁,共86頁。LCD的顯示方式反射型LCD:底偏光片后面加了一塊反射板,它一般在戶外和光線良好的辦公室使用。透射型LCD:底偏光片是透射偏光片,它需要連續(xù)使用背光源,一般在光線差的環(huán)境使用。透反射型LCD:是處于以上兩者之間,底偏光片能部分反光,一般也帶背光源,光線好的時候,可關(guān)掉背光源;光線差時,可點亮背光源使用LCD。第四十一頁第四十二頁,共86頁。反射型LCD的結(jié)構(gòu)第四十二頁第四十三頁,共86頁。LCD通常由兩種方式,一種是帶有驅(qū)動芯片的LCD模塊,基本上屬于半成品如果有需要,也可以直接使用芯片上的內(nèi)置LCD控制器來構(gòu)造顯示模塊,它可以支持彩色/灰度/單色三種模式,灰度模式下可支持4級灰度和16級灰度,彩色模式下最多支持256色,LCD的實際尺寸可支持到320X240。LCD的驅(qū)動方式第四十三頁第四十四頁,共86頁。嵌入式處理器與LCD的連接嵌入式處理器LCD模塊數(shù)據(jù)總線寄存器選擇使能信號第四十四頁第四十五頁,共86頁。

從系統(tǒng)結(jié)構(gòu)上來講,由于顯示器模塊中已經(jīng)有顯示存儲器。顯存中的每一個單元對應(yīng)LCD上的一個點,只要顯存中的內(nèi)容改變,顯示結(jié)果便進行刷新。于是便存在兩種刷新:1.直接根據(jù)系統(tǒng)要求對顯存進行修改,一種是只需修改相應(yīng)的局部就可以,不需要判斷覆蓋等;另一種就是有覆蓋問題,計算起來比較復(fù)雜,而且每做一點小的屏幕改變就進行刷新,將增加系統(tǒng)負(fù)擔(dān)。2.專門開辟顯示內(nèi)存,在需要刷新時候由程序進行顯示更新。這樣,不但可以減輕總線負(fù)荷,而且也比較合理,在有需要的時候進行統(tǒng)一的顯示更新,界面也可以比較美觀,不致由于無法預(yù)料的刷新動作導(dǎo)致顯示界面閃爍。LCD的顯示控制第四十五頁第四十六頁,共86頁。前后臺雙重顯示緩存的顯示模塊結(jié)構(gòu)第四十六頁第四十七頁,共86頁。觸摸屏接口設(shè)計觸摸屏的分類電阻式觸摸屏表面聲波觸摸屏紅外式觸摸屏電容式觸摸屏第四十七頁第四十八頁,共86頁。電阻式觸摸屏分為四線電阻和五線電阻觸摸屏電阻技術(shù)觸摸屏是一種對外界完全隔離的工作環(huán)境,故不怕灰塵、水汽和油污,可以用任何物體來觸摸,比較適合工業(yè)控制領(lǐng)域及辦公室內(nèi)有限人的使用。第四十八頁第四十九頁,共86頁。四線電阻觸摸屏原理第四十九頁第五十頁,共86頁。測量原理在觸摸點X、Y坐標(biāo)的測量過程中,測量電壓與測量點的等效電路圖所示,圖中P為測量點XVYY第五十頁第五十一頁,共86頁。觸摸屏芯片第五十一頁第五十二頁,共86頁。FM(ADS)7843的特點實現(xiàn)觸摸屏的驅(qū)動選擇控制(X、Y通道)對于輸入電壓或附加電壓進行AD轉(zhuǎn)換同步串行接口最大轉(zhuǎn)換速率125KHz可編程控制8位或者12位轉(zhuǎn)換模式工作電壓2.7V-5.0V兩個附加的輸入端口第五十二頁第五十三頁,共86頁。FM7843與ARM的連接第五十三頁第五十四頁,共86頁。觸摸屏的驅(qū)動#defineADS7843_CTRL_START 0x80#defineADS7843_GET_X 0x50#defineADS7843_GET_Y 0x10#defineADS7843_CTRL_12MODE 0x0#defineADS7843_CTRL_8MODE 0x8#defineADS7843_CTRL_SER 0x4#defineADS7843_CTRL_DFR 0x0#defineADS7843_CTRL_DISPWD 0x3 //Disablepowerdown#defineADS7843_CTRL_ENPWD 0x0 //enablepowerdown#defineADS7843_PIN_CS (1<<6) //GPF6#defineADS7843_PIN_PEN (1<<5) //GPG5//#defineADS7843_PIN_BUSY (1<<6)/////////觸摸屏動作////////#defineTCHSCR_ACTION_NULL 0 #defineTCHSCR_ACTION_CLICK 1 //觸摸屏單擊#defineTCHSCR_ACTION_DBCLICK 2 //觸摸屏雙擊#defineTCHSCR_ACTION_DOWN 3 //觸摸屏按下#defineTCHSCR_ACTION_UP 4 //觸摸屏抬起#defineTCHSCR_ACTION_MOVE 5 //觸摸屏移動#defineTCHSCR_IsPenNotDown() (rPDATG&ADS7843_PIN_PEN)voidTchScr_init(void);voidTchScr_GetScrXY(int*x,int*y);第五十四頁第五十五頁,共86頁。本節(jié)提要132546基于ARM的硬件系統(tǒng)體系結(jié)構(gòu)存儲器接口設(shè)計網(wǎng)絡(luò)接口設(shè)計I/O接口設(shè)計人機交互接口設(shè)計其它通訊接口設(shè)計第五十五頁第五十六頁,共86頁。以太網(wǎng)接口的基本知識1、傳輸編碼曼徹斯特編碼差分曼徹斯特編碼第五十六頁第五十七頁,共86頁。以太網(wǎng)協(xié)議以太網(wǎng)MAC層物理傳輸幀(IEEE802.3)PRSDDASATYPEDATAPADFCS56位8位48位48位16位不超過1500字節(jié)可選32位PR: 同步位,收發(fā)雙方的時鐘同步,也指明傳輸?shù)乃俾剩?0M、100M)SD: 分隔位,表示下面跟著的是真正的數(shù)據(jù),而不是同步時鐘DA: 目的地址,以太網(wǎng)的地址為48位地址。如果為都為F,則是廣播地址SA: 源地址,48位,表明該幀的數(shù)據(jù)是哪個網(wǎng)卡發(fā)的,即發(fā)送端網(wǎng)卡地址

TYPE:類型字段,表明該幀的數(shù)據(jù)是什么類型。如:0800H表示數(shù)據(jù)為IP包,0806H表示數(shù)據(jù)為ARP包,814CH是SNMP包,8137H為IPX/SPX包

DATA:數(shù)據(jù)段,該段數(shù)據(jù)不能超過1500字節(jié)。PAD:填充位。以太網(wǎng)幀傳輸?shù)臄?shù)據(jù)包最小不能小于60字節(jié),當(dāng)數(shù)據(jù)段不足46字節(jié)時,后面補000000.....(當(dāng)然也可以補其它值)

FCS:32位CRC數(shù)據(jù)校驗位。該校驗由網(wǎng)卡自動完成第五十七頁第五十八頁,共86頁。以太網(wǎng)的數(shù)據(jù)傳輸特點PR,SD,PAD,FCS這幾個數(shù)據(jù)段是由網(wǎng)卡自動產(chǎn)生的;只需要理解DA、SA、TYPE、DATA四個段的內(nèi)容所有數(shù)據(jù)位的傳輸由低位開始(傳輸?shù)奈涣魇褂寐鼜厮固鼐幋a)以太網(wǎng)的沖突退避算法是由硬件自動執(zhí)行的DA+SA+TYPE+DATA+PAD最小為60字節(jié),最大為1514字節(jié)以太網(wǎng)卡可以接收三種地址的數(shù)據(jù),一個是廣播地位,一個是多播地址(在嵌入式的環(huán)境中一般不用),一個是它自已的地址任何兩個網(wǎng)卡的物理地址都是不一樣的,是世界上唯一的,網(wǎng)卡地址由專門機構(gòu)分配。第五十八頁第五十九頁,共86頁。嵌入式的以太網(wǎng)方案嵌入式處理器+網(wǎng)卡芯片(RTL8019)對嵌入式處理器沒有特殊要求,通用性強處理器和網(wǎng)絡(luò)數(shù)據(jù)交換通過外部總線,速度慢,不適合于100M網(wǎng)絡(luò)帶有以太網(wǎng)絡(luò)接口的嵌入式處理器處理器面向網(wǎng)絡(luò)應(yīng)用處理器和網(wǎng)絡(luò)數(shù)據(jù)交換通過內(nèi)部總線,速度快第五十九頁第六十頁,共86頁。RTL8019的原理框圖第六十頁第六十一頁,共86頁。嵌入式網(wǎng)絡(luò)接口的特點與常規(guī)的網(wǎng)卡設(shè)計思路不同的是,在嵌入式系統(tǒng)中,系統(tǒng)的精簡一直是個主要的原則。RTL8019AS作為網(wǎng)卡,時需要一片EEPROM作為配置存儲器,來確定通訊的端口地址,中斷地址,網(wǎng)卡的物理地址,工作模式,制造廠商等信息;而在嵌入式系統(tǒng)中,可以使用RTL8019AS的默認(rèn)配置和一些管腳作為網(wǎng)卡的初始化方法。這樣可以節(jié)省配置存儲器,減小嵌入式硬件平臺的體積。第六十一頁第六十二頁,共86頁。基于RTL8019在嵌入式以太網(wǎng)設(shè)計1RTL8019AS的初始化RTL8019支持即插即用模式和非即插即用模式。在嵌入式系統(tǒng)中,網(wǎng)卡的外設(shè)通常是不經(jīng)常插拔的,所以,為了系統(tǒng)的精簡,配置RTL8019為非即插即用模式。有著固定的中斷,有著固定的端口地址,假設(shè)是端口是0x300(這里的端口是相對于ISA總線來說的端口,對于ARM的總線,需要重新計算地址)。這些配置可以通過RTL8019的外部管腳,在系統(tǒng)上電復(fù)位的時候,自動配置起來。第六十二頁第六十三頁,共86頁。關(guān)于RTL8019的RAMRTL8019含有16K字節(jié)的RAM,地址為0x4000-0x7fff(指的是RTL8019內(nèi)部的存儲地址,是RTL8019工作用的存儲器,可以通過遠(yuǎn)程DMA訪問),每256個字節(jié)稱為一頁,共有64頁。頁的地址就是地址的高8位,頁地址為0x40--0x7f。這16k的ram的一部分用來存放接收的數(shù)據(jù)包,一部分用來存儲待發(fā)送的數(shù)據(jù)包第六十三頁第六十四頁,共86頁。2通過RTL8019AS發(fā)送數(shù)據(jù)

作為一個集成的以太網(wǎng)芯片,數(shù)據(jù)的發(fā)送校驗,總線數(shù)據(jù)包的碰撞檢測與避免是由芯片自己完成的。我們只需要配置發(fā)送數(shù)據(jù)的物理層地址的源地址、目的地址、數(shù)據(jù)包類型以及發(fā)送的數(shù)據(jù)就可以了。第六十四頁第六十五頁,共86頁。3、通過RTL8019AS接收數(shù)據(jù)

在RTL8019的初始化程序中已經(jīng)設(shè)置好了接收緩沖區(qū)的位置,并且配置好了中斷的模式。當(dāng)有一個正確的數(shù)據(jù)包到達(dá)的時候,RTL8019會產(chǎn)生一個中斷信號,在ARM中斷處理程序中,接收數(shù)據(jù)。數(shù)據(jù)的接收比較簡單,即通過遠(yuǎn)端DMA把數(shù)據(jù)從RTL8019的RAM空間讀回ARM中處理。第六十五頁第六十六頁,共86頁。TCP/IP協(xié)議的層次應(yīng)用層(Application)BSD套接字(BSDSockets)傳輸層(Transport)TCP、UDP網(wǎng)絡(luò)層(Network)IP、ARP、ICMP、IGMP數(shù)據(jù)鏈路層(DataLink)IEEE802.3EthernetMAC物理層(Physical)第六十六頁第六十七頁,共86頁。嵌入式以太網(wǎng)中主要處理的協(xié)議ARP(AddressResolationProtocol)

地址解析協(xié)議ICMP(InternetControlMessagesProtocol)

網(wǎng)絡(luò)控制報文協(xié)議IP(InternetProtocol)網(wǎng)際協(xié)議TCP(TransferControlProtocol)

傳輸控制協(xié)議UDP(UserDatagramProtocol)

用戶數(shù)據(jù)包協(xié)議第六十七頁第六十八頁,共86頁。ARP地址解析協(xié)議網(wǎng)絡(luò)層用32bit的IP地址來標(biāo)識不同的主機,而鏈路層使用48bit的物理(MAC)地址來標(biāo)識不同的以太網(wǎng)接口。只知道目的主機的IP地址并不能發(fā)送數(shù)據(jù)幀給它,必須知道目的主機網(wǎng)絡(luò)接口的MAC地址才能發(fā)送數(shù)據(jù)幀。ARP的功能是實現(xiàn)從IP地址到對應(yīng)物理地址的轉(zhuǎn)換。

源主機發(fā)送一份包含目的主機IP地址的ARP請求數(shù)據(jù)幀給網(wǎng)上的每個主機,稱作ARP廣播,目的主機的ARP收到這份廣播報文后,識別出這是發(fā)送端在尋問它的IP地址,于是發(fā)送一個包含目的主機IP地址及對應(yīng)的MAC地址的ARP回答給源主機。每臺主機上都有一個ARP高速緩存,存放最近的IP地址到硬件地址之間的映射記錄。通常每一項的生存時間為20分鐘第六十八頁第六十九頁,共86頁。ICMP網(wǎng)絡(luò)控制報文協(xié)議IP層的附屬協(xié)議,IP層用它來與其他主機或路由器交換錯誤報文和其他重要控制信息。ICMP報文是在IP數(shù)據(jù)包內(nèi)部被傳輸?shù)?。兩個實用的網(wǎng)絡(luò)診斷工具,Ping和Traceroute(Tracert),都是利用該協(xié)議工作的。第六十九頁第七十頁,共86頁。IP網(wǎng)際協(xié)議IP工作在網(wǎng)絡(luò)層,是TCP/IP協(xié)議族中最為核心的協(xié)議。所有的TCP,UDP,ICMP以及IGMP數(shù)據(jù)都以IP數(shù)據(jù)包格式傳輸。IP數(shù)據(jù)包最長可達(dá)65535字節(jié),其中報頭占32bit的數(shù)目。包含各32bit的源IP地址和目的IP地址。在嵌入式應(yīng)用中,簡化設(shè)計,IP數(shù)據(jù)包長度等于數(shù)據(jù)鏈路層的數(shù)據(jù)長度。第七十頁第七十一頁,共86頁。TCP傳輸控制協(xié)議TCP是一個面向連接的可靠的傳輸層協(xié)議。TCP為兩臺主機提供高可靠性的端到端數(shù)據(jù)通信。主要包括:發(fā)送方把應(yīng)用程序交給它的數(shù)據(jù)分成合適的小塊,并添加附加信息(TCP頭),包括順序號,源、目的端口,控制、糾錯信息等字段,稱為TCP數(shù)據(jù)包。并將TCP數(shù)據(jù)包交給下面的網(wǎng)絡(luò)層處理。接受方確認(rèn)接收到的TCP數(shù)據(jù)包,重組并將數(shù)據(jù)送往高層。第七十一頁第七十二頁,共86頁。UDP協(xié)議UDP是一種無連接不可靠的傳輸層協(xié)議。把應(yīng)用程序傳來的數(shù)據(jù)加上UDP頭(包括端口號,段長等字段),作為UDP數(shù)據(jù)包發(fā)送出去,但是并不保證它們能到達(dá)目的地??煽啃杂蓱?yīng)用層來提供。就象發(fā)送一封寫有地址的一般信件,卻不保證它能到達(dá)。第七十二頁第七十三頁,共86頁。關(guān)于端口TCP和UDP采用16位的端口號來識別上層的TCP用戶,即上層應(yīng)用協(xié)議如等。常見的TCP/IP服務(wù)都用1-255之間的端口號。例如FTP服務(wù)的TCP端口號都是21,Telnet服務(wù)的TCP端口號都是23256-1023之間的端口號通常都是提供一些特定的Unix服務(wù)TCP/IP臨時端口分配1024-5000之間的端口號第七十三頁第七十四頁,共86頁。BSD套接字(BSDSockets)BSDSockets使用的最廣泛的網(wǎng)絡(luò)程序編程方法,主要用于應(yīng)用程序的編寫,用于網(wǎng)絡(luò)上主機與主機之間的相互通信UNIX,Linux,VxWorks均支持BSDSockets,Windows的Winsock基本上是來自BSDSocketsSocket分為StreamSockets和DataSocketsStreamSockets是可靠性的雙向數(shù)據(jù)傳輸,使用TCP協(xié)議DataSockets是不可靠連接,使用UDP協(xié)議第七十四頁第七十五頁,共86頁。套接字的使用UDP服務(wù)器端和一個UDP客戶端通信的程序過程創(chuàng)建一個Socket

sFd=socket(AF_INET,SOCK_DGRAM,0)把Socket和本機的IP

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論