嵌入式交通燈論文相關(guān)文件_第1頁
嵌入式交通燈論文相關(guān)文件_第2頁
嵌入式交通燈論文相關(guān)文件_第3頁
嵌入式交通燈論文相關(guān)文件_第4頁
嵌入式交通燈論文相關(guān)文件_第5頁
已閱讀5頁,還剩78頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、78/83摘 要在對交叉路口車流信息的Internet傳輸與操縱進行設(shè)計需求分析和功能分析的基礎(chǔ)上,選用ATMEL公司的ATmega128單片機做為智能交通主控芯片,以太網(wǎng)卡操縱芯片采納 RTL8019AS芯片將 TCP/IP協(xié)議棧嵌入到單片機,提供一個接入Internet的低成本嵌入式系統(tǒng)和網(wǎng)絡(luò)訪問的有效方法。用它的網(wǎng)絡(luò)傳輸 、遠程監(jiān)視操縱功能和TCP Socket遠程操縱實時通,設(shè)計出新型簡單的智能交通操縱系統(tǒng)。 本文重點介紹客戶端的實現(xiàn),它跟交通燈操縱系統(tǒng)如何利用中斷相互操縱,和它跟操縱中心如何通過網(wǎng)絡(luò)相互交換信息。關(guān)鍵詞 智能交通 Internet ATmega128 TCP/IP協(xié)議

2、 AbstractOn the foundation of design need analysis and function analysis of the Internet information transmission and control of Traffic Crossing,this paper chooses the ATmega128 single-chip microcomputer of ATMEL corporationand as the main chip of intelligent traffic control,RTL8019AS as Ethernet c

3、ontrol chip and embed the TCP/IP protocol stack into the single-chip.It is a low-cost embedded system for linking with Internet, and an effective way to access the network.Using its network transmission, long-distance watching-control ,and the real-time data communication by socket-technology, we ca

4、n implement the develop of new-kind and straightforward intelligent traffic control system.This paper focuses on introducing how to implement the client, with the interrupt it how to mutually control with the traffic light control system ,and it how to mutually exchange information with the control

5、center through the Internet.Keyword: Intelligent Traffic; Internet; ATmega128; TCP/IP Protocol;目 錄 TOC o 1-3 h z u HYPERLINK l _Toc169864306 1.緒論 PAGEREF _Toc169864306 h 1 HYPERLINK l _Toc169864307 1.1 選題的背景和意義 PAGEREF _Toc169864307 h 1 HYPERLINK l _Toc169864308 1.2 本課題要緊研究內(nèi)容研究方法 PAGEREF _Toc1698643

6、08 h 1 HYPERLINK l _Toc169864309 2.系統(tǒng)分析與設(shè)計 PAGEREF _Toc169864309 h 3 HYPERLINK l _Toc169864310 2.1系統(tǒng)分析 PAGEREF _Toc169864310 h 3 HYPERLINK l _Toc169864311 2.2方案論證 PAGEREF _Toc169864311 h 3 HYPERLINK l _Toc169864312 2.3系統(tǒng)設(shè)計 PAGEREF _Toc169864312 h 5 HYPERLINK l _Toc169864313 3.客戶端系統(tǒng)的分析與設(shè)計 PAGEREF _To

7、c169864313 h 8 HYPERLINK l _Toc169864314 3.1 開發(fā)工具 PAGEREF _Toc169864314 h 8 HYPERLINK l _Toc169864315 3.2 系統(tǒng)分析 PAGEREF _Toc169864315 h 11 HYPERLINK l _Toc169864316 3.3 總體設(shè)計 PAGEREF _Toc169864316 h 13 HYPERLINK l _Toc169864317 4.結(jié)果分析 PAGEREF _Toc169864317 h 19 HYPERLINK l _Toc169864318 5.總結(jié) PAGEREF _

8、Toc169864318 h 21 HYPERLINK l _Toc169864319 5.1畢業(yè)設(shè)計工作的總結(jié) PAGEREF _Toc169864319 h 21 HYPERLINK l _Toc169864320 5.2工作展望 PAGEREF _Toc169864320 h 21 HYPERLINK l _Toc169864321 附錄 PAGEREF _Toc169864321 h 22 HYPERLINK l _Toc169864322 參考文獻 PAGEREF _Toc169864322 h 35 HYPERLINK l _Toc169864323 致 謝 PAGEREF _To

9、c169864323 h 361.緒論1.1 選題的背景和意義1.1.1 選題的背景目前,大多交通路口的信號燈的操縱差不多上固定的、局部的,不能隨車流的變化而改變。這對緩解交通擁擠、減少交通事故、節(jié)約能耗、降低污染等帶來不便。建立實時、準確、高效的交通路口車流自動統(tǒng)計分析及誘導(dǎo)操縱系統(tǒng),通過采集和分析動態(tài)信息,然后有針對性地操縱誘導(dǎo),也即建立智能交通系統(tǒng),將各個交通路口車流信息及時送到操縱中心,在操縱中心使得整個都市得到實時監(jiān)控。這對一個都市整體交通擁擠問題得到改善,交通事故能夠降低有重大意義。智能交通系統(tǒng)1(簡稱ITS) ,是將先進的信息技術(shù),計算機技術(shù),數(shù)據(jù)通信技術(shù),傳感技術(shù),電子操縱技術(shù)

10、,自動操縱理論,運籌學(xué),人工智能等有效地綜合運用于交通運輸,服務(wù)操縱和車輛制造,加強了車輛,道路和使用者三者之間的聯(lián)系,從而形成一種定時,準確,高效的綜合運輸系統(tǒng)。1.1.2 選題的意義(1)有利于緩解交通的堵塞問題。 因為我們在現(xiàn)實生活中經(jīng)常碰到有專門長的車隊在等待著綠燈亮。有了那個智能交叉路口操縱系統(tǒng),就能夠有效的解決那個問題,不僅提高了交通燈的利用效率,也及時的疏散車流,緩解了交通壓力。(2)有利于減少交通事故 在我們的現(xiàn)實生活中經(jīng)常聽到報道,講某個人因搶紅綠燈,而導(dǎo)致的車禍的情況也有專門多的,追究其緣故,那確實是趕時刻,因為有時交叉路口中的一個車道沒有車然而該車道顯示綠燈,而有車等待的

