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

正文內(nèi)容

基于以太網(wǎng)的防火報(bào)警系統(tǒng)測(cè)控楊龍畢業(yè)設(shè)計(jì)(編輯修改稿)

2025-07-16 12:44 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 網(wǎng)協(xié)議(用于10MBPS 的以太網(wǎng),作者以下所說(shuō)的以太網(wǎng)均指10M 以太網(wǎng),而不是100M,1000M 的以太網(wǎng))以太網(wǎng)協(xié)議有兩種,還有一種是以太網(wǎng)的封裝格式?,F(xiàn)代的操作系統(tǒng)均能同時(shí)支持這兩種類(lèi)型的協(xié)議格式。因此對(duì)我們來(lái)說(shuō)只需要了解其中的一種就夠了,特別是對(duì)單片機(jī)來(lái)說(shuō),不可能支持太多的協(xié)議格式。以太網(wǎng)的物理傳輸幀見(jiàn)表33表33 以太網(wǎng)的物理傳輸幀PR SD DA SA TYPE DATA PAD FCS 56 8 48 48 16 不超過(guò) 可 32位 位 位 位 位 1500字 選 位 PR:同步位,用于收發(fā)雙方的時(shí)鐘同步,同時(shí)也指明了傳輸?shù)乃俾剩?0M 和100M的時(shí)鐘頻率不一樣,所以100M 網(wǎng)卡可以兼容10M 網(wǎng)卡),是56 位的二進(jìn)制數(shù)101010101010.....SD: 分隔位,表示下面跟著的是真正的數(shù)據(jù),而不是同步時(shí)鐘,為8 位的10101011,跟同步位不同的是最后2 位是11 而不是10. DA:目的地址,以太網(wǎng)的地址為48 位(6 個(gè)字節(jié))二進(jìn)制地址,則是廣播地址,廣播地址的數(shù)據(jù)可以被任何網(wǎng)卡接收到.SA:源地址,48 位,表明該幀的數(shù)據(jù)是哪個(gè)網(wǎng)卡發(fā)的,即發(fā)送端的網(wǎng)卡地址,同樣是6 個(gè)字節(jié).TYPE:類(lèi)型字段,表明該幀的數(shù)據(jù)是什么類(lèi)型的數(shù)據(jù),不同的協(xié)議的類(lèi)型字段不同。如:0800H 表示數(shù)據(jù)為IP 包,0806H 表示數(shù)據(jù)為ARP 包,814CH 是SNMP 包,8137H為IPX/SPX 包,(小于0600H 的值是用于IEEE802 的,表示數(shù)據(jù)包的長(zhǎng)度。)DATA:數(shù)據(jù)段,該段數(shù)據(jù)不能超過(guò)1500 字節(jié)。因?yàn)橐蕴W(wǎng)規(guī)定整個(gè)傳輸包的最大長(zhǎng)度不能超過(guò)1514 字節(jié)。(14 字節(jié)為DA,SA,TYPE)PAD:填充位。由于以太網(wǎng)幀傳輸?shù)臄?shù)據(jù)包最小不能小于60 字節(jié), 除去(DASA,TYPE 14 字節(jié)),還必須傳輸46 字節(jié)的數(shù)據(jù),當(dāng)數(shù)據(jù)段的數(shù)據(jù)不足46 字節(jié)時(shí),后面補(bǔ)000000.....(當(dāng)然也可以補(bǔ)其它值)FCS:32 位的CRC 校驗(yàn),該校驗(yàn)由網(wǎng)卡自動(dòng)計(jì)算,自動(dòng)生成,自動(dòng)校驗(yàn),PR,SD,PAD,FCS 這幾個(gè)數(shù)據(jù)段我們不用理它,它是由網(wǎng)卡自動(dòng)產(chǎn)生的,我們要理的是DA,SA,TYPE,DATA (但傳輸?shù)奈涣魇怯寐鼜厮固鼐幋a的)以太網(wǎng)的沖突退避算法就不介紹了,+SA+TYPE+DATA+PAD 最小為60 字節(jié),最大為1514 ,一個(gè)是廣播地位,一個(gè)是多播地址(我們用不上),(用于網(wǎng)絡(luò)分析和監(jiān)控).任何兩個(gè)網(wǎng)卡的物理地址都是不一樣的,是世界上唯一的,網(wǎng)卡地址由專(zhuān)門(mén)機(jī)構(gòu)分,(網(wǎng)卡地址的前三個(gè)字節(jié)),但一般不需要. RTL8019AS特性介紹由臺(tái)灣Realtek 公司生產(chǎn)的RTL8019AS 以太網(wǎng)控制器,由于其優(yōu)良的性能、低兼的價(jià)格,使其在市場(chǎng)上10Mbps 網(wǎng)卡中占有相當(dāng)?shù)谋壤?。主要性能:?)符號(hào)Ethernet II (10Base10Base10BaseT)標(biāo)準(zhǔn);(2)全雙工,收發(fā)可同時(shí)達(dá)到10Mbps 的速率;(3)內(nèi)置16KB 的SRAM,用于收發(fā)緩沖,降低對(duì)主處理器的速度要求;(4)支持8/16 位數(shù)據(jù)總線,8 個(gè)中斷申請(qǐng)線以及16個(gè)I/O 基地址選擇;(5)支持UTP、AUI、BNC 自動(dòng)檢測(cè),還支持對(duì)10BaseT 拓?fù)浣Y(jié)構(gòu)的自動(dòng)極性修正;(6)允許4 個(gè)診斷LED 引腳可編程輸出;(7)100 腳的PQFP 封裝,縮小了PCB 尺寸。RTL8019AS 內(nèi)部可分為遠(yuǎn)程DMA 接口、本地DMA 接口、MAC(介質(zhì)訪問(wèn)控制)邏輯、數(shù)據(jù)編碼解碼邏輯和其他端口。內(nèi)部結(jié)構(gòu)如圖 39所示。圖39 RTL8019as內(nèi)部結(jié)構(gòu)遠(yuǎn)程DMA 接口是指單片機(jī)對(duì)RTL8019AS 內(nèi)部RAM 進(jìn)行讀寫(xiě)的總線,即ISA 總線的接口部分。單片機(jī)收發(fā)數(shù)據(jù)只需對(duì)遠(yuǎn)程DMA 操作。本地DMA 接口是把RTL8019AS 與網(wǎng)線的連接通道,完成控制器與網(wǎng)線的數(shù)據(jù)交換。MAC(介質(zhì)訪問(wèn)控制)邏輯完成以下功能:當(dāng)單片機(jī)向網(wǎng)上發(fā)送數(shù)據(jù)時(shí),先將一幀數(shù)據(jù)通過(guò)遠(yuǎn)程DMA 通道送RTL8019AS 中的發(fā)送緩存區(qū),然后發(fā)出傳送命令;當(dāng)RTL8019AS 完成了上幀的發(fā)送后,再開(kāi)始此幀的發(fā)送。RTL8019 接收到的數(shù)據(jù)通過(guò)MAC 比較、CRC 校驗(yàn)后,由FIFO 存到接收緩沖區(qū);收滿一幀后,以中斷或寄存器標(biāo)志的方式通知主處理器。FIFO 邏輯對(duì)收發(fā)數(shù)據(jù)作16 字節(jié)的緩沖,以減少對(duì)本地DMA 請(qǐng)求的頻率。內(nèi)部RAM 地址空間分配RTL8019AS 內(nèi)部有兩塊RAM 區(qū)。一塊16K 字節(jié),地址為0x4000~0x7fff;一塊32 字節(jié),地址為0x0000~0x001f。RAM按頁(yè)存儲(chǔ),每256 字節(jié)為一頁(yè)。一般將RAM 的前12 頁(yè)(即0x4000~0x4bff)存儲(chǔ)區(qū)作為發(fā)送緩沖區(qū);后52 頁(yè)(即0x4c00~0x7fff)存儲(chǔ)區(qū)作為接收緩沖區(qū)。第0 頁(yè)叫Prom 頁(yè),只有32 字節(jié),地址為0x0000~0x001f,用于存儲(chǔ)以太網(wǎng)物理地址。要接收和發(fā)送數(shù)據(jù)包就必須通過(guò)DMA 讀寫(xiě)RTL8019AS 內(nèi)部的16KB RAM。它實(shí)際上是雙端口的RAM,是指有兩套總線連接到該RAM,一套總線RTL8019AS 讀或?qū)懺揜AM,即本地DMA;另一套總線是單片機(jī)讀或?qū)懺揜AM,即遠(yuǎn)程DMA。以太網(wǎng)控制器發(fā)送和接收數(shù)據(jù)包過(guò)程:先將待發(fā)送的數(shù)據(jù)包存入芯片RAM,給出發(fā)送緩沖區(qū)首地址和數(shù)據(jù)包長(zhǎng)度(寫(xiě)入TPSR、TBCR0,1),啟動(dòng)發(fā)送命令(CR=0x3E)即可實(shí)現(xiàn)RTL8019AS發(fā)送功能。RTL8019AS會(huì)自動(dòng)按以太網(wǎng)協(xié)議完成發(fā)送并將結(jié)果寫(xiě)入狀態(tài)寄存器。接收緩沖區(qū)構(gòu)成一個(gè)循環(huán)FIFO隊(duì)列,PSTART、PSTOP兩個(gè)寄存器限定了循環(huán)隊(duì)列的開(kāi)始和結(jié)束頁(yè),CURR為寫(xiě)入指針,受芯片控制,BNRY為讀出指針,由主機(jī)程序控制。根據(jù)CURR==BNRY+1?可以判斷是否收到新的數(shù)據(jù)包,新收到的數(shù)據(jù)包格式存于以CURR指出的地址為首址的RAM中。當(dāng)CURR==BNRY時(shí)芯片停止接收數(shù)據(jù)包。如果做過(guò)FPGA設(shè)計(jì),用過(guò)VHDL,可以想象到硬件芯片的工作原理。此處,設(shè)計(jì)2個(gè)8bit寄存器和一個(gè)2輸入比較器,當(dāng)收到數(shù)據(jù)包時(shí),接收狀態(tài)機(jī)根據(jù)當(dāng)前狀態(tài)和比較器結(jié)果決定下一個(gè)狀態(tài),如果CURR=BNRY,進(jìn)入停收狀態(tài);反之,CURR按模增1。8019數(shù)據(jù)手冊(cè)沒(méi)有給出硬件狀態(tài)機(jī)實(shí)現(xiàn)方法,說(shuō)明也很簡(jiǎn)略,往往要通過(guò)作實(shí)驗(yàn)的方法推理出工作過(guò)程。比如,ISR寄存器不只和中斷有關(guān),當(dāng)接收緩沖溢出時(shí),如果不清ISR(寫(xiě)入FFH),芯片將一直停止接收。在流量較大時(shí)溢出經(jīng)常發(fā)生,此時(shí)不清ISR,就會(huì)導(dǎo)致網(wǎng)卡芯片死機(jī)。RTL8019AS以太網(wǎng)控制器以存儲(chǔ)器(16K雙口RAM)為核心,本地和遠(yuǎn)端控制器并發(fā)操作。這種體系結(jié)構(gòu)滿足了數(shù)據(jù)帶寬的需要。RTL8019AS擁有控制、狀態(tài)、數(shù)據(jù)寄存器,通過(guò)它們,51單片機(jī)可以與RTL8019AS通信。 太網(wǎng)控制器初始化(1)以太網(wǎng)控制器的復(fù)位這是太網(wǎng)控制器驅(qū)動(dòng)程序的需要做的第一個(gè)內(nèi)容,將太網(wǎng)控制器設(shè)置為跳線模式。程序從main()開(kāi)始執(zhí)行:include /* 為作者所用的頭文件,包含所有AT89S52寄存器的大寫(xiě)和小寫(xiě)的定義,和一些常用的子函數(shù),一些宏的定義*/ main(){delaymsecond(10)。//延時(shí)大約1秒,保證電源穩(wěn)定和太網(wǎng)控制器自身的上電完成。netcardreset()。//復(fù)位太網(wǎng)控制器的子程序 ……}下面介紹太網(wǎng)控制器的復(fù)位子程序:define reg1f XBYTE[0xdf00] //太網(wǎng)控制器的復(fù)位端口的地址,對(duì)應(yīng)于太網(wǎng)控制器的地址25FH。define uint unsigned int //uint 代表unsigned int ,一般使用縮寫(xiě)uintdefine uchar unsigned char //uchar 代表unsigned char sbit reset=p3^4。 //void netcardreset(){uint data i。uchar data temp。reset=1。 //使太網(wǎng)控制器的RSTDRV引腳變成高電平,太網(wǎng)控制器是高電平復(fù)位的。for(i=0。ii++)。//延時(shí)程序,至少需要reset=0。 //使太網(wǎng)控制器的RSTDRV引腳變成低電平,太網(wǎng)控制器上電復(fù)位完畢f(xié)or(i=0。ii++)。temp=reg1f。//讀網(wǎng)卡的復(fù)位端口reg1f=temp。 //寫(xiě)網(wǎng)卡的復(fù)位端口for(i=0。ii++)。 }上面所講的實(shí)際上是網(wǎng)卡復(fù)位的兩種情況,reset=1。reset=0相當(dāng)于冷復(fù)位temp=reg1f。reg1f=temp相當(dāng)于熱復(fù)位對(duì)網(wǎng)卡的復(fù)位端口的讀或?qū)憣?fù)位網(wǎng)卡,網(wǎng)卡內(nèi)部將執(zhí)行復(fù)位過(guò)程。讀寫(xiě)是隨意的,寫(xiě)入任意的數(shù)都將復(fù)位網(wǎng)卡。(2)讀取以太網(wǎng)控制器的物理地址在上電復(fù)位后,RTL8019AS芯片自動(dòng)將存儲(chǔ)的物理地址讀到以00H開(kāi)始的內(nèi)部RAM中,讀取12個(gè)字節(jié),奇偶地址內(nèi)容是重復(fù)放置的。然后將網(wǎng)卡的物理地址寫(xiě)到事先設(shè)置好的地址Hardware_addr[i]中,6個(gè)字節(jié)。(3)寄存器初始化因?yàn)镽TL8019AS的頁(yè)2寄存器屬性是只讀的,頁(yè)3用于即插即用的增強(qiáng)功能,所以要在復(fù)位正確后,只需要對(duì)的頁(yè)1和頁(yè)0兩頁(yè)寄存器進(jìn)行初始化。l 向命令寄存器CR(OOH)寫(xiě)入21H(選擇寄存器頁(yè)0),首先對(duì)第0頁(yè)的寄存器初始化,網(wǎng)卡停止運(yùn)行。l 設(shè)置接收配置寄存器RCR(0CH)為CCH,接收自己的數(shù)據(jù)包或廣播、多播地址的數(shù)據(jù)包,拒收小于64字節(jié)或接收錯(cuò)誤的包。l 設(shè)置發(fā)送配置寄存器TCR(0DH)為EOH,工作在正常模式,自動(dòng)生成CRC校驗(yàn);設(shè)置數(shù)據(jù)結(jié)構(gòu)寄存器DCR(OEH)為C8H,使用FIFO緩存,以字節(jié)方式進(jìn)行DMA數(shù)據(jù)傳輸。l 將緩沖區(qū)劃分為發(fā)送緩沖區(qū)和接收緩沖區(qū)。定義4000H一4BFFH段為發(fā)送緩沖區(qū),共12頁(yè),剛好可以存儲(chǔ)2個(gè)最大的以太網(wǎng)數(shù)據(jù)包,4C00H.7 FFH段為接收緩沖區(qū),共52頁(yè)。這樣,可以設(shè)置TPSR(04H)為40H,指向第一個(gè)發(fā)送緩沖區(qū)的頁(yè);設(shè)置PSTART(01H)為4CH,PSTOP(02H)為80H,分別定義了接收緩沖區(qū)起始頁(yè)的地址和結(jié)束頁(yè)的地址;設(shè)置BNRY(03H)為4CH,設(shè)定了BNRY指向最后一個(gè)已經(jīng)讀取的頁(yè)。l 設(shè)置中斷狀態(tài)寄存器ISR(07H)為FFH,清除所有中斷標(biāo)志。l 設(shè)置中斷屏蔽寄存器IMR(0FH)為O,屏蔽掉所有中斷。l 設(shè)置CR為61H(選擇頁(yè)面1),對(duì)第1頁(yè)的寄存器初始化。l 設(shè)置網(wǎng)卡地址寄存器,把物理地址寄存器PARO(01H)一PAR5(06H)設(shè)置為Hardware_addr[i]中的地址。l 設(shè)置當(dāng)前頁(yè)面寄存器CURR(07H)為PSTART+I,即4DH,指向當(dāng)前正在寫(xiě)的頁(yè)的下一頁(yè)。l 設(shè)置CR為22H,芯片進(jìn)入工作狀態(tài)。 檢測(cè)節(jié)點(diǎn)RTL8019as以太網(wǎng)控制器驅(qū)動(dòng)程序設(shè)計(jì)RTL8019as工作流程比較簡(jiǎn)單,驅(qū)動(dòng)程序?qū)⒁l(fā)送的數(shù)據(jù)包按指定格式寫(xiě)入芯片并啟動(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)換:數(shù)據(jù)包===電信號(hào)。以太網(wǎng)協(xié)議由芯片硬件自動(dòng)完成,對(duì)程序員透明。驅(qū)動(dòng)程序有3種功能:芯片初始化、收包、發(fā)包。這部分軟件運(yùn)行于監(jiān)測(cè)節(jié)點(diǎn),主要完成監(jiān)測(cè)節(jié)點(diǎn)的數(shù)據(jù)的處理并且以幀的形式發(fā)送到網(wǎng)絡(luò)傳輸線上。以太網(wǎng)發(fā)送數(shù)據(jù)包子程序流程圖見(jiàn)圖310所示。 圖310以太網(wǎng)發(fā)送數(shù)據(jù)包子程序流程圖數(shù)據(jù)的發(fā)送過(guò)程包含三個(gè)步驟:數(shù)據(jù)包的封裝;通過(guò)遠(yuǎn)程DMA將數(shù)據(jù)包送到數(shù)據(jù)發(fā)送緩沖區(qū);通過(guò)RTL8019AS的本地DMA將數(shù)據(jù)送入數(shù)據(jù)緩存器進(jìn)行發(fā)送。部分程序:****定義緩沖區(qū)****union addr_u mynodeid[3]={0x0f00,0xf0f0,0xf001}。//存儲(chǔ)網(wǎng)卡的物理地址union addr_u protocal。//臨時(shí)變量uchar write_dma_flag=0。//兩頁(yè)發(fā)送緩沖區(qū)使用標(biāo)志****RTL8019AS復(fù)位函數(shù)****void rtl8019as_reset(){ uint i= uchar temp。//冷復(fù)位 reset_rtl8019as=1。//網(wǎng)卡硬件復(fù)位 while(i)。 reset_rtl8019as=0。 { //delay i= while(i)。 } //熱復(fù)位 temp=RESET_PORT。 RESET_PORT=temp。 { //delay i= while(i)。 }}****RTL8019AS寄存器頁(yè)選擇函數(shù)****void page(uchar pagenumber){ uchar temp。 temp=reg00。 //讀入命令寄存器的值 tempamp。=0x3b。 //高位兩位清零,而且TXP保持為零 pagenumber=pagenumber6。//將底兩位移到高端 temp|=pagenumber。 //寫(xiě)入高兩位 reg00=temp。 //寫(xiě)入命令寄存器}****讀取網(wǎng)卡物理地址****void readmyno
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1