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

下載本文檔

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

文檔簡介

1、h本科畢業(yè)設(shè)計(jì)(20 屆)題 目基于stm32無線數(shù)據(jù)基站的設(shè)計(jì)和實(shí)現(xiàn)學(xué) 院電子信息學(xué)院專 業(yè)電子信息工程姓 名陳潔班 級09091813學(xué) 號09918307指導(dǎo)教師周磊完成日期20 年3月誠 信 承 諾我謹(jǐn)在此承諾:本人所寫的畢業(yè)論文基于stm32無線數(shù)據(jù)基站的設(shè)計(jì)和實(shí)現(xiàn)均系本人獨(dú)立完成,沒有抄襲行為,凡涉及其他作者的觀點(diǎn)和材料,均作了注釋,若有不實(shí),后果由本人承擔(dān)。 承諾人(簽名): 年 月 日uh摘 要隨著人們的生活及其生產(chǎn)水平的不斷提高,對生活中各種數(shù)據(jù)接收的速度和準(zhǔn)確度的要求就顯得尤為重要,無線數(shù)據(jù)收發(fā)控制就是一個(gè)典型的例子,因此無線數(shù)據(jù)基站就是現(xiàn)代生產(chǎn)生活中應(yīng)運(yùn)而生的一種智能、快

2、捷、方便可靠的檢測系統(tǒng)。本設(shè)計(jì)通過stm32f107控制無線收發(fā)模塊從無線網(wǎng)絡(luò)節(jié)點(diǎn)接收數(shù)據(jù),進(jìn)行相關(guān)處理后通過以太網(wǎng)把數(shù)據(jù)發(fā)送至應(yīng)用服務(wù)器。系統(tǒng)的用戶統(tǒng)用戶通過internet網(wǎng)絡(luò)訪問應(yīng)用服務(wù)器,其中本設(shè)計(jì)起到網(wǎng)橋和防火墻的作用。其中本設(shè)計(jì)中采用的以太網(wǎng)控制器為dm9161芯片。本設(shè)計(jì)軟件部分的主要工作是在硬件平臺的基礎(chǔ)上實(shí)現(xiàn)tcp/ip協(xié)議棧,由于tcp/ip協(xié)議棧較復(fù)雜,功能實(shí)現(xiàn)比較困難,一般選擇成熟的tcp/ip協(xié)議棧進(jìn)行移植,此次選擇開源并且較成熟的lwip以太網(wǎng)協(xié)議棧。關(guān)鍵詞:stm32f107 以太網(wǎng) dm9161 tcp/ip協(xié)議棧abstractwith the continu

3、ous improvement of peoples lives and their production levels, the the life data reception speed and accuracy requirements is particularly important, wireless data transceiver control is a typical example, the wireless data base station is modern production lifecame into being a smart, fast, convenie

4、nt and reliable detection system.this design stm32f107 control wireless transceiver module receives data from the wireless network nodes related via ethernet transmits data to the application server. the system user system user access to the application server through the internet, including the des

5、ign play a role of bridge and firewall. dm9161 ethernet controller chip used in the design. the software part of the design work is implemented in hardware platform based on the tcp / ip protocol stack, the tcp / ip protocol stack is more complex, and more difficult to achieve, usually selected matu

6、re tcp / ip protocol stack for transplantation, the choiceopen source and the more mature lwip ethernet protocol stack.key words:stm32f107 ethernet dm9161 tcp/ip protocol stacku目 錄1 引言12 概述22.1 課題研究的背景22.2 國內(nèi)外stm32控制以太網(wǎng)技術(shù)發(fā)展現(xiàn)狀及趨勢32.3 研發(fā)方向和技術(shù)關(guān)鍵42.4 主要技術(shù)指標(biāo)43 總體設(shè)計(jì)53.1 系統(tǒng)方案選擇與論證53.2 系統(tǒng)軟件總體結(jié)構(gòu)63.3 本章小結(jié)74 硬

7、件設(shè)計(jì)94.1 主控芯片stm32f10794.2 stm32串口通訊124.3 dm9161用法介紹164.4 本章小結(jié)205 以太網(wǎng)協(xié)議215.1 tcp/ip協(xié)議215.2 嵌入式tcp/ip協(xié)議棧226 軟件設(shè)計(jì)266.1 主程序設(shè)計(jì)266.2 系統(tǒng)初始化子程序276.3 rs232通訊子程序286.4 網(wǎng)口通訊子程序286.5 本章小結(jié)297 結(jié)論30致謝31參考文獻(xiàn)32附錄331 引言隨著人們的生活及其生產(chǎn)水平的不斷提高,對生活中各種數(shù)據(jù)接收的速度和準(zhǔn)確度的要求就顯得尤為重要,無線數(shù)據(jù)收發(fā)控制就是一個(gè)典型的例子,因此無線數(shù)據(jù)基站就是現(xiàn)代生產(chǎn)生活中應(yīng)運(yùn)而生的一種智能、快捷、方便可靠的

8、檢測系統(tǒng)。目前,無線網(wǎng)絡(luò)標(biāo)準(zhǔn)按照通訊距離的不同分為wan、wlan、pan。比較主流的無線技術(shù)有藍(lán)牙、3g、homerf、wi-fi、wimax、gprs、cdma、uwb等。其中wi-fi運(yùn)用最為廣泛,其運(yùn)用主要在wlan/mesh領(lǐng)域。無線網(wǎng)絡(luò)推動了數(shù)據(jù)通信進(jìn)入了新的里程碑,讓辦公、工作、學(xué)習(xí)不再受“線”制。方便實(shí)現(xiàn)了移動辦公,組建臨時(shí)工作組,召開緊急會議等不在需要復(fù)雜的布線拆線,無線覆蓋區(qū)域直接可以通過無線進(jìn)行通信。校園環(huán)境等,可以讓師生在任何環(huán)境,可以在廣場、在草坪、在體育場地等任意位置連接上internet。隨著無線網(wǎng)絡(luò)在各個(gè)領(lǐng)域的成功案例及人們對它的關(guān)注程度,無線網(wǎng)絡(luò)定是未來通信的

9、發(fā)展方向,也定能在各領(lǐng)域中得到很好的應(yīng)用。本設(shè)計(jì)通過stm32控制無線收發(fā)模塊從無線網(wǎng)絡(luò)節(jié)點(diǎn)接收數(shù)據(jù),進(jìn)行相關(guān)處理后通過以太網(wǎng)把數(shù)據(jù)發(fā)送至應(yīng)用服務(wù)器。系統(tǒng)的用戶統(tǒng)用戶通過internet網(wǎng)絡(luò)訪問應(yīng)用服務(wù)器,其中本設(shè)計(jì)起到網(wǎng)橋和防火墻的作用。其中本設(shè)計(jì)中采用的以太網(wǎng)控制器為dm9161芯片。2 概述2.1 課題研究的背景近幾年來,隨著科學(xué)技術(shù)日新月異的發(fā)展,計(jì)算機(jī)科技的快速發(fā)展,特別是互聯(lián)網(wǎng)的快速普及,互聯(lián)網(wǎng)在人類活動中也越來越緊密聯(lián)系,尤其是對于工業(yè)控制和信息電器領(lǐng)域中同樣有著越來越重要的應(yīng)用。同時(shí)計(jì)算機(jī),通訊,消費(fèi)電子三合一的快速發(fā)展,數(shù)字化時(shí)代已經(jīng)到來。而嵌入式接入設(shè)備是數(shù)字化時(shí)代的一大主