11、卻是綠燈,因此那些人就搶紅綠燈,因此導(dǎo)致了車禍的發(fā)生。然而用了那個智能效能操縱系統(tǒng)確實是夠幸免這種情況,它能夠讓有車等待的車道顯示綠燈讓其通過。1.2 本課題要緊研究內(nèi)容研究方法1.2.1 課題研究的內(nèi)容本課題利用Web Client模塊內(nèi)部的TCP/IP網(wǎng)絡(luò)協(xié)議5,以及10Base-T網(wǎng)絡(luò)接口,連接到以太網(wǎng),方便的實現(xiàn)串口設(shè)備的聯(lián)網(wǎng)。在交叉路口終端,將傳感器采集到的信息利用Web Client上網(wǎng),將信息上傳交通監(jiān)控中心,在監(jiān)控中心對數(shù)據(jù)加工處理并通過網(wǎng)絡(luò)實時監(jiān)控整個都市的交通。差不多的框圖如圖1-1:圖1-1 系統(tǒng)差不多框圖1.2.2 課題研究的方法本課題采納了客戶端/服務(wù)器端的編程模式并

12、利用windows socket API函數(shù),把Web Client作為客戶端,把監(jiān)控中心作為服務(wù)器端,把從Web Client中的車流信息通過10Base-T網(wǎng)絡(luò)接口傳輸?shù)椒?wù)器端,服務(wù)器端把車流信息保存在數(shù)據(jù)庫,同時對該車流信息進行分析,然后發(fā)送操縱信息,操縱交通信號燈的顯示時刻與變換。2.系統(tǒng)分析與設(shè)計2.1系統(tǒng)分析2.1.1系統(tǒng)簡介本系統(tǒng)是交叉路口車流信息的Internet6傳輸與操縱,它要緊是把從交叉路口終端采集到的車流信息通過Internet發(fā)送給監(jiān)控中心,監(jiān)控中心依照交叉路口發(fā)送的車流信息發(fā)出相應(yīng)操縱命令,以操縱交叉路口的交通情況。2.1.2系統(tǒng)詳細介紹系統(tǒng)采納客戶端/服務(wù)端的模

13、式,把車流信息采集終端作為客戶端,監(jiān)控中心作為服務(wù)端,因此系統(tǒng)可為三個模塊分不是:客戶端模塊、傳輸模塊、服務(wù)端模塊??蛻舳四K:負責(zé)采集車流信息,并把車流信息發(fā)送給傳輸模塊,也能夠同意傳輸模塊的操縱命令數(shù)據(jù),以操縱交通燈的顯示情況。傳輸模塊:負責(zé)數(shù)據(jù)在客戶端模塊與服務(wù)端模塊之間數(shù)據(jù)的傳輸。服務(wù)端模塊:接收傳輸模塊發(fā)送的車流信息,并把操縱命令發(fā)送給傳輸模塊。2.2方案論證本系統(tǒng)采納高速單片機ATmega1287加 RTL8019AS以太網(wǎng)操縱器。用嵌入式 TCPIP3協(xié)議,能夠?qū)崿F(xiàn) TCP網(wǎng)絡(luò)傳輸功能。而在交通燈操縱系統(tǒng)這部分,我們采納了80C51作為操縱芯片。ATmega1287為基于AVR

14、RISC結(jié)構(gòu)的8位低功耗微處理器。由于其先進的指令集以及單周期指令執(zhí)行時刻,ATmega128的數(shù)據(jù)吞吐率高達1MIPS/MHz,從而能夠緩減系統(tǒng)在功耗和處理速度之間的矛盾。128K字節(jié)的系統(tǒng)內(nèi)可編程Flash(具有在寫的過程中還能夠讀的能力即RWW)、4K 字節(jié)的EEPROM、4K 字節(jié)的SRAM、53個通用I/O 口線、32個通用工作寄存器、實時時鐘RTC、4個靈活的具有比較模式和PWM 功能的定時器/計數(shù)器(T/C)、兩個USART、面向字節(jié)的兩線接口TWI、8通道10位ADC、具有片內(nèi)振蕩器的可編程看門狗定時器、SPI串行端口、與IEEE1149.1規(guī)范兼容的JTAG 測試接口,以及六

15、種能夠通過軟件選擇的省電模式。由于ATMEL 的ATmega128 單片機豐富的片內(nèi)資源因此專門方便就能夠運行一個小型的操作系統(tǒng)如 uC /OS,能夠嵌入TCP / IP 協(xié)議,從而達到嵌入式 Web Client的目的,同時又大大簡化了外圍電路,提高了可靠型。RTL8019AS是由臺灣睿昱(Realtek)公司生產(chǎn)的一種高度集成的 10M以太網(wǎng)操縱器與 NE2000兼容,支持 8位、l6位數(shù)據(jù)總線;內(nèi)置 16 KB的SRAM作為緩存;可連接同軸電纜和雙絞線,并可自動檢測所連接的介質(zhì)。因此利用ATmega128與RTL8019AS就能夠組成一個具有TCP/IP協(xié)議的同時能夠與其它網(wǎng)絡(luò)通信程序進

16、行通信的設(shè)備 WEB Client。兩者結(jié)合的硬件連接圖如圖2-1:圖2-1 硬件框圖它跟操縱中心相連接是基于Internet6的網(wǎng)絡(luò)信息傳輸,其傳輸協(xié)議是因特網(wǎng)差不多成熟的TCP/IP協(xié)議,不僅能夠完成本地信息的接收和發(fā)送而且TCP保證了收到的數(shù)據(jù)差不多上預(yù)備無誤,另外在遠距離上能夠完成同樣的功能,這就使該系統(tǒng)能較少的受地域的限制,應(yīng)用范圍寬敞。它既是一個網(wǎng)絡(luò)化的系統(tǒng),也是一個廣義的交通信息傳輸。跟以住的無線通信智能交通相比,用網(wǎng)絡(luò)實現(xiàn)智能交通能夠利用現(xiàn)有四通八達的網(wǎng)絡(luò)光纜,只要在各個交叉路口留下網(wǎng)絡(luò)端口就能夠通過網(wǎng)絡(luò)進行數(shù)據(jù)的傳輸,這大大節(jié)約的成本,而且不用專門鋪設(shè)線路和購買專門的設(shè)備,用

