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

正文內(nèi)容

avr單片機(jī)網(wǎng)絡(luò)與通訊設(shè)計(jì)-本科畢業(yè)設(shè)計(jì)完整論文開題通訊設(shè)計(jì)設(shè)計(jì)開題設(shè)計(jì)論文畢業(yè)設(shè)計(jì)單片機(jī)畢業(yè)論文附開題本科畢業(yè)-資料下載頁

2024-11-29 11:29本頁面

【導(dǎo)讀】網(wǎng)絡(luò)的分類和以太網(wǎng)知識(shí)…………網(wǎng)絡(luò)分層及主要網(wǎng)絡(luò)協(xié)議…………………AVR單片機(jī)是ATMEL公司推出的世界上著名的高性能低功耗非易失性存儲(chǔ)器和數(shù)字集成電路的一流半導(dǎo)體,它的EEPROM電可擦除技術(shù)、閃速存儲(chǔ)器技術(shù)和質(zhì)量、高可靠性的生產(chǎn)技術(shù)。在CMOS器件生產(chǎn)領(lǐng)域中,ATMEL的先進(jìn)設(shè)計(jì)水平、優(yōu)秀的生產(chǎn)工藝及封裝技術(shù)一直處于世界的領(lǐng)先地位,這些技術(shù)用于單片機(jī)生產(chǎn)使單片機(jī)也具有優(yōu)秀的品質(zhì)、在結(jié)構(gòu)、性能和功能等方面都有明顯的優(yōu)勢(shì)。TMEL公司的單片機(jī)是目前世界上一種獨(dú)具特色而性能卓越的單片機(jī)。它在計(jì)算機(jī)外部設(shè)備、通訊設(shè)備、自動(dòng)化工業(yè)控制、宇航設(shè)備、儀器儀表和各消費(fèi)類產(chǎn)品中都有著廣泛的應(yīng)用前景。

  