10、流標(biāo)志,形態(tài)各異的計(jì)算機(jī),通訊,消費(fèi)電子三合一產(chǎn)品也將是網(wǎng)絡(luò)接入設(shè)備的一大主流。因?yàn)閜c機(jī)以及現(xiàn)有的internet技術(shù)可以實(shí)現(xiàn)對非網(wǎng)絡(luò)設(shè)備進(jìn)行遠(yuǎn)程控制的部分的要求,而且成本費(fèi)用較高,可靠性和期望值也有一定的距離,所以這種方案并沒有被廣泛的接受和使用。由于嵌入式設(shè)備具有低成本高性能的特點(diǎn),而現(xiàn)今對嵌入式系統(tǒng)的開發(fā)研究和嵌入式技術(shù)也都進(jìn)入到了一個(gè)成熟的階段,將嵌入式系統(tǒng)和網(wǎng)絡(luò)相結(jié)合來實(shí)現(xiàn)非網(wǎng)絡(luò)系統(tǒng)的網(wǎng)絡(luò)控制,那么世界可能就是另一番景象。 因特網(wǎng)技術(shù)的成熟,使得網(wǎng)上提供的信息更加豐富,應(yīng)用項(xiàng)目也更加多樣,人們對網(wǎng)絡(luò)的需求也越來越廣泛,利用pc機(jī)上網(wǎng)來查閱和發(fā)布各類信息等對于網(wǎng)絡(luò)的日常應(yīng)用已經(jīng)不能滿

11、足人們的需求。像傳統(tǒng)的電器,電冰箱,微波爐,電視,空調(diào)等,這類電子設(shè)備的功能也不在單一,電器結(jié)構(gòu)也更為復(fù)雜,也逐步開始應(yīng)用嵌入式網(wǎng)絡(luò)接入,使用戶可以通過網(wǎng)絡(luò)就能實(shí)現(xiàn)遠(yuǎn)程控制,信息通訊。同樣,互聯(lián)網(wǎng)在全球范圍內(nèi)的連通性,那些能夠連接因特網(wǎng)的設(shè)備也成為人們選擇產(chǎn)品中考慮的一大問題,通過internet對家用電器等非網(wǎng)絡(luò)設(shè)備進(jìn)行遠(yuǎn)程控制已經(jīng)成為現(xiàn)今主流。而一些小型輕便的設(shè)備,比如一些醫(yī)學(xué)儀器上的身體上使用的傳感器,體積小而且便宜,內(nèi)存小,運(yùn)算能力有限,因此必須在資源受限的情況下實(shí)現(xiàn)tcp/ip協(xié)議甚至處理接受到的信息。tcp/ip協(xié)議可以分為四個(gè)層次,從底層到最高層分別是物理層和數(shù)據(jù)鏈路層,網(wǎng)絡(luò)層,

12、傳輸層,和最高層的應(yīng)用層。物理層和數(shù)據(jù)鏈路層是tcp/ip協(xié)議的最低層,要求提供給上層一個(gè)訪問接口,以便傳遞ip分組信息。網(wǎng)絡(luò)層是第二層,也是整個(gè)tcp/ip協(xié)議棧的核心,其功能是把分組發(fā)往目標(biāo)網(wǎng)絡(luò)或主機(jī),源主機(jī)與目的主機(jī)可以在同一個(gè)網(wǎng)上,也可以在不同的網(wǎng)上。其中定義了分組格式和協(xié)議,即ip協(xié)議,來對分組進(jìn)行排序。ip協(xié)議是一種不可靠、無連接的數(shù)據(jù)報(bào)發(fā)傳送服務(wù)的協(xié)議,提供的只是一種盡力而為的服務(wù)。傳輸層是第三層,負(fù)責(zé)在應(yīng)用進(jìn)程中的端到端之間的通信。傳輸層定義了兩種服務(wù)質(zhì)量不同的協(xié)議,tcp和udp。tcp是一種可靠的面向連接的協(xié)議,允許將源主機(jī)的字節(jié)數(shù)據(jù)流無差別的傳送到目的主機(jī)。同時(shí)能夠完成流

13、量的控制功能,協(xié)調(diào)收發(fā)主機(jī)之間的發(fā)送和接受速度,從而控制正確的傳輸。應(yīng)用層是最高層,其中也包括了很多協(xié)議:文件傳送協(xié)議,簡單郵件傳送協(xié)議,簡單網(wǎng)絡(luò)管理協(xié)議,超文本傳送協(xié)議等。lwip是瑞士計(jì)算機(jī)科學(xué)院一個(gè)開源的tcp/ip協(xié)議棧實(shí)現(xiàn)。lwip是light weight ip協(xié)議,有無操作系統(tǒng)都可以運(yùn)行,其實(shí)現(xiàn)的重點(diǎn)是在保持tcp/ip協(xié)議的主要功能的基礎(chǔ)上減少對內(nèi)存的占用,一般只需要幾百字節(jié)的ram和40k左右的rom就可以運(yùn)行,這使得lwip成為在資源受限的情況下實(shí)現(xiàn)及處理tcp/ip協(xié)議的解決方法。lwip可以支持多網(wǎng)絡(luò)接口下的ip轉(zhuǎn)發(fā),提供專門的內(nèi)部回調(diào)接口raw api,這樣可以提高應(yīng)

14、用程序性能。像lwip的目標(biāo)系統(tǒng)是最小限度系統(tǒng),所使用的操作系統(tǒng)通常不能在內(nèi)核與應(yīng)用層進(jìn)程之間維持一個(gè)嚴(yán)格的保護(hù)屏障。這里允許使用一種比較寬松的通許機(jī)制,通過共享內(nèi)存的方式實(shí)現(xiàn)應(yīng)用層與底層協(xié)議族之間的通訊。應(yīng)用層可以知道底層協(xié)議使用的緩沖處理機(jī)制,這使得應(yīng)用層可以有效的重復(fù)使用緩沖區(qū)。同樣,應(yīng)用層與網(wǎng)絡(luò)代碼使用的是相同的內(nèi)存區(qū),那么應(yīng)用層就可以直接讀寫內(nèi)部緩沖區(qū)。2.2 國內(nèi)外stm32控制以太網(wǎng)技術(shù)發(fā)展現(xiàn)狀及趨勢中國的嵌入式系統(tǒng)開發(fā)走過了二十多年的歷程,有超過數(shù)十萬名從事開發(fā)應(yīng)用的工程師,但大多數(shù)以上是幾個(gè)人的小組以孤軍奮戰(zhàn)的封閉方式開發(fā)幾乎不可重用的軟件。今天面對的是嵌入式系統(tǒng)工業(yè)化的潮流