17、戶能夠通過手機或者其它方式上網(wǎng)就能夠?qū)崟r的了解交通情況,不僅方便而且快捷。而操縱中心服務(wù)端的實現(xiàn),使用Windows操作系統(tǒng)下VC5,Microsoft公司的Visual C+平臺不僅具有專門強的網(wǎng)絡(luò)程序處理能力,與Visual C+捆綁的MFC提供了大量封裝良好的類,為用戶開發(fā)網(wǎng)絡(luò)應(yīng)用程序提供全方位的支持。 由于在客戶端用ATmega128芯片差不多能實現(xiàn)了跟操縱中心通信的功能,因此在交通燈操縱系統(tǒng)只用80C51就足夠了,而MCS-51的開發(fā)環(huán)境要求較低,軟件資源十分豐富,它內(nèi)置中央處理單元、128字節(jié)內(nèi)部數(shù)據(jù)存儲器RAM、32個雙向輸入/輸出(I/O)口、2個16位定時/計數(shù)器和5個兩級中

18、斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)時鐘振蕩電路。MCS-51單片機能夠確實是相當成功的產(chǎn)品,一直到現(xiàn)在,MCS-51系列或其兼容的單片機仍是應(yīng)用的主流產(chǎn)品。2.3系統(tǒng)設(shè)計2.3 依照系統(tǒng)的分析能夠作出如原理圖2-2: 交叉路口交通交叉路口交通燈操縱系統(tǒng)中斷操縱通過P3.2P3.3引腳和延時時刻的傳輸通過P0口WEB CLIENT系統(tǒng)PC機服務(wù)端數(shù)據(jù)庫發(fā)送命令操縱WEB CLIETN進行相應(yīng)的操作或設(shè)定延時中斷操縱通過PORTD0口車流信息通過RJ45網(wǎng)口傳輸車流信息檢測車流信息 圖2-2 系統(tǒng)原理圖該系統(tǒng)功能是實現(xiàn)交叉路口各個車道車流信息的檢測,同時通過基于TCP/IP協(xié)議的Internet

19、將車流信息傳輸給PC機服務(wù)端,PC機服務(wù)端把收到的車流信息保存在數(shù)據(jù)庫相對應(yīng)表中,以供用戶網(wǎng)上查詢,PC機服務(wù)端也能夠通過Internet向交叉路口發(fā)送操縱命令,實現(xiàn)了對交叉路口的遠程操縱。其中交叉路口交通燈操縱系統(tǒng)要緊是操縱紅綠燈的轉(zhuǎn)換和綠燈的顯示時刻,交叉路口交通燈操縱系統(tǒng)通過向Web Client系統(tǒng)發(fā)送中斷來獵取下一次延時的時刻。而Web Client系統(tǒng)要緊是把檢測到的車流信息通過網(wǎng)絡(luò)發(fā)送給PC機服務(wù)端,PC機服務(wù)端把收到信息保存在數(shù)據(jù)庫表中,并依照車流信息查詢數(shù)據(jù)庫把查詢到的延時刻發(fā)送給Web Client 系統(tǒng)。Web Client系統(tǒng)就把接收到的延時時刻從PORTB口輸出,交叉

20、路口交通燈操縱系統(tǒng)就能夠從P0口讀取到下次要設(shè)定的延時時刻,因為PORTB口跟P0口是相連的。PC機服務(wù)端也可通過按鈕或者人工輸入向Web Client系統(tǒng)發(fā)送操縱命令。2.3(1)交通燈操縱系統(tǒng)的框圖依照系統(tǒng)的分析,能夠作出如圖2-3的結(jié)構(gòu)框圖。圖2-3中80C51芯片的P1口的段碼輸出直接至鎖存器的輸入端,鎖存器采納74LS373,通過鎖存器來操縱數(shù)碼管LED的顯示時刻,實現(xiàn)靜態(tài)掃描。AVR ATmega128芯片跟80C51芯片之間相互連接,實現(xiàn)相互間的中斷操縱和將延時時刻傳輸給80C51芯片,AVR ATmega128芯片對操縱車流量進行統(tǒng)計。AVR ATmega128AVR ATme

21、ga128芯片MCS-51系列的80C51芯片相互中斷操縱延時時刻傳輸74LS373鎖存器鎖存數(shù)據(jù)數(shù)碼管LED靜態(tài)掃描顯示 圖2-3 結(jié)構(gòu)示意圖(2)功能講明系統(tǒng)功能:系統(tǒng)將傳感器所采集到的車流信息利用設(shè)備Web Client上網(wǎng),將采集的車流信息發(fā)送給監(jiān)控中心。然后通過Web Client接收受監(jiān)控中心發(fā)送的操縱命令操縱交通燈信號,另外交通燈操縱系統(tǒng)依照從Web Client得到的延時時刻對紅綠燈顯示時刻進行操縱,并用LED把那延時時刻顯示出來。(3)仿真設(shè)計依照系統(tǒng)的原理圖能夠作出仿真電路圖2-3:圖2-3中左下角的芯片是ATmega128,用來仿真Web Client。A、B、C、D四個

