測控畢業(yè)論文_第1頁
測控畢業(yè)論文_第2頁
測控畢業(yè)論文_第3頁
測控畢業(yè)論文_第4頁
測控畢業(yè)論文_第5頁
已閱讀5頁,還剩62頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

畢業(yè)設(shè)計(論文) 題 目: 嵌入式網(wǎng)絡(luò)控制器軟件設(shè)計 學 院: 電子信息學院 專業(yè)班級: 測控 08 級 1 班 指導教師: 溫宗周 職稱: 副教授 學生姓名: 胥 哲 學 號: 40803050108 西安工程大學本科 畢業(yè)設(shè)計(論文) I 摘 要 目前,隨著計算機技術(shù)、通信技術(shù)的飛速發(fā)展,使我們通過計算機進行網(wǎng)絡(luò)互連的同時,許多領(lǐng)域的嵌入式設(shè)備如工業(yè)控制、數(shù)據(jù)采集和智能儀表等都有接入網(wǎng)絡(luò)的需求。通過嵌入式 Internet 控制系統(tǒng),用戶只要在有網(wǎng)絡(luò)接入的地方,就可以對與網(wǎng)絡(luò)連接的任何現(xiàn)場設(shè)備進行遠程監(jiān)控。 網(wǎng)絡(luò)控制器的核心芯片采用基于 Cortex M3 內(nèi)核的 32 位 ARM 微控制器STM32F103ZET6。首先根據(jù)網(wǎng)絡(luò)控制器的功能要求,設(shè)計各功能模塊的流程圖,具體包括 :數(shù)據(jù)采集及 A/D 轉(zhuǎn)換模塊 、數(shù)據(jù)處理模塊、數(shù)據(jù)存儲模塊、顯示模塊、以太網(wǎng)通信模塊。其次了解 Keil 開發(fā)平臺,通過軟件的設(shè)計編寫相關(guān)程序 ,完成數(shù)據(jù)的采集、處理、存儲、顯示以及以太網(wǎng)通信,使網(wǎng)絡(luò)控制器與上位機通過以太網(wǎng)實時通信及遠程控制。最后,完成總體的調(diào)試,總結(jié)分析過程中遇到的問題和不足。 關(guān)鍵詞 : 網(wǎng)絡(luò)控制器 , STM32F103ZET6 ,數(shù)據(jù)采集, TCP/IP 通信協(xié)議 西安工程大學本科 畢業(yè)設(shè)計(論文) II ABSTRACT At present, along with the computer technology, communication technology to rapid development, make us through the computer network interconnection and at the same time, many areas of embedded equipment such as industrial control, data acquisition and intelligent instruments have access network needs. Through the embedded Internet control system, as long as the users have Internet access in the place, can with the network connection to any site equipment for remote monitoring. Network controller based on the core chip Cortex-M3 kernel 32-bit ARM micro controller STM32F103ZET6. First of all, according to the functional requirement of the network controller, the function module design flow chart of specific include: data collection and A/D conversion module, data processing module, the data storage module, display module, Ethernet communication module. Second understand Keil development platform, and through the design of the software to write programs, complete data collection, treatment, storage, display and Ethernet communication, network controller and the upper machine through the Ethernet real-time communication and remote control. Finally, the adjustment of the overall finish, summarizes and analyzes the problems in the course of and insufficient. KEY WORDS: Network controller, STM32F103ZET6, data acquisition, TCP/IP communication agreement 西安工程大學本科 畢業(yè)設(shè)計(論文) III 前 言 隨著 Internet 技術(shù)迅速發(fā)展,在以太網(wǎng)和 TCP IP 協(xié)議已成為世界范圍內(nèi)的標準的情況下,我們對各種控制設(shè)備的網(wǎng)絡(luò)功能要求就越來越高,希望控制設(shè)備具有 Internet 接入功能,能夠支持 TCP IP 以及其他 Internet 協(xié)議,通常由采集的數(shù)據(jù)通過網(wǎng)絡(luò)傳送到服務(wù)器的數(shù)據(jù)庫中,使用戶通過瀏覽器查看設(shè)備狀態(tài)、設(shè)置設(shè)備參數(shù),以達到遠程監(jiān)控現(xiàn)場設(shè)備的目的?;?于 ARM 的嵌入式網(wǎng)絡(luò)控制器就能夠?qū)崿F(xiàn)這個目的,它采用嵌入式技術(shù)和以太網(wǎng)控制技術(shù),是一種新型的遠程監(jiān)控的解決方案。 嵌入式網(wǎng)絡(luò)控制器是以計算機技術(shù)為核心,結(jié)合先進的計算機技術(shù)、網(wǎng)絡(luò)通信技術(shù)、自動控制技術(shù)的一種遠程監(jiān)控系統(tǒng)。嵌入式網(wǎng)絡(luò)控制器能將監(jiān)控現(xiàn)場的監(jiān)控信息通過計算機網(wǎng)絡(luò)傳輸?shù)骄W(wǎng)絡(luò)中的其它計算機上,并與信息管理系統(tǒng)融合在一起,達到遠程監(jiān)控的目的。在監(jiān)控現(xiàn)場利用嵌入式技術(shù) ,把數(shù)據(jù)采集和網(wǎng)絡(luò)傳輸功能集成到一個體積很小的設(shè)備內(nèi),可以直接連入以太網(wǎng),達到即插即看,省掉各種復雜的電纜,安裝方便 (僅需設(shè)置一個口地址 ), 無需專人值守等優(yōu)點,在監(jiān)控終端,遠程監(jiān)控人員只需擁有一臺可以上網(wǎng)的 PC 機,無需安裝特殊的硬件設(shè)備,就可以在世界的任何一個地方,對監(jiān)控現(xiàn)場進行實時遠程監(jiān)控,這樣大大降低了系統(tǒng)的成本,極大地方便了整個監(jiān)控系統(tǒng)的操作和維護。 西安工程大學本科 畢業(yè)設(shè)計(論文) IV 西安工程大學本科 畢業(yè)設(shè)計(論文) V 目 錄 第 1章 緒 論 . 1 1.1 課題研究的背景和意義 . 1 1.2 國內(nèi)外研究的現(xiàn)狀 . 2 1.3 課題來源及研究內(nèi)容 . 4 1.4 論文的計劃及時間安排 . 5 第 2章 嵌入式網(wǎng)絡(luò)控制器總體設(shè)計 . 6 2.1 功能需求 . 6 2.1.1 數(shù)據(jù)采集和處理 . 6 2.1.2 以太網(wǎng)通信 . 7 2.1.3 其他功能和需求 . 7 2.2 設(shè)計原則 . 8 2.3 系統(tǒng)總體結(jié)構(gòu)設(shè)計 . 9 2.4 論文寫作提綱 . 9 第 3章 硬件電路的設(shè)計 . 11 3.1 微控制器 STM32F103ZET6 簡介 . 11 3.2 電源電路設(shè)計 . 13 3.3 A/D轉(zhuǎn)換電路的設(shè)計 . 14 3.4 存儲電路設(shè)計 . 15 3.4.1 FM24C16 介紹 . 16 3.4.2 AT45DB161D 介紹 . 17 3.5 顯示電路設(shè)計 . 18 3.6 以太網(wǎng)電路設(shè)計 . 18 3.6.1寄存器的構(gòu)成 . 18 3.6.2控制寄存器 . 19 3.6.3以太網(wǎng)緩沖器 . 19 3.7 溫度采集電路設(shè)計 . 22 第 4章 TCP/IP通信協(xié)議 . 23 西安工程大學本科 畢業(yè)設(shè)計(論文) VI 4.1 數(shù)據(jù)鏈路層 . 24 4.2 網(wǎng)絡(luò)層協(xié)議的分析 . 25 4.2.1 IP協(xié)議分析 . 25 4.2.2 ICMP協(xié)議分析 . 26 4.2.3 ARP協(xié)議 . 27 4.3 傳輸層協(xié)議分析 . 29 4.3.1 UDP 協(xié)議分析 . 29 4.3.2 TCP 協(xié)議分析 . 30 4.4 應用層 . 31 4.5 用戶層 . 32 第 5章 軟件設(shè)計 . 33 5.1 總體設(shè)計 . 33 5.2 數(shù)據(jù)采集及 AD轉(zhuǎn)換 . 34 5.2.1 I2C總線接口 . 35 5.2.2 ADS1110 的讀寫 . 36 5.3 數(shù)據(jù)處理模塊 . 36 5.4 數(shù)據(jù)存儲模塊 . 37 5.4.1 FLASH存儲 AT45DB161D介紹 . 37 5.4.2 鐵電存儲 FM28C16介紹 . 39 5.5 顯示模塊 . 42 5.5.1 迪文工業(yè)串口屏數(shù)據(jù)幀構(gòu)架 . 43 5.5.2 字節(jié)傳送順序 . 43 5.5.3 串口工作模式 . 43 5.5.4 觸控界面的設(shè)計 . 43 5.6 通信模塊 . 44 第 6章 總 結(jié)和展望 . 48 6.1 全文總結(jié) . 48 6.2 對未來工作的展望 . 49 參考文獻 . 50 西安工程大學本科 畢業(yè)設(shè)計(論文) VII 致 謝 . 52 附 錄 . 53 西安工程大學本科畢業(yè)設(shè)計(論文) VIII 西安工程大學本科畢業(yè)設(shè)計(論文) 1 第 1 章 緒 論 1.1 課題研究的背景和意義 2l世紀的特征就是數(shù)字化、網(wǎng)絡(luò)化和信息化,它是一個以網(wǎng)絡(luò)為核心的信息時代。而就在這個信息時代中,嵌入式技術(shù)是繼 IT 網(wǎng)絡(luò)技術(shù)之后,又一個新的技術(shù)發(fā)展方向。由于基于 ARM的嵌入式控制器具有體積小、性能強、功耗低、可靠性高以及面向行業(yè)應用的突出特征,目前已經(jīng)廣泛地應用于軍事國防、消費電子、網(wǎng)絡(luò)通信、工業(yè)控 制、日常生活等各個領(lǐng)域。隨著計算機技術(shù)與通信技術(shù)的發(fā)展,基于 ARM的嵌入式控制器的研究與開發(fā)也有著越來越重要的實際意義。 嵌入式技術(shù)誕生于微型計算機時代,與通用計算機的發(fā)展道路完全不同:通用計算機按照高速、海量的技術(shù)發(fā)展;嵌入式技術(shù)則為滿足對象系統(tǒng)嵌入式智能化控制要求發(fā)展。微型計算機無法滿足絕大多數(shù)對象對體積、成本與可靠性等方面的要求,因此,嵌入式技術(shù)迅速走上了獨立的單芯片發(fā)展道路。 隨著嵌入式技術(shù)的不斷發(fā)展,嵌入式應用越來越廣,在工控、家電、通信、消費電子、航空航天等領(lǐng)域,都得到了充分的發(fā)揮,處處體現(xiàn)了嵌 入式應用的優(yōu)勢。如“神七”上的制導系統(tǒng)、遙測系統(tǒng)、通信系統(tǒng)等都用到了嵌入式技術(shù);國內(nèi)生產(chǎn)機頂盒的“維納斯計劃”,其核心技術(shù)也是采用 32 位以上芯片級的嵌入式技術(shù)。如今網(wǎng)絡(luò)技術(shù)越來越成熟,使得其應用的范圍不斷擴大。除了傳統(tǒng)的電子郵件、遠程登錄、文件傳輸?shù)葮I(yè)務(wù)外,各種新的應用也應運而生,如遠程監(jiān)控、遠程醫(yī)療等。目前,如何實現(xiàn)無所不在的嵌入式設(shè)備與 Internet 的結(jié)合,代表著嵌入式技術(shù)和網(wǎng)絡(luò)技術(shù)的真正未來。在 2011 英特爾的信息技術(shù)峰會上,英特爾堅定地認為到 2015 年將有 150 億臺嵌入式設(shè)備接入互 聯(lián)網(wǎng)。因此,很有必要開展嵌入式網(wǎng)絡(luò)技術(shù)的研究。對嵌入式網(wǎng)絡(luò)技術(shù)進行研究,必須熟悉相關(guān)技術(shù),包括嵌入式系統(tǒng)應用開發(fā)技術(shù)和網(wǎng)絡(luò)通信相關(guān)技術(shù) -TCP/IP (Transmission Control Protocol/Internet Protocol,傳輸控制協(xié)議 /國際互聯(lián)網(wǎng)絡(luò)協(xié)議 )。 隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)化產(chǎn)品的應用不斷增多,網(wǎng)絡(luò)化控制系統(tǒng)體系結(jié)構(gòu)日益清晰,向著結(jié)構(gòu)趨向簡單化、大量采用成熟、開放和通用的技術(shù)方向發(fā)展。充分利用網(wǎng)絡(luò)設(shè)施進行網(wǎng)絡(luò)測控,既能降低組建系統(tǒng)的費用,又能實現(xiàn)測控設(shè)備與測控信息的共享。在 網(wǎng)絡(luò)上進行測控與數(shù)據(jù)采集,可以不必親自到達現(xiàn)場,就西安工程大學本科畢業(yè)設(shè)計(論文) 2 可以遠程監(jiān)測或控制過程和獲得實驗數(shù)據(jù)。這樣,不但節(jié)約了人力物力,而且實時性好。網(wǎng)絡(luò)控制器使信息跨越了空間和時間的界限,與傳統(tǒng)儀器相比,這是一個質(zhì)的飛躍。以上網(wǎng)絡(luò)技術(shù)的發(fā)展為嵌入式網(wǎng)絡(luò)控制器將網(wǎng)絡(luò)技術(shù)、傳感器技術(shù)、嵌入式測控技術(shù)、微機電系統(tǒng)等結(jié)合起來獲取信息和處理模式有了新的變化。 現(xiàn)在控制領(lǐng)域正進行一場網(wǎng)絡(luò)化信息化的突破與更新,國際上各大工業(yè)自動化公司也正在推出新一代的控制系統(tǒng),我國在工業(yè)控制系統(tǒng)方面落后于西方發(fā)達國家,要想趕上世界先進水平就必須發(fā)展自己的工 業(yè)控制網(wǎng)絡(luò)并開發(fā)相應的高層協(xié)議和應用軟件。而嵌入式網(wǎng)絡(luò)控制器正是構(gòu)成此網(wǎng)絡(luò)的核心,因此開發(fā)一個既有專用性又有一定通用性,并兼具以太網(wǎng)的多功能嵌入式網(wǎng)絡(luò)控制器,在此基礎(chǔ)上研究網(wǎng)絡(luò)協(xié)議和應用軟件,并搭建新型的網(wǎng)絡(luò)平臺,對建立我國自己的控制體系將具有巨大的意義 4。 1.2 國內(nèi)外研究的現(xiàn)狀 嵌入式系統(tǒng)與 Internet 網(wǎng)絡(luò)的互聯(lián),已經(jīng)成為嵌入式系統(tǒng)的發(fā)展方向。但由于網(wǎng)絡(luò)協(xié)議比較復雜,而嵌入式系統(tǒng)的資源又很有限,這極大的制約了嵌入式系統(tǒng)網(wǎng)絡(luò)化的進程。要解決這一問題,就要使用更高性能的嵌入式微處理器。考慮到現(xiàn)有芯片的性能和價格,因此研究的重點就放在芯片,而 TCP/IP 協(xié)議是以 PC 機、服務(wù)器為應用平臺的,協(xié)議復雜,功能強大,這與嵌入式系統(tǒng)以滿足應用為目的,對實時性要求較高相一致。 為實現(xiàn)控制網(wǎng)絡(luò)和信息網(wǎng)絡(luò)的結(jié)合以及解決現(xiàn)場總線所帶來的問題,譬如,多種現(xiàn)場總線并存 的問題 ,到目前為止,現(xiàn)場總線還沒有形成真正統(tǒng)一的標準, PROFIBUS、 CANBUS、 CC-Link等多種標準并行存在,并且都有自己的生存空間。何時統(tǒng)一,遙遙無期。目前,支持現(xiàn)場總線的儀表種類還比較少,可供選擇的余地小,價格又偏高,用量也較小。 因此 國內(nèi)外學者開始探討各種解決方法,國際上各個廠商也開始嘗試將信息網(wǎng)絡(luò)中的以太網(wǎng)技術(shù)和現(xiàn)場總線網(wǎng)絡(luò)相結(jié)合。例如北美最大的自動化供貨商羅克韋爾自動化公司推出了世界領(lǐng)先的工業(yè)網(wǎng)絡(luò)平臺方案,即三層網(wǎng)絡(luò)結(jié)構(gòu):以太網(wǎng)、控制網(wǎng)和設(shè)備網(wǎng)。 目前,有關(guān)工業(yè)控制器的研究正如火如荼。 2004年 sensory推出低成本、高精確度的語音識別芯片 RSC-4x系列。 RSC-4x不僅可提供通用嵌入式控制器應用的西安工程大學本科畢業(yè)設(shè)計(論文) 3 單芯片解決方案,而且還增添了語音和音樂合成,以及語音識別功能。 RSC-4x可以在噪音環(huán)境和接收大量語言詞匯的情況下保持優(yōu)異的性能 ,此外還可以在3K-64Kbps的速率范圍內(nèi)提供高質(zhì)量的語音合成。 RSC-4x采用一個帶有 DSP輔助引擎的 MCU,獨特的低功耗音頻喚醒模式允許芯片通過外界提示音轉(zhuǎn)入工作模式,而無需手動操作。近期, ARC Group又提出融會了 PC和 PLC的優(yōu)點的 PAC概念。這方面國內(nèi)以泓格科技的 PAC系列為代表。時下最常見的控制器包括:可編程邏輯控制器、以單片機為核心的控制器、 PC Based的控制器和采用 DSP、 ARM等高性能微處理器的嵌入式控制器。目前常用的可編程邏輯控制器仍以國外產(chǎn)品為主,包括西門子、歐姆龍等。他們通 常使用其專存的現(xiàn)場總線。盡管現(xiàn)場總線的技術(shù)已經(jīng)成型,但現(xiàn)場總線的功能單一和實現(xiàn)標準的不統(tǒng)一,使得我們在不同的現(xiàn)場環(huán)境下需要使用不同類型的現(xiàn)場總線,多類型現(xiàn)場總線的選擇又使得整個控制系統(tǒng)顯得相當混亂,而且現(xiàn)場總線類型的選擇本身也是個棘手的問題 。而且上市的眾多國產(chǎn)的 PLC產(chǎn)品中,還沒有形成規(guī)?;纳a(chǎn)和名牌產(chǎn)品,甚至還有一部分是以仿制、來件組裝或“貼牌”方式生產(chǎn),迫切需要研究具有完全自主知識產(chǎn)權(quán)的工業(yè)控制器,以提高我國工業(yè)自動化產(chǎn)品的國際競爭力。 然而, PC Based控制器雖功能豐富,但多數(shù)體積偏大,而且價 格不菲。基于 DSP, ARM等高性能微處理器的嵌入式控制器是當前的研究熱點。上海海得控制系統(tǒng)股份有限公司開發(fā)的 HT2000專用控制器,采用 DSP, FPGA等技術(shù),實現(xiàn)了電氣傳動、聯(lián)網(wǎng)通訊和 Internet遠程監(jiān)控一體化,適用于鍋爐、空調(diào)、電梯和機械設(shè)備等各種工業(yè)控制器和數(shù)采監(jiān)控終端的應用。煙臺中正新技術(shù)有限公司開發(fā)了WELLSYS,采用 NSGXl-300CPU,內(nèi)置 64MB內(nèi)存、 64MB用戶存儲器 (CF卡 ),外接 IO 。 4寸 TFT真彩屏,帶觸摸屏, 1個 RJ-45, 10 100M以太網(wǎng)口, 1個并口, 2個 USB口, 2個 RS232口, 1個 RS485。濟南正平自動設(shè)備有限公司生產(chǎn)的 XPC系列的控制器,功耗低、采用高級語言 C語言編程,最大程序容量 512K,數(shù)據(jù)容量 512K(帶電池備份 )支持工業(yè)以太網(wǎng),功能強大,支持實時多任務(wù),可通過 Internet遠程操作維護,支持 TCP IP等眾多通訊協(xié)議,支持 CDMA Ix, GPRS, ADSL, PSTN,電臺等通訊方式,帶有多種通訊接口,支持 MODBUS等國際通用現(xiàn)場總線標準 Il型。 分析以上現(xiàn)有嵌入式控制器,面對應用現(xiàn)場環(huán)境多種網(wǎng)絡(luò)并存的局面,本文設(shè)計的嵌入式網(wǎng)絡(luò)控制器具備以太網(wǎng) 口等多種網(wǎng)絡(luò)接口。該嵌入式網(wǎng)絡(luò)控制器采西安工程大學本科畢業(yè)設(shè)計(論文) 4 用了高性能的微處理器 STM32F103ZET6,不但提高了工業(yè)控制系統(tǒng)的實時性,還可以方便多媒體功能的進一步擴展?;谠撉度胧骄W(wǎng)絡(luò)控制器的自動控制系統(tǒng)能夠?qū)崿F(xiàn)以太網(wǎng)和現(xiàn)場控制網(wǎng)絡(luò)的無縫連接,節(jié)省了相關(guān)的網(wǎng)絡(luò)設(shè)備,降低了系統(tǒng)成本。 1.3 課題來源及研究內(nèi)容 本設(shè)計以水利行業(yè)為背景,將嵌入式網(wǎng)絡(luò)控制器用于到水利行業(yè),對水文信 息(如水位、流量)進行采集,處理、存儲,將水文數(shù)據(jù)通過網(wǎng)絡(luò)傳輸?shù)竭h程 PC機上,實現(xiàn)遠程監(jiān)控。 我國是一個江湖眾多的國家,但是由于受季風氣候的影 響,降水的時空分布很不均勻,各大江河流域洪澇災害發(fā)生較為頻繁 ,所以研究水利工程中水位,流量等物理量意義重大。 而以往水位的檢測是由人工完成的,值班人員全天候地對水位的變化進行監(jiān)測,用有線電話及時把水位變化情況報知主控室,然后主控室再開動電機進行給排水。 5很顯然上述重復性的工作無論從人員、時間和資金上都將造成很大的浪費,同時也容易出差錯,因此 本文就水位和流速進行研究,利用傳感器采集信息反饋給網(wǎng)絡(luò)控制器,再于 PC 機相連,縮短反饋周期,控制器集成 TCP IP協(xié)議的以太網(wǎng)接口,可與遠程控制中心服務(wù)器通過以太網(wǎng)進行 數(shù)據(jù)交換,實現(xiàn)以太網(wǎng)功能,使數(shù)據(jù)信息能有效的反饋和利用。 針對目前水利樞紐問題和需要,本課題主要設(shè)計與實現(xiàn)一款兼有以太網(wǎng)和多種控制接口的嵌入式網(wǎng)絡(luò)控制器,并以此為基礎(chǔ)實現(xiàn)網(wǎng)絡(luò)化的嵌入式數(shù)控系統(tǒng)。嵌入式網(wǎng)絡(luò)控制器外接觸摸屏,只需點擊觸摸屏就可實現(xiàn)圖形化顯示與控制,過程可視,管控一體,具有權(quán)限管理,報警設(shè)定,事件記錄,歷史數(shù)據(jù),趨勢曲線等功能。這樣使控制器功能更加豐富,任何一個控制器都可以設(shè)置為監(jiān)控中心,使操作人員在任何一個控制節(jié)點都能夠方便自如地對整個系統(tǒng)進行監(jiān)控。 本文實現(xiàn)的基于嵌入式網(wǎng)絡(luò)控制器的控制系統(tǒng), 以控制器為中心,能夠?qū)F(xiàn)場模擬信號,如水位、流量等,通過現(xiàn)場傳感器等測控設(shè)備的數(shù)據(jù)采集,利用控制器以太網(wǎng)接口功能,實現(xiàn)控制器與控制中心服務(wù)器的 TCP IP協(xié)議網(wǎng)絡(luò)通信。監(jiān)控中心通過控制器對水利設(shè)施監(jiān)控,能夠進行系統(tǒng)數(shù)據(jù)管理等工作。實現(xiàn)網(wǎng)絡(luò)冗余控制,提高了系統(tǒng)可靠性。采用 TCP IP協(xié)議通信便于實現(xiàn)網(wǎng)絡(luò)管理和遠程西安工程大學本科畢業(yè)設(shè)計(論文) 5 維護。同時與 Internet 的無縫連接,也為實現(xiàn)遠程監(jiān)控降低了系統(tǒng)成本。 課題研究主要內(nèi)容如下 : (1)對現(xiàn)有的嵌入式網(wǎng)絡(luò)控制器的方案進行了比較。選擇了意法半導體公司生產(chǎn)的 STM32F103ZET6 高 性能嵌入式處理器為核心,針對嵌入式網(wǎng)絡(luò)控制器需要的各個功能進行方案分析與器件選型,配合硬件同學的設(shè)計了解開發(fā)環(huán)境 KeiluVision和軟件設(shè)計流程 。 (2)深入研究 TCP IP協(xié)議的基礎(chǔ)上掌握通訊基礎(chǔ)知識,完成了嵌入式網(wǎng)絡(luò)控制器基于以太網(wǎng)的通信。 (3)配合硬件同學的設(shè)計,組建外部設(shè)備使網(wǎng)絡(luò)控制器與上位機相連,通過以太網(wǎng)初步實現(xiàn)通信及遠程控制。 1.4 論文的計劃及時間安排 第 1 周 提出論文基本要求,及主要任務(wù) 第 2 周 針對論文所需文獻進行了解和資料的搜集 第 3 周 提出開題報告,完成報告的初步設(shè)計 第 4 5 周 完善并提交開題報告 第 6 7 周 初步確定設(shè)計方案,熟悉相關(guān)儀器設(shè)備及軟件環(huán)境 第 8 周 向?qū)熃榻B相關(guān)論文及研究課題, 確定設(shè)計方案,畫出系統(tǒng)框圖 第 9 12 周 完成編程,完善設(shè)計并進行調(diào)試 第 12 16 周 設(shè)計總結(jié),撰寫論文 第 16 18 周 答辯準備 西安工程大學本科畢業(yè)設(shè)計(論文) 6 第 2 章 嵌入式網(wǎng)絡(luò)控制器總體設(shè)計 2.1 功能需求 隨著控制設(shè)備的網(wǎng)絡(luò)功能要求越來越高,控制設(shè)備具有 Internet 接入功能,能夠支持 TCP IP 以及其他 Internet 協(xié)議,采集數(shù)據(jù)通過網(wǎng)絡(luò)傳送到服務(wù)器的數(shù)據(jù)庫中,使用戶通過計算機 查看設(shè)備狀態(tài)、設(shè)備參數(shù),監(jiān)控某些數(shù)據(jù)等功能,以達到遠程監(jiān)控信息共享的目的。此外,網(wǎng)絡(luò)控制器還應該配有顯示等功能,以便工作人員管理設(shè)備和監(jiān)測數(shù)據(jù)。具體來說,網(wǎng)絡(luò)控制器的主要需求有以下幾個方面 。 2.1.1 數(shù)據(jù)采集和處理 本文主要檢測的水文信息為水位和流量,其中水位選擇的傳感器為古大雷達水位計,流量采用的是超聲波明渠流量計。通過傳感器數(shù)據(jù)的采集,經(jīng)過一定的處理后經(jīng)過通信信道,把數(shù)據(jù)傳送至中心站,嵌入式網(wǎng)絡(luò)控制器配有大容量數(shù)據(jù)存儲器,可將數(shù)據(jù)按時間順序存入。 其中數(shù)據(jù)采集分為事件觸發(fā)采集和定時采集。 事 件觸發(fā)采集是對于事件類傳感器(如雨量傳感器等), 由傳感器的輸出信號觸發(fā)工作,并對該數(shù)據(jù)進行計數(shù)。定時采集是對于碼盤編碼輸出、或 SDI-12 智能傳感器(如水位、流量、水質(zhì)等),網(wǎng)絡(luò)控制器以設(shè)定的周期采集傳感器數(shù)據(jù)。周期設(shè)定范圍 1 360 分鐘。( 1、 2、 3、 4、 5、 6、 10、 15、 20、 30、 60、 120、180、 240、 360)。本設(shè)計采用的是定時采集的方式,采樣間隔時間可以人為設(shè)置。 采集數(shù)據(jù)的周期還可以分為普通采集周期和應急采集周期兩種。 普通采集周期:在大部分時間里,傳感器數(shù)據(jù)處于安全范圍 以內(nèi),數(shù)值變化也較為緩慢,此時可以采用較長的周期采集傳感器數(shù)據(jù),以節(jié)約耗電、節(jié)省內(nèi)存等。 加密采集周期:在緊急情況(如水位超越警戒線),遙測站自動轉(zhuǎn)入加密測量方式,以較短的周期采集傳感器數(shù)據(jù),以捕捉傳感器數(shù)據(jù)過程。 普通采集周期和加密采集周期可根據(jù)需要配置。 I/O 接口能力應該包括數(shù)字量輸入輸出通道,模擬量輸入通道,開關(guān)量輸出西安工程大學本科畢業(yè)設(shè)計(論文) 7 通道。其中模擬量的輸入作為傳感器信號的輸入通道,最為重要。 數(shù)據(jù)處理就是將采集到的原始數(shù)據(jù)經(jīng)過一定計算轉(zhuǎn)換為我們要測量的參數(shù)值。需要處理的數(shù)據(jù)包括電壓、溫度、水位、流量。 2.1.2 以太網(wǎng)通信 目前 , 隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展 , 越來越多的測控設(shè)備已將以太網(wǎng)接入功能作為其默認配置來實現(xiàn)設(shè)備的遠程監(jiān)控和信息分布式處理。而此前設(shè)計人員在為遠程控制或監(jiān)控系統(tǒng)提供應用接入時 , 可選擇的以太網(wǎng)控制器都是專為個人計算機系統(tǒng)設(shè)計的 , 這些控制器既復雜、又占用較大的空間 , 且比較昂貴。此外 , 大部分以太網(wǎng)控制器采用的封裝均超過 80 引腳。而本文介紹的以太網(wǎng)控制芯片ENC28J60則符合 IEEE 802.3協(xié)議 ,可通過 SPI接口與主控制器通訊 , 因而可大大簡化相關(guān)設(shè)計 , 減小占板空間 , 從而可為嵌入 式應用提供低引腳數(shù)、低成本且高效易用的遠程通訊解決方案。本文介紹的就是一種基于 ENC28J60 的網(wǎng)絡(luò)控制器的以太網(wǎng)通信。 2.1.3 其他功能和需求 1、顯示 為了降低功耗網(wǎng)絡(luò)控制器的 LED 顯示可為閃爍方式,或者顯示時才將其點亮的間歇工作方式。在有液晶顯示的時候,管理人員可以查詢采集到的各種數(shù)據(jù),檢查設(shè)備的工作狀態(tài),可以對終端的工作方式和參數(shù)進行設(shè)置,一個友善的人機界面,對系統(tǒng)的管理和維護都很方便。 觸摸屏選擇北京迪文科技有限公司生產(chǎn)的DMG32240S035_01WT,其分辨率為 320 240,工作溫度范圍為 20 70,工作電壓 5V,該模塊支持多語言、多字體、任意大小的文本顯示,支持用戶自行設(shè)計的字庫。 2、輸入輸出接口 網(wǎng)絡(luò)控制器具有下列三類接口,即與傳感器的接口,與通信設(shè)備的輸入輸出接口以及電源接口。通信接口,一般按 RS232,RS485 設(shè)計。 RS232 口多用于和調(diào)制解調(diào)器以及各種數(shù)字終端相連,以完成測報系統(tǒng)的數(shù)據(jù)傳輸工作。 RS485 大多用于和智能傳感器相連。 I2C,SPI 等接口也可根據(jù)需要設(shè)計使用。 隨著通信方式的多樣化和穩(wěn)定性的要求,網(wǎng)絡(luò)控制器最好能配備三個以上的通信接口, 且可西安工程大學本科畢業(yè)設(shè)計(論文) 8 對每一個接口靈活編程。各種通信介質(zhì)的通信協(xié)議最好按照模塊化的方法裝入終端設(shè)備中,這樣在使用的時候只需要做簡單的配置即可。 3、數(shù)據(jù)存儲 網(wǎng)絡(luò)控制器需要配置大容量非易失性數(shù)據(jù)存儲器,可根據(jù)需要存儲采集數(shù)據(jù)或上報數(shù)據(jù),并可通過遠程讀取。每當產(chǎn)生一個新的上報數(shù)據(jù),該數(shù)據(jù)與上報時間都要存入內(nèi)部的非易失性存貯器內(nèi),所存貯的數(shù)據(jù)帶時標(年月日時分)。 測報數(shù)據(jù)按時間順序存貯,并按一定的時間段(如一天時間)組織存放,以便于檢索。 根據(jù)需要,可遠程讀取所存貯的數(shù)據(jù),或者操作人員到現(xiàn)場下載所存貯的數(shù)據(jù)。當非易失存 貯器存滿后,新的測報數(shù)據(jù)可覆蓋最早的測報數(shù)據(jù)。 2.2 設(shè)計原則 在環(huán)境較復雜,信息傳輸距離遠的因素下,嵌入式網(wǎng)絡(luò)控制器在芯片和元器件的選擇上不僅要考慮耐用性和普遍性,還需要遵循以下原則 ( 1)低功耗原則 芯片的正常工作不僅需要穩(wěn)定可靠的電源,不同的芯片還經(jīng)常需要不同的電壓,因此系統(tǒng)的功耗成為一個嚴格的要求。設(shè)計的網(wǎng)絡(luò)控制器必須滿足低功耗原則,要有良好的電源管理系統(tǒng),使控制器芯片大部分時間工作于休眠狀態(tài)。在滿足基本功能的前提下選用性價比較優(yōu)、功耗較低的芯片,以減輕電源負擔,降低功耗。 ( 2)可靠性 原則 可靠性是網(wǎng)絡(luò)控制器的重要指標,因為控制器采集的信息要通過遠距離傳輸,因此選用高可靠性的微控制器和元器件,保證控制器在傳輸?shù)倪^程中能正常運行。其次,設(shè)計可靠的方案沒有過壓、過流等現(xiàn)象,以保證控制器的可靠運行。 ( 3)可拓展性原則 為實現(xiàn)系統(tǒng)靈活的可擴展性應采用模塊化設(shè)計的方法,復雜的功能依靠若干模塊的組合來完成,每個模塊僅具有簡單的功能。擴展能力和通信擴展能力是最主要的兩個指標,在接口上可以通過增加串行接口實現(xiàn)。 ( 4)經(jīng)濟性原則 在滿足所需功能的 前提下,系統(tǒng)越簡單,價格也越便宜。一個好的網(wǎng)絡(luò)控制西安工程大學本科畢業(yè)設(shè)計(論文) 9 器在經(jīng)濟上一定要是最合理的,而不一定是最先進最復雜的。網(wǎng)絡(luò)控制器設(shè)計時要考慮性價比,功能模板的微控制器應選用通用型號以滿足經(jīng)濟性的要求,元器件的選型也應在兼顧可靠性的同時兼顧經(jīng)濟性。 2.3 系統(tǒng)總體結(jié)構(gòu)設(shè)計 本設(shè)計的硬件總體框圖如圖 2-1所示。主要分為電源管理模塊 , A/D轉(zhuǎn)換模 塊, 數(shù)據(jù)存儲 模塊, 以太網(wǎng)接口模塊 ,液晶顯示屏 模塊 。傳感器選用的是古大雷達水位計測水位,用超聲波明渠流量計測流量,主芯片控制模塊采用意法半導體公司生產(chǎn)的 超低功耗 32位 STM32F103ZET6, A/D采集模塊采用 ADS1110 加 CD4051的方法,擴展 8 路 16 位 A/D, 數(shù)據(jù)存儲模塊選用的是鐵電隨機存儲 FM24C16 和FLASH 存儲器 AT45DB161B, 以太網(wǎng)接口模塊采用 SPI 接口的 ENC28J60 以太網(wǎng)控制器實現(xiàn) 10M的以太網(wǎng)功能, 顯示模塊采用的是迪文串口屏進行顯示。 配合硬件設(shè)計的同學,使系統(tǒng)與上位機之間通過以太網(wǎng)實現(xiàn)實時通信及遠程控制。 圖 2-1 總體設(shè)計方案框圖 2.4 論文寫作提綱 本論文基于嵌入式網(wǎng)絡(luò)控制器,通過系統(tǒng)的數(shù)據(jù)采集,處理、存儲、顯示 為一體來監(jiān)測水位,流量等物理量,達到以太網(wǎng)實時通信及遠程控制。 RJ45 接口 網(wǎng)絡(luò)控制器 傳 感 器 微 處 理 器 2 路 RS232 1 路 RS485 顯 示 上 位機 開關(guān)量的輸出 數(shù)字量的輸入 /出 模 擬 量 的 輸 入 A/D 轉(zhuǎn)換 存 儲 西安工程大學本科畢業(yè)設(shè)計(論文) 10 (1)第一章緒論部分介紹課題的來源、研究課題背景及意義、國內(nèi)外研究狀況,最后提出進度安排情況。 (2)第二章介紹了網(wǎng)絡(luò)控制器的功能需求及設(shè)計原則和系統(tǒng)總設(shè)計方案。 (3)第三章介紹系統(tǒng)的硬件設(shè)計及實現(xiàn)方法。 (4)第四章介紹了基于 TCP/IP實現(xiàn)以太網(wǎng)實時通訊及遠程控制。 (5)第五章介紹系統(tǒng)的軟件設(shè)計及實現(xiàn)方法。 (6)第六章總結(jié)和展望對該設(shè)計的應用及 本論文的研究內(nèi)容和存在的不足之處 做總結(jié)。 西安工程大學本科畢業(yè)設(shè)計(論文) 11 第 3 章 硬件電路的設(shè)計 由系統(tǒng)設(shè)計總框圖可以看出硬件電路的總體設(shè)計,該系統(tǒng)的主體控制芯片STM32F103ZET6,其余各支路電路分別為:電源電路、數(shù)據(jù)采集、 A/D 轉(zhuǎn)換電路、存儲電路、顯示電路、以太網(wǎng)接口電路。本章將對核心元件以及各支路電路作簡略介紹。 3.1 微控制器 STM32F103ZET6 簡介 本課題設(shè)計的嵌入式網(wǎng)絡(luò)控制器其主芯片是由意法公司設(shè)計生產(chǎn)的STM32F103ZET6 高性能微處理器,其系統(tǒng)構(gòu)架是由四個驅(qū)動單元 和四個被動單元構(gòu)成 ;驅(qū)動單元: Cortex-M3內(nèi)核、 DCode總線、系統(tǒng)總線和通用 DMA1、 DMA2。被動單元:內(nèi)部 SRAM、內(nèi)部閃存存儲器、 FSMC、 AHB到 APB的橋。 STM32F103ZET6 使用高性能的 ARM Cortex-M3 32 位的 RISC 內(nèi)核,工作頻率為 72MHz,內(nèi)置高速存儲器 (高達 512K 字節(jié)的閃存和 64K 字節(jié)的 SRAM),STM32F102ZET6還帶有 4個片選的靈活的靜態(tài)存儲器。支持 CF卡、 SRAM、 PSRAM、NOR和 NAND存儲器。具有 LCD接口,兼容 8080/6800 模式。 能匹配更多的外部設(shè)備具有強大的通用性豐富的增強 I/O 端口,所有 I/O 口都可以映像到 16 個外部中斷且可以容忍 5V 信號輸入,大大增強了耐壓性能。聯(lián)接到兩條 APB 總線的外設(shè),豐富的增強 I/O 端口和聯(lián)接到兩條 APB 總線的外設(shè),而且包含 2 個 12 位的ADC、 4 個 16 位定時器和一個 PWM 定時器,還包含標準和先進的通信接口:多達2 個 I2C 和 SPI、 3 個 USART、一個 USB 和一個 CAN。 STM32F103ZET6 支持三種低功耗模式,可以在低功耗、短啟動時間和多種喚醒事件之間達到最佳的平衡。 1 DMA 靈活的 7路通用 DMA可以管理存儲器到存儲器、設(shè)備到存儲器和存儲器到設(shè)備的數(shù)據(jù)傳輸; DMA 控制器支持環(huán)形緩沖區(qū)的管理,避免了控制器傳輸?shù)竭_緩沖區(qū)結(jié)尾時所產(chǎn)生的中斷。每個通道都有專門的硬件 DMA請求邏輯,同時可以由軟件觸發(fā)每個通道;傳輸?shù)拈L度、傳輸?shù)脑吹刂泛湍繕说刂范伎梢酝ㄟ^軟件單獨設(shè)置。 DMA可以用于主要的外設(shè): SPI、 I2C、 USART、通用和高級定時器 TIMx和 ADC。 RTC(實時時鐘 )和后備寄存器 西安工程大學本科畢業(yè)設(shè)計(論文) 12 RTC 和后備寄存器通過一個開關(guān)供電,在 VDD 有效時該開關(guān)選擇 VDD 供電,否則由 VBAT管腳供電。后備寄存器 (10個 16 位的 寄存器 )可以用于在 VDD消失時保存數(shù)據(jù)。實時時鐘具有一組連續(xù)運行的計數(shù)器,可以通過適當?shù)能浖峁┤諝v時鐘功能,還具有鬧鐘中斷和階段性中斷功能。 RTC 的驅(qū)動時鐘可以是一個使用外部晶體的 32.768kHz 的振蕩器、內(nèi)部低功耗 RC振蕩器或高速的外部時鐘經(jīng) 128分頻。內(nèi)部低功耗 RC 振蕩器的典型頻率為 32kHz。為補償天然晶體的偏差, RTC的校準是通過輸出一個 512Hz的信號進行。 RTC具有一個 32位的可編程計數(shù)器,使用比較寄存器可以產(chǎn)生鬧鐘信號。有一個 20 位的預分頻器用于時基時鐘,默認情況下時鐘為 32.768kHz 時它將產(chǎn)生一個 1秒長的時間基準。 通用定時器 (TIM1) STM32F103ZET6 內(nèi)置了多達 3個同步的標準定時器。每個定時器都有一個 16位的自動加載遞加 /遞減計數(shù)器、一個 16位的預分頻器和 4個獨立的通道,每個通道都可用于輸入捕獲、輸出比較、 PWM 和單脈沖模式輸出,在最大的封裝配置中可提供最多 12 個輸入捕獲、輸出比較或 PWM 通道。它們還能通過定時器鏈接功能與高級控制定時器共同工作,提供同步或事件鏈接功能。在調(diào)試模式下,計數(shù)器可以被凍結(jié)。任一標準定時器都能用于產(chǎn)生 PWM輸出。每個定時器都有獨立的 DMA請求機制 。 高級控制定時器 (TIM1) 高級控制定時器 (TIM1)可以被看成是一個分配到 6 個通道的三相 PWM 發(fā)生器,它還可以被當成一個完整的通用定時器。四個獨立的通道可以用于: 輸入捕獲 輸出比較 產(chǎn)生 PWM(邊緣或中心對齊模式 ) 單脈沖輸出 反相 PWM輸出,具程序可控的死區(qū)插入功能配置為 16位標準定時器時,它與 TIM1定時器具有相同的功能。配置為 16位 PWM發(fā)生器時,它具有全調(diào)制能力 (0100%)。在調(diào)試模式下,計數(shù)器可以被凍結(jié)。很多功能都與標準的 TIM定時器相同,內(nèi)部結(jié)構(gòu)也相同,因此高級控 制定時器可以通過定時器鏈接功能與 TIM定時器協(xié)同操作,提供同步或事件鏈接功能。 西安工程大學本科畢業(yè)設(shè)計(論文) 13 如圖 3-1所示為 STM32F103FVET6電路連線圖及外圍電路: 圖 3-1 STM32F103FVET6 電路連線圖及外圍電路 3.2 電源電路設(shè)計 電源電路采用的是芯片 AMS1117,本課題需要用 AMS1117( 5.0)將 12V 轉(zhuǎn)變?yōu)?5V,再用倆個 AMS1117(3.3)將 5V 轉(zhuǎn)變?yōu)?3.3V,其中一路模擬電源,一路數(shù)字電源。 AMS1117 是一個低漏失電壓調(diào)整器,它的穩(wěn)壓調(diào)整管是由一個 PNP 驅(qū) 動的NPN管組成的 ,漏失電壓定義為: VDROP=VBE+VSAT。 AMS1117有固定和可調(diào)兩個版本可用,輸出電壓可以是: 1.8V, 3.3V 和 5.0V。片內(nèi)過熱切斷電路提供了過載和過熱保護,以防環(huán)境溫度造成過高的結(jié)溫,其中過流保護和過熱保護模塊,能夠在應用電路的環(huán)境溫度大于 120以上或負載電流大于 900mA 時,保證芯片和系統(tǒng)的安全。為了確保 AMS1117的穩(wěn)定性,對可調(diào)電壓版本,輸出需要連接一個至少 22 F的鉭電容。對于固定電壓版本,可采用更小的電容,具體可以根據(jù)實際應用確定。通常,線性調(diào)整器的穩(wěn)定性隨著 輸出電流增加而降低。如圖 3-2所示為 AMS1117電路連線圖。 西安工程大學本科畢業(yè)設(shè)計(論文) 14 圖 3-2 AMS1117 電路連線圖 3.3 A/D 轉(zhuǎn)換電路的設(shè)計 A/D 轉(zhuǎn)換模塊采用的 是精密的連續(xù)自校準模 /數(shù)轉(zhuǎn)換器 ADS1110,其 帶有差分輸入和高達 16 位的分辨率 ,封裝為小型 SOT23-6 片內(nèi) 2.048V 的基準電壓 ,提供范圍為 2.048V 的輸入差分電壓 ,ADS1110 使用可兼容的 I2C串行接口在 2.7V 至5.5V 的單電源下工作 ,ADS1110 可每秒采樣 15 30 60 或 240 次以進行轉(zhuǎn)換片內(nèi)可編程的增益放大器 ,PGA 提供高達 8 倍的增益 ,并且允許以高分辨率對較小的信號進行測量 ,在單周期轉(zhuǎn)換方式中 ADS1110 在一次轉(zhuǎn)換 ,之后自動掉電在空閑期間極大地減少了電流消耗 。 ADS1110 以兩種方式中的一種工作,連續(xù)轉(zhuǎn)換和單周期轉(zhuǎn)換在連續(xù)轉(zhuǎn)換方式中 ADS1110,連續(xù)地進行轉(zhuǎn)換 ,一旦轉(zhuǎn)換完成 ADS1110,即將結(jié)果置入輸出寄存器并立即開始另一輪轉(zhuǎn)換在單周期轉(zhuǎn)換方式中, ADS1110,會等待直到轉(zhuǎn)換寄存器中的 ST/ DRDY 位被置位為 1,此時 ADS1110 上電并且工 作在單周期轉(zhuǎn)換方式下,在轉(zhuǎn)換完成之后, ADS1110將結(jié)果置入輸出寄存器中,復位 ST/ DRDY 位為0 并掉電,當轉(zhuǎn)換正在進行時寫 1 到 ST/DRDY,沒有影響在從連續(xù)轉(zhuǎn)換方式切換到單周期轉(zhuǎn)換方式時 ADS1110將完成當前轉(zhuǎn)換復位 ST/DRDY位為 0 并掉電。 ADS1110 有兩個寄存器 它們可通過 I2C 端口訪問 輸出寄存器包含上一次轉(zhuǎn)換的結(jié)果 配置寄存器允許用戶改變 ADS1110 的工作方式并查詢器件的狀態(tài)。 輸出寄存器 16位的輸出寄存器包含上一次轉(zhuǎn)換的結(jié)果,該結(jié)果采取二進制 2的補碼格式,在復位或上電之后,輸出 寄存器被清零,并保持為 0直到第一次轉(zhuǎn)換完成,輸出寄存器的格式如表 3-1所示。 西安工程大學本科畢業(yè)設(shè)計(論文) 15 表 3-1 輸出寄存器 BIT 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 NAME D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 配置寄存器 用戶可用 8 位配置寄存器來控制 ADS1110 的工作方式 ,數(shù)據(jù)速率和可編程增益放大器 PGA 的設(shè)置 ,配置寄存器的格式如表 3-2所示 ,默認設(shè)置是 8CH。 表 3-2 配置寄存器 ADS1110電路連線圖如圖 3-3所示: 圖 3-3 ADS1110 電路連線圖 3.4 存儲電路設(shè)計 系統(tǒng)的存儲模塊包括 SDRAM 和 ROM 兩部分。在嵌入式系統(tǒng)中, ROM 是一種可進行電擦寫,掉電后信息不會丟 失的存儲器,用于存放程序代碼、常量表以及一些系統(tǒng)掉電后需要保存的用戶數(shù)據(jù)等。 SDRAM 是系統(tǒng)的內(nèi)存,它不具有掉電保持數(shù)據(jù)的特性,但其存取速度大大高于 Flash 存儲器,在系統(tǒng)中主要用作程序的運行空間、數(shù)據(jù)及堆棧區(qū)。當系統(tǒng)啟動時, CPU 首先從復位地址 (一般是 0X00000000地址 )讀取啟動代碼,在完成系統(tǒng)的初始化后,程序代碼被調(diào)入 SDRAM 中運行以提高系統(tǒng)的運行速度。本系統(tǒng)采用 2048*8 位 的 FM24C16 和 AT45DB161D Flash相結(jié)合,完成系統(tǒng)存儲電路的設(shè)計。 BIT 7 6 5 4 3 2 1 0 NAME ST/DRDY 0 0 SC DR0 DR0 PGA1 PAG0 DEFAULT 1 0 0 0 1 1 0 0 西安工程大學本科畢業(yè)設(shè)計(論文) 16 3.4.1 FM24C16 介紹 一、 16K位的非易失性鐵電隨機存儲器 1).組織結(jié)構(gòu)為 2048*8位 2).讀寫壽命為 100億次 3).掉電數(shù)據(jù)保存 10年 4).寫數(shù)據(jù)無延時 5).高可靠性鐵電晶體 二、快速兩線串行協(xié)議 1).總線速度可以達到 400KHZ 2).硬件上可以直接替換 EEPROM 三、低功耗操作 1).工作電壓為 5V 2).工作電流為 150uA 3).待機電流 10uA 工業(yè)溫度 四、 FM24C16讀寫操作 FM24C16 是通過 I2C 總線接口進行讀寫操作,且通過對第腳 (WP)的電平控制,可實現(xiàn)寫保護功能。當該引腳為低電平 時,正常寫操作;為高電平時,對FRAM部分存儲區(qū)域提供硬件寫保護功能,即對被保護區(qū)域只能讀,不能寫。時鐘線 (SCL)和數(shù)據(jù)線 (SDA)通過上拉電阻拉至高電平?!伴_始”和“停止”條件決定了數(shù)據(jù)傳輸?shù)拈_始和停止。當時鐘線為高時數(shù)據(jù)線發(fā)生下跳變?yōu)槠鹗紬l件 (S);而當時鐘線為高時數(shù)據(jù)線發(fā)生上跳變?yōu)橥V箺l件 (P)。 根據(jù) I2C 總線協(xié)議,每個從器件都有一個器件地址,從器件地址的最低位作為讀寫控制位“ 1” 表示對從器件進行讀操作“ 0”表示對從器件進行寫操作。在CPU 發(fā)送起始信號和從器件地址字節(jié)后, FM24C16 監(jiān)視總線 并當其地址與發(fā)送的地址相符時響應一個應答信號(通過 SDA 線)。然后在根據(jù)讀寫控制位( R/W)的狀態(tài)進行讀或?qū)懖僮?。最后?CPU產(chǎn)生停止條件結(jié)束操作。綜合起來, FM24C16讀寫操作過程可概括為: 1).主器件 CPU 發(fā)送起始條件 西安工程大學本科畢業(yè)設(shè)計(論文) 17 2).主器件發(fā)送一字節(jié)的尋址 FM24C16 的地址信息 3).主器件接收 FM24C16發(fā)出的確認信號 4).主器件發(fā)送字節(jié)地址,主器件接收 FM24C16發(fā)出的另一個確認信號 5).若為寫操作,主器件發(fā)送數(shù)據(jù)到被尋址的單元, FM24C16向主器件發(fā)送確認信號;若為讀操作,主器件重新發(fā)送 起始條件和 FM24C16地址,此時 R/W位置“ 1”, FM24C16發(fā)出確認信號后,輸出一字節(jié)數(shù)據(jù) 6).主器件發(fā)送結(jié)束條件。 FM24C16電路連線圖如圖 3-4所示: 圖 3-4 FM24C16 電路連線圖 3.4.2 AT45DB161D 介紹 AT45DB161D是一款 2.5V或 2.7V,串行接口的 FLASH存儲器,是各種數(shù)字語音,圖像,程序代碼和數(shù)據(jù)存儲應用的理想選擇。 AT45DB161D 支持 Rapids 串行接口,適用于 要求高速操作的應用。 Rapids 串行接口兼容 SPI,最高頻率可達66MHz。 AT45DB161D 的存儲容量為 17,301,504 位,組織形式為 4,096 頁,每頁512或 528頁。 除了主存儲器外, AT45DB161D 還包含 2 個 512/528 字節(jié)的 SRAM 緩沖區(qū)。緩沖區(qū)允許在對主存儲器的頁面重新編程時接收數(shù)據(jù),也可寫入連續(xù)的數(shù)據(jù)串。通過獨立的 “ 讀 -改 -寫 ” 三步操作,可以輕松實現(xiàn) EEPROM 仿真(可設(shè)置成位或字節(jié))。 Data Flash 通過 Rapids 串行接口順序訪問數(shù)據(jù),而不像傳統(tǒng) FLASH 存儲器那樣通過復用 總線和并行接口隨機存取。 AT45DB161D電路連線如圖 3-5所示: 西安工程大學本科畢業(yè)設(shè)計(論文) 18 圖 3-5 AT45DB161D 電路連線圖 3.5 顯示電路設(shè)計 觸摸屏選擇北京迪文科技有限公司生產(chǎn)的 DMG32240S035_01WT,其分辨率為320 240,工作溫度范圍為 20 70,工作電壓 5V,該模塊支持多語言、多字體、任意大小的文本顯示,支持用戶自行設(shè)計的字庫; 128MB 存儲器,支持 USB高速圖片下載更新,圖形功能完善;支持觸摸屏和鍵盤,并具 有觸摸屏漂移處理技術(shù),內(nèi)嵌拼音輸入法、數(shù)據(jù)排序等簡單算法處理。如圖 3-6所示為觸摸屏的電路連線圖。 圖 3-6 觸摸屏的電路連線圖 3.6 以太網(wǎng)電路設(shè)計 本課題在網(wǎng)絡(luò)傳輸模塊設(shè)計中,采用了 ENC28J60 作為以太網(wǎng)控制器芯片,它是 Microchip 公司推出的最大傳輸速率 10Mbit/s 的 SPI 接口以太網(wǎng)控制器,內(nèi)置 10Mbit/s 以太網(wǎng)物理層器件及介質(zhì)訪問控制器,可按以太網(wǎng)協(xié)議可靠的收發(fā)信息包里的數(shù)據(jù)。 11 ENC28J60通過 SPI接口和 STM32F103ZET6的 PB12,PB13,PB14,PB15管腳相連接 ,PB12,PB13,PB14,PB15 可通過軟件設(shè)置為 SPI接口。網(wǎng)絡(luò)的 4個引腳通過網(wǎng)絡(luò)隔離器連接到網(wǎng)絡(luò)接口, 2 個中斷引腳與微處理器的通用 I/O 口相聯(lián), 2 個指示燈引腳外接發(fā)光管連接到 3.3V電源以顯示網(wǎng)絡(luò)輸出傳輸?shù)臓顟B(tài)。 3.6.1 寄存器的構(gòu)成 ENC28J60 中所有的存儲器都是以靜態(tài) RAM 的方式實現(xiàn)的。 ENC28J60 中有西安工程大學本科畢業(yè)設(shè)計(論文) 19 三種類型的存儲器: 1) 控制寄存器 2) 以太網(wǎng)緩沖器 3) PHY 寄存器 控制寄 存器類存儲器包含控制寄存器( Control Register, CR)。它們用于進行 ENC28J60 的配置、控制和狀態(tài)獲取??梢酝ㄟ^ SPI 接口直接讀寫這些控制寄存器。以太網(wǎng)緩沖器中包含一個供以太網(wǎng)控制器使用的發(fā)送和接收存儲空間。主控制器可以使用 SPI接口對該存儲空間的容量進行編程。只可以通過讀緩沖器和寫緩沖器 SPI 指令來訪問以太網(wǎng)緩沖器。 PHY 寄存器用于進行 PHY 模塊的配置、控制和狀態(tài)獲取。不可以通過 SPI 接口直接訪問這些寄存器,只可通過 MAC 中的 MII ( Media Independent Interface)訪問這些寄存器。 3.6.2 控制寄存器 控制寄存器提供主控制器和片內(nèi)以太網(wǎng)控制器邏輯電路之間的主要接口。寫這些寄存器可控制接口操作,而讀這些寄存器則允許主控制器監(jiān)控這些操作。 控制寄存器存儲空間分為四個存儲區(qū),可用 ECON1 寄存器中的存儲區(qū)選擇位 BSEL1:BSEL0 進行選擇。每個存儲區(qū)都是 32 字節(jié)長,可以用 5 位地址值進行尋址。所有存儲區(qū)的最后五個單元 ( 1Bh 到 1Fh)都指向同一組寄存器: EIE、EIR、 ESTAT、 ECON2 和 ECON1。它們是控制和監(jiān)視 器件工作的關(guān)鍵寄存器,由于被映射到同一存儲空間,因此可以在不切換存儲區(qū)的情況下很方便地訪問它們。本節(jié)稍后將討論 ECON1 和 ECON2寄存器。 有些地址未使用。對這些單元執(zhí)行寫操作將被忽略,而讀操作都將返回 0。每個存儲區(qū)中地址為 1Ah 的寄存器都是保留的;不應對此寄存器進行讀寫操作??梢宰x其他保留的寄存器,但是不能更改它們的內(nèi)容。在讀寫包含保留位的寄存器時,應遵守寄存器定義中聲明的規(guī)則。 ENC28J60 的控制寄存器通常被分為 ETH、 MAC 和 MII 三組寄存器。名稱由“ E”開頭的寄存器屬于 ETH 組 。同樣,名稱由“ MA”開頭的寄存器屬于 MAC 組,名稱由 “ MI”開頭的寄存器屬于 MII 組。 3.6.3 以太網(wǎng)緩沖器 西安工程大學本科畢業(yè)設(shè)計(論文) 20 以太網(wǎng)緩沖器包含供以太網(wǎng)控制器使用的發(fā)送和接收存儲器。該緩沖器大小為 8 KB,分成單獨的接收和發(fā)送緩沖空間。主控制器使用 SPI 接口可以對發(fā)送和接收存儲器的容量和位置進行編程。包括了接收緩沖器,發(fā)送緩沖器,讀寫緩沖器和 DMA 訪問緩沖器。 3.6.4 PHY 寄存器 PHY 寄存器提供 PHY 模塊的配置和控制功能,以及操作的狀態(tài)信息。所有PHY 寄存器都為 16 位寬。共有 32 個 PHY 地址單元,但只可使用其中的 9 個。對未用單元的寫操作無效,而讀操作將返回 0。所有保留單元應寫為 0,當讀取時其內(nèi)容被忽略。 與 ETH、 MAC 和 MII 控制寄存器或緩沖器不同, PHY寄存器不能通過 SPI 控制接口直接訪問,而是通過一組帶有 MIIM ( Media Independent Interface for Management)的特殊 MAC 控制寄存器來訪問的。這些控制寄存器被稱為 MII 寄存器。 1.讀 PHY 寄存器讀 PHY 寄存器可以獲取其完整的 16 位值。 要 讀 PHY 寄存器: 1)將要讀取的 PHY 寄存器的地址寫入 MIREGADR寄存器。 2)將 MICMD.MIIRD 置 1 開始讀操作,同時 MISTAT.BUSY 位置 1。 3)等待 10.24 s。查詢 MISTAT.BUSY 位以確定操作是否完成。當忙時,主控制器不應開始任何 MIISCAN 操作或?qū)?MIWRH 寄存器。當 MAC 得到寄存器內(nèi)容時, BUSY 位會自動清零。 4)將 MICMD.MIIRD 位清零。 5)從 MIRDL 和 MIRDH 寄存器中讀取所需數(shù)據(jù)。先讀哪一個寄存器都可 以。 2寫 PHY 寄存器當寫 PHY 寄存器時,將一次寫入全部的 16 位數(shù)據(jù),不能對位進行寫操作。如果只需要重新編程寄存器中的某幾位,控制器必須首先讀 PHY 寄存器,修改讀到的數(shù)據(jù),然后將數(shù)據(jù)寫回 PHY 寄存器。 要寫 PHY 寄存器: 西安工程大學本科畢業(yè)設(shè)計(論文) 21 1)將要寫入的 PHY 寄存器的地址寫入 MIREGADR寄存器。 2)將數(shù)據(jù)的低 8 位寫入 MIWRL 寄存器。 3) 將數(shù)據(jù)的高 8位寫入 MIWRH寄存器。對 MIWRH寄存器的寫操作會自動啟動 MII 事務(wù),所以必須在寫入 MIWRL 后才能寫入該寄存器。 MISTAT.BUSY 位置 1。在 MII 操作完成后寫 PHY 寄存器,用時 10.24 s。當寫操作完成后, BUSY 位將自動清零。在忙時主控制器不應開始 MIISCAN 或 MIIRD 操作。 3 掃描 PHY 寄存器 可將 MAC 配置為對 PHY 寄存器自動執(zhí)行背對背讀操作。在需要周期性更新狀態(tài)信息的情況下,能極大地降低主控制器的復雜度。 要執(zhí)行掃描操作: 1)將要讀取的 PHY 寄存器的地址寫入 MIREGADR寄存器。 2)將 MICMD.MIISCAN 位置 1,開始掃描操作,同時 MISTAT.BUSY 位置 1。在 10.24 s 后完成第一次讀操作。以相同的時間間隔完成后續(xù)的讀操作,直 到 操 作 被 取 消???以 通 過 查 詢 MISTAT.NVALID 位來確定第一次讀操作完成的時間。 在將 MIISCAN 位置 1 后,每經(jīng)過 10.24 s 均會自動更新 MIRDL 和 MIRDH寄存器。沒有狀態(tài)信息可顯示 MIRD寄存器被更新的時間。因為主控制器通過 SPI 一次只能讀一個 MII 寄存器,所以不能說是同時通過 PHY 讀取 MIRDL 和 MIRDH 的值。 當進行 MIISCAN 操作時,禁止主控制器寫 MIWRH 或開始 MIIRD 操作??梢酝ㄟ^將 MICMD.MIISCAN 位清零先取消 MIISCAN 操作,然后查詢 MISTAT.BUSY 位。在 BUSY 位清零后可開始新的操作。 ENC28J60 電路連接圖如圖 3-7所示: 圖 3-7 ENC28J60 電路連線圖 西安工程大學本科畢業(yè)設(shè)計(論文) 22 3.7 溫度采集電路設(shè)計 DS18B20溫度傳感器是美國 DALLAS半導體公司推出的一種改進型智能溫度傳感器,最大分辨率可達 0.0625攝氏度。 DS18B20 可以直接讀出被測溫 度值, 測溫范圍 -55 +125,以 0.5遞增, 而且采用了線制與單片機相連, 獨特的單線接口僅需一個端口引腳進行通信,無需外部器件 減少了外部的硬件電路,而且零待機功耗具有低成本和易使用的特點。本課題 DS18B20主要測量實驗板的狀態(tài)量,監(jiān)控實驗板的溫度,其 DS18B20電路連接圖如圖 3-8所示: 圖 3-8 DS18B20 電路連接圖 西安工程大學本科畢業(yè)設(shè)計(論文) 23 第 4 章 TCP/IP 通信協(xié)議 國際標準化組織發(fā)展和制定了一個有助于開發(fā)和理解計算機的通訊模型,即OSI (Open System Interconnection,開發(fā)系統(tǒng)互聯(lián) ) 參考模型。 OSI 參考模型中定義了七個協(xié)議層,從下到上依次是:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會話層、表示層、應用層。 OSI 參考模型并沒有真正地在實際中被應用,而非國際標準的 TCP/IP 卻得到了廣泛的應用,成為計算機通訊事實上的國際標準。TCP/IP 起源于 20 世紀 60年代末美國政府資助的一個分組交換網(wǎng)絡(luò)研究項目,到 20 世紀 90 年代已發(fā)展成為計算機間最主要的通信協(xié)議,是 Internet 最基本的協(xié)議 TCP/IP 作為一種網(wǎng)絡(luò)工業(yè)標準,與 OSI 模型不一樣,它有著自己的網(wǎng)絡(luò)體系結(jié)構(gòu)。 TCP/IP 是一個四層的體系結(jié)構(gòu),由下至上依次是網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層、應用層(如圖 4-1)每一層負責的功能不同。網(wǎng)絡(luò)接口層對應的是網(wǎng)絡(luò)的硬件部分,是 Internet 的物理構(gòu)成,包括設(shè)備驅(qū)動程序和網(wǎng)卡接口等,處理傳輸媒介的物理接口細節(jié),包含的協(xié)議有: ARP(Address Resolution Protocol, 地址解析協(xié)議 ) 和 RARP(Reverse Address Resolution Protocol,逆地址解析協(xié)議 )。網(wǎng)絡(luò)層定義了互聯(lián)網(wǎng) 傳輸?shù)膱笪牡母袷?,為分組交換網(wǎng)上的不同主機提供通信 ,包括的協(xié)議有 IP、 ICMP(Internet Control Message Protocol 因特網(wǎng)報文控制協(xié)議 ) 、 IGMP(Internet Group Management Protocol,以太網(wǎng)組管理協(xié)議 )。傳輸層為主機上的應用程序提供端到端的通信,包含兩個不同的通信協(xié)議:TCP 和 UDP(User Datagram Protocol,用戶數(shù)據(jù)報協(xié)議 )。應用層是體系結(jié)構(gòu)中的最高層,處理特定的應用程序細節(jié),包括的協(xié)議比較多,如 HTTP(Hypertext Transfer Protocol,超文本傳輸協(xié)議 )、 FTP(File Transfer Protocol,文件傳輸協(xié)議 )等。 18 西安工程大學本科畢業(yè)設(shè)計(論文) 24 應用層 傳輸層 網(wǎng)絡(luò)層 鏈路層 圖 4-1 TCP/IP 協(xié)議系統(tǒng) 4.1 數(shù)據(jù)鏈路層 (1)鏈路層概述 以太網(wǎng)數(shù)據(jù)包格式表 4-1所示, EPA采用以太網(wǎng)幀格式中的類型字段向 IEEE注冊分 配 ox88CB來標識 EPA報文。 表 4-1 以太網(wǎng)幀格式 48位目的 MAC地址 48位源 MAC地址 16位類型 數(shù)據(jù) 4字節(jié)檢驗序列 FCS (2)數(shù)據(jù)鏈路層的實現(xiàn) 數(shù)據(jù)鏈路層主要完成以太網(wǎng)報文的封裝、解析。接收來自 IP層的數(shù)據(jù)包,根據(jù)傳遞來的參數(shù),加上 14個字節(jié)的以太網(wǎng)報頭, EPA標準支持 EPA 報文與通用的網(wǎng)路報文第 4章智能控制器的軟件設(shè)計并行傳輸,如果是 EPA報文則類型字段值填寫為 Ox88CB,如果是非 EPA報文,則根據(jù)通用的網(wǎng)絡(luò)報文規(guī)范設(shè)置,例如 :ARP用 戶 進 程 TCP UDP ICMP IGMP IP ARP RARP 硬 件 接 口 媒 體 用 戶 進 程 用 戶 進 程 用 戶 進 程 西安工程大學本科畢業(yè)設(shè)計(論文) 25 報文則為 Ox0806。將封裝好的以太網(wǎng)幀 傳給 CSME。接收來自物理網(wǎng)絡(luò)的數(shù)據(jù)報文,讀取以太網(wǎng)幀的頭部信息,根據(jù)類型段的值提交給不同上層協(xié)議處理。與以太網(wǎng)幀的發(fā)送接收相關(guān)的函數(shù)有 : Send _ethernet _frame():完成以太網(wǎng)幀的封裝。 Rev _ethernet _frame():實現(xiàn)以太網(wǎng)接受報文的解析。 4.2 網(wǎng)絡(luò)層協(xié)議的分析 網(wǎng)絡(luò)層為主機之間提供邏輯通信,該層的協(xié)議包括: IP、 ICMP、 IGMP。而嵌入式 TCP/IP 作為一種嵌入式設(shè)備接入 Internet 的技術(shù),很少需要也沒必要采用組播方式進行通信,因此在嵌入式 TCP/IP 協(xié)議棧的設(shè)計中不考慮 IGMP 協(xié)議。 4.2.1 IP 協(xié)議分析 IP 協(xié)議是 TCP/IP 協(xié)議棧的核心,提供的服務(wù)有:提供無連接的、不可靠的數(shù)據(jù)傳輸;封裝多種上層協(xié)議,所有的 TCP、 UDP、 ICMP 和 IGMP 數(shù)據(jù)都以 IP數(shù)據(jù)報格式(如表 4-2)傳輸?shù)模惶峁┞酚珊蛡鬏斝畔?;提供信息報交換技術(shù)。 表 4-2 IP 數(shù)據(jù)報格式 0 34 8 9 15 16 18 31 版本號 首部長度 服 務(wù)類型 總長度 標識 標志 片偏移 生存時間 協(xié)議 首部校驗和 源 IP地址 目的 IP 地址 選項(若有) 填充 數(shù)據(jù) 22頭的大小,當不使用選項時該字段值為 5,若使用了選項字段,應根據(jù)實際計算;服務(wù)類型( TOS)字段用于攜帶提供服務(wù)質(zhì)量特征信息;總長度字段表示整個 IP數(shù)據(jù)報的字節(jié)數(shù),與 IP 的 MTU(最大傳輸單元 )有關(guān);標識字段標識西安工程大學本科畢業(yè)設(shè)計(論文) 26 主機發(fā)送的每份數(shù)據(jù)報,它是一個隨機數(shù),但連續(xù)的數(shù)據(jù)報每發(fā)一份就加 1,它也可以用于標識 IP 數(shù)據(jù)報的分片;標志字段也稱分片標志,最高位為保留位,其值為 0,第 2 位為分片位,其值為 0 表分片,為 1 則不分片,最低位用于判斷分片是否結(jié)束,為 0 表結(jié)束;片偏移字段表示分片的數(shù)據(jù)相對 于完整數(shù)據(jù)幀的起始位置;生存時間( TTL)字段用于設(shè)置數(shù)據(jù)報最多可以經(jīng)過的路由器的個數(shù),每經(jīng)過 1 個路由器,其值就減 1,直至減到 0 為止,數(shù)據(jù)報被丟棄,同時丟棄該報的路由器會發(fā)送一個 ICMP 的時間超時報;協(xié)議字段用于指示有效負載內(nèi)包含上層的協(xié)議類型,如 UDP 為 17, ICMP 為 1 等;首部校驗和字段根據(jù) IP 首部計算得到,僅檢查 IP 報頭;源 IP 地址字段表示發(fā)送方的 IP 地址;目的 IP 地址字段表示接收方的 IP 地址。選項字段主要用于網(wǎng)絡(luò)測試和排錯,為簡化 IP 協(xié)議的設(shè)計, 本文沒有對選項部分進行處理,只是簡單跳過這些選項。 在通用計算機中,為了使 TCP/IP 協(xié)議棧具有通用性, IP 需要考慮的問題比較多。對本文而言,嵌入式 TCP/IP 協(xié)議棧不是做嵌入式網(wǎng)關(guān)、路由器,因此可以不實現(xiàn)路由功能。有關(guān)路由的問題,直接交給默認網(wǎng)關(guān)處理,這樣可以簡化網(wǎng)絡(luò)層的協(xié)議,節(jié)約嵌入式系統(tǒng)資源。當 IP 數(shù)據(jù)報的長度超過網(wǎng)絡(luò)硬件所允許的 MTU 時,一般將其分片,使其適合在網(wǎng)絡(luò)中傳輸。但分片傳輸非常占用資源,這對嵌入式系統(tǒng)而言,是一個不小的負擔,因此一般不支持分片傳輸,而是把 MTU 的值設(shè)置 的小一些,使其在任何網(wǎng)絡(luò)接口協(xié)議都能用,避免分片。此外,重組也耗費較多的內(nèi)存和計算資源,故本協(xié)議也不支持數(shù)據(jù)報的重組功能。 4.2.2 ICMP 協(xié)議分析 ICMP 是 IP 不可缺少的一部分,主要為 IP 數(shù)據(jù)報提供傳輸過程中遇到的路由和傳送錯誤報告,如目的地不可達、源站抑制、掩碼地址請求等。 ICMP 報文分為兩類: ICMP 差錯報文和 ICMP 詢問報文。雖然每個 ICMP 報文的格式不同,但它們前 4 個字節(jié)的格式是一樣的,依次是類型、代碼和校驗。 ICMP 回顯請求或回顯應答報文格式如表 4-3 所 示。 表 4-3 ICMP 回顯請求或回顯應答報文格式 0 8 16 31 類型 代碼 校驗和 西安工程大學本科畢業(yè)設(shè)計(論文) 27 標識符 序號 數(shù)據(jù) 類型字段表示 ICMP 報的類型,對于 ping 請求和應答報,其值分別對應為 8和 0;代碼字段表示錯誤代碼,只有差錯 報文才有,其余值為 0;校驗和字段表示 ICMP 報的 16 位校驗和,計算范圍從類型字段開始直到數(shù)據(jù)末尾;標識符字段對 ping 命令而言,一般發(fā)送 0x0100 或 0x0200,應答報的標識符應該和請求報的標識符相同;序號字段是一個隨機數(shù),若是應答報,則應該和請求報的序號保持一致。在發(fā)生下面幾種情況時發(fā)送 ICMP 報文:數(shù)據(jù)報目的地不可達;網(wǎng)關(guān)喪失緩存功能;網(wǎng)關(guān)為主機找到更短路由。而下面的幾種情況則不發(fā)送 ICMP 差錯報文: ICMP 差錯報文;不是 IP 數(shù)據(jù)報分片的第一片;目的地址是廣播或多播地 址的 IP 數(shù)據(jù)包;非單播源地址數(shù)據(jù)報。這主要是防止無限循環(huán),造成網(wǎng)絡(luò)阻塞。 在嵌入式 TCP/IP 協(xié)議棧中, ICMP 主要針對 ping 的處理,處理包括對接收到的 ping 請求報的應答和主動發(fā)送 ping 請求報。之所以實現(xiàn)這兩種報文,主要為了便于系統(tǒng)調(diào)試。 ICMP 還有很多種報文,這些報文主要提供系統(tǒng)的差錯信息等。對實時性要求較高的嵌入式系統(tǒng)而言,這些報文沒有必要實現(xiàn)。首先,這些報文在傳輸時占用網(wǎng)絡(luò)和 CPU 資源,這對資源本來就很有限的嵌入式系統(tǒng)來說,是一個不小的開銷;其次,有些報文在嵌入式系統(tǒng)中 完全可以不要,如時間戳的請求和應答報文。 4.2.3 ARP 協(xié)議 物理網(wǎng)絡(luò)是無法識別 IP地址,所以要實現(xiàn)數(shù)據(jù)在物理網(wǎng)絡(luò)的傳輸,需要解決 IP地址到物理地址的映射, ARP(Address Resolution protocol)和 RARP (Reverse Address Resolution Protocol)就是解決這個問題的,本文只實現(xiàn)了ARP協(xié)議。 (l)ARP協(xié)議概述 地址解析協(xié)議 ARP通過主機的 IP地址查找與之對應的物理地址。 ARP協(xié)議使用請求 /回答的機制。當構(gòu)建好 IP數(shù)據(jù)包時,主機不知道目的主 機的物理地址,則以廣播的方式發(fā)送一個 ARP請求報文,接收到報文的主機將報文中目的 IP地西安工程大學本科畢業(yè)設(shè)計(論文) 28 址與自己的 IP地址比較,如果相同,則給發(fā)送方發(fā)送 ARP應答報文,報文中包括主機的物理地址,否則丟棄該報文。 ARP 報文的格式如表 4-4所示。 ARP數(shù)據(jù)包的長度不固定,取決于解析地址的類型。如果是從 IP地址到以太網(wǎng)的 MAC地址的映射,則 IP地址的長度是 4字節(jié), MAC 地址是 6字節(jié)。 表 4-4 ARP 報文格式 16位硬件類型 16位協(xié)議類型 硬件地址長度 協(xié)議地址長度 16位操作碼 發(fā)送者硬件地址 發(fā)送者協(xié)議地址 目標地址目標 目標協(xié)議地址 .硬件類型 :硬件接口的類型。以太網(wǎng)對應的硬件類型是 1; .協(xié)議類型 :指示上層協(xié)議的類型, IP協(xié)議是 OxO800; .硬件地址長度 :硬件地址的長度 ; .協(xié)議地址長度 :上層協(xié)議地址的長度 ; .操作碼 :指 ARP 數(shù)據(jù)包的類型, 1表示 ARP請求數(shù)據(jù)包 ;2表示 ARP應答數(shù)據(jù)包 ;3和 4表示 RARP 請求數(shù)據(jù)包和應答數(shù)據(jù)包 (2)ARP協(xié)議實現(xiàn) ARP協(xié)議的實現(xiàn)主要包括 ARP列表的維護、 A 即報文的發(fā)送和接收。 ARP列表中管理 10IP地址和 MAC地址映射以及生存周期。本文 ARP協(xié)議實現(xiàn) IP到以太網(wǎng)MAC地址的解析, ARP 報文中硬件類型是以太網(wǎng)型的,值為 0x000l,協(xié)議類型為IP協(xié)議,硬件地址長度為 6,協(xié)議地址長度為 4。 ARP報文的內(nèi)容總長為 28個字節(jié)。發(fā)送 ARP報文,如果發(fā)送 ARP請求報文時,目標硬件地址填充 0,操作碼為1:如果發(fā)送 ARP應答報文,將本機的 IP和 MAC地址信息填寫完整,操作碼為 2。接收到 ARP報文,如果是 ARP請求數(shù)據(jù)包時,目標地址是本機 地址,則給對方發(fā)送 ARP應答報文,同時查詢對方的 IP地址在本機的 ARP列表中是否有對應的映射,如果沒有,且 ARP列表有空間,則將對方的 IP和 MAC地址加入 ARP列表 ;如果是 ARP應答報文,在 ARP列表中查找是否有對應的 IP,有則更新,無則在 ARP列表將它加入列表。 與 ARP協(xié)議相關(guān)的函數(shù)有 : .Initial_ arp():初始化 ARP列表。 西安工程大學本科畢業(yè)設(shè)計(論文) 29 .Arp_ Request():發(fā)送 ARP請求報文。 .ARP_ rev_ process():對接收到 ARP 報文處理。 .Arp_ answer():發(fā)送 ARP應答 報文。 4.3 傳輸層協(xié)議分析 TCP/IP 協(xié)議棧的傳輸層也叫運輸層 ,主要為應用進程間提供端到端的邏輯通信,包含 TCP 和 UDP 兩種協(xié)議。 UDP 和 TCP 都使用了應用程序接口處的端口與上層的應用程序進行通信。端口用一個 16 位端口號進行標識,用 OSI 的術(shù)語,端口就是 TSAP(運輸層服務(wù)訪問點),其作用是將應用層的各種應用進程的數(shù)據(jù)通過端口向下交付給運輸層,以及讓運輸層的數(shù)據(jù)報通過端口準確的交付給相應的進程。 4.3.1 UDP 協(xié)議分析 UDP 是一個簡單的面向數(shù)據(jù)報的傳輸層協(xié)議 ,不需要與對方建立連接,就可以直接把數(shù)據(jù)發(fā)送出去。 UDP 具有如下幾個特點:無連接、不可靠、不分段、不提供流控制。因此 UDP 不能應用于那些使用虛電路的面向連接的服務(wù),如 FTP。UDP 數(shù)據(jù)報的格式如表 4-5所示。 表 4-5 UDP 數(shù)據(jù)報的格式 0 16 31 源端口 目的端口 報文長度 校驗和 數(shù)據(jù) 其中源端口標識的是源應用層協(xié)議;目標端口標識的是目標應用層協(xié)議 ,與 IP 地址一起組成唯一有效的地址;報文長度指明了 UDP 數(shù)據(jù)報中八位組的數(shù);校驗和字段是可選的,由于 IP 數(shù)據(jù)報中的校驗和字段的計算不包括數(shù)據(jù)部分,因此 UDP 數(shù)據(jù)報應該使用該字段,校驗和的計算包括 UDP 偽報頭(如表 4-6所示)、 UDP 報頭和 UDP 有效負載,但不發(fā)送 UDP 偽報頭,當計算 UDP 校驗和的值為零時,需要將該值取反,用全 1 表示,以此來區(qū)分沒有使 用校驗和該字段值為零的情況。 西安工程大學本科畢業(yè)設(shè)計(論文) 30 表 4-6 UDP 偽報頭的格式 0 8 16 31 源 IP 地址 目標 IP地址 未定義 協(xié)議 長度 UDP 偽報頭中的源 IP 地址和目標 IP 地址取自 IP 首部;未定義字段為 0;協(xié)議字段為 17,表示 UDP 協(xié)議;長度字段的值與 UDP 數(shù)據(jù)報中報文 長度一樣。 4.3.2 TCP 協(xié)議分析 TCP 是面向連接的、提供可靠的、全雙工的、具有流量控制的數(shù)據(jù)服務(wù),但TCP 只能實現(xiàn)一對一的服務(wù)。 TCP 報文段的格式如表 4-7所示。其中各字段的含義如下:源端口和目標端口字段包含 TCP 端口號,用于標識連接兩端的應用程序;序號指的是本報文段所發(fā)送的數(shù)據(jù)的第一個字節(jié)基于輸出字節(jié)流的序號;確認序號是期望收到的下一個報文段的序號,對已經(jīng)收到的數(shù)據(jù)進行確認;首部長度指的是 TCP 報頭的長度,最小為 20 個字節(jié),最大為 60 個字節(jié),大小必須是 4的倍數(shù);控制比 特包含 6個標志,分別為 URG(緊急位 )、 ACK(確認位 )、 PSH(推送位 )、 RST(復位 )、 SYN(同步位 )、 FIN(結(jié)束位 ),置 1 有效;窗口字段用于流控制,表示發(fā)送端接收緩沖區(qū)的剩余空間;校驗和與 UDP 數(shù)據(jù)報的校驗和的計算方法一樣,在計算時也需要加上 12 字節(jié)的偽首部,偽首部與 UDP 偽首部格式一樣;緊急指針字段與 URG 控制位聯(lián)合用于優(yōu)先數(shù)據(jù)傳輸。本文在實現(xiàn) TCP 協(xié)議時,沒有對選項字段進行處理,只是簡單的。 表 4-7 TCP 報文段的格式 0 4 10 16 24 31 源端口 目的端口 序號 確認序號 首部長度 保留 控制比特 窗口 校驗和 緊急指針 西安工程大學本科畢業(yè)設(shè)計(論文) 31 選項 填充 數(shù)據(jù) TCP 在傳輸數(shù)據(jù)之前,必須先建立連接。建立連接一般要收發(fā) 3 個報文:主動連接端發(fā)送一個同步報文;被動連接端收到同步報文后發(fā)送同步應答報文;最后主動連接端發(fā)送確認報文。而終止一個連接需要收發(fā) 4 個報文:主動斷開端發(fā)送結(jié)束報文;被動斷開端收到報文后,發(fā)送一個應答幀,確認傳入數(shù)據(jù)到被動端的通道已斷開;被動斷開端發(fā)送結(jié)束報文,以斷開被動斷開端的數(shù)據(jù)發(fā)送通道;在主動斷開端收到報文后,發(fā)送應答幀,關(guān)閉連接。前面講了 TCP 的連接和斷開的過程,但實際上, TCP 可能出現(xiàn)的連接狀態(tài)還有好幾種,共有 11 種,具體狀態(tài)轉(zhuǎn)化如表 4.8 所示,圖中粗線表示客戶端的轉(zhuǎn)變情況,虛線表示服務(wù)器端的正常狀態(tài)變化過程。 TCP 是通過窗口來實現(xiàn)流控制的,窗口表示接收主機接收的最大數(shù)據(jù)量,其值的大小隨著主機資源的變化而變化,但發(fā)送端發(fā)送的數(shù)據(jù)報大小不能大于接收端剩余緩沖區(qū)的大小,當剩余緩沖區(qū)的大小為 0 時,發(fā)送端就等待直至剩余緩沖區(qū)的大小大于 0,才又開始傳輸數(shù)據(jù)??紤]到嵌入式系統(tǒng)的存儲空間比較有限,把窗口大小設(shè)為 1460 字節(jié)。若要更好的在傳輸層進行擁塞控制,可以使用慢啟動、快重傳等算法,本文沒有實現(xiàn)那些算法,因為對于數(shù)據(jù)量不大的嵌入式設(shè)備的數(shù)據(jù)傳輸影響很小。 TCP 通過確認從另一端收到的數(shù)據(jù)來提供可靠的傳輸,但數(shù)據(jù)報有時可能會丟失,可通過設(shè)置定時器解決這個問題。若在設(shè)定的時間范圍內(nèi),沒有收到確認,就重傳該數(shù)據(jù)。在標準的 TCP/IP 協(xié)議中引入 RRT(往返時間)的測量方法來決定重傳時間,而在本文中,為簡化設(shè)計,把重傳時間設(shè)定為 0.5 秒,避免了 RTO(超時重傳時間)公式復雜的計算。 4.4 應用層 應用層主要完成了一個簡單的 web服務(wù)器網(wǎng)頁的制作,變量讀、寫、信息發(fā)布服務(wù)編碼和解碼函數(shù)的編寫。 與應用層相關(guān)的 主要函數(shù)有 : .replace():web 服務(wù)器網(wǎng)頁顯示的數(shù)據(jù)是需要實時更新的,在網(wǎng)頁文件發(fā)送給客服端前,該函數(shù)將實時數(shù)據(jù)對應的標簽用最新的數(shù)據(jù)對應的字符串替換。 .service _send():根據(jù)連接對象的服標識符調(diào)用相應的服務(wù)報文編碼函數(shù)西安工程大學本科畢業(yè)設(shè)計(論文) 32 完成服務(wù)報文的編碼,如果是變量讀服務(wù),則調(diào)用 read_ send()完成報文的編碼。 .service _recv():對接收來自映射實體到 EPA報文,找到根據(jù)鏈接對象的服務(wù)標識調(diào)用不同的服務(wù)解碼函數(shù)對報文進行解碼,例如是讀服務(wù)則調(diào)用 recv _read對報文解碼, 然后交給不同的功能塊實例進行處理。 4.5 用戶層 用戶層建立了一個簡單的基于 HTTP協(xié)議 web服務(wù)器、 Al功能塊、 DO功能塊和 Dl功能塊。 (1)web服務(wù)器的實現(xiàn) 網(wǎng)絡(luò)控制器的軟件設(shè)計 web服務(wù)器管理一個簡單的網(wǎng)頁,將 16 路模擬量輸入 AD轉(zhuǎn)換的結(jié)果、 CPU 的溫度以及開關(guān)量的輸入輸出顯示在網(wǎng)頁上,用戶可以通過瀏覽器訪問。在接收客服端的“ GET請求后,調(diào)用 replace()函數(shù)更新實時數(shù)據(jù),然后給客戶端發(fā)送響應數(shù)據(jù)。 (2)Al功能塊 Al功能塊將 AD 轉(zhuǎn)換模塊采集的模擬量數(shù)據(jù)通過信息發(fā)布服務(wù)發(fā)送到 EPA網(wǎng)絡(luò)。 Al功能塊由事件觸發(fā),當 AD轉(zhuǎn)換完成后被觸發(fā),有 5個輸入?yún)?shù)分別對應4路外部模擬量輸入和內(nèi)部溫度。對輸入 4 路外部模擬量采集到的數(shù)據(jù)進行標度轉(zhuǎn)換,轉(zhuǎn)換為 O-3000mv,存入輸出參數(shù) ADC _Data數(shù)組 ;對于內(nèi)部溫度,首先,對采集到的數(shù)據(jù)進行標度轉(zhuǎn)換,轉(zhuǎn)換到 O-3000mv,再通過公式轉(zhuǎn)換成溫度,公式如下 : T=(2, 7-Vt)*75-55; 其中 T:CPU內(nèi)部溫度,單位是 ;VT:溫度對應的電壓值,單位是伏特。 (3)DO功能塊 DO功能塊控制 4個開關(guān)量輸出。 DO功能塊接收上位機發(fā)送來的數(shù)據(jù)和狀 態(tài),并處理接收到的數(shù)據(jù),將處理后的數(shù)據(jù)傳遞給 DO驅(qū)動程序,控制開關(guān)量輸出。 (4)DI功能塊 Dl功能塊觸發(fā)事件為定時器 0觸發(fā),每隔 0.1s由 DI驅(qū)動程序讀取開關(guān)量的輸入狀態(tài),處理后通過信息發(fā)布服務(wù)發(fā)送給上位機。 西安工程大學本科畢業(yè)設(shè)計(論文) 33 第 5 章 軟件設(shè)計 5.1 總體設(shè)計 嵌入式的軟件設(shè)計是嵌入式產(chǎn)品的靈魂,所以相關(guān)軟件的開發(fā)對于產(chǎn)品功能的實現(xiàn)具有至關(guān)重要的作用。本設(shè)計以 STM32F103ZET6 為核心,完成數(shù)據(jù)的采集、處理、通信、顯示等功能。軟件部分的設(shè)計包括數(shù)據(jù)采集、數(shù)據(jù)處理、存儲、顯示、通信。其總體流程圖如圖 5-1所示: N N N Y 開始 初始化 是否參數(shù)設(shè)置? 開始采集,啟動 A/D 轉(zhuǎn)換 參數(shù)設(shè)置 數(shù)據(jù)處理 時間是否為數(shù)據(jù) 采樣時間間隔? 數(shù)據(jù)存儲 是否讀取數(shù)據(jù)? Y Y 保 存 顯示狀態(tài)信息和 實時測量結(jié)果 西安工程大學本科畢業(yè)設(shè)計(論文) 34 圖 5-1 系統(tǒng)流程圖 其中,初始化包括 CPIO 初始化、 SPI 初始化、 I2C 初始化、觸摸屏初始化、串口 USART1、 USART2 初始化。參數(shù)設(shè)置包括 RTC 時間設(shè)置、數(shù)據(jù)上報間隔設(shè)置、狀態(tài)上報間隔、通道選擇、 IP 地址設(shè)置。狀態(tài)信息包括當前電壓和實測溫度。實時測量包括水位和流量。如圖 5-2 所示為系統(tǒng)主 芯片的系統(tǒng)結(jié)構(gòu)。 圖 5-2 系統(tǒng)主芯片的系統(tǒng)結(jié)構(gòu) 5.2 數(shù)據(jù)采集及 AD 轉(zhuǎn)換 AD 模塊的初始化主要完成采樣序列的選擇和輸入源、觸發(fā)事件、中斷產(chǎn)生、序列的優(yōu)先級的配置以及使能對應的外設(shè)時鐘。本控制器設(shè)計為每隔 5min 對ADC0 進行采樣,采樣 244k/s 的采樣率。 如圖 5-3 所示。首先,使能 ADC 時鐘,即 0x00010000 寫入系統(tǒng)控制模塊的運行模式時鐘選通控制寄存器 0( RCGC0);將序列 0 的優(yōu)先級設(shè)為最高 0,即 ADC 采樣序列發(fā)生器優(yōu)先級寄存器( ADCSSPRI)寫入 0;禁能采樣序列發(fā)生器, ADC 采樣序列發(fā)生器寫 0( ASENN); ADC 多路復用器選擇寄存器的 EM0 段寫入 0100;配置為定時器觸發(fā);對 ADC 采樣序列控制器進行設(shè)置,完成輸入源和控制位的設(shè)置,采樣序列依次對 ADC0 進行采樣,結(jié)束點設(shè)置在第 3 個采用數(shù)據(jù); ADC 活動采樣序列發(fā)生器的 ASEN0 寫 1,使能采樣序列。由函數(shù) ADCInit()完成 ADC 模塊的初始化。 結(jié) 束 西安工程大學本科畢業(yè)設(shè)計(論文) 35 圖 5-3 ADC 的初始化流程圖 ADS1110 的模 /數(shù)轉(zhuǎn)換器核由一個差分開關(guān)電容 - 調(diào)節(jié)器和一個數(shù)字濾波器組成 ,調(diào)節(jié)器測量正模擬輸入和負模擬輸入的壓差 ,并將其與基準電壓相比較 ,在 ADS1110 中基準電壓為 2.048V 數(shù)字濾波器從調(diào)節(jié)器接收高速位流 ,并輸出一個代碼 ,該代碼是一個與輸入電壓成比例的數(shù)字。如圖 5-4 所示為 ADS1110芯片結(jié)構(gòu)。 圖 5-4 ADS1110 芯片結(jié)構(gòu) 5.2.1 I2C 總線接口 ADS1110通過 I2C總線(內(nèi)部集成電路)接口通信,識別通過 I2C 地址實現(xiàn),ADS1110 只能作為從機。 ADS1110 的 I2C 的地址是 1001aaa,其中 aaa 是出廠的默認設(shè)置。 ADS1110 有 8種不同的類型,每種類型都有不同的 I2C地址。封裝上,開 始 使能 ADC 時鐘 設(shè)置采樣率 配置優(yōu)先級為 0 禁止采樣序列發(fā)生器 配置為定時器 配置輸入源 配置采樣控制 使能采樣序列發(fā)生器 結(jié) 束 西安工程大學本科畢業(yè)設(shè)計(論文) 36 ADS1110 的每種類型都已 EDx 為標識,其中 x 表示地址變量。 ADS1110 含有輸出寄存器和配置寄存器,可通過 I2C端口進行訪問,輸出寄存器存儲 A/D 轉(zhuǎn)換結(jié)果,而配置寄存器用于設(shè)置 ADS1110的工作方式,數(shù)據(jù)速率和可編程增益放大器,也可用于查詢器件狀態(tài)。 5.2.2 ADS1110 的讀寫 若從 ADS1110 中讀取輸出寄存器和配置寄存器的內(nèi)容,需 對 ADS1110 中讀取3個字節(jié),前 2個字節(jié)時輸出寄存器的內(nèi)容,第 3個字節(jié)是配置寄存器的內(nèi)容,讀操作時,讀操作時,只讀前 2個字節(jié)而不讀第 3個字節(jié)。 ADS1110 的讀操作時序如圖 5-5所示。同時為了對配置存儲器寫操作,要對 ADS1110尋址,并向配置寄存器寫入 1 個字節(jié),但不能向輸出寄存器寫入字節(jié)。其寫操作時序如圖 5-6所示。 圖 5-5 ADS1110 的讀操作時序圖 圖

溫馨提示

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

最新文檔

評論

0/150

提交評論