15、,如果不能認(rèn)識到嵌入式軟件必須以工業(yè)化的方式生產(chǎn)開發(fā),不理解在短時(shí)間內(nèi)裝配集成“數(shù)百人/年”的嵌入式產(chǎn)品,那么將失去更多的上游產(chǎn)品的市場機(jī)遇。嵌入式軟件方面逐漸形成了系統(tǒng)軟件、應(yīng)用軟件的架構(gòu)。國際上用于信息電器的嵌入式操作系統(tǒng)有40種左右。其中,國外涌現(xiàn)了一些著名的嵌入式操作系統(tǒng),如:vxworks、psos、wince、rtek、palmos、epoc、qnx、lynxos、dsphnux等。其中vx/orks是目前嵌入式系統(tǒng)領(lǐng)域中使用最廣泛、市場占有率最高的系統(tǒng):wince是一種32位的多任務(wù)操作系統(tǒng),可以移植,能夠開發(fā)多種企業(yè)和客戶類設(shè)備,是微軟公司的“維納斯計(jì)劃”的核心:3com公司的

16、palm0s在pda市場上占有很大的市場份額,它有開放的操作系統(tǒng)應(yīng)用程序接口(api),開發(fā)商可以根據(jù)需要自行開發(fā)所需要的應(yīng)用程序。國內(nèi)外有大量嵌入式應(yīng)用軟件已廣泛用于各類嵌入式系統(tǒng)中。大有國內(nèi)緊跟國外趨勢的形勢。但是對于嵌入式web服務(wù)器方面的研究國內(nèi)現(xiàn)狀不容樂觀,目前國外的相關(guān)研究相對多些。如林c/ip研究項(xiàng)目,它是一個(gè)為微控制器和嵌入式系統(tǒng)而設(shè)計(jì)的小型tcp/ip協(xié)議棧:又如cmx公司的mieronettcp/ip,它是為8位或16位微處理器而設(shè)計(jì)的,支持大部分的標(biāo)準(zhǔn)協(xié)議,連接方式有以太網(wǎng)連接、撥號連接和直接連接方式。而國內(nèi)也相應(yīng)提出了webito協(xié)議標(biāo)準(zhǔn),但是相對滯后,缺少具體的工程實(shí)

17、現(xiàn)方面的研究和具體產(chǎn)品的開發(fā)。美國dec公司開發(fā)的vmseluster系統(tǒng)開發(fā)最早,技術(shù)也較成熟,應(yīng)用也很廣泛,但由于vms操作系統(tǒng)只能在dec公司的vax系列和aipha系列服務(wù)器上運(yùn)行,vmscluster的應(yīng)用受到很大限制。platform公司開發(fā)的高可用性集群系統(tǒng)lsf提供了分布式集群系統(tǒng)的解決方案,通過將物理上分離的多個(gè)集群連接在一起使多個(gè)同構(gòu)或異構(gòu)的計(jì)算機(jī)能夠通過局域網(wǎng)或廣域網(wǎng)共享計(jì)算資源,并能夠?yàn)橛脩籼峁Y源的透明訪問。國內(nèi)也有不少公司進(jìn)行了集群系統(tǒng)的研究和開發(fā)工作。聯(lián)想公司在1999年9月推出了用于分布式高性能計(jì)算的ns10000高性能集群服務(wù),該系統(tǒng)是一個(gè)四節(jié)點(diǎn)的系統(tǒng),主要

18、基于聯(lián)想萬全45008服務(wù)器,以總體成本相對較低的設(shè)備組合,足以替代傳統(tǒng)班sc小型機(jī)和中型機(jī)的工作,而價(jià)格僅為市場上同等性能小型機(jī)的1/2-1/40。朗訊公司也推出了類似于urboduster的高可用性集群系統(tǒng)longshineclusterserver。從國內(nèi)外的研究現(xiàn)狀看,目前集群系統(tǒng)的應(yīng)用大都致力于高可用性問題的解決,真正基于負(fù)載均衡的集群系統(tǒng)還比較少,而且在大部分負(fù)載均衡集群中采用的都是輪轉(zhuǎn)調(diào)度、加權(quán)輪轉(zhuǎn)調(diào)度等靜態(tài)調(diào)度算法。2.3 研發(fā)方向和技術(shù)關(guān)鍵(1)合理設(shè)計(jì)硬件電路,使各模塊功能協(xié)調(diào);(2)stm32對dm9161的控制;(3)stm32對串口模塊的控制;(4)stm32對tcp

19、/ip協(xié)議棧的開發(fā);2.4 主要技術(shù)指標(biāo)(1)合理設(shè)計(jì)硬件電路,使各模塊功能協(xié)調(diào)(2)stm32可以實(shí)現(xiàn)對數(shù)據(jù)的處理和傳輸。(3)對dm9161的控制的數(shù)據(jù)的傳輸3 總體設(shè)計(jì)3.1系統(tǒng)方案選擇與論證總體設(shè)計(jì)思路,分為三部分,無線數(shù)據(jù)采集部分,網(wǎng)絡(luò)控制部分,控制部分。并利用stm32對各部分進(jìn)行控制。應(yīng)用dm9161通過網(wǎng)線與上位機(jī)相連接,可以處理和傳遞下系統(tǒng)相關(guān)參數(shù)。設(shè)計(jì)模塊圖如圖3.1所示。 服務(wù)器無線網(wǎng)絡(luò)數(shù)據(jù)信號dm9161網(wǎng)絡(luò)控制stm32f107處理圖3.1 整體模塊圖3.1.1 控制部分方案在本次設(shè)計(jì)中,單片機(jī)是系統(tǒng)的控制核心,所以單片機(jī)的性能關(guān)系到整個(gè)系統(tǒng)的好壞。因此單片機(jī)的選擇,

20、對所設(shè)計(jì)系統(tǒng)的實(shí)現(xiàn)以及功能的擴(kuò)展有著很大的影響。單片機(jī)種類很多,stm32系列基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計(jì)的arm cortex-m3內(nèi)核。按性能分成兩個(gè)不同的系列:stm32f103“增強(qiáng)型”系列和stm32f101“基本型”系列。增強(qiáng)型系列時(shí)鐘頻率達(dá)到72mhz,是同類產(chǎn)品中性能最高的產(chǎn)品;基本型時(shí)鐘頻率為36mhz,以16位產(chǎn)品的價(jià)格得到比16位產(chǎn)品大幅提升的性能,是16位產(chǎn)品用戶的最佳選擇。兩個(gè)系列都內(nèi)置32k到128k的閃存,不同的是sram的最大容量和外設(shè)接口的組合。時(shí)鐘頻率72mhz時(shí),從閃存執(zhí)行代碼,stm32功耗36ma,是32位市場上功耗最低的產(chǎn)品