22、按鈕也就對應(yīng)著Web Client上的PE2、PF2、PF3、PE3四個按鈕分不用來模擬四個路口車流檢測,按下A按鈕即表示該A路口當時有一輛車通過,其余三個按鈕B、C、D也是同樣道理。接下來AB紅燈CD綠燈、AB綠燈CD紅燈和緊急情況三個按鈕用來模擬操縱中心發(fā)過的三個差不多操縱命令操作。圖2-3中左上角的芯片是80C51,從圖中能夠看出它與ATmega128通信是只要是通過P0口跟PORTB口傳輸?shù)闹灰茄訒r的時刻信號,而PORTD57是用來操縱80C51的中斷,80C51的P3.6口是用來操縱ATmega128的外部中斷INT0,那個信號的產(chǎn)生的時機是交通燈某一次延時完畢要求獲得新的延時時刻

23、,它使ATmega128執(zhí)行中斷程序,把下一次的延時時刻輸出到PORTB口,然后80C51讀取P0口的數(shù)據(jù)就得到下一次延時的時刻。圖2-3中右下角兩塊芯片是數(shù)據(jù)鎖存芯片,只要是為了方便LED燈的數(shù)據(jù)顯示,它們接收的數(shù)據(jù)差不多上從80C51的P2口輸出的。而圖2-3右上角的確實是交通各路口的紅綠燈顯示,它們是由80C51的P1口操縱的。 圖2-3 仿真電路圖 3.客戶端系統(tǒng)的分析與設(shè)計3.1 開發(fā)工具3.1.1ImageCraft 的ICCAVR2 是一種使用符合ANSI標準的C語言來開發(fā)微操縱器MCU程序的一個工具它有以下幾個要緊特點:ICCAVR 是一個綜合了編輯器和工程治理器的集成工作環(huán)境

24、IDE,其可在WINDOWS9X/NT下工作。源文件全部被組織到工程之中,文件的編輯和工程世界的構(gòu)筑也在那個環(huán)境中完成。編譯錯誤顯示在狀態(tài)窗口,中同時當你用鼠標單擊編譯錯誤時,光標會自動跳轉(zhuǎn)到編輯窗口中引起錯誤的那一行。那個工程治理器還能直接產(chǎn)生您希望得到的能夠直接使用的INTELHEX 格式文件,INTEL HEX 格式文件可被大多數(shù)的編程器所支持用于下載程序到芯片中去。ICCAVR 是一個32 位的程序支持長文件名。AVR 是哈佛結(jié)構(gòu)的MCU,它的程序存貯器和數(shù)據(jù)存貯器是分開的,如此的設(shè)計是有一些優(yōu)點。的例如分開的地址空間同意AVR裝置比傳統(tǒng)結(jié)構(gòu)訪問更多的存貯器;例如Atmega 系列同意

25、有超過64K 字(WORD) 的程序存貯器和64K 字節(jié)的數(shù)據(jù)存貯器。今后的MCU裝置可能用到更多的程序存貯器,而程序計數(shù)器仍保留在16 位上。不幸的是,C不是在這種機器上發(fā)明的。特不地,C 指針是任意一個數(shù)據(jù)指針或函數(shù)指針,C 規(guī)則差不多指定你不能夠假設(shè)數(shù)據(jù)和函數(shù)指針能被向前和向后修改。但是同是哈佛結(jié)構(gòu)的AVR,要求數(shù)據(jù)指針能指向任一個數(shù)據(jù)內(nèi)存和程序內(nèi)存。非標準C解決了那個問題,ImageCraft AVR 編譯器使用“const”限定詞表示項目是在程序存貯器中。注意對指針描述那個const 限定詞能夠應(yīng)用于不同的場合,不管是限定指針變量自己依舊指向項目的指針。例如:const int ta

26、ble = 1, 2, 3 ;const char *ptr1;char * const ptr2;const char * const ptr3;“table”是表格式樣分配進程序存貯器,“ptr1”是一個項目在數(shù)據(jù)存貯器而指向數(shù)據(jù)的指針在程序存貯器,“ptr2”是一個項目在程序存貯器而指向數(shù)據(jù)的指針在數(shù)據(jù)存貯器,最后,“ptr3”是項目在程序存貯器而指向數(shù)據(jù)的指針也在程序存貯器。在大多數(shù)的例子中“table”和“ptr1”是專門典型的,C 編譯器生成LPM 指令來訪問程序存貯器。注意C 標準不要求“const”數(shù)據(jù)是放入只讀存貯器中,而且在傳統(tǒng)結(jié)構(gòu)中,除了正確訪問就沒有要緊的了。因而,在承

27、認參數(shù)的C 標準中使用const 限定是非傳統(tǒng)的。不管如何如此做與標準C 函數(shù)定義是有一定沖突的。3.1.2 PProteus是由英國Labcenter electronics公司開發(fā)的EDA工具軟件。它從1989年出現(xiàn)到現(xiàn)在差不多有十多年的歷史,在全球廣泛使用。Proteus安裝以后,要緊由兩個程序組成:Ares和Isis。前者要緊用于PCB自動或人工布線及其電路仿真,后者要緊采納原理布圖的方法繪制電路并進行相應(yīng)的仿真。除了上述差不多應(yīng)用之外,Proteus革命性的功能在于它的電路仿真是互動的,針對微處理器的應(yīng)用,能夠直接在基于原理圖的虛擬原型上編程,并實現(xiàn)軟件代碼級的調(diào)試,還能夠直接實時動

28、態(tài)地模擬按鈕、鍵盤的輸入,LED、液晶顯示的輸出,同時配合虛擬工具如示波器、邏輯分析儀等進行相應(yīng)的測量和觀測。作為一款EDA仿真軟件,Proteus與同類軟件有著專門多的相似之處。相比之下,其要緊的特點有兩個:一是對動態(tài)元件的實時仿真,它有著數(shù)量龐大的元件庫。Labcenter公司與相關(guān)的第三方軟件陣容共同開發(fā)了6000多個模擬和數(shù)字電路中常用的spice模型以及各種動態(tài)元件,差不多元件如電阻、電容、各種二極管、三極管、MOS管、555定時器等;74系列TTL 元件和4000系列CMOS 元件;存儲芯片包括各種常用的ROM, RAM,EEPROM, 還有常見I2C器件等。在豐富的庫元件的支持下