【正文】 些代碼的修改,我們可以將我們的主機(jī)以及為單片機(jī)所申請(qǐng)的IP及MAC地址寫入這段代碼,這樣我們就可以很容易地實(shí)現(xiàn)借助INTERNET網(wǎng)絡(luò)對(duì)單片機(jī)進(jìn)行遠(yuǎn)程登錄和訪問。(2) 決定郵件發(fā)送的源、目的地址及域名和郵件的具體內(nèi)容的部分程序段如下:***設(shè)置域名程序段***_senderDomainNameSMTPTEXT_HELO = $ dw 39。HELO 39。 ;在此處插入域名 dw 39。sx39。 dw CR,LFSMTPTEXT_HELO_END = $***設(shè)置郵件發(fā)送源的程序段***_mailFromSMTPTEXT_MAIL = $ dw 39。MAIL FROM: 39。 ;在此處插入發(fā)送者的地址 dw 39。sx39。 dw CR,LFSMTPTEXT_MAIL_END = $***設(shè)置郵件發(fā)送目的地址的程序段***_mailToSMTPTEXT_RCPT = $ dw 39。RCPT TO: 39。 ;在此處可插入接收者的地址 dw 39。joe@39。 dw CR,LFSMTPTEXT_RCPT_END = $***設(shè)置發(fā)送郵件內(nèi)容的程序段***_mailDataSMTPTEXT_TEXT = $ dw 39。From: SX39。 dw CR,LF ;在此處插入發(fā)送目的域 dw 39。To: Joe39。 dw CR,LF ;在此處插入發(fā)送對(duì)象 dw 39。Subject: Button Pressed!39。 dw CR,LF,CR,LF ;在此處插入郵件信息內(nèi)容 dw 39。Button SW2 pressed39。 dw CR,LF,39。.39。,CR,LFSMTPTEXT_TEXT_END = $ IF SMTPSMTPTEXT_QUIT = $_SMTPTEXT_QUIT dw 39。QUIT39。,$0D,$0A ENDIF上面這一段代碼,就決定了我們?cè)诶脝纹瑱C(jī)上網(wǎng)發(fā)送郵件時(shí),我們要發(fā)送的內(nèi)容,以及發(fā)送郵件的目的地址和發(fā)送端地址。這一段原代碼,在我們進(jìn)行后期的代碼設(shè)計(jì)時(shí),也要根據(jù)我們的需要,作出相應(yīng)修改。(3)主程序代碼段如下:Init jmp _InitARPInit jmp _ARPInitTCPIPInit jmp _TCPIPInitStartupDelay jmp _StartupDelayCopyRemoteIPSocket1 jmp _CopyRemoteIPSocket1CopyRemoteIPSocket2 jmp _CopyRemoteIPSocket2CheckRemotePortTCB1 jmp _CheckRemotePortTCB1CheckRemotePortTCB2 jmp _CheckRemotePortTCB2 IF HTTPE2Init jmp _E2Init ENDIFMain call @Init IF DHCP call @DHCPConfig 。通過DHCP服務(wù)器配置ISX ENDIF call @UDPAppInit 。 初始化UDP應(yīng)用 _bank MISC_BANK clr pageCount 。對(duì)頁計(jì)數(shù)器(動(dòng)態(tài)數(shù)據(jù))清零。主程序循環(huán):mainLoop IF DHCP call @CheckIPLeaseExpire 。檢測(cè)IP協(xié)議分組是否。有效 ENDIF call @NICCheckRxFrame 。檢測(cè)是否我們接收到一個(gè)。幀 jz :noRxFrame 。 沒有 call @NICWaitRxFrame 。 等待接受以太網(wǎng)幀 call @ARPCheckIfIs 。 檢測(cè),如果為ARP分組就。進(jìn)行處理 jb , :mainLoop call @CheckIPDatagram 。 如果不是ARP分組,檢測(cè)。它是否為IP分組 jb , :icmp jb , :udp jb , :tcp jmp :mainLoop:icmp call @ICMPProcPktIn 。 處理輸入的ICMP包 jmp :mainLoop:udp call @UDPProcPktIn 。 處理輸入的UDP包 jmp :mainLoop:tcp call @TCPProcPktIn 。 處理輸入的TCP包 jmp :mainLoop:noRxFrame call @ARPSendStPacket 。 如果沒有接收到。幀就發(fā)送ARP延誤包 bank TCP_BANK cje tcp2State, TCP_ST_CLOSED, :tcp2Closed 。 cje tcp2State, TCP_ST_LISTEN, :tcp2Listen 。 bank TIMER_BANK cjae conn2TimerMSB, TCP_CONN_EXP, :復(fù)位TCP2 jmp :tcpTx 。連接定時(shí)器沒有超時(shí):tcp2Closed call @TCPApp2Init 。 初始化TCP2應(yīng)用 _bank TIMER_BANK clr conn2TimerMSB 。 對(duì)連接定時(shí)器清零 jmp :tcp1Check:tcp2Listen bank TIMER_BANK clr conn2TimerMSB 。 TCP2在監(jiān)聽,對(duì)連接定時(shí)器。清零 jmp :tcp1Check:tcp1Check _bank TCP_BANK cje tcp1State, TCP_ST_CLOSED, 。TCP1關(guān)閉,檢測(cè)是否TCP1在監(jiān)聽 cje tcp1State, TCP_ST_LISTEN, 。TCP1在監(jiān)聽;檢測(cè)。TCP1是否為關(guān)閉狀態(tài) 。如果TCP1在其他狀態(tài),就檢測(cè)是否掛起連接 bank TIMER_BANK cjae conn1TimerMSB, TCP_CONN_EXP, 。復(fù)位TCP1 jmp :tcpTx 。 連接定時(shí)器沒有超時(shí):tcp1Closed call @TCPApp1Init 。 初始化TCP1應(yīng)用 _bank TIMER_BANK clr conn1TimerMSB 。 對(duì)連接定時(shí)器清零 jmp :mainLoop:tcp1Listen bank TIMER_BANK clr conn1TimerMSB 。 TCP2在監(jiān)聽,對(duì)連接定時(shí)器。清零 jmp :mainLoop:resetTCP2 。 reset hung TCP2 connection bank TCP_BANK clr tcp2UnAckMSB 。 對(duì)字節(jié)位清零來繼續(xù)發(fā)送TCP2 clr tcp2UnAckLSB mov tcp2State, TCP_ST_CLOSED IF HTTP bank HTTP_BANK 。復(fù)位HTTP網(wǎng)頁服務(wù)器的狀態(tài) clr ParseState ENDIF jmp :mainLoop:resetTCP1 。 復(fù)位被掛起的TCP1連接 bank TCP_BANK clr tcp1UnAckMSB 。 清除字節(jié)位來繼續(xù)發(fā)送TCP1 clr tcp1UnAckLSB mov tcp1State, TCP_ST_CLOSED IF SMTP bank SMTP_BANK 。 復(fù)位SMTP客戶端的狀態(tài) clr smtpState ENDIF jmp :mainLoop 。 回到主循環(huán) 。如果等待ARP響應(yīng)就不允許新的信息發(fā)送 :tcpTx jb , :mainLoop mov w, (1TCP_TXSEMA) xor flags2, w 。觸發(fā)TCP_TXSEMA來獲得其他的 。 TCP連接時(shí)間片用于發(fā)送 call @TCPTransmit 。 檢測(cè)應(yīng)用是否有數(shù)據(jù)要發(fā)送, jmp :mainLoop 。 返回到主程序 下面就主程序的流程分析如下:初始化為DHCP應(yīng)用?通過DHCP服務(wù)器配置IPdhcpconfig初始化UDP應(yīng)用主程序循環(huán)是否 圖4 主程序流程(主程序循環(huán))圖是是DHCP應(yīng)用?檢測(cè)是否收到一幀IP分組是否過期DHCPconfig是等待接收以太網(wǎng)幀是否為ARP 分組發(fā)送ARP延誤幀建立TCP連接檢測(cè)是否為IP分組根據(jù)IP分組屬性(UDP,ICMP,TCP)分別處理相應(yīng)包是否是否否是否否主程序分析:在主程序的開始部分,先要檢測(cè)本次應(yīng)用是否為DHCP應(yīng)用,由于DHCP應(yīng)用要求主機(jī)動(dòng)態(tài)決定IP地址,所以在判斷為DHCP應(yīng)用后,必須第一步就使用DHCPCONFIG子程序來進(jìn)行配置;在主程序中設(shè)一個(gè)主程序循環(huán)來控制不停地檢測(cè)各標(biāo)志位的狀態(tài),再根據(jù)標(biāo)志位的狀態(tài)來決定作出各種相應(yīng)的處理。主程序在每次檢測(cè)到一個(gè)數(shù)據(jù)幀后,首先將判斷它是否為ARP分組,如果是ARP分組,就對(duì)它作出響應(yīng)處理,發(fā)回一個(gè)ARP應(yīng)答分組,表示已經(jīng)得到目的主機(jī)的確認(rèn),可以發(fā)送數(shù)據(jù)了,如果不是ARP分組,就再判斷它是哪一種協(xié)議分組,(ICMP,UDP,TCP),在根據(jù)不同的分組類型,作出不同的處理。在主程序循環(huán)中,還有一點(diǎn)是當(dāng)它長(zhǎng)時(shí)間檢測(cè)不到數(shù)據(jù)幀是,就發(fā)送一個(gè)延遲APR分組給源主機(jī),同時(shí)申請(qǐng)建立TCP連接,在TCP連接中,它是采用了三次握手的連接建立方法來建立連接,即通過檢測(cè)兩個(gè)標(biāo)志為TCP2STATE,和TCP1STATE的狀態(tài)來決定目前的連接狀態(tài),同時(shí)分別根據(jù)不同的狀態(tài)作出處理。最終保證連接的成功、可靠。(4) 用于檢測(cè)是否接受到一個(gè)以太網(wǎng)幀的程序原代碼如下:NICCheckRxFrame _bank NIC_BANK clr nicIOAddr 。 對(duì)當(dāng)前的地址寄存器清零 mov w, %01100010 。跳到第一頁,并退出DMA通道 call NICWrite ;對(duì)ISA主機(jī)總線執(zhí)行一個(gè)I/O寫操作 mov nicIOAddr, $07 ;CURR call NICRead ;對(duì)ISA主機(jī)總線執(zhí)行一個(gè)I/O寫操作,并;把被寫字節(jié)放入W mov globTemp1, w clr nicIOAddr 。 對(duì)當(dāng)前的地址寄存器清零 mov w, %00000010 。 跳到第零頁 call NICWrite mov nicIOAddr, $03 ;BNRY call NICRead xor w, globTemp1 。 如果CURR = BNRY =沒有信息包被接收 retp 此程序段主要檢測(cè)是否已經(jīng)接收到一個(gè)以太網(wǎng)幀,如果已經(jīng)接收到一個(gè)以太網(wǎng)幀,就對(duì)Z位清零,否則,就把Z位置為1,主程序就可以根據(jù)Z位的狀態(tài),判斷是否已經(jīng)接收到一個(gè)以太網(wǎng)幀,從而作出相應(yīng)的處理。(5)用于檢測(cè)是否有數(shù)據(jù)要發(fā)送的部分原代碼如下:_TCPTransmit _bank TCP_BANK ;首先進(jìn)行TCP初始化 ;檢測(cè)哪一個(gè)TCP連接有機(jī)會(huì)來傳送數(shù)據(jù) jb , :tcp2Tx ;是否使用TCP1來傳送數(shù)據(jù) cjae tcp1State, TCP_ST_ESTABED, :ok1 ;可用TCP1 ;是否建立連接 retp ;退出,TCP1已經(jīng)連接 ;不建立連接 ;建立連接:ok1 test tcp1UnAckMSB 。檢測(cè)哪一位是未知位 jnz :timeout1 ;超時(shí) test tcp1UnAckLSB jnz :timeout1 cje tcp1State, TCP_ST_FINWAIT1, :finTimeout ;檢測(cè)FIN超時(shí) jmp :askAppTxData ;TCP2是否有機(jī)會(huì)來傳送:tcp2Tx cjae tcp2State, TCP_ST_ESTABED, :ok2;使用TCP2 ;是否建立連接 retp ;TCP2已經(jīng)建立連接,退出子程序;不建立連接 ;建立TCP2連接:ok2 test tcp2UnAckMSB ;檢測(cè)TCP2未知位 jnz :timeout2 ;超時(shí) test tcp2UnAckLSB jnz :timeout2 cje tcp2State, TCP_ST_FINWAIT1, :finTimeout ;檢測(cè)是否為;FIN超時(shí)這一段程序主要是檢測(cè)應(yīng)用是否有數(shù)據(jù)要發(fā)送,如果已經(jīng)沒有未處理的數(shù)據(jù)包,而應(yīng)用又有數(shù)據(jù)等待發(fā)送,就要對(duì)數(shù)據(jù)組幀,把數(shù)據(jù)以數(shù)據(jù)包的形式發(fā)送出去。 對(duì)下一步的工作的思考由于時(shí)間和硬件實(shí)現(xiàn)環(huán)境的限制,使的本次畢業(yè)設(shè)計(jì)具體工作只能到此為止,但通過兩個(gè)多月的工作,以及對(duì)演示板代碼的熟悉與分析,使我對(duì)下一步的具體工作也有了一個(gè)初步的考慮。首先,我們可以在演示板的基礎(chǔ)上,通過編程工具,更好的分析源程序,以及我們要對(duì)TCP/IP協(xié)議族的代碼實(shí)現(xiàn)方法要有一個(gè)完整掌握。我們要實(shí)現(xiàn)更好的單片機(jī)網(wǎng)絡(luò)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1