21、,相當(dāng)于0.5ma/mhz。因此,在本次設(shè)計(jì)中選用了stm32f107單片機(jī)作為主控芯片。2.1.2無線數(shù)據(jù)采集部分方案本設(shè)計(jì)有單片機(jī)控制無線模塊,接收從無線網(wǎng)絡(luò)的數(shù)據(jù),并經(jīng)過單片機(jī)進(jìn)行處理,通過網(wǎng)絡(luò)控制部分傳送給pc接收。通過utc4832無線網(wǎng)絡(luò)把數(shù)據(jù)上傳至主通信節(jié)點(diǎn),主通信節(jié)點(diǎn)對數(shù)據(jù)進(jìn)行進(jìn)一步處理,通過以太網(wǎng)把數(shù)據(jù)發(fā)送至應(yīng)用服務(wù)器。2.1.3網(wǎng)絡(luò)控制部分方案方案一:采用基于rtl8019as實(shí)現(xiàn)以太網(wǎng)通訊。rtl8019as是由臺灣realtek公司生產(chǎn)的100pin pqfp 封裝10mbps以太網(wǎng)控制器,符和ethernet ii與ieee802.3標(biāo)準(zhǔn),其應(yīng)用成熟廣泛,但是由于rt

22、l8019as沒有集成內(nèi)部硬件協(xié)議,此方案需要在主控制器內(nèi)部編寫以太網(wǎng)通訊協(xié)議、程序繁瑣、耗費(fèi)時(shí)間,不利于系統(tǒng)的快速開發(fā)和穩(wěn)定運(yùn)行。且由于其封裝引腳太多,也不方便系統(tǒng)的硬件設(shè)計(jì)。方案二:采用基于dm9161的網(wǎng)絡(luò)控制器的以太網(wǎng)通訊系統(tǒng)設(shè)計(jì)。dm9161dm9161aep是一款完全集成的和符合成本效益單芯片快速以太phy,是采用較小工藝0.25um的10/100m自適應(yīng)的以太網(wǎng)收發(fā)器。dm9161aep通過可變電壓的 mii 或 rmii 標(biāo)準(zhǔn)數(shù)字接口連接到 mac 層,支持 hp auto-mdix。是目前常見的一款物理層收發(fā)器,由于全球的mcu集成度不斷提高,由mac+phy+mii的衍生到

23、現(xiàn)在的phy,在以太網(wǎng)部分的成本,逐漸降低。方案三:采用基于enc28j60的網(wǎng)絡(luò)控制器的設(shè)計(jì)。enc28j60是帶有行業(yè)標(biāo)準(zhǔn)串行外設(shè)spi接口的獨(dú)立以太網(wǎng)控制器,具有28pindip封裝,符合ieee802.3的全部規(guī)范,采用了一系列包過濾機(jī)制以對傳入數(shù)據(jù)包進(jìn)行限制。他還提供了一個(gè)內(nèi)部dma模塊,以實(shí)現(xiàn)快速數(shù)據(jù)吞吐和硬件支持的ip較驗(yàn)和計(jì)算。與主控制器的通信通過兩個(gè)中斷引腳和spi實(shí)現(xiàn),傳輸數(shù)據(jù)速率高達(dá)10mb/s。兩個(gè)專用的引腳用于連接led,進(jìn)行網(wǎng)絡(luò)活動狀態(tài)指示。雖然enc28j60同樣也沒有像dm9161那樣集成了了內(nèi)部硬件協(xié)議棧,但是由于其具有28pindip封裝,大大便于硬件設(shè)計(jì)和

24、制版,符合我們這次系統(tǒng)設(shè)計(jì)的基本要求。綜上所述所述,方案二和方案三都適合作為本次設(shè)計(jì)的網(wǎng)絡(luò)控制部分,由于條件所限我們選擇方案二。3.2 系統(tǒng)軟件總體結(jié)構(gòu)系統(tǒng)軟件總體結(jié)構(gòu)如圖3-2所示,整個(gè)程序是圍繞stm32f107vct6單片機(jī)設(shè)計(jì)的,軟件程序采用模塊化設(shè)計(jì),更容易理解和調(diào)試。整個(gè)程序除主程序之外還有5個(gè)部分:系統(tǒng)初始化子程序、rs232通訊子程序、網(wǎng)口通訊子程序、i/o數(shù)據(jù)采集子程序和rs485通訊子程序。圖3-2軟件結(jié)構(gòu)圖主程序流程圖如圖3-3所示。系統(tǒng)運(yùn)行后進(jìn)入主程序,首先對系統(tǒng)硬件進(jìn)行初始化,而后再對網(wǎng)絡(luò)進(jìn)行初始化,然后檢查網(wǎng)絡(luò)連接是否正常,連接正常則進(jìn)行周期運(yùn)行顯示,不正常則重新進(jìn)

25、行連接。圖3-3主程序流程圖3.3 本章小結(jié)本章主要講述了本設(shè)計(jì)的工作原理和本設(shè)計(jì)系統(tǒng)的工作流程。在說明工作原理的過程中,突出了電路的組成單元以及這些單元如何實(shí)現(xiàn)數(shù)據(jù)采集和數(shù)據(jù)處理控制功能。在說明系統(tǒng)流程時(shí),結(jié)合本設(shè)計(jì)的內(nèi)容指出了參數(shù)設(shè)置的方法和意義。4 硬件設(shè)計(jì)4.1 主控芯片stm32f107 32位arm cortex-m3結(jié)構(gòu),72mhz運(yùn)行頻率,1.25 dmips/mhz,硬件除法和單周期乘法,并可快速可嵌套中斷,612個(gè)時(shí)鐘周期,有64k256kb的flash,以及高達(dá)64kb的sram。另外在網(wǎng)絡(luò)通信功能上,具有一個(gè)rj45網(wǎng)絡(luò)接口,支持10m/100m自適應(yīng)網(wǎng)絡(luò),還有一個(gè)zi

26、gbee無線網(wǎng)絡(luò)通訊接口,一個(gè)wi-fi wlan無線寬帶網(wǎng)絡(luò)通訊接口。在本開發(fā)板上,添加了一些人機(jī)交互接口,一個(gè)大屏幕320*240,262144色tft-lcd,支持spi接口式/總線接口,四個(gè)led發(fā)光管,一個(gè)電源led指示燈,另外一個(gè)標(biāo)準(zhǔn)3.5mm耳機(jī)接口,一個(gè)五方向的輸入搖桿,3個(gè)gpio按鍵,1個(gè)reste按鍵,以及音頻級處理芯片,usb otg功能能,支持外接鼠標(biāo)和鍵盤。串行通信功能上,有兩個(gè)rs232連接插座,其中一個(gè)rs232帶硬件流控制引腳,一個(gè)mini型usb插座,兩個(gè)can連接口。其中與以太網(wǎng)最重要的硬件是mac(介質(zhì)訪問控制)及其專用的dma。專用的dma控制器允許專