29、,因此它對“人機對話”的模擬增強了系統(tǒng)的真實性;二是虛擬工具箱的功能,Proteus的虛擬工具箱提供了電路測試中的常用工具和儀器,要緊用于在實時仿真同時的電路參數(shù)觀測,測量結(jié)果隨仿真動態(tài)變化并顯示,能夠滿足精度要求不是專門高的測量分析,關(guān)于電路特性的定性分析能夠起到事半功倍的效果,大大節(jié)約了測試時刻和開發(fā)成本。3.1.3 整個開發(fā)板的電路圖如圖3-1:圖3-1 開發(fā)板電路圖 HYPERLINK http:/localhost/admin/EditBox.asp l _Toc104742299 該開發(fā)板是一種微型Internet接入模塊,能夠?qū)⒎植际酱谠O(shè)備或其它各種用戶的智能系統(tǒng)接入到Inte

30、rnet,利用模塊內(nèi)部的TCP/IP網(wǎng)絡(luò)協(xié)議,以及10Base-T網(wǎng)絡(luò)接口,連接到以太網(wǎng),方便的實現(xiàn)串口設(shè)備的聯(lián)網(wǎng)。通過那個網(wǎng)絡(luò)連接開發(fā)板,串口設(shè)備可將自身的運行狀態(tài)和工作參數(shù)等信息以TCP或UDP數(shù)據(jù)報的方式提供給監(jiān)控者,亦可實現(xiàn)信息的實時傳輸。這種實現(xiàn)方法有以下幾個優(yōu)點:簡單方便:串口設(shè)備通過開發(fā)板上網(wǎng)時 ,其接口設(shè)備簡單,只涉及數(shù)據(jù)交換,無須涉及到各種復(fù)雜的網(wǎng)絡(luò)協(xié)議。無需專線:利用廣泛存在的以太網(wǎng)資源,無需鋪設(shè)現(xiàn)場總線,沒有距離和國界的限制,只要有以太網(wǎng)即可通信。傳輸速率高:串行速率能夠達到115.2Kbps,真正做到實時傳送。3.雙龍公司W(wǎng)ebServer System 和 TCP/I

31、P Stack。雙龍公司W(wǎng)ebServer System包含了文件系統(tǒng)、線程治理、內(nèi)存治理、設(shè)備治理和網(wǎng)絡(luò)治理等功能。系統(tǒng)的差不多模塊如下:sl/OS API System Initialization Thread Management Thread States Event Management Heap Management Stream I/O Management Timer Management sl/Net API Socket API TCP Sockets UDP Sockets Protocols User Protocols DHCP HTTP DNS TCP UDP I

32、P ICMP ARP Ethernet File System API. Micro-ROM File System. Device Driver API. Serial communication device driver. ATmega On-Chip UART Device Driver ATmega On-Chip UART Devices UART SPI Device Driver SPI UART Device UART I/O Control Functions UART Device Status Flags Network device drivers. Realtek

33、8019AS device driver Device eth0 Network Buffer Network Stream Device Driver Sound device drivers. VS1001K device driver. Interrupt Management SPI Digital I/O SPI Flash Devices Debug output functions. Formatted output functions.3.2 系統(tǒng)分析3.本系統(tǒng)是一個客戶端的程序,它建立在雙龍公司W(wǎng)ebServer System And TCP/IP Stack4之上,運行在W

34、eb Client的硬件平臺。它能夠連接操縱中心的服務(wù)端程序,同時能夠接收并響應(yīng)來自操縱中心的操縱命令,同時在某一次交通燈延時完畢后接收到一個中斷信號,執(zhí)行中斷程序向操縱中心發(fā)送車流信息。3.在綜合考慮現(xiàn)有的軟件資源和硬件資源基礎(chǔ)上,我們采納以下這種方案:首先考慮到開發(fā)板上有兩個預(yù)留口PORTB和PORTD,它們差不多上8位的,都有對應(yīng)的3個I/O端口寄存器PORTx、方向寄存器DDRx、和輸入引腳寄存器PINx(x代表B口到D口)。PORTxn、DDRxn和PINxn分不表示這3個I/O寄存器相應(yīng)的各個位,其中n為07,代表寄存器中的位值。位于方向寄存器DDRx中的第個位DDRxn用于操縱一

35、個I/O引腳的輸入/輸出方向。當DDRxn為1時,對應(yīng)的Pxn配置為輸出引腳;而當DDRxn寫入0時,對應(yīng)的Pxn配置為輸入引腳。當Pxn定義為輸出引腳(DDRxn=1)時,PORTxn中的數(shù)據(jù)為外部引腳的輸出電平。即置PORTxn為1,端口引腳被強制驅(qū)動為高,輸出高電平(輸出電流);清零PORTxn,端口引腳被強制拉低,輸出低電平(吸入電流)。因此我們將PORTB口設(shè)定為輸出口,跟交通燈操縱系統(tǒng)中的80C51芯片的P0口相連,只要用來傳輸?shù)拈_發(fā)板Web系統(tǒng)從操縱中心接收到的延時時刻。而關(guān)于PORTD口,我們考慮到它的前四個引腳PORTD03的第二功能,分不對應(yīng)著外部中斷的INT03。關(guān)于AV

36、R的外部中斷,假如主程序一旦進入中斷服務(wù)程序,那么AVR芯片將自動的關(guān)閉全局中斷,在那個期間不再執(zhí)行其它的中斷請求,直到中斷程序結(jié)束以后芯片才自動的重新開放全局中斷。(注意,在那個期間某些中斷請求可能會被丟棄,某些請求會留下中斷請求標致,一旦當前的中斷執(zhí)行完畢,那個有中斷標致的請求就有可能立即得到響應(yīng),如INT0的下降沿觸發(fā)就會留下中斷請求標致,而低電平觸發(fā)就可不能流下中斷請求標致)。假如你想在執(zhí)行中斷服務(wù)程序時響應(yīng)另外一個更重要的中斷,那么就要在中斷服務(wù)程序中加入一條打開全局中斷的語句。接下來介紹一下ATmega128芯片中幾個和中斷相關(guān)的寄存器。外部中斷操縱寄存器A EICRA7表1 外部

