freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于tcpip協(xié)議單片機(jī)的以太網(wǎng)通訊系統(tǒng)設(shè)計(jì)與研究-資料下載頁(yè)

2024-11-10 03:26本頁(yè)面

【導(dǎo)讀】展,嵌入式系統(tǒng)在遠(yuǎn)程控制領(lǐng)域的應(yīng)用前景越來(lái)越廣泛。利用8位AT89C52單片機(jī)提。利用實(shí)驗(yàn)總結(jié)、查閱資料、模擬仿真等方法,解決了嵌入式設(shè)備與以。太網(wǎng)絡(luò)的連接的理論基礎(chǔ)問題。以太網(wǎng)通訊系統(tǒng)能夠?qū)崿F(xiàn)辦公自動(dòng)化與工業(yè)自動(dòng)化的。低成本、低功耗、可靠連接網(wǎng)絡(luò)的目的。

  

【正文】 BS4]72BA1573BA14[PL0]74BCSB75EECS76BD7[PL1][EEDO]77BD6[IRQS0][EEDI]78BD5[IRQS1][EESK]79BD4[IRQS2]80B D 3 [ I O S 0]81B D 2 [ I O S 1]82B D 1 [ I O S 2]84G N D83B D 0 [ I S O 3]85G N D86S D 1 587S D 1 488V D D89S D 1 390S D 1 291S D 1 192S D 1 093S D 994S D 895I O C S 1 6B [ S L O T 1 6]96I N T 7[ I R Q 15 ]97I N T 6[ I R Q 12 ]98I N T 5[ I R Q 11 ]99I N T 4[ I R Q 10 ]10 0U4R T L 80 19 A SV C CV C CR227 kV C CV C CV C CV C CY220 MC922 pfC822 pfT P O U T T P O U T +TPIN+TPINA0A1A2A3A4V C C/RD/WRR S TLED_LINKLED_CRSR5 1kR6 1kD1L E D C R SD2L E D L I N KL E D _C R SL E D _L I N KV C CCS1SK2DI3DO4G N D5NC6NC7V C C8U593 C 4 6V C CEESKEEDIEECSEEDOE E D OE E D IE E S KE E C SD0D1D2D3D4D5D6D7A15C 130. 01 ufC 140. 01 ufC 150. 01 ufV C C+C710 uf 圖 53 RTL8019AS 與程序存儲(chǔ)器的接口電路設(shè)計(jì) 以太網(wǎng)端口 RJ— 45電路與網(wǎng)絡(luò)變壓器設(shè)計(jì) 93C46 是采用 4 線 SPI 串行接口的 E2PROM,容量為 1K,主要保存 RTL8019AS的配置信息。 00H~ 03H 的 地址空間用于存儲(chǔ) RTL8019AS 內(nèi)配置寄存器的上電初始化值 。地址 04H~ 11H 存儲(chǔ)網(wǎng)絡(luò)節(jié)點(diǎn)地址。 TL8019AS 通過引腳 EECS、 EESK、 EEDI 控制 93C46 的 CS、 SK、 DI 引腳,通過 EEDO 接收 93C46 的 DO 引腳的狀態(tài)。 RTL8019AS復(fù)位后讀取 93C46 的內(nèi)容并設(shè)置內(nèi)部寄存器的值,如果 93C46 中內(nèi)容不正確,RTL8019AS 就無(wú)法正常工作。先通過編程器把配置好的數(shù)據(jù)寫入 93C46,再焊入電路。以太網(wǎng)端口 RJ— 45 的電路與網(wǎng)絡(luò)變壓器的設(shè)計(jì)如圖 54 所示。 網(wǎng)卡控制器與以太網(wǎng)不能直接相連,要 通過網(wǎng)絡(luò)變壓器,本課題選用中山漢仁公司的 20F001N 作為隔離濾波器件,它起的主要作用是:隔直通交,避免雙絞線上的直流電平干擾網(wǎng)卡芯片的工作;同時(shí),利用變壓器自身的通頻帶限制高頻干擾。 21 圖 54 以太網(wǎng)端口 RJ— 45 的電路設(shè)計(jì) 123678 91011141516U620F001NC 1 80 .0 1 u fC 1 90 .0 1 u fC 2 00 .0 1 u fC 2 10 .0 1 u fTX+1TX2RX+3 4 5RX6 7 8R J 4 5G N D AT P I N T P I N +T P O U T +T P O U T R449R349C?0 .0 1 u fR7 10R8 10C 1 60 .0 1 u fC 1 70 .0 1 u fC 2 20 .0 1 u fG N D A 22 6 系統(tǒng)軟件設(shè)計(jì) RTL8019AS驅(qū)動(dòng)程序設(shè)計(jì) RTL8019AS 驅(qū)動(dòng)程序?qū)⒁l(fā)送的數(shù)據(jù)包按指定格式寫入芯片并啟動(dòng)發(fā)送命令,RTL8019AS 會(huì)自動(dòng)把數(shù)據(jù)包轉(zhuǎn)換成物理幀格式在物理信道上傳輸。反之, RTL8019AS收到物理信號(hào)后將其還原成數(shù)據(jù),按指定格式存放在芯片 RAM 中以便主機(jī)程序取用。簡(jiǎn)言之就是 RTL8019AS 完成數(shù)據(jù)包和電信號(hào)之間的相互轉(zhuǎn)換。以太網(wǎng)協(xié)議由芯片硬件自動(dòng)完成, RTL8019AS 的程序相對(duì)比較透明。驅(qū)動(dòng)程序包括 3 個(gè)部分,用 3 個(gè)函數(shù)實(shí)現(xiàn),即芯片初始化函數(shù)、報(bào)文發(fā)送函數(shù)、報(bào)文接收函數(shù)。下面將分別介紹其功能和實(shí)現(xiàn) [11]。 RTL8019AS的復(fù)位 80C52 的 連接 RTL8019AS 的 RESDRV 來(lái)進(jìn)行復(fù)位操作。 RSTDRV 為高電平有效,至少需要 800ns 的寬度。給該引腳旋加一個(gè) 1μ s 以上的高電平就可以復(fù)位。施加一個(gè)高電平后,然后施加一個(gè)低 電平。復(fù)位過程將執(zhí)行一些操作,至少需要 2ms 的時(shí)間,推薦等待更久的時(shí)間之后如 100ms 之后才對(duì)它操作,以確保完全復(fù)位。 RTL8019AS的初始化 初始化函數(shù)用于對(duì) RTL8019AS 進(jìn)行初始化操作。在初始化操作之前需要對(duì)RTL8019AS 進(jìn)行熱復(fù)位操作和 ISR 寄存器的清零操作。然后開始 RTL8019AS 的初始化操作 [12]。初始化步驟如下: ? CR=0x21,選擇頁(yè) 0 的寄存器; ? TPSR=0x45,設(shè)置發(fā)送頁(yè)起始頁(yè)地址,初始化為第一個(gè)發(fā)送緩沖區(qū)的頁(yè),即0x40; ? PSTART=0x45, PSTOP=0x80,構(gòu)造緩沖環(huán): 0x4c— 0x80; ? BNRY=0x4C,設(shè)置讀指針; ? RCR=0xCC,設(shè)置接收配置寄存器,使用接收緩沖區(qū),僅接收自己地址的數(shù)據(jù)包(以及廣播地址數(shù)據(jù)包)和多點(diǎn)播送地址包,小于 64 字節(jié)的包丟棄,校驗(yàn)錯(cuò)的數(shù)據(jù)包不接收。 ? TCR=0xE0,設(shè)置發(fā)送配置寄存器,啟用 CRC 自動(dòng)生成和自動(dòng)校驗(yàn),工作在正常模式; 23 ? DCR=0xC8,設(shè)置數(shù)據(jù)配置寄存器,使用 FIFO( Final Input Final Output)緩存,普通模式, 8 位數(shù)據(jù)傳輸,字節(jié)順序?yàn)楦呶蛔止?jié)在前, 低位字節(jié)在后; ? IMR=0x00,設(shè)置中斷屏蔽寄存器,屏蔽所有中斷; ? CR=0x61,選擇頁(yè) 1 的寄存器; ? CURR=0x4D, CURR 是 RTL8019AS 寫內(nèi)存的指針,指向當(dāng)前正在寫的頁(yè)的下一頁(yè),初始化時(shí)指向 0x4C+1=0x4D; ⑴ 設(shè)置多址寄存器 MAR0— MAR5,均設(shè)置為 0x00; ⑵ 設(shè)置網(wǎng)卡地址寄存器 PAR0— PAR5; ⑶ CR=0x22,選擇頁(yè) 1 的寄存器,進(jìn)入正常工作狀態(tài)。 報(bào)文的發(fā)送 報(bào)文發(fā)送函數(shù)的主要功能就是將 IP 或 ARP 協(xié)議封裝的數(shù)據(jù)報(bào)文用以太網(wǎng)幀頭封裝,發(fā)送出 去。其流程圖如圖 61 如下所示。其步驟大致可分為: 圖 61 以太網(wǎng)發(fā)送報(bào)文流程圖 Y N 寫入源物理地址 更新發(fā)送緩沖區(qū)標(biāo)志 選定發(fā)送緩沖區(qū)起始地址 上 次發(fā)送完畢? 重發(fā) 6 次 發(fā)送數(shù)據(jù) 指定發(fā)送長(zhǎng)度 向發(fā)送緩沖區(qū)拷貝數(shù)據(jù) 結(jié) 束 開 始 Length = 60 N 24 在前文詳細(xì)介紹了 RTL8019AS 的內(nèi)部 RAM 結(jié)構(gòu):它的內(nèi)部有 16K 字節(jié)的 RAM,地址為 0x4000— 0x7FFF,每 256 個(gè)字節(jié)稱為一頁(yè),頁(yè)號(hào)為 0x40— 0x80。系統(tǒng)中使用0x40— 0x4B 為發(fā)送緩沖區(qū),共 12 頁(yè),剛好可以存儲(chǔ) 2 個(gè)最大的以太網(wǎng)包。使用 0x4C— 0x7F 為接收緩沖區(qū),共 52 頁(yè)。發(fā)送報(bào)文時(shí)在 RTL8019AS 里面定義了兩個(gè)能存儲(chǔ)最大以太網(wǎng)報(bào)文的緩沖區(qū),把前 6 頁(yè) 0x40— 0x45 定義為發(fā)送緩沖區(qū) 1,接下來(lái)的 6 頁(yè) 0x46— 0x4B 定義為發(fā)送緩沖區(qū) 2,定義了一個(gè)指針指向當(dāng)前的發(fā)送緩沖區(qū) [13]。 報(bào)文的接收 接收?qǐng)?bào)文的函數(shù)流程圖如圖 62 所示。 圖 62 以太網(wǎng)接收?qǐng)?bào)文流程圖 N Y 開始 清中斷標(biāo)志 讀取包頭 是否有新數(shù)據(jù) 讀取讀頁(yè)指針( BNRY) 讀取寫頁(yè)指針( CURR) 接受是否正確 IP 或 ARP 報(bào)文否? 讀取數(shù)據(jù) 置接受正確標(biāo)志 結(jié)束 丟棄 數(shù)據(jù)包更新標(biāo)志 N N Y Y 25 系統(tǒng)使用 0x4C0x7F 作為接收緩沖區(qū),共 52 頁(yè)。接收到得第一個(gè)數(shù)據(jù)包由 CURR決定。控制接收緩沖區(qū)的有兩個(gè)寄存器 CURR 和 BNRY。 CURR 是網(wǎng)卡寫緩沖區(qū)的指針,指向此時(shí)要寫的頁(yè)。 BNRY 是讀指針,指向用戶已經(jīng)讀走的頁(yè)。初始化時(shí)使BNRY=CURR1。而芯片正在讀取的數(shù)據(jù)字節(jié)位置可由 CLDA CLDA0 判斷。系統(tǒng)中接收數(shù)據(jù)報(bào)采用查詢方式,具體步驟如下: ? 由 CURR 和 BNRY 這兩個(gè)寄存器來(lái)判斷是否有新的報(bào)文到達(dá)。若 BNRY≠CURR1,則說(shuō)明有新的數(shù)據(jù)報(bào)文到達(dá),準(zhǔn)備讀取及判斷數(shù)據(jù),否則說(shuō)明沒有新的數(shù)據(jù)報(bào)文,則退出。 ? 若有報(bào)文到達(dá),判斷報(bào)文是否正確。主要是判斷接收到報(bào)文后,芯片自動(dòng)計(jì)算的 CRC 校驗(yàn)是否正確,若沒有出錯(cuò)標(biāo)志,則說(shuō)明報(bào)文接收正確。 ? 接收到正確的報(bào)文后,讀出報(bào)文到系統(tǒng)緩沖區(qū),否則丟棄。 ? 對(duì)正確的報(bào)文進(jìn)行協(xié)議分析,系 統(tǒng)只處理兩種報(bào)文: ARP 報(bào)文和 IP 報(bào)文,若判斷出是以上兩種報(bào)文,則置位相應(yīng)標(biāo)志位,以待后續(xù)模塊處理。否則丟棄該報(bào)文。 TCP/IP協(xié)議棧的實(shí)現(xiàn) 由于本課題是基于 TCP/IP 協(xié)議的單片機(jī)通訊系統(tǒng)的設(shè)計(jì),所以必須對(duì) TCP/IP 協(xié)議棧進(jìn)行必要的簡(jiǎn)化。我們保留四個(gè)主要的協(xié)議,即 ARP 協(xié)議、 IP 協(xié)議、 ICMP 協(xié)議、TCP 協(xié)議。應(yīng)用層協(xié)議我們采用 HTTP 協(xié)議。下面將分別介紹這些協(xié)議的實(shí)現(xiàn)方法。 地址解析協(xié)議 ARP的是實(shí)現(xiàn) 整個(gè) ARP 處理過程,主要分為五個(gè) 函數(shù),包括 ARP 初始化、 ARP 請(qǐng)求、 ARP 應(yīng)答、 ARP 包處理、 IP 包接收預(yù)處理。在實(shí)現(xiàn)網(wǎng)卡驅(qū)動(dòng)程序后,所有 ARP 處理操作就是填寫 ARP 包。處理過程間圖 63 所示,各函數(shù)功能如下: ? ARP 初始化函數(shù)完成 ARP 表的初始化,概括的說(shuō)就是 ARP 表 Timer 字段清 0。 ? ARP 請(qǐng)求函數(shù)完成 ARP 請(qǐng)求操作。 ARP 協(xié)議要求程序根據(jù)子網(wǎng)掩碼判斷 IP地址是否屬于同一子網(wǎng),如果在同一子網(wǎng)內(nèi), ARP 請(qǐng)求目的 MAC 地址,否則請(qǐng)求默認(rèn)網(wǎng)關(guān)的 MAC 地址。發(fā)送 ARP 請(qǐng)求時(shí)由于不知道對(duì)方的物理地址,在設(shè)置好本機(jī) IP地址、本機(jī)物理地址 和目的 IP 地址后,須將目的物理地址字段設(shè)置為廣播地址,再由收到該請(qǐng)求的主機(jī)填充該字段。 ? ARP 應(yīng)答函數(shù)比較簡(jiǎn)單,除目的端硬件的所有其他的字段都有填充值。當(dāng)系統(tǒng)收到一份目的端為本機(jī) ARP 請(qǐng)求報(bào)文后,它就把硬件地址填充進(jìn)去,然后用兩個(gè)目的端地址分別替換兩個(gè)發(fā)送端地址,并把操作字段置 2,最后把它發(fā)送回去。 26 ? ARP 包處理函數(shù)完成對(duì)接收到的 ARP 應(yīng)答包的信息處理,主要是進(jìn)行 ARP 表的學(xué)習(xí)和更新,以及喚醒 IP 層的等待發(fā)送報(bào)文調(diào)度函數(shù)。 ? IP 包接收預(yù)處理函數(shù)用于提取 IP 報(bào)文的地址映射信息,以便主動(dòng)學(xué)習(xí)和及時(shí)更 新。程序不主動(dòng)學(xué)習(xí)不是發(fā)給自己 IP 地址的 MAC 地址信息,因?yàn)閱纹瑱C(jī)可以擴(kuò)展的資源有限, ARP 表占用的內(nèi)存的容量不能太大,所以只有頻繁用到的地址才應(yīng)該放在 ARP 表中,否則一旦出現(xiàn)“顛簸”, ARP 表就失效了。 圖 63 ARP 報(bào)文處理流程圖 網(wǎng)絡(luò)層 IP 協(xié)議的實(shí)現(xiàn) 在介紹系統(tǒng)中 IP 協(xié)議的實(shí)現(xiàn)之前,首先要介紹一下系統(tǒng)的參數(shù)設(shè)置。參數(shù)包括本機(jī)的 IP 地址、本機(jī)的物理地址、子網(wǎng)掩碼、網(wǎng)關(guān)的 IP 地址、自定義端口號(hào)、基于 TCP應(yīng)用的目的 IP 地址與目的端口號(hào)以及協(xié)議類型的設(shè)置。這些參數(shù)都需要
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1