27、用sram和描述符之間高速傳輸,其中一些地址過濾模式,對物理和組發(fā)送地址,以及32位狀態(tài)編碼,用于每個(gè)傳送和接受幀。內(nèi)部的fifo用于緩存?zhèn)鬏敽徒邮軒?,傳輸fifo和接受fifo都是2kbyte,總共4kbytes。實(shí)物圖如圖4.1所示:圖4.1stm32實(shí)物圖圖stm32f107xx包括以下特性:1. 支持10和100mbit/s兩種速率2. 專用dma控制器允許專用sram和描述符之間高速傳輸。3. 標(biāo)記的mac幀支持,支持vlan(虛擬局域網(wǎng))4. 半雙工和全雙工兩種操作模式,半雙工下采用csma/cd(帶有檢測沖突的載波偵聽多路存?。?. 支持mac控制子層,用于控制幀。6. 32位c

28、rc產(chǎn)生和清除。7. 一些地址過濾模式,對物理和組播地址。8. 32位狀態(tài)編碼,用于每個(gè)傳送和接受幀。9. 內(nèi)部fifo用于緩存?zhèn)鬏敽徒邮諑?。傳輸fifo和接收fifo都是2kbyte,總計(jì)4kbytes。10. 支持硬件ptp(精確時(shí)間協(xié)議),時(shí)間戳比較器連接到tim2觸發(fā)輸入端。當(dāng)系統(tǒng)時(shí)間比預(yù)定目標(biāo)時(shí)間大時(shí),觸發(fā)中斷。4.1.1 stm32f107的以太網(wǎng)功能描述stm32f107支持兩種工業(yè)標(biāo)準(zhǔn)的物理層接口,默認(rèn)的介質(zhì)無關(guān)接口mii和精簡的介質(zhì)無關(guān)接口rmii。以太網(wǎng)的外設(shè)由mac和一個(gè)專用的dma控制器,支持默認(rèn)的mii和rmii通過一個(gè)選擇位來設(shè)置默認(rèn)的mii接口或者精簡mii接口。

29、tdma控制器接口通過ahb主從接口連接核和內(nèi)存,ahb主接口控制數(shù)據(jù)傳輸當(dāng)ahn從接口訪問控制盒狀態(tài)寄存器空間。在mac核傳輸前,傳輸fifo緩存通過dma從系統(tǒng)內(nèi)存中讀取數(shù)據(jù),類似的,接受的fifo隊(duì)列從線上儲存以太網(wǎng)幀從而知道它們被dma傳送到了系統(tǒng)內(nèi)存中。以太網(wǎng)的外設(shè)還包括一個(gè)smi用于和外部的phy通信。配置寄存器允許用戶為mac和dma控制器選擇想要的模式和特性。圖4.2 stm32f107以太網(wǎng)原理框圖4.1.2 smi站管理接口smi(station management interface 站管理接口)允許應(yīng)用程序通過一根時(shí)鐘數(shù)據(jù)線來讀取配置中任意一個(gè)物理寄存器,接口最多支持

30、訪問是32個(gè)phy。應(yīng)用程序可以在smi的允許下選擇32個(gè)phy中的其中一個(gè),再在phy中32個(gè)寄存器中的任意一個(gè)來發(fā)送控制數(shù)據(jù)或者接受狀態(tài)信息。但是在給定的時(shí)間里,只能訪問一個(gè)phy中的寄存器。如圖4.2所示,圖中微控制器執(zhí)行使mdc時(shí)鐘線和mdio數(shù)據(jù)線來為交替的功能i/o扣。mdc是一個(gè)用于給數(shù)據(jù)傳輸提供時(shí)間參考的周期性時(shí)鐘,最大的頻率為2.5mhz,最小的mdc的高低時(shí)間是每次160ns,最小的周期是400ns。值得注意的是,在不工作的情況下,smi管理接口驅(qū)動mdc時(shí)鐘信號為低,即為0。而mdio是數(shù)據(jù)輸入和輸出數(shù)據(jù)是要用mdc時(shí)鐘信號來同步傳輸狀態(tài)信號給物理設(shè)備,或者從物理設(shè)備那得

31、到狀態(tài)信號。stm32macexternalphymdiomdc圖4.3 smi管理接口框圖4.1.3 smi寫操作當(dāng)應(yīng)用程序設(shè)置介質(zhì)無關(guān)接口mii寫和忙位時(shí),smi通過傳輸phy的地址,phy中的寄存器地址以及寫數(shù)據(jù)來啟動一個(gè)寫操作到phy寄存器上。當(dāng)然,在傳輸過程中應(yīng)用程序不能改變mii的地址寄存器中的內(nèi)存或者是mii數(shù)據(jù)寄存器。在這個(gè)寫操作的時(shí)間里,任何對mii地址寄存器和mii數(shù)據(jù)寄存器的寫操作都會被忽略(忙時(shí)位為高,即為1),保證傳輸過程無差錯(cuò)完成。這個(gè)寫操作完成之后,smi又通過復(fù)位忙位,使得可以重新接受新的寫操作。圖4.4 smi寫操作4.1.4 smi的讀操作用戶設(shè)置以太網(wǎng)ma

32、c中mii的地址寄存器中的mii busy bit時(shí),mii write bit 為零,smi就通過傳輸phy地址和phy中的寄存器的地址,然后在phy寄存器中就啟動一個(gè)讀操作。同樣的,在傳輸過程中應(yīng)用程序不能改變mii地址寄存器中的內(nèi)容或者mii數(shù)據(jù)寄存器中的內(nèi)容。同時(shí)在讀操作過程中,對mii地址寄存器和mii數(shù)據(jù)寄存器的寫操作也會被忽略(busy bit為高,即為1),保證傳輸過程不差錯(cuò),能夠正確完成。讀操作完成后,smi復(fù)位busy bit,然后用從phy中讀到的數(shù)據(jù)來更新mii數(shù)據(jù)寄存器。圖4.5 smi讀操作4.2 stm32串口通訊stm32的串口是相當(dāng)豐富的,功能也很強(qiáng)勁。最多可

33、提供5路串口(ministm32使用的是stm32f103rbt6,具有3個(gè)串口),有分?jǐn)?shù)波特率發(fā)生器、支持單線光通信和半雙工單線通訊、支持lin、智能卡協(xié)議和irdasir endec規(guī)范(僅串口3支持)、具有dma等。圖4.5 485電路 串口最基本的設(shè)置,就是波特率的設(shè)置。stm32的串口使用起來還是蠻簡單的,只要你開啟了串口時(shí)鐘,并設(shè)置相應(yīng)io口的模式,然后配置一下波特率,數(shù)據(jù)位長度,奇偶校驗(yàn)位等信息,就可以使用了。下面,我們就簡單介紹下這幾個(gè)與串口基本配置直接相關(guān)的寄存器。 1,串口時(shí)鐘使能。串口作為stm32的一個(gè)外設(shè),其時(shí)鐘由外設(shè)時(shí)鐘使能寄存器控制,這里我們使用的串口1是在apb

34、2enr寄存器的第14位。apb2enr寄存器在之前已經(jīng)介紹過了,這里不再介紹。只是說明一點(diǎn),就是除了串口1的時(shí)鐘使能在apb2enr寄存器,其他串口的時(shí)鐘使能位都在apb1enr。 2,串口復(fù)位。當(dāng)外設(shè)出現(xiàn)異常的時(shí)候可以通過復(fù)位寄存器里面的對應(yīng)位設(shè)置,實(shí)現(xiàn)該外設(shè)的復(fù)位,然后重新配置這個(gè)外設(shè)達(dá)到讓其重新工作的目的。一般在系統(tǒng)剛開始配置外設(shè)的時(shí)候,都會先執(zhí)行復(fù)位該外設(shè)的操作。串口1的復(fù)位是通過配置apb2rstr寄存器的第14位來實(shí)現(xiàn)的。apb2rstr寄存器的各位描述如下:圖4.6寄存器apb2rstr各位描述從上圖可知串口1的復(fù)位設(shè)置位在apb2rstr的第14位。通過向該位寫1復(fù)位串口1,