37、中斷操縱寄存器A EICRABit 7 6 5 4 3 2 1 0ISC31ISC30SIC21ISC20ISC11ISC10ISC01EICRAISC00EICRA讀寫 R/W R/W R/W R/W R/W R/W R/W R/W初始值 0 0 0 0 0 0 0 0ATmega103 兼容模式不能訪問那個寄存器,然而INT3:0 的初始值定義為低電平中斷。 Bits 7.0 ISC31, ISC30 ISC00, ISC00: 外部中斷3 - 0 敏感電平操縱位外部中斷3 - 0 由引腳INT3:0 激活,假如SREG 寄存器的I 標志和EIMSK 寄存器相應(yīng)的中斷屏蔽位置位的話。觸發(fā)方

38、式如下表所示。INT3.INT0 的邊沿觸發(fā)方式是異步的。若選擇了低電平中斷,低電平必須保持到當前指令完成,然后才會產(chǎn)生中斷。而且只要將引腳拉低,就會引發(fā)中斷請求。改變ISCn 時有可能發(fā)生中斷。因此建議首先在寄存器EIMSK 里清除相應(yīng)的中斷使能位INTn,然后再改變ISCn。最后,不要不記得在重新使能中斷之前通過對EIFR 寄存器的相應(yīng)中斷標志位INTFn 寫1 使其清零。表2 INT30中斷方式7ISCn1ISCn0講明 00INTn為低電平常產(chǎn)生中斷請求 01保留 10INTn的下降沿產(chǎn)生異步中斷請求 11INTn的上降沿產(chǎn)生異步中斷請求Note: 1. n =3、2、1 或0。改變I

39、SCn1/ISCn0 時一定要先通過清零EIMSK 寄存器的中斷使能位來禁止中斷。否則在改變ISCn1/ISCn0 的過程中可能發(fā)生中斷。外部中斷屏蔽寄存器 EIMSK7表3 外部中斷屏蔽寄存器 EIMSKEIMSKBit 7 6 5 4 3 EIMSKINT7INT6INT5INT4INT3INT2INT1INT0讀寫 R/W R/W R/W R/W R/W R/W R/W R/W初始值 0 0 0 0 0 0 0 0 Bits 7.0 INT7 INT0: 外部中斷請求7 - 0 使能。當INT7 INT0 為1,而且狀態(tài)寄存器SREG 的I 標志置位,相應(yīng)的外部引腳中斷就使能了。外部中斷

40、操縱寄存器 EICRA 和EICRB 的中斷敏感電平操縱位決定中斷是由上升沿、下降沿,依舊電平觸發(fā)的。只要使能,即使引腳被配置為輸出,只要引腳電平發(fā)生了相應(yīng)的變化,中斷可將產(chǎn)生。據(jù)此能夠?qū)崿F(xiàn)軟件中斷。外部中斷標志寄存器 EIFR7表4 外部中斷標志寄存器 EIFRBit 7 6 5 4 3 2 1 0INTFINTFINTFINTFINTFINTFINTFEIFRIEIFR讀寫 R/W R/W R/W R/W R/W R/W R/W R/W初始值 0 0 0 0 0 0 0 0INT7:0 引腳電平發(fā)生跳變時觸發(fā)中斷請求,并置位相應(yīng)的中斷標志INTF7:0 。假如SREG的位I 以及EIMSK

41、 寄存器相應(yīng)的中斷使能位為1, MCU 既跳轉(zhuǎn)到中斷例程。中斷例程執(zhí)行時標志被硬件清零。此外,標志位也能夠通過寫入1 的方式來清零。若INT7:0 配置為電平觸發(fā),這些標志位總是為0。在睡眠模式下,假如中斷是禁止的,則這些引腳的輸入緩沖器也是禁止的。這有可能產(chǎn)生邏輯電平的變化并置位INTF3:0。在系統(tǒng)中我們只要用到外部中斷INT0,且設(shè)定為下降沿觸發(fā)。從圖1.3 仿真電路圖中能夠看到PORD0跟80C51的P3.6引腳相連,因此只要交通燈系統(tǒng)使P3.6引腳從高電平向低電平跳轉(zhuǎn)則會觸發(fā)本系統(tǒng)的外部中斷INT0,在中斷子程序中完成了把當前對應(yīng)路口檢測到的車流信息以一定的格式(如AB:10)發(fā)給操

42、縱中心,操縱中心接收到后就趕忙返回一個延時時刻。而本系統(tǒng)跟操縱中心的通信是通過基于TCP/IP 協(xié)議的網(wǎng)絡(luò)連接來實現(xiàn)。TCP協(xié)議為其上的應(yīng)用層提供了一種可靠傳輸服務(wù)。這種服務(wù)的特點是:可靠、全雙工、流式和無結(jié)構(gòu)傳輸。因此能夠簡單地把系統(tǒng)劃分為兩個差不多模塊,它們分不是數(shù)據(jù)接收模塊與數(shù)據(jù)發(fā)送模塊。(1)數(shù)據(jù)接收模塊功能:它要緊是接收從操縱中心發(fā)送過來的操縱命令并依照相應(yīng)的命令執(zhí)行相應(yīng)操縱操作,例如操縱交通燈的緊急中斷(全部路口的都亮紅燈),或者某一車道中斷(該車道亮紅燈),或者操縱中心要求獲得交通路口現(xiàn)在的車流信息。(2)數(shù)據(jù)發(fā)送模塊功能:依照操縱中心的命令信息向操縱中心發(fā)送某個路口的車流信息,