35、寫0結(jié)束復(fù)位。其他串口的復(fù)位位在apb1rstr里面。 3,串口波特率設(shè)置。每個(gè)串口都有一個(gè)自己獨(dú)立的波特率寄存器usart_brr,通過設(shè)置該寄存器達(dá)到配置不同波特率的目的。該寄存器的各位描述如下:、圖4.7 寄存器usart_brr各位描述前面提到stm32的分?jǐn)?shù)波特率概念,其實(shí)就是在這個(gè)寄存器里面體現(xiàn)的。最低4位用來存放小數(shù)部分div_fraction,15:4這12位用來存放整數(shù)部分div_mantissa。高16位未使用。這里波特率的計(jì)算通過如下公式計(jì)算 。這里的pclkx(x=1、2)是給外設(shè)的時(shí)鐘(pclk1用于串口2、3、4、5,pclk2用于串口1),usartdiv是一個(gè)無

36、符號的定點(diǎn)數(shù),它的值可以有串口的brr寄存器值得到。而我們更關(guān)心的是如何從usartdiv的值得到usart_brr的值,因?yàn)橐话阄覀冎赖氖遣ㄌ芈剩蚿clkx的時(shí)鐘,要求的就是usart_brr的值。 下面我們來介紹如何通過usartdiv得到串口usart_brr寄存器的值,假設(shè)我們的串口1要設(shè)置為9600的波特率,而pclk2的時(shí)鐘為72m。這樣,我們根據(jù)上面的公式有:usartdiv=72000000/9600*16=468.75那么得到:div_fraction=16*0.75=12=0x0c;div_mantissa= 468=0x1d4;這樣,我們就得到了usart1-brr的

37、值為0x1d4c。只要設(shè)置串口1的brr寄存器值為0x1d4c就可以得到9600的波特率。 4,串口控制。stm32的每個(gè)串口都有3個(gè)控制寄存器usart_cr13,串口的很多配置都是通過這3個(gè)寄存器來設(shè)置的。這里我們只要用到usart_cr1就可以實(shí)現(xiàn)我們的功能了。圖4.8 寄存器usart_brr各位描述bit 13: 串口功能;bit 12: mode,字長。0:1個(gè)開始位,8個(gè)數(shù)據(jù)位,1位停止位(默認(rèn));1:1個(gè)開始位,9位數(shù)據(jù)位,1位停止位(默認(rèn));*注意:停止位的長度可在usart_cr2寄存器中設(shè)置。bit 11: wake 喚醒功能bit 10: 校檢使能位,當(dāng)激活奇偶校驗(yàn)功能

38、時(shí),置位該位將自動往要傳輸數(shù)據(jù)的高位字節(jié)處插入就校驗(yàn)位。bit 09: parity selection,0:偶校驗(yàn);1:奇校驗(yàn)。bit 08: pe interrupt enablebit 07: 發(fā)送緩沖區(qū)空中斷使能位bit 06: 發(fā)送完成中斷使能位bit 05: 接收緩沖區(qū)非空中斷使能位bit 04: idle interrupt enablebit 03: transfer enablebit 02: receive enablebit 01: receiver wakeupbit 00: send break 5,數(shù)據(jù)發(fā)送與接收。stm32的發(fā)送與接收是通過數(shù)據(jù)寄存器usart_d

39、r來實(shí)現(xiàn)的,這是一個(gè)雙寄存器,包含了tdr和rdr。當(dāng)向該寄存器寫數(shù)據(jù)的時(shí)候,串口就會自動發(fā)送,當(dāng)收到收據(jù)的時(shí)候,也是存在該寄存器內(nèi)。該寄存器的各位描述如下:圖4.9 寄存器usart_dr各位描述可以看出,雖然是一個(gè)32位寄存器,但是只用了低9位(dr8:0),其他都是保留。 dr8:0為串口數(shù)據(jù),包含了發(fā)送或接收的數(shù)據(jù)。由于它是由兩個(gè)寄存器組成的,一個(gè)給發(fā)送用(tdr),一個(gè)給接收用(rdr),該寄存器兼具讀和寫的功能。tdr寄存器提供了內(nèi)部總線和輸出移位寄存器之間的并行接口。rdr寄存器提供了輸入移位寄存器和內(nèi)部總線之間的并行接口。 當(dāng)使能校驗(yàn)位(usart_cr1種pce位被置位)進(jìn)行

40、發(fā)送時(shí),寫到msb的值(根據(jù)數(shù)據(jù)的長度不同,msb是第7位或者第8位)會被后來的校驗(yàn)位該取代。當(dāng)使能校驗(yàn)位進(jìn)行接收時(shí),讀到的msb位是接收到的校驗(yàn)位。 6,串口狀態(tài)。串口的狀態(tài)可以通過狀態(tài)寄存器usart_sr讀取。usart_sr的各位描述如下:圖4.10寄存器usart_sr各位描述這里我們關(guān)注一下兩個(gè)位,第5、6位rxne和tc。rxne(讀數(shù)據(jù)寄存器非空),當(dāng)該位被置1的時(shí)候,就是提示已經(jīng)有數(shù)據(jù)被接收到了,并且可以讀出來了。這時(shí)候我們要做的就是盡快去讀取usart_dr,通過讀usart_dr可以將該位清零,也可以向該位寫0,直接清除。tc(發(fā)送完成),當(dāng)該位被職位的時(shí)候,表示usar

41、t_dr內(nèi)的數(shù)據(jù)已經(jīng)被發(fā)送完成了。如果設(shè)置了這個(gè)位的中斷,則會產(chǎn)生中斷。該位也有兩種清零方式:1)讀usart_sr,寫usart_dr。2)直接向該位寫0。4.3 dm9161用法介紹dm9161aep是一款完全集成的和符合成本效益單芯片快速以太網(wǎng)phy,是采用較小工藝0.25um的10/100m自適應(yīng)的以太網(wǎng)收發(fā)器。dm9161aep通過可變電壓的 mii 或 rmii 標(biāo)準(zhǔn)數(shù)字接口連接到 mac 層,支持 hp auto-mdix。是目前常見的一款物理層收發(fā)器,由于全球的mcu集成度不斷提高,由早先的mac+phy+mii的衍生到現(xiàn)在的phy,在以太網(wǎng)部分的成本,逐漸降低。有如下特點(diǎn)1.

42、48pin lqfp封裝 2.制作工藝:0.25um,io供電電壓3.3v,模擬部分2.5v3.支持mii和rmii連接方式(推薦使用mii) 4.支持雙絞線自適應(yīng)(auto-mix) 5.支持tcp/ip硬加速 6.與全球95%的廠家的mcu完全兼容,是atmel推薦使用的單口phy。注:目前dm9161aep支持的溫度范圍是0-75,而工業(yè)級的dm9161biep是支持-40到85。在應(yīng)用過程中,dm9161aep常出現(xiàn)的錯(cuò)誤是,晶振的連接,以及網(wǎng)絡(luò)變壓器的匹配,所以應(yīng)該慎重選擇。dm9161引腳圖如下所示:圖4.11 dm9161引腳圖4.3.1 dm9161引腳說明16腳 txer/t

43、xd 4:輸入腳,傳輸錯(cuò)誤或者是第五個(gè)txd數(shù)據(jù)位,在100兆模式下,此腳為高,同時(shí)txen為高,暫停信號代替實(shí)際的數(shù)據(jù)。在10兆模式下這個(gè)輸入腳被忽略,在旁路模式下(旁路4b5b)此腳變成txd4腳,第五個(gè)txd的數(shù)據(jù) of 5b信號。20,19,18,17腳 txd 0:3 發(fā)送數(shù)據(jù),4位數(shù)據(jù)輸入(與txclk同步)在10兆或者100兆的半字節(jié)模式,在10兆的gpsi模式(7線)下,txd 0被用作串行數(shù)據(jù)輸入腳,txd 1:3被忽略。輸入腳即芯片發(fā)送數(shù)據(jù)給它,它接收后再發(fā)送。21腳txen:傳輸使能,高電平表示txd 0:3上數(shù)據(jù)是合法的在10兆或者100兆模式下。在10兆的gpsi模式

44、(7線)下,高電平顯示txd 0上數(shù)據(jù)合法。22腳txclk/isolate:輸出腳,當(dāng)剛上電時(shí)是輸入腳,拉低,發(fā)送時(shí)鐘腳,為txen, txd, and txer. txclk的傳輸提供時(shí)鐘參考,有phy提供。25mhz是100兆半字節(jié)模式,2.5兆是10兆半字節(jié)模式,10兆是10兆gpsi (7-wired) mode(說是7線好像只用單線傳輸)。isolate的設(shè)置是:當(dāng)上電復(fù)位時(shí)是輸入,0:寄存器0.10將被初始化成0,1:寄存器0.10將被初始化成1.24腳mdc:輸入腳,管理數(shù)據(jù)的時(shí)鐘腳,mdio管理數(shù)據(jù)的同步時(shí)鐘,這個(gè)時(shí)鐘由管理芯片提供,最大12.5mhz.25腳mdio:輸入/

45、輸出腳,雙向的管理數(shù)據(jù)可能被管理芯片或者phy提供。29,28,27,26 rxd0:3/phyad0:3:三態(tài)輸出,上電輸入,拉低,在10/100兆mii模式四位輸出(與rxclk同步)。在10兆的gpsi模式(7線)下,rxd 0腳是串行數(shù)據(jù)輸出腳,rxd 1:3 are ignored,phy address 0:3,上電復(fù)位成輸入腳,phy地址檢測輸入腳。32腳 mdintr:輸入/輸出,上電輸入,拉低,狀態(tài)中斷輸出腳,當(dāng)有一個(gè)狀態(tài)改變(包括link, speed, duplex depend on interrupt register 21)即由狀態(tài)改變同時(shí)中斷也設(shè)置了,才會輸出。如

46、果原來是低,則中斷時(shí)輸出高,如果是高則中斷時(shí)輸出低。34腳 rxclk/10btser:三態(tài)輸出腳,上電輸入,拉高,接收時(shí)鐘由phy提供時(shí)間參考為rxdv, rxd, and rxer.。phy可能從接收的數(shù)據(jù)中恢復(fù)rxclk參考,或者從25mhz在100m mii模式下,2.5mhz在10m mii模式下,10mhz在 10mbps gpsi (7-wired) mode。10btser僅支持10m模式(上電輸入),0 = gpsi (7-wired) mode in 10m mode,1 = mii mode in 10m mode35腳crs/phyad4:三態(tài)輸出,上電輸入,拉低,載波

47、感應(yīng)檢測或者phyad4,在10 base-t或者100base-tx的半雙工模式下,高電平表示載波的存在是因?yàn)榻邮栈蛘邆鬏斢行Вㄕ谶M(jìn)行中)在repeater或者全雙工模式下,這個(gè)信號置高顯示載波的存在僅僅因?yàn)榻邮沼行Т四_作為phyad4(上電輸入)phy地址感應(yīng)輸入腳。36腳col/rmii:三態(tài)輸出,上電輸入,拉低,沖突檢測,在10m或者100m的半雙工模式,高電平顯示沖突狀態(tài),在全雙工模式,此腳一直為低。簡化的mii使能腳,此腳也用來選擇正常的mii或者簡化的mii,(上電是輸入),0是正常的mii(默認(rèn)),1是簡化的mii,此腳經(jīng)常被拉低,除非用于簡化的mii。37 腳rxdv/te

48、stmode:三態(tài)輸出,上電輸入,拉低,接收數(shù)據(jù)合法,高電平顯示合法的數(shù)據(jù)在rxd 0:3中,測試模式控制腳(上電輸入)0是正常的操作(默認(rèn))1為測試模式使能。38腳 rxer/rxd4/rptr:三態(tài)輸出,上電輸入,拉低,接收數(shù)據(jù)錯(cuò)誤或者5b情況下第五個(gè)接收數(shù)據(jù)位,高電平顯示一個(gè)不合法的符號被檢測到,在解碼旁路模式(旁路4b5b)rxer變成rxd 4,5b符號的第五個(gè)接收數(shù)據(jù)位。這個(gè)腳也可以用來選擇repeater or node mode.(上電輸入)0 node mode (default),1 repeater mode.31 ledmode:led模式選擇,0,支持雙燈,1正常的燈

49、40 reset#:低電平用來初始化dm9161a3,4腳 rx+rx-:輸入腳,差分?jǐn)?shù)據(jù)從媒體被接收7,8腳 tx+ tx-:輸出腳,差分傳輸對,差分?jǐn)?shù)據(jù)被傳輸?shù)矫襟w,在tp模式下。11 腳 led0/op0:輸出腳,上電輸入,上拉。led驅(qū)動輸出0,op0:上電復(fù)位輸入,此腳用來控制強(qiáng)制的或者是公布的操作模式,在上電后此值被寫入寄存器。12腳 led1/op1:輸出腳,上電輸入,上拉。led驅(qū)動輸出1,op1:上電復(fù)位輸入,此腳用來控制強(qiáng)制的或者是公布的操作模式,在上電后此值被寫入寄存器。13腳 led2/op2:輸出腳,上電輸入,上拉。led驅(qū)動輸出2,op2:上電復(fù)位輸入,此腳用來控制

50、強(qiáng)制的或者是公布的操作模式,在上電后此值被寫入寄存器。10 腳 pwrdwn:輸入腳,掉電控制,高電平強(qiáng)制芯片到掉電模式,在掉電模式下大部分芯片的模塊被關(guān)電,僅mii管理接口(mdc, mdio)可利用(phy對管理傳輸有用,在mii上不會產(chǎn)生假信號),要想離開掉電模式必須用軟件或者硬件復(fù)位讓pwrdwn腳為低。14腳 cablests/linksts:輸出腳,上電輸入,下拉,cable status or link status,此腳用來顯示上電復(fù)位為輸入的時(shí)候cable是否是連接狀態(tài),0沒有cable連接,1有cable連接。此腳也被用來顯示上電復(fù)位輸入為高的時(shí)候link的連接狀態(tài),0有l(wèi)