43、或者當接收到交通燈延時完畢發(fā)來的中斷信號,就向操縱中心發(fā)送下次要延時的車流信息。3.3 總體設(shè)計3. 本系統(tǒng)的要緊的輸入項目是操縱中心發(fā)來的操縱操縱命令,輸出項目是檢測到的車流信息。要緊的功能需求是:能夠通過網(wǎng)絡(luò)接收來自操縱中心的操縱命令,響應(yīng)操縱命令操縱紅綠燈的亮滅情況或把檢測到的車流信息發(fā)給操縱中心。要緊的性能要求是:能響應(yīng)操縱中心發(fā)來的差不多操縱命令,實現(xiàn)對交通燈的差不多操縱。3.3.2差不多設(shè)計理念: 本系統(tǒng)是采納TCP/IP5的socket編程中的流式套接字編程,其中交叉路口作為客戶端操縱中心作為服務(wù)端雙方建立一個可靠的連接,然后雙方通過以太網(wǎng)進行數(shù)據(jù)的發(fā)送與接收,之因此選擇流式套接

44、字是因為它提供了一個面向連接、可靠的數(shù)據(jù)傳輸服務(wù),數(shù)據(jù)無差錯、無重復(fù)地發(fā)送,且按發(fā)送順序接收。處理流程:(請看圖3-2) 圖3-2 TCP傳輸流程圖3.(1)系統(tǒng)框圖與流程圖系統(tǒng)框圖(圖3-3)圖3-3 系統(tǒng)框圖客戶端系統(tǒng)總的流程圖(圖3-4):圖3-4 客戶端系統(tǒng)總的流程圖客戶端系統(tǒng)接收模塊流程圖(圖3-5):圖3-5 客戶端系統(tǒng)接收模塊流程圖客戶端發(fā)送時機及過程流程圖(圖3-6):在實現(xiàn)以上各流程圖時,只要用到的API函數(shù)如下:(1)TCPSOCKET *slTcpCreateSocket(void)創(chuàng)建TCP socket。 該API函數(shù)在堆內(nèi)存中為TCPSOCKET結(jié)構(gòu)分配內(nèi)存空間,并

45、初始它返回一個指向該結(jié)構(gòu)的指針。第一次調(diào)用該API函數(shù)同時也是TCP計時程序開始的時候,該計時程序用來檢測各種不同的超時操作。Returns: 最新創(chuàng)建的TCP socket 描述符,或者假如沒有足夠的內(nèi)存剩余則返回0。Todo: 幸免把初始的順序號固定。配置緩沖區(qū)的大小。同意的最大的段的大小。圖3-6 客戶端發(fā)送時機及過程流程圖(2)int slTcpConnect(TCPSOCKET *sock, u_long addr, u_short port)連接遠程的socket套節(jié)字。 這函數(shù)試圖跟過程特定的服務(wù)器特定的端口建立連接。調(diào)用該函數(shù)的線程將暫停運行直到連接成功或者錯誤發(fā)生。該函數(shù)通常

46、用在TCP客戶端程序。Parameters: sock 套節(jié)字描述符。該指針必須調(diào)用slTcpCreateSocket()來得到。addr 客戶端要連接的IP地址(網(wǎng)絡(luò)字順序)port 連接的端口號(主機字順序)Returns: 假如成功則返回0,否則返回-1。能調(diào)用slTcpError()來得到特定的錯誤代碼號。 (3)int slTcpSend(TCPSOCKET *sock, void *data, u_short len)向已連接的TCP套節(jié)字發(fā)送數(shù)據(jù)。Parameters: sock 套節(jié)字描述符。該指針必須調(diào)用slTcpCreateSocket()來得到。除此之外連接的建立必須調(diào)用

47、slTcpConnect或者 slTcpAccept。 data 指向要發(fā)送的數(shù)據(jù)緩沖區(qū)的指針。len 要發(fā)送的字節(jié)數(shù)。Returns: 假如發(fā)送成功則返回差不多發(fā)送的字節(jié)數(shù)。該字節(jié)數(shù)可能小于指定要發(fā)送的字節(jié)數(shù)。假如返回-1則意味著重大的錯誤。(4)int slTcpReceive(TCPSOCKET *sock, void *data, u_short size)從已連接的TCP套節(jié)字獲得接收數(shù)據(jù)。Parameters:sock 套節(jié)字描述符。該指針必須調(diào)用slTcpCreateSocket()來得到。除此之外連接的建立必須調(diào)用slTcpConnect或者 slTcpAccept。data

48、指向要接收的數(shù)據(jù)緩沖區(qū)的指針。size 接收緩沖區(qū)的大小。Returns: 假如成功的話則返回差不多接收的數(shù)據(jù)的字節(jié)數(shù),該值可能小于特定的緩沖區(qū)大小。假如返回-1。(5)NUTDEVICE *slSoStreamCreate(TCPSOCKET *sock)為特定的套節(jié)字創(chuàng)建一個虛擬流設(shè)備文件。Parameters: Sock 套節(jié)字描述符。該指針必須調(diào)用slTcpCreateSocket()來得到。除此之外連接的建立必須調(diào)用slTcpConnect或者 slTcpAccept。Returns:假如創(chuàng)建成功則返回創(chuàng)建的設(shè)備結(jié)構(gòu)指針,否則返回0。4.結(jié)果分析 交通燈某一次延時完畢請求獲得新的延時

49、執(zhí)行的操作,如圖4-1:交通燈操縱系統(tǒng)交通燈操縱系統(tǒng)WEB CLIENT系統(tǒng)從PORTD0口收到下降沿信號當前一次延時完畢從P3.6口置于低電平服務(wù)端得到車流信息儲存到數(shù)據(jù)庫中執(zhí)行中斷程序把檢測到車流發(fā)給服務(wù)端WEB CLIENT系統(tǒng)從服務(wù)端收到這次要設(shè)定的時刻查詢數(shù)據(jù)庫把車流對應(yīng)的延時發(fā)給開發(fā)板交通燈操縱系統(tǒng)從P0口讀到要設(shè)定的延時把要設(shè)定的延時從PORTB口輸出圖4-1 交通燈系統(tǒng)請求延時圖詳細請看附錄代碼的INT0中斷子程序。操縱中心操縱交通燈時執(zhí)行的操作如圖4-2:操縱中心發(fā)送緊急中斷命令操縱中心發(fā)送緊急中斷命令WEB CLIENT系統(tǒng)收到命令置PORTD5為低電平交通燈操縱系統(tǒng)INT