51、ink,1沒link39 dismdix:hp自動翻轉(zhuǎn),1自動模式失效,0使能hp自動翻轉(zhuǎn)4.3.2 dm9161標(biāo)準(zhǔn)協(xié)議說明dm9161a,快速以太單芯片傳輸,按ieee 802.3u,標(biāo)準(zhǔn),完整的100base-tx模式和10base-t模式,芯片提供一個(gè)mii借口按標(biāo)準(zhǔn)ieee 802.3u,包含功能:圖4.12 dm9161標(biāo)準(zhǔn)協(xié)議txd是4位半字節(jié)數(shù)據(jù),被txclk驅(qū)動,在txen使能情況下,每一個(gè)txclk始終txd (3:0) 通過phy被接收txclk(傳輸時(shí)鐘)不間斷時(shí)鐘提供時(shí)間參考為txen, txd, and txer信號。txen傳輸使能,從物理層輸入,顯示物理層mii

52、接口傳輸是存在的。txer(傳輸碼錯(cuò)誤)與txclk同步,如果txer在一個(gè)或多個(gè)時(shí)鐘中置位,同時(shí)txen置位,phy將發(fā)出一個(gè)或更多的信號在正在傳輸?shù)臄?shù)據(jù)幀中。rxd,4位數(shù)據(jù)被采樣與rxclk同步,每一個(gè)rxclk,rxdv被置位,rxd (3:0)被傳輸從phy到物理層。rxclk(接收時(shí)鐘)輸出到物理層的不間斷時(shí)鐘為rxdv, rxd, andrxer signals.提供參考。rxdv(接收數(shù)據(jù)合法)從phy輸入,顯示phy存在恢復(fù)的和解碼的半字節(jié)數(shù)據(jù)在物理層上,為了正確的被層解釋接收幀,rxdv必須圍繞著幀,開始不能晚于開始幀分隔符,不包括任何結(jié)束幀分隔符rxer(接收錯(cuò)誤)轉(zhuǎn)變與

53、rxclk同步,rxer將被置位在一個(gè)或更多的時(shí)鐘周期當(dāng)檢測到任何一個(gè)錯(cuò)誤在 從phy到物理層的被傳輸過程中。crs(載波感應(yīng))當(dāng)傳輸或者接收中繼沒有空閑時(shí)有效(置高),當(dāng)傳輸或者接收空閑時(shí)無效(置底),100base-tx發(fā)射機(jī)接收4位數(shù)據(jù)在25m,輸出一個(gè)5位編碼mlt-3信號到媒介在100m,芯片把25m在內(nèi)部變成125m供內(nèi)部使用。圖4.13 dm9161標(biāo)準(zhǔn)協(xié)議框圖100base-tx發(fā)射器如上圖:把mii提供的數(shù)據(jù)4位同步數(shù)據(jù)轉(zhuǎn)換后到scrambler, mlt-3.一百萬個(gè)符號每秒。4.4 本章小結(jié)本章詳細(xì)介紹了本設(shè)計(jì)所要用到的硬件模塊stm32107作為主控制器,dm9161作

54、為網(wǎng)絡(luò)控制模塊,用串口傳輸數(shù)據(jù)。5 以太網(wǎng)協(xié)議5.1 tcp/ip協(xié)議tcp/ip協(xié)議是由一系列網(wǎng)絡(luò)協(xié)議組成的協(xié)議族,從名字可以看出tcp/ip協(xié)議族中最重要的且基本的兩個(gè)協(xié)議為tep(腸ansmissioncontrolprotoeol,傳輸控制協(xié)議)和ip(internetprotoeol,網(wǎng)絡(luò)互聯(lián)協(xié)議)tcp/ip協(xié)議是當(dāng)今互聯(lián)網(wǎng)的基石最早的tcp/ip由文頓#瑟夫(vintoncerf)和羅伯特#卡恩(robertkahn)開發(fā)出來,由于其優(yōu)越的性能,應(yīng)用范圍逐漸擴(kuò)大,20世紀(jì)90年代中期,由于html(hyper介xtmarkuplanguage,超文本描述語言)技術(shù)以及瀏覽器的出現(xiàn)

55、,使得互聯(lián)網(wǎng)飛速發(fā)展起來tcp/ip對于低層(物理層與數(shù)據(jù)鏈路層)協(xié)議的支持非常好,常用的低層協(xié)議幾乎都支持tep/ip,如以太網(wǎng)!端對端協(xié)議(point一to一pointprotoeol,ppp)#光纖分布式數(shù)據(jù)接口!令牌環(huán)網(wǎng)等tcp/ip協(xié)議并不完全遵循傳統(tǒng)051參考模型的七層結(jié)構(gòu)它包括應(yīng)用層!傳輸層!網(wǎng)絡(luò)層!鏈路層,每一層都調(diào)用它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求tcp/ip協(xié)議通常被看作是一個(gè)四層結(jié)構(gòu)的網(wǎng)絡(luò),如圖5.1所示。圖5.1tcp/ip四層結(jié)構(gòu)應(yīng)用層:該層包含與應(yīng)用程序協(xié)同工作的各種協(xié)議,這些協(xié)議利用底層網(wǎng)絡(luò)來傳輸應(yīng)用程序發(fā)送與接收的數(shù)據(jù)應(yīng)用層的處理過程如下:數(shù)據(jù)從應(yīng)用程序開

56、始傳送,開始時(shí)數(shù)據(jù)格式為這個(gè)應(yīng)用程序的內(nèi)部格式,然后數(shù)據(jù)被編碼為協(xié)議的標(biāo)準(zhǔn)格式,編碼完成后,數(shù)據(jù)便被傳輸?shù)絫cp/ip協(xié)議棧中應(yīng)用層的下一層。傳輸層:傳輸層的協(xié)議,能夠解決端到端可靠性(即數(shù)據(jù)是否已經(jīng)到達(dá)目的地)!保證數(shù)據(jù)按照正確的順序到達(dá)此類的問題在通用的tcp/ip協(xié)議族中,傳輸層協(xié)議也包括所給數(shù)據(jù)應(yīng)該送給哪個(gè)應(yīng)用程序常用的傳輸層協(xié)議有tcp和udp其中tcp是一個(gè)可靠的!面向連接的傳輸機(jī)制,它能保證數(shù)據(jù)完整!無損并且按順序到達(dá)而udp是一個(gè)無連接的不可靠的數(shù)據(jù)報(bào)協(xié)議它既不檢查數(shù)據(jù)包到達(dá)目的地與否,也不保證它們到達(dá)的順序。網(wǎng)絡(luò)層:網(wǎng)絡(luò)層也稱作ip層或互聯(lián)網(wǎng)層,它負(fù)責(zé)處理數(shù)據(jù)分組的選路等數(shù)據(jù)分組在網(wǎng)絡(luò)中的活動在tcp/ip協(xié)議棧中,網(wǎng)絡(luò)層的

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論