50、0被觸發(fā)執(zhí)行緊急中斷程序操縱中心發(fā)送AB道中斷命令WEB CLIENT系統(tǒng)收到命令置PORTD7為低電平交通燈操縱系統(tǒng)INT1被觸發(fā)執(zhí)行AB道中斷程序操縱中心發(fā)送CD道中斷命令WEB CLIENT系統(tǒng)收到命令置PORTD6O為低電平交通燈顯示操縱系統(tǒng)INT1被觸發(fā)執(zhí)行CD道中斷程序圖4-2 操縱中心操縱交通燈圖詳細請看附錄代碼的ProcessRequests函數(shù)。一開始系統(tǒng)啟動的時刻開發(fā)板從PORTD0收到一個低電平,產(chǎn)生中斷執(zhí)行中斷子程序,現(xiàn)在AB、CD道都沒有檢測到車流,因此置PORTD7為低電平觸發(fā)交通燈系統(tǒng)執(zhí)行中斷子程序。本系統(tǒng)只用開發(fā)板上的四個按鈕來模擬四個路口的車流檢測,沒有做出實

51、際的車流檢測電路。當按下各個按鈕能夠從超級終端檢測到各按鈕的按下的次數(shù)作為車流數(shù)。如圖4-3:圖4-3各個路口檢測到車流圖當發(fā)送中斷時能夠終端看到收到這次要設(shè)定的延時時刻。如圖4-4:圖4-4接收到延時刻圖5.總結(jié)5.1畢業(yè)設(shè)計工作的總結(jié)本設(shè)計完成了交叉路口車流信息的Internet傳輸與操縱的差不多功能設(shè)計,并對結(jié)果進行了測試。測試表明,我們的設(shè)計符合功能要求,并具有一定的有用價值。通過測試,發(fā)覺本設(shè)計方案的不足:(1)交通路口只考慮雙向行車,而沒有考慮左轉(zhuǎn)或者其它情況。 (2)測試車流只用按鈕來簡單模擬。(3)監(jiān)控中心關(guān)于實時性處理速度有待提高。5.2工作展望我們通過這次畢業(yè)設(shè)計,提出了我

52、們交叉路口車流信息的Internet傳輸與操縱的設(shè)計方案。盡管現(xiàn)在確實存在的一定的不足,但完成能夠通過進一步的整改,應(yīng)用到生活中。今后能夠努力的方向有:(1)能夠把仿真電路做出實時電路。(2)能夠加上電磁感應(yīng)傳感器來進行車流檢測。附錄部分源代碼詳解:Init.c頭函數(shù)略詳細請看源代碼#define RAMEND 0 x10FF /Last On-Chip SRAM LocationCONFOS confos;extern void slMain(void *arg) _attribute_ (noreturn);/*! fn slIdle(void *arg) * brief Idle thr

53、ead. */THREAD(slIdle, arg) slTimerInit(); slThreadCreate(main, slMain, 0, 768); slThreadSetPriority(255); for(;) slThreadYield(); /*! * brief Load sl/OS configuration from the EEPROM. * This routine is automatically called during system * initialization. * return 0 if OK, -1 if configuration isnt av

54、ailable. */int slLoadConfig(void) eeprom_read_block(&confos, CONFOS_EE_OFFSET, sizeof(CONFOS); if(confos.size != sizeof(CONFOS) | confos.magic0 != O | confos.magic1 != S) return -1; return 0;/*! * brief Save sl/OS configuration in the EEPROM. * return 0 if OK, -1 on failures. */int slSaveConfig(void

55、) u_char *cp; int i; confos.size = sizeof(CONFOS); confos.magic0 = O; confos.magic1 = S; for(cp = (u_char *)&confos, i = 0; i 384) slHeapAdd(&_bss_end, (u_short)RAMEND - 256 - (u_short)(&_bss_end); slHeapAdd(void *)(RAMEND + 1), 0 x7FFF - RAMEND); slThreadCreate(idle, slIdle, 0, 384); return 0;Uart.

56、c頭函數(shù)略詳細請看源代碼/*! * brief Wait for input. * This function checks the input buffer for any data. If * the buffer is empty, the calling ref xrThread thread * will be blocked until at least one new character is * received or a timeout occurs. * param dev Indicates the UART device. * return 0 on success,

57、-1 on timeout. */int MyUartAvrInput(NUTDEVICE *dev,u_long timeout) int rc = 0; IFSTREAM *ifs = dev-dev_icb; UARTDCB *dcb; slEnterCritical(); if(ifs-if_rd_idx = ifs-if_rx_idx) dcb = dev-dev_dcb; /* * Changing if into a while loop fixes a serious bug: * Previous receiver events without any waiting thr

58、ead * set the event handle to the signaled state. So the * wait returns immediately. Unfortunately the calling * routines rely on a filled buffer when we return 0. */ do rc = slEventWait(&dcb-dcb_rx_rdy, timeout); while(rc = 0 & ifs-if_rd_idx = ifs-if_rx_idx); slExitCritical(); return rc;/* * Get IP

59、 string from inputbuff */u_char *GetIP(NUTDEVICE *uart,u_char *prompt, u_char *value) static const char BIA = rnBad IP address;static u_char inbuff256; for(;) slPrintFormat(0, rn%s(%s): , prompt, value); if(slDeviceGetLine(uart,inbuff, sizeof(inbuff) = 0) break; if(inet_addr(inbuff) != -1) strcpy(va

60、lue, inbuff); break; slPrintString_P(0,BIA); return value;Traffic.c頭函數(shù)和部分全局變量定義略詳細請看源代碼#define SERVERPORT 1234static u_short roadFlag = 0; /0 stand for AB road greed light and 1 stand for CD road greed lightstatic u_char *road2 = CD,AB;/conversion the ASCII to decimal int hex2bin(char c) if(c = 0 &

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論