久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

北郵2014《現代通信技術》實驗報告二

時間:2019-05-11 22:50:55下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《北郵2014《現代通信技術》實驗報告二》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《北郵2014《現代通信技術》實驗報告二》。

第一篇:北郵2014《現代通信技術》實驗報告二

2014《現代通信技術》實驗報告二

信息與通信工程學院

現代通信技術實驗報告

級:

名:

號: 學

號: / 18

2014《現代通信技術》實驗報告二

期:2014年4月16日/30日

目錄

實驗一 微波通信實驗..................................................................................................3

一、實驗原理........................................................................................................3

二、實驗過程........................................................................................................3

三、實驗心得體會................................................................................................3 實驗二 組網及VLAN的應用....................................................................................4

一、實驗目的........................................................................................................4

二、實驗內容........................................................................................................4

三、實驗原理........................................................................................................5

1、VLAN簡介..............................................................................................5

2、交換機的端口..........................................................................................6

3、廣播風暴..................................................................................................7

四、實驗過程........................................................................................................7

五、結果與體會..................................................................................................12 附錄..............................................................................................................................14

/ 18

2014《現代通信技術》實驗報告二

實驗一 微波通信實驗

一、實驗原理

微波是指頻率為300MHz到300GHz的電磁波。微波具有直線傳播的特性,為了克服地球的凸起必須采用中繼接力的方式。實際中一般距離50km就有一個中繼站。一條數字微波通信線路由兩端的終端站,若干中繼站和電波的傳播空間構成。典型的數字微波端站由微波天線,射頻收發模塊,基帶收發部分,傳輸接口等部分組成。

微波發信機多采用中頻調制的方式。中頻信號是已經經過調制的信號,上變頻器將中頻信號搬移到指定的微波波道,然后經過微波功放,經過天線發射出去。

微波收信機多采用超外差式接收結構。通過本振與接收的微波信號進行混頻,得到固定中頻信號,然后對中頻進行放大和濾波。

二、實驗過程

本實驗數字微波通信系統為:34Mbit/s QPSK系統 ,中頻頻率是70MHz,射頻頻率是6GHz。在實驗中信號不是直接發送出去,而且通過實體線路連接到接收方,通過信道衰減器模擬微波的遠距離傳輸。

我們觀察了眼圖,將示波器連接到中頻接收機的眼圖觀測點,通過控制信道衰減器來控制接收噪聲的大小。我們觀察到,一開始,信噪比大,眼圖輪廓很清晰,眼睛睜得很開。微波站兩邊電話通話聽的清楚。不過隨著我們控制信道,使其衰減加劇,我們可以觀察到示波器里眼圖的眼睛輪廓慢慢不清晰了,眼睛越來越小。在眼睛還沒完全閉上之前,我們還是能聽到電話的聲音,但是此時已經有一些雜音了。最后在眼圖完全閉上后,我們就只能聽到電話里的噪聲了,不管對方聲音多大也不能在這邊的電話里面聽到了。從混亂的眼圖,我們可以知道信噪比急劇惡化,判決出錯,無法還原出信號。

實驗室的頻譜儀雖然老,但是它能觀察到的頻譜范圍很寬,能觀察到6GHz的頻譜。我們在頻譜儀上觀察了射頻的頻譜。

三、實驗心得體會

第三次實驗課結束后,我沒有及時記錄,到寫報告的時候已經過去三周了,所以有些實驗現象忘了。下次要吸取這個教訓,實驗結束后要及時記錄下來。

在實驗課的開頭,老師帶我們回憶了通信原理的框圖,信源編碼,信道編碼,調制,解調,信道解碼,信源解碼,線路碼,交織等等,幫助我們從整體框架上

/ 18

2014《現代通信技術》實驗報告二

理解通信原理。老師指著微波站,介紹說這個微波站就是典型的通信原理框圖。實驗室的微波站是比較老式的,比較大,所以我們能看到微波站的各個部分和通信原理的框圖對應的很好。通過對微波站各個部分的介紹,我們對通信原理的框圖有了感性的認識。老師還幫我們回顧了采樣,量化,編碼等。通信里面的定理并不多,比如香農定理,奈奎斯特采樣定理等。奈奎斯特采樣定理架起了模擬信號與數學信號之間的橋梁,將信源進行數字化,發揮了重大的作用。

之前我在學習通信原理第四章模擬調制的時候,我不太明白為什么要先調制到中頻,而不直接調制到指定的射頻頻段。經過這次實驗我知道了中頻頻率為70MHz。把射頻信號變到較低的中頻信號的好處是,便于解調器的實現,便于更好得濾波,不同頻率的接收機可以共用一套電路,只須改變本振和射頻調諧回路的諧振頻率即可。通過這次微波通信的實驗,我們對通信系統用了比較完整的了解,讓我們在通信原理里面學的理論知識在現實中有了對應,理解了通原里的框圖在現實中是如何實現的。

這學期的課程里我也選了《移動通信》這門課,所以對微波、中繼等知識的了解還是有一定的鋪墊。雖然微波現在用得不那么多了,但是它卻是不可或缺的備用路徑。像無法架設光纖或者假設成本過高的地方如海底、山區、高原,微波通信非常必要。而像災害易發區,比如萬一地震了,光纖斷了,那么牢固的微波中繼站既不易損害,又容易修復,是盡快恢復災區通信的必要手段。老師說汶川地震的時候從災區傳出來的第一條消息就是由那里的無線電愛好者發出來的。這次實驗中,老師有問到怎樣避免連續的比特錯誤,我脫口而出我知道的交織技術。原來我們之前學習的知識就是這樣一步步為我們的通信服務的。

實驗二 組網及VLAN的應用

一、實驗目的

1.熟悉組成LAN的主要設備,了解掌握LAN的基本特點以及LAN中的常用技術;

2.認識了解LAN、VLAN以及子網的建立和聯網、網絡配置和協議; 3.進一步了解VLAN的隔離廣播功能; 4.了解VLAN的互訪功能。

二、實驗內容

(1)通過Console口訪問以太網交換機、路由器

/ 18

2014《現代通信技術》實驗報告二

(2)通過微機Telnet到以太網交換機、路由器(3)(4)(5)(6)初步了解一些簡單命令

用ping命令測試Vlan網絡連通性,加深對Vlan的基本原理和特點的認識 通過多臺交換機串聯擴大網絡實現組播功能 觀察廣播風暴現象

(7)簡單介紹路由器的相關知識

三、實驗原理

1、VLAN簡介

VLAN,是英文Virtual Local Area Network的縮寫,中文名為“虛擬局域網”,VLAN是一種將局域網(LAN)設備從邏輯上劃分(注意,不是從物理上劃分)成一個個網段(或者說是更小的局域網LAN),從而實現虛擬工作組(單元)的數據交換技術。

VLAN這一新興技術主要應用于交換機和路由器中,但目前主流應用還是在交換機之中。不過不是所有交換機都具有此功能,只有三層以上交換機才具有此功能,這一點可以查看相應交換機的說明書即可得知。VLAN的好處主要有三個:

/ 18

2014《現代通信技術》實驗報告二

(1)端口的分隔。即便在同一個交換機上,處于不同VLAN的端口也是不能通信的。這樣一個物理的交換機可以當作多個邏輯的交換機使用。

(2)網絡的安全。不同VLAN不能直接通信,杜絕了廣播信息的不安全性。

(3)靈活的管理。更改用戶所屬的網絡不必換端口和連線,只更改軟件配置就可以了。VLAN(虛擬局域網)主要有以下幾種劃分方式,分別為:(1)基于端口劃分的VLAN;(2)基于MAC地址劃分VLAN;(3)基于網絡層劃分VLAN;(4)根據IP組播劃分VLAN;(5)按策略劃分的VLAN;

(6)按用戶定義、非用戶授權劃分的VLAN。

基于端口的VLAN的方式是最常應用的一種VLAN劃分方法,應用也最為廣泛、最有效,目前絕大多數VLAN協議的交換機都提供這種VLAN配置方法。老師課上講到的就是基于端口劃分的VLAN。

2、交換機的端口

交換機端口鏈路類型介紹

交換機以太網端口共有三種鏈路類型:Access、Trunk和Hybrid。(1)Access類型的端口只能屬于1個VLAN,一般用于連接計算機的端口;

(2)Trunk類型的端口可以屬于多個VLAN,可以接收和發送多個VLAN的報文,一般用于交換機之間連接的端口;

(3)Hybrid類型的端口可以屬于多個VLAN,可以接收和發送多個VLAN的報文,可以用于交 換機之間連接,也可以用于連接用戶的計算機。

其中,Hybrid端口和Trunk端口的相同之處在于兩種鏈路類型的端口都可以允許多個VLAN的報文發送時打標簽;不同之處在于Hybrid端口可以允許多個VLAN的報文發送時不打標簽,而Trunk端口只允許缺省VLAN的報文發送時不打標簽。

三種類型的端口可以共存在一臺以太網交換機上,但Trunk端口和Hybrid端口之間不能直接切換,只能先設為Access端口,再設置為其他類型端口。例如:Trunk端口不能直接被設置為Hybrid端口,只能先設為Access端口,再設置為Hybrid端口。各類型端口使用注意事項:

配置Trunk端口或Hybrid端口,并利用Trunk端口或Hybrid端口發送多個VLAN報文時一定要注意:本端端口和對端端口的缺省VLAN ID(端口的PVID)要保持一致。

當在交換機上使用isolate-user-vlan來進行二層端口隔離時,參與此配置的端口的鏈路類型會自動變成Hybrid類型。

Hybrid端口的應用比較靈活,主要為滿足一些特殊應用需求。此類需求多為在無法下發訪問控制規則的交換機上,利用Hybrid端口收發報文時的處理機制,來完成對同一網段的PC機之間的二層訪問控制。

/ 18

2014《現代通信技術》實驗報告二

3、廣播風暴

所謂廣播風暴,簡單的講,當廣播數據充斥網絡無法處理,并占用大量網絡帶寬,導致正常業務不能運行,甚至徹底癱瘓,這就發生了“廣播風暴”。一個數據幀或包被傳輸到本地網段(由廣播域定義)上的每個節點就是廣播;由于網絡拓撲的設計和連接問題,或其他原因導致廣播在網段內大量復制,傳播數據幀,導致網絡性能下降,甚至網絡癱瘓,這就是廣播風暴。

四、實驗過程

1.通過Console口訪問以太網交換機 示意圖:

2.打開超級終端,新建連接時進行設置 / 18

2014《現代通信技術》實驗報告二

3.打開交換機,選擇更改界面語言

4.鍵入?查看可用命令 / 18

2014《現代通信技術》實驗報告二

5.嘗試鍵入一些簡單命令

6.VLAN的基本配置 示意圖

首先建立兩個VLAN:VLAN2和VLAN3

/ 18

2014《現代通信技術》實驗報告二

分別進入E0/

1、E0/

2、E0/3以太網端口視圖進行配置

使用display interface命令查看,可以看到E0/

1、E0/2的默認VLAN變為VLAN2,E0/3的默認VLAN變為VLAN3

/ 18

2014《現代通信技術》實驗報告二

下面可以通過在計算機上使用ping命令檢測設置是否正確

在設置VLAN前,從Host3:192.168.0.3能夠ping通Host1:192.168.0.1,而設置VLAN后則ping不同

設置VLAN后,從Host2:192.168.0.2上能夠ping通Host1:192.168.0.1,而不能夠ping通Host3:192.168.0.3

/ 18

2014《現代通信技術》實驗報告二

五、結果與體會

這次實驗,我們組四個女生都沒有參加過計網的課設,所以我們中間遇到了很多問題,然后跑去別的組請教做過課設的同學,磕磕絆絆地最終完成了。一開始我們連好線路,打開超級終端,設置好各種參數后,我們按照講義一步一步地執行,但是我們第一步便出了點小問題:我們想先ping一下我們的連線有沒有連好,IP設置是否如我們所料,于是用超級終端ping。但是始終顯示的結果是連接不上。后來我猜測,有可能不是用超級終端ping,而是在命令提示符上ping。一試果然成功。后來,我們繼續按照教程做。但是我們遇到了一個問題:怎么把尖括號變成方括號?我們都記得老師上課有講過,但是因為接受的內容一下子太多了,我們沒記住那么多,于是我只好跑去問臨組做過計網課設的同學。之后進行得后面的步驟。后來我們翻了一下教程的前一頁,是有介紹的,只怪我們太粗心沒有發現。一開始我們沒考慮那么多(當然在做之前也不知道),隨便插的端口,14,16,20端口。后來,在執行display命令的時候,我們就哭了。因為它從1號端口一個個顯示,要一直摁回車到20端口!吃一塹長一智,我們再做不會再隨便插大數字端口了。而我們真正的問題是在廣播風暴上。我們發現我們一連好線路就會產生廣播風暴。我們一開始以為這不正確,后來問了做過計網課設的同學后,他告訴我們這是正常的。組織廣播風暴的方法老師也講過,一種是硬件上的,即切斷線路。

/ 18

2014《現代通信技術》實驗報告二

這在實際操作中是不太可能的;另一種就是軟件上的,我們需要輸入一個命令,從軟件上阻止廣播風暴。遺憾的是我并不了解軟件上的阻止廣播風暴機理是怎樣的,只知道輸入命令便可以阻止了。以下是我們做VLAN部分的ping結果:

/ 18

2014《現代通信技術》實驗報告二

通過實驗我初步了解了VLAN,交換機端口類型,廣播風暴等內容。我準備讀研的時候就讀網絡方向的,這次的實驗真的給我一個切身的體會,讓我對計算機網絡產生了極大的興趣。理論與實踐的結合,讓我印象更加深刻。但是遺憾的一點是我們操作不夠熟練,沒有完成老師布置的選作任務。如果還有機會的話我肯定會把后面的實驗也一起做了。

至此現代通信技術實驗課也結束了。我真的感覺這門課開設的實驗很有用,不僅掃盲,而且真正讓我們認識到了我們學的是什么,我們為什么學這方面的知識,通信到底是什么。作為一名未來的通信人,我終于對我們的專業有了一個新的認知與定位,獲益匪淺。

附錄

VLAN部分的操作: [H3C]vlan 2 [H3C-vlan2]quit [H3C]vlan 3 [H3C-vlan3]quit [H3C]int [H3C]interface e [H3C]interface Ethernet 1/0/14 [H3C-Ethernet1/0/14]port link-type access [H3C-Ethernet1/0/14]port access vlan 2 [H3C-Ethernet1/0/14]quit [H3C]interface e [H3C]interface Ethernet 1/0/16 [H3C-Ethernet1/0/16]port link [H3C-Ethernet1/0/16]port link-type access [H3C-Ethernet1/0/16]port [H3C-Ethernet1/0/16]port a [H3C-Ethernet1/0/16]port access vlan 2

/ 18

2014《現代通信技術》實驗報告二

[H3C-Ethernet1/0/16]quit [H3C]inter [H3C]interface e [H3C]interface Ethernet 1/0/20 [H3C-Ethernet1/0/20]port link [H3C-Ethernet1/0/20]port link-type access [H3C-Ethernet1/0/20]port a [H3C-Ethernet1/0/20]port access vlan 3 [H3C-Ethernet1/0/20]quit

Ethernet1/0/14是 UP 發送的IP幀的幀格式是 PKTFMT_ETHNT_2 硬件地址是000f-e25f-688c 導線類型是 雙絞線 端口環回沒有設置

端口硬件類型是 100_BASE_TX 100Mbps-速度 模式, 全雙工 模式

鏈路速度類型是自協商, 鏈路雙工類型是自協商, 流量控制: 不使能

最大幀長 1536 最多允許廣播報文占用接口流量的百分比: 100% 缺省VLAN ID: 2 網線類型為: normal 端口模式: access Tagged

VLAN ID : 無

Untagged VLAN ID : 2 最后 300 秒鐘的輸入: 0包/秒 0字節/秒

最后 300 秒鐘的輸出: 0包/秒 6字節/秒

輸入(合計):

219 報文, 28361 字節

/ 18

2014《現代通信技術》實驗報告二

廣播包, 24 多播包, 0 暫停包

輸入(正常):

219 報文, 28361 字節

廣播包, 24 多播包, 0 暫停包

輸入 :

0 輸入錯誤, 0 超短包, 0 超長包, 輸入碰撞錯誤, 0 輸入描述符錯誤,奇偶錯誤

輸出(合計):

389 報文, 56227 字節

253 廣播包, 76 多播包, 0 暫停包

輸出(正常):

389 報文,暫停包

輸出 :

0 輸出錯誤, 緩沖失敗

0 丟失, 0 延時, 0 沖突, 0 被滯后沖突

-包被滯后發送,不完整, 0 校驗和錯誤

0 幀錯誤, 丟失,字節

227 廣播包, 77 多播包,下溢錯誤,丟失載波

Ethernet1/0/20是 UP 發送的IP幀的幀格式是 PKTFMT_ETHNT_2 硬件地址是000f-e25f-688c 導線類型是 雙絞線 端口環回沒有設置

端口硬件類型是 100_BASE_TX 100Mbps-速度 模式, 全雙工 模式

鏈路速度類型是自協商, 鏈路雙工類型是自協商, 流量控制: 不使能

最大幀長 1536 最多允許廣播報文占用接口流量的百分比: 100%

/ 18

2014《現代通信技術》實驗報告二

缺省VLAN ID: 3 網線類型為: normal 端口模式: access Tagged

VLAN ID : 無

Untagged VLAN ID : 3 最后 300 秒鐘的輸入: 0包/秒 2字節/秒

最后 300 秒鐘的輸出: 0包/秒 2字節/秒

輸入(合計):

187 報文, 25382 字節

廣播包, 22 多播包, 0 暫停包

輸入(正常):

187 報文, 25382 字節

廣播包, 22 多播包, 0 暫停包

輸入 :

0 輸入錯誤, 0 超短包, 0 超長包, 輸入碰撞錯誤, 0 輸入描述符錯誤,奇偶錯誤

輸出(合計):

315 報文, 44026 字節

218 廣播包, 75 多播包, 0 暫停包

輸出(正常):

315 報文,暫停包

輸出 :

0 輸出錯誤, 緩沖失敗

0 丟失, 0 延時, 0 沖突, 0 被滯后沖突

-包被滯后發送,-丟失載波

/ 18

第二篇:《現代通信技術》實驗報告一

20112****班-**號-**-2014《現代通信技術》實驗報告

(一)現代通信之我見

——三網融合

周炯槃先生在我們的《通信原理》第一版的序中這樣寫道:“通信乃是互通信息。”從這個意義上來說,通信是無處不在的。從古時的烽火狼煙、鴻雁傳書,到莫爾斯的有線電報、貝爾的第一支電話,再到馬可尼發明的無線電通訊設備,人類通信的發展大體上可以分為三個階段:語言文字通信、電通信和電子信息通信。而20世紀80年代以來,隨著各類科技的巨大進步,人類通信技術更是經歷了突飛猛進的發展。程控交換技術、數字通信技術、信息傳輸技術、ATM技術、寬帶IP技術、接入網與接入技術等現代通信技術使我們的通信方式變得方便快捷。2000年,我國頒布的“電信法令”更是宣示著我國“大通信”時代的到來。除了傳統電信行業外,廣電、互聯網及相關的設備制造、服務也歸入通信行業的范疇。而所謂的“三網融合”恰好契合了大通信的趨勢,也為廣電和電信曠日持久的爭執提供了解決的辦法。以IP技術為基礎,電信、廣電和互聯網這三張分離的網有了融合的可能。“三網”概念的第一次提出是在1997年的全國信息化工作會議上;2001年,“十五規劃”明確提出要促進電信、電視、計算機“三網融合”;2010年,我國才開始正式進行“三網融合”的實施工作,并選定了一批試點城市。然而,“三網融合”在經過了如此久的醞釀后,實施過程并沒有預期中的順利,甚至還一度處于停滯狀態。雖然,各試點地區的電信運營商和有線電視網絡運營商都在積極地進行網絡基礎層面的改造,技術層面的問題也基本解決,三網融合的進程卻仍然沒有大的發展。前面提到的電信和廣電的矛盾在融合的過程中依然存在。廣電和電信的業務分管體制使各方過分的關注于融合網絡的主導權。技術問題變成了利益之爭:廣電在建立自己的全國通信網絡的同時借機開展自己的寬帶業務及其他增值業務,相反的電信運營商卻不想失去自己最后的領地。在我看來,網絡始終是信息傳輸的通道和載體,三個網絡的融合與互通不是目的。“三網融合”追求的應該是應用與服務的融合,要加強服務而不是強化管控。2011年,經過一年的發展,“三網融合”唯一拿得出手的成果就只有IPTV。IPTV是Internet Protocol Television的縮寫,即交互式網絡電視,是一種利用寬帶有線電視網,集互聯網、20112****班-**號-**-2014《現代通信技術》實驗報告

(一)多媒體、通訊等多種技術于一體,向家庭用戶提供包括數字電視在內的多種交互式服務的嶄新技術。區別于傳統的模擬式有線電視和經典的數字電視,IPTV利用計算機或機頂盒+電視完成接收視頻點播節目、視頻廣播及網上沖浪等功能。其中,“上海模式”成為當時“三網融合”的推進樣板,其IPTV用戶規模突破了150萬戶。時至今日,三網融合這個曾經炙手可熱的話題在新形勢下似乎顯得有點撲朔迷離。從剛剛過去的中國國際廣播電視信息網絡展覽會上便可以瞧出一些端倪。智能終端、多屏融合、OTT、高清和超高清、3D立體電視、云計算、智能電視等新技術和產品占據了各個展臺,而從話題來看,智能、云計算和大數據成為焦點,唯獨看不到三網融合的蹤跡。在2013年的中國國際廣播電視信息網絡展覽會上,OTT和NGB便成為當仁不讓的主角,參展的廠商都將主要目光轉向了OTT業務和NGB業務上來,不遺余力地展示各自解決方案,而三網融合則在角落里充當著配角。這與前兩年形成了鮮明的對比。OTT 是“Over The Top”的縮寫,是指通過互聯網向用戶提供各種應用服務。這種應用和目前運營商所提供的通信業務不同,它僅利用運營商的網絡,而服務由運營商之外的第三方提供。OTT業務的興起被認作是擊中了三網融合的軟肋。一方面,OTT模糊了三網之間的區隔,憑借互聯網豐富的視聽內容資源,能夠提供電信運營商和廣電運營商所不能比擬的視聽點播服務;另一方面,借助于互聯網基因,無論是業務、應用還是終端,都給了用戶無比開放性的體驗。所以,從技術層面來講,云計算、移動互聯網、物聯網,甚至于未來的智能電網,這些新技術真正的有可能逐步取代三網融合。

心得體會: 通信工程,這個專業學了三年了。一直沒有真正的理解自己學的東西能干什么,所學的知識也只是停留在書本上。這兩次的現代通信實驗課讓我接觸到了一些真正的通信系統的基礎設施,結合老師的講解和自己之前所學到的知識,我對原來的知識有了更具象的認識。比如直接和DVD相連的電視機畫面和經過發射、接收等一個完整的通信系統后的電視機畫面,原本我知道他們兩者之間存在時延,但是這次的演示實驗讓我實際地觀察到了這個現象,并且更好地明白了這個時延存在的機理。

第三篇:2014《現代通信技術》實驗報告一

《現代通信技術》實驗報告一

現代通信之我見

在上本學期的現代通信技術課之前,感覺我們確實對本行業的具體工作所知甚少,還經常被調侃為“郵遞員”或“電纜工”,通過這學期的課,我感覺我對行業內的具體工作和設備終于算是有了那么一點點了解。

一進入實驗室,左邊是一排大鐵柜,桌子上擺了一溜電話,還有一臺電腦。我還看見對面實驗室有兩臺電視。經我觀察和老師講解,我明白了那一排鐵柜是赫赫有名的程控交換機和基站。經常聽到這兩個詞,不過這是我第一次近距離接觸到這兩個設備。我想起了近幾年很熱門的“三網融合”,計算機、路由器組成的因特網,電視網,基站、交換機所屬的通信網,都存在于這兩個實驗室中,難怪老師一直在強調“全程全網”這個概念。把網絡概念學明白并不容易,不過這是我們專業的核心內容之一。

實驗剛開始時老師并不急于演示設備,而是向我們展示各種通信行業的人工作的圖片。我這才知道,原來我們能做這么多事,能在抗震救災時架設天線,提供衛星電話,能在奧運會時負責場內的網絡布置,通信行業確實是非常重要的基礎服務部門。老師又接著講了通信的歷史。從信件到電報到電話再到互聯網聊天程序,通信技術對人類的影響越來越大,人們與通信越來越不可分割。試想一下,如果隔絕你與外界的一切聯系,那是一件多么可怕的事。現代通信技術的核心就是電信技術,電子通訊是現代通信的基礎。就拿實驗室來說,我們可以通過電話接入交換機組網,也可以通過手機連上基站組網,這就包含了有線通信和無線通信兩種技術。老師還展示了一種光通信技術,通過激光傳輸信息。我以前確實沒想過還有這種通信方式。這也啟發了我,很多通信方式也許并不是技術上很難實現,只是人們沒有想到去這么做。

下一節課我們又見識了微波通信。老師還現場用示波器展示眼圖給我們看。書本上的眼圖和實際看到的還是有差距的,不過在網絡分析中眼圖還是很有用的。微波通信恐怕是現在實際應用最廣泛的通信方式了,我們平時用的手機通信,還有WIFI,都屬于無線通信的范圍。

移動通信經過2G(GSM、CDMA),3G(WCDMA、CDMA2000、TD-SCDMA),到了現在4G(TD-LTE、FDD-LTE)也開始商用了。其實這幾種制式在語音方面沒有太大的變化,最主要變化是數據業務的傳輸速度提升了。隨著人們的生活文化需求增大,手機通話和短信不再是手機功能的全部,上網,移動社交,手游也成為了重要部分。智能手機促進了移動互聯網的迅猛發展,也影響了移動網絡制式的發展。如何提高數據傳輸速度是以后的移動通信的核心問題。

說到互聯網,隨著移動互聯網的高速發展,互聯網行業又迎來了一個黃金時期,反觀通信行業,傳統通信行業面臨著嚴峻考驗。QQ,微信等O2O應用對語音信息和短信造成了巨大沖擊,運營商漸漸被管道化,成為流量提供商。我想起前幾天聽一位學長的就業講座,那位學長畢業十年左右,現在是一家獵頭公司的CEO。他給我們看了一組數據,10年前我國運營商營收增速是GDP兩倍左右,現在已經和GDP差不多了。全球設備商除了華為,其他的設備商發展狀況都不太好。互聯網公司則是發展勢頭相當好,給的薪金一般比通信行業高。所以很多同學畢業后都選擇了互聯網公司而不是通信行業。

通信網的網絡結構從垂直方式來看,分為信息應用、業務網、接入與傳送網;水平方式來看,分為用戶接入網、接入網和核心網。那么未來的通信網結構又有何種變化,網絡融合、移動互聯網、物聯網又有什么發展,就要看我們的努力了。

第四篇:北郵信通院移動通信實驗報告

北京郵電大學 移動通信實驗報告

班級:

2010211126

專業:

信息工程

姓名:

學號:

班內序號:

一、實驗目的

1、移動通信設備的認知 a)了解機柜結構

b)了解移動通信設備組成和機框結構 c)了解移動通信設備各單元的功能及連接方式

2、網管操作和 OMT 創建小區 a)了解OMC系統的基本功能和操作 b)掌握OMT如何創建小區

3、移動通信業務的建立與信令流程 a)了解TD-SCDMA系統的網絡結構 b)掌握基本業務測試環境的搭建

c)掌握CS業務與普通PS業務信令流程,體驗視頻通話

二、實驗設備

TD‐SCDMA 移動通信設備一套

三、實驗內容

1、TD_SCDMA系統認識

聽了老師的講授后,我了解到了TD_SCDMA系統是時分雙工的同步CDMA系統,知道了TD_SCDMA系統網絡結構中的三個重要接口(Iu接口、Iub接口、Uu接口),認識了TD_SCDMA系統的物理層結構,熟悉了TD_SCDMA系統的六大關鍵技術以及其后續演進LTE。

2、CN開卡

開卡過程如下圖所示:

3、硬件認知

1)整套移動通信設備如下:

2)RNC設備認知

TDR3000設備機框外形結構如圖1和圖2所示

機框主要功能如下:

支持 14 個板位,作為19〞機框通用背板使用。

滿足 PICMG3.0、PICMG3.1 規范。

實現機框內以太交換雙星型物理連接拓撲。

對各前插板提供板位編號(HA0~7)。

對各前插板提供 Fabric、Base、CLK、Update 數據通路。

提供對所有 FRU 單元的IPMB 總線通路。

提供‐48V 冗余供電通路。

ATCA 機框的UPDATE CHANNEL 設計規則為物理板位1 與13、2 與14、3 與11、4 與12、5 與 9、6 與10、7 與8 兩兩之間設計UPDATE CHANNEL。

圖 1:機框背板功能分布示意圖

由上圖可知,ATCA 機框的UPDATE CHANNEL 設計規則為物理板位1 與13、2 與14、3 與11、4 與12、5 與9、6 與10、7 與8 兩兩之間設計UPDATE CHANNEL。其中藍色連線表示具有Update Channel 連線的板位分配,物理板位7,8 固定為兩塊交換板,其余板位固定為功能板。

圖 2:機框背板接口后視圖

機框物理上是一種13U 標準的ATCA 插箱,機框背板主體尺寸為ATCA 標準定義部分: 354.8mmX426.72mm。主體之下為背板的風扇、電源接口引入部分,風扇接口包括風扇電源和IPMI 接口,背板與電源模塊之間的電源接口包括兩路-48V 供電和四路風扇電源輸入。背板與各前插

板之間的電源接口采用分散供電方式,每個前插板有兩路‐48V 供電。背板下部左右兩部分中間位

置各預留1 英寸安裝輸入電源插座(‐48V/風扇電源)。

單板結構

單板相關描述中,采用“邏輯板(物理板)”的描述方式,其中邏輯板為從軟件功能及操作維護臺顯示的單板;物理板為硬件單板,其單板名稱印刷在在物理單板面板下方。采用該表達方式的目的,是便于使用者能隨時直觀地了解邏輯板與物理板的映射關系,避免不熟悉兩種單板類型映射關系的用戶頻繁地查找單板對應關系表。TDR3000 各種單板的類型及功能如下

機框槽位布局如下:

可以使用LDT軟件查看硬件是否正常,由下圖可以看出,硬件連接均正常。

其中使用的各單板功能如下:

? GCPA(GMPA+SPMC+HDD)全局控制處理板完成以下功能:

? 全局處理板完成 RNC 全局資源的控制與處理、以及與OMC‐R 的連接。全局控制板 支持板載2.5〞 IDE 80GB 硬盤數據存儲功能;

? 處理以下協議:RANAP 協議中的復位,資源復位,過載控制消息;SCCP 管理、MTP3B 管理、ALCAP 管理、M3UA 管理協議等; ? 兩塊 GCPA 以主備用方式工作; ? RSPA(GMPA+SPMC)無線網絡信令處理板完成以下功能:

? 處理 Iu,Iub 接口的控制面協議以及傳輸網絡高層協議,完成無線網絡協議的處理,以及呼叫處理功能;

? 處理的協議有:RRC 協議,RANAP 部分協議,NBAP 協議,無線資源管理;SCCP 部 分協議,ALCAP 部分協議,MTP3B 部分協議,M3UA 部分協議,SCTP 協議等; ? 兩塊 RSPA 以主備用方式工作;

? ONCA/IPUA(MNPA+GEIC)板的主要功能如下:

? ONCA/IPUA(MNPA+GEIC)配合GEIB 后插板完成4xFE/GE 接口功能。? 網絡處理器完成外部 IP 到內部IP 的轉換、處理功能; ? TCSA(MASA)板的主要功能如下:

? 支持控制面 Base 交換和業務面Fabric 交換兩級交換,完成業務和控制面的L2、L3 以太交換功能;

? 固定使用 2 個交換板槽位,即框中的第7、8 槽位;

? 同時完成整個機框的 ShMC(機框管理器)功能,同時兼容IPMC 功能,可根據不同 ATCA 機框進行靈活配置;

? 提供架框號的編碼配置功能;

? 支持對網同步時鐘的接入、分配功能; ? 以主備用方式工作; ? RTPA(MDPA)板由單板控制模塊、單板以太交換模塊、DSP 處理模塊、電源模塊、IPMC 模塊組成,主要功能如下:

? 單板控制模塊完成板內的各種控制管理功能;

? 單板以太交換模塊實現完成 RTPA(MDPA)板內的以太數據交換;

? DSP 處理模塊主要由DSP 和其外圍來實現,完成業務數據和協議的處理;

? 電源轉換模塊從背板接入雙路‐48V 電源,經過電源轉換芯片轉換后,給單板提供各 種芯片正常工作的各種電壓;

? IPMC 模塊主要完成單板上電的控制,以及溫度、電壓監控等功能。? PTPA(MNPA)板的主要功能如下: ? 完成 Iu‐PS 用戶面協議處理功能;

? GTPU 處理板,完成IP(OA)、UDP、TCP、GTP‐U 協議模塊處理; ? Host 部分完成網絡處理器運行狀態監視、性能統計等功能。

3)Node B設備

EMB5116 基站主要分為如下幾個主要組成部分:主機箱、電源單元、EMx 板卡、風機及濾網單元、功能板卡

硬件單元排布如圖3所示。

圖 3:1EMB5116 槽位框圖

4、LMT-B 使用LMT-B軟件進行網絡布配,完成光纖與RRU的配置 1)單天線模式配置 配置參數見下圖:

圖表 4: 單天線模式配置詳細參數

圖表 5:單天線模式配置結果

2)分布式單天線模式配置: 配置參數見下圖:

圖表 6:分布式天線模式配置詳細參數

圖表 7:分布式天線配置結果

3)智能天線模式配置參數如下:將天線模式改為智能天線,并需要在連接天線處添加天線,其它參數與單天線相同。添加的天線信息如下:

圖表 8:所添加天線信息

圖表 9:智能天線模式配置詳細參數

圖表 10:智能天線配置結果

5、LDT信令跟蹤

圖 11:設備監視圖

圖表 12:信令跟蹤結果

6、網管操作和OMT創建小區

實驗步驟: 增加一個 R4 小區

選擇邏輯基站—小區集—右鍵選擇快速創建小區

第一步:

小區基本信息: 小區標識(CellId):

同一個RNC 中的CellId 配置值要求不能重復; 小區參數標識(CellParameterId):

小區參數標識ID 唯一標識了小區中的一組參數:下行同步序列SYNC‐DL、上行同步

序列SYNC‐UL sequences、擾碼、midamble 碼;

小區特性:

主頻段時隙轉換點:3(說明小區時隙為2 上4 下,一般為2 上4 下); 其他頻段時隙轉換點:可以與主頻段不一致;

HSDPA 特性:

非HSDPA 小區(可根據需要選擇:HSDPA 小區或混合DPA 小區,這里我們選擇非HSDPA 小

區是因為我們要創建一個R4 小區); HSUPA 特性:

不支持HSUPA 小區(可根據需要選擇支持HSUPA 小區,這里我們選擇不支持HSUPA 小區

是因為我們要創建一個R4 小區);

位置區信息:

位置區代碼:由RNC 全局參數決定(實驗室環境與RNC 一致:比如RNC2,那么就是2);

路由區代碼:由RNC 全局參數決定(實驗室環境與RNC 一致:比如RNC2,那么就是2);

服務區代碼:實驗室環境為107; UPA 有效數:1(固定);

其他信息默認,然后選擇下一步

第二步:

根據需要選擇輔載波的數量;

主載波上行時隙至少要選擇一個PRACH; 然后選擇下一步;

第三步:

信道功率信息和UpPCH 信道功率信息選擇默認即可,這些數值在創建完小區之后,根據需要 是可以修改的;

選擇完成,一個R4 小區創建完畢。

四、實驗總結

此次實驗不僅讓我更加深入的了解了TD_SCDMA系統,還認識了許多和移動通信有關的設備,體驗了視頻通話和手機電視等先進的移動通信技術,極大的增強了我對移動通信的興趣。

第五篇:北郵嵌入式實驗報告

北京郵電大學

嵌入式系統開發實驗報告

學院:

班級: 姓名: 學號:

序號:

目錄

一、實驗目的..............................................................................................1

二、實驗設備..............................................................................................1

三、基礎實驗(實驗一~實驗七)............................................................1

1.實驗五..................................................................................................1 2.實驗六..................................................................................................1 3.實驗七..................................................................................................1

四、驅動程序..............................................................................................5

1.設備驅動程序的概念..........................................................................5 2.驅動程序結構......................................................................................6 3.設備注冊和初始化..............................................................................7 4.設備驅動程序的開發過程..................................................................8

五、基本接口實驗......................................................................................8

1.實驗十二簡單設備驅動程序..............................................................9 2.實驗十三 CPU GPIO驅動程序設計...................................................9 3.實驗十四中斷實驗...........................................................................10 4.實驗十五數碼管顯示實驗................................................................12 5.實驗十六 LED點陣驅動程序設計...................................................19 6.實驗十七 AD驅動實驗....................................................................23 7.實驗十八 DA驅動實驗....................................................................26

六、實驗中遇到的問題及解決方法........................................................30

七、實驗總結及心得................................................................................31

一、實驗目的

通過實驗熟悉Linux環境,并掌握一些基本接口驅動的寫法和用C語言編寫簡單的實驗程序。學習LINUX開發環境的搭建,通訊配置等。并熟練掌握LINUX驅動程序的編寫及開發流程。對嵌入式系統有進一步的了解。

二、實驗設備

1.一套PXA270EP嵌入式實驗箱

2.安裝Redhat9的宿主PC機,并且配置好ARM Linux的開發環境

三、基礎實驗(實驗一~實驗七)

實驗一~七為基礎實驗,目的是為后續實驗搭建好軟、硬件環境,配置好相關的協議、服務,并通過編寫最簡單的HelloWorld程序進行測試。由于后面的實驗都要依靠前面實驗的配置,故本段只著重敘述實驗七的具體實現。

1.實驗五

實驗五為宿主PC機配置了TFTP服務。TFTP(Trivial File Transfer Protocol)是簡單文件傳輸協議,由于特定開發環境的制約,這一服務是必須的。在配置完成后,每次重啟宿主PC機時,都須先輸入命令:service xinetd restart,以啟動TFTP服務。

2.實驗六

實驗六為宿主PC機配置了NFS服務。NFS(Network File System)指網絡文件系統,它實現了文件在不同的系統間使用。當我們想用遠端檔案時,只需調用“mount”就可以遠端系統掛接在自己的檔案系統之下。每次重啟宿主PC機時,都須先輸入命令:service nfs restart,以啟動nfs服務。

3.實驗七

實驗七通過用c語言編寫的簡單程序HelloWorld,測試前面幾個實驗是否成功配置好環境,從超級終端可以看到HelloWorld程序的運行結果。

實驗步驟如下: 1)硬件連接:

連接宿主 PC 機和一臺 PXA270-RP目標板。2)打開宿主PC 機電源,進入 Linux操作系統。

3)啟動RedHat 9.0 的圖形界面,如下圖,若您是以 root 身份登陸在文本模式下,則輸入命令startx啟動圖形界面。進入RedHat 9.0 圖形界面后,打開一個終端窗(Terminal)。

4)輸入minicom然后回車,minicim設置為115200 8NI無流控。

5)打開PXA270_RP目標板電源,按目標板上的BOOT鍵,在minicom中應該會看到如下圖:

6)在minicom終端窗口中,如圖,輸入下列四條命令 root ifconfig eth 192.168.0.50 up mount-o nolock 192.168.0.100:/ /mnt cd /mnt 此時,先將該窗口最小化,在后面的第 10 操作步驟中還將會回到該窗口中進行操作。

7)宿主機上打開一個終端窗口(Terminal),點擊【紅帽/System Tools/Terminal】啟動終端窗口,輸入下列 4 條命令: ① cd /home

②mkdir HW

③ cd HW

④ vi

HelloWorld.c

/*請您輸入程序 7.1 程序清單*/

此時會顯示一個空白的屏幕,這條命令的含義是,使用 Vi 編輯器,對一個名叫HelloWorld.c的文件進行編輯,我們看到的空白窗口是對文件進行編輯的窗口,如下圖。就像在 Windows系統下面使用寫字板等一樣道理。

在 vi 里面先單擊鍵盤 A 鍵,然后左下角會變成—INSER。輸入程序的時候和其他編輯器是一樣的,如下圖。

當輸入程序完畢后,單擊鍵盤 Esc 鍵,然后按“:”(冒號)此時左下角會出現冒號然后輸入“wq”最后按“Enter”確認存盤退出 vi 編輯器,如下圖。

8)在上面同一個終端窗口中,輸入下列 2 條命令交叉編譯HelloWorld.c源程序,并查看生成的.o 目標文件,如圖 7-10,圖7-11: ①

arm-linux-gcc–oHelloWorldHelloWorld.c ②ls 等到再次出現提示符,代表程序已經正確編譯。如果此步出現錯誤信息,請查看錯誤信息,并且重新編輯原來的 C文件,修改錯誤。直到正確編譯。

9)重新打開第 7 步最小化的開有minicom的終端窗口,即到 PXA270-RP 目標板的mnt目錄下,請您輸入下列 3 條命令,運行HelloWorld編譯成功的HelloWorld目標程序:

① cd home/HW

/*回到minicom中目標板的/mnt/home/HW目錄下*/ ②ls ③./ HelloWorld

/*此時會看到如下圖*/

四、驅動程序

1.設備驅動程序的概念

設備驅動程序實際是處理和操作硬件控制器的軟件,從本質上講,是內核中具有最高特權級的、駐留內存的、可共享的底層硬件處理例程。驅動程序是內核的一部分,是操作系統內核與硬件設備的直接接口,驅動程序屏蔽了硬件的細節,完成以下功能:

?對設備初始化和釋放;

?對設備進行管理,包括實時參數設置,以及提供對設備的操作接口; ?讀取應用程序傳送給設備文件的數據或者回送應用程序請求的數據; ?檢測和處理設備出現的錯誤。

Linux操作系統將所有的設備全部看成文件,并通過文件的操作界面進行操作。對用戶程序而言,設備驅動程序隱藏了設備的具體細節,對各種不同設備提供了一致的接口,一般來說,是把設備映射為一個特殊的設備文件,用戶程序可以像對其他文件一樣對此設備文件進行操作。這意味著:

?由于每一個設備至少由文件系統的一個文件代表,因而都有一個“文件名”。?應用程序通常可以通過系統調用open()打開設備文件,建立起與目標設備的連接。

?打開了代表著目標設備的文件,即建立起與設備的連接后,可以通過read()、write()、ioctl()等常規的文件操作對目標設備進行操作。

設備文件的屬性由三部分信息組成:第一部分是文件的類型,第二部分是一個主設備號,第三部分是一個次設備號。其中類型和主設備號結合在一起惟一地確定了設備文件驅動程序及其界面,而次設備號則說明目標設備是同類設備中的第幾個。

由于Linux 中將設備當做文件處理,所以對設備進行操作的調用格式與對文件的操作類似,主要包括open()、read()、write()、ioctl()、close()等。應用程序發出系統調用命令后,會從用戶態轉到核心態,通過內核將open()這樣的系統調用轉換成對物理設備的操作。

2.驅動程序結構

一個設備驅動程序模塊的基本框架

在系統內部,I/O設備的存取通過一組固定的入口點來進行,入口點也可以理解為設備的句柄,就是對設備進行操作的基本函數。字符型設備驅動程序提供如下幾個入口點:

?

open入口點。打開設備準備I/O操作。對字符設備文件進行打開操作,都會調用設備的open入口點。open子程序必須對將要進行的I/O操作做好必要的準備工作,如清除緩沖區等。如果設備是獨占的,即同一時刻只能有一個程序訪問此設備,則open子程序必須設置一些標志以表示設備處于忙狀態。

?

close入口點。關閉一個設備。當最后一次使用設備完成后,調用close子程序。獨占設備必須標記設備方可再次使用。

?

read入口點。從設備上讀數據。對于有緩沖區的I/O操作,一般是從緩沖區里讀數據。對字符設備文件進行讀操作將調用read子程序。

?

write入口點。往設備上寫數據。對于有緩沖區的I/O操作,一般是把數據寫入緩沖區里。對字符設備文件進行寫操作將調用write子程序。

?ioctl入口點。執行讀、寫之外的操作。

select入口點。檢查設備,看數據是否可讀或設備是否可用于寫數據。select系統調用在檢查與設備文件相關的文件描述符時使用select入口點。

3.設備注冊和初始化

設備的驅動程序在加載的時候首先需要調用入口函數init_module(),該函數最重要的一個工作就是向內核注冊該設備,對于字符設備調用register_chrdev()完成注冊。register_chrdev的定義為:intregister_chrdev(unsigned int major, const char *name, struct file_ operations *fops);其中,major是為設備驅動程序向系統申請的主設備號,如果為0,則系統為此驅動程序動態分配一個主設備號。name是設備名,fops是對各個調用的入口點說明。此函數返回0時表示成功;返回-EINVAL,表示申請的主設備號非法,主要原因是主設備號大于系統所允許的最大設備號;返回-EBUSY,表示所申請的主設備號正在被其他設備程序使用。如果動態分配主設備號成功,此函數將返回所分配的主設備號。如果register_chrdev()操作成功,設備名就會出現在/proc/dvices文件中。

Linux在/dev目錄中為每個設備建立一個文件,用ls–l命令列出函數返回值,若小于0,則表示注冊失敗;返回0或者大于0的值表示注冊成功。注冊以后,Linux將設備名與主、次設備號聯系起來。當有對此設備名的訪問時,Linux通過請求訪問的設備名得到主、次設備號,然后把此訪問分發到對應的設備驅動,設備驅動再根據次設備號調用不同的函數。

當設備驅動模塊從Linux內核中卸載,對應的主設備號必須被釋放。字符設備在cleanup_ module()函數中調用unregister_chrdev()來完成設備的注銷。unregister_chrdev()的定義為:intunregister_chrdev(unsigned int major, const char *name);包括設備注冊在內,設備驅動的初始化函數主要完成的功能是有以下5項。(1)對驅動程序管理的硬件進行必要的初始化。

對硬件寄存器進行設置。比如,設置中斷掩碼,設置串口的工作方式、并口的數據方向等。

(2)初始化設備驅動相關的參數。

一般說來,每個設備都要定義一個設備變量,用以保存設備相關的參數。在這一步驟里對設備變量中的項進行初始化。

(3)在內核注冊設備。

調用register_chrdev()函數來注冊設備。(4)注冊中斷。

如果設備需要IRQ支持,則要使用request_irq()函數注冊中斷。(5)其他初始化工作。

初始化部分一般還負責給設備驅動程序申請包括內存、時鐘、I/O端口等在內的系統資源,這些資源也可以在open子程序或者其他地方申請。這些資源不用時,應該釋放,以利于資源的共享。

若驅動程序是內核的一部分,初始化函數則要按如下方式聲明: int __initchr_driver_init(void);其中__init是必不可少的,在系統啟動時會由內核調用chr_driver_init,完成驅動程序的初始化。

當驅動程序是以模塊的形式編寫時,則要按照如下方式聲明: intinit_module(void)當運行后面介紹的insmod命令插入模塊時,會調用init_module函數完成初始化工作。

4.設備驅動程序的開發過程

由于嵌入式設備由于硬件種類非常豐富,在默認的內核發布版中不一定包括所有驅動程序。所以進行嵌入式Linux系統的開發,很大的工作量是為各種設備編寫驅動程序。除非系統不使用操作系統,程序直接操縱硬件。嵌入式Linux系統驅動程序開發與普通Linux開發沒有區別。可以在硬件生產廠家或者Internet上尋找驅動程序,也可以根據相近的硬件驅動程序來改寫,這樣可以加快開發速度。實現一個嵌入式Linux設備驅動的大致流程如下。

(1)查看原理圖,理解設備的工作原理。一般嵌入式處理器的生產商提供參考電路,也可以根據需要自行設計。

(2)定義設備號。設備由一個主設備號和一個次設備號來標識。主設備號惟一標識了設備類型,即設備驅動程序類型,它是塊設備表或字符設備表中設備表項的索引。次設備號僅由設備驅動程序解釋,區分被一個設備驅動控制下的某個獨立的設備。

(3)實現初始化函數。在驅動程序中實現驅動的注冊和卸載。(4)設計所要實現的文件操作,定義file_operations結構。(5)實現所需的文件操作調用,如read、write等。

(6)實現中斷服務,并用request_irq向內核注冊,中斷并不是每個設備驅動所必需的。

(7)編譯該驅動程序到內核中,或者用insmod命令加載模塊。(8)測試該設備,編寫應用程序,對驅動程序進行測試。

五、基本接口實驗

在完成了基本實驗后,我們開始著手基本接口實驗。在這些實驗中,我們學習如何編寫設備驅動程序,及如何用測試程序檢驗驅動程序是否正確,并通過改寫測試程序正常地對驅動程序進行相關操作。

1.實驗十二 簡單設備驅動程序

本次實驗的任務是編寫一個字符型設備驅動程序,并學習在應用程序中調用驅動。考慮到我們初次接觸驅動程序的編寫,對此還十分陌生,因此指導書中提供了本次實驗所要用到的程序源代碼。雖然這樣一個字符型設備驅動程序并沒有任何實際作用,但是它讓我們輕松掌握了嵌入式驅動的編寫過程,因為復雜繁瑣的驅動,其骨架都是相同的。因此,看懂本實驗的源代碼,學習并模仿其編寫方法,對于后續實驗有著非常重要的意義。

2.實驗十三 CPU GPIO驅動程序設計

在本實驗中,我們要編寫第一個針對實際硬件的驅動程序。我們知道,凡是操作系統控制外部設備,即使是最簡單的硬件電路,也是需要驅動的。本實驗涉及的外部硬件只有電阻和發光二極管。我們使用自己編寫的驅動程序與應用程序控制 GPIO96的電平,通過 LED 的亮滅來判斷,是否 CPU 做出了正確的響應。

補充代碼(1)

//-------------------WRITE-----------------------ssize_tSIMPLE_GPIO_LED_write(struct file * file ,const char * buf, size_t count, loff_t * f_ops){ #ifdef OURS_GPIO_LED_DEBUG printk(“SIMPLE_GPIO_LED_write [--kernel--]n”);

#endif

return count;}

補充代碼(2)

//-------------------OPEN------------------------ssize_tSIMPLE_GPIO_LED_open(structinode * inode ,struct file * file){ #ifdef OURS_GPIO_LED_DEBUG printk(“SIMPLE_GPIO_LED_open [--kernel--]n”);

#endif

MOD_INC_USE_COUNT;

return 0;}

補充代碼(3)

//------------------structfile_operationsGPIO_LED_ctl_ops ={ open:SIMPLE_GPIO_LED_open, read:SIMPLE_GPIO_LED_read, write:SIMPLE_GPIO_LED_write, ioctl:SIMPLE_GPIO_LED_ioctl, release:SIMPLE_GPIO_LED_release, };實驗作業

要求在目標板上LED閃爍產生亮7秒,滅2秒的效果 在測試程序中有這樣一段代碼: while(1){ ioctl(fd,LED_OFF);sleep(1);

sleep(1);while(1){ ioctl(fd,LED_OFF);sleep(2);

sleep(7);} 3.實驗十四

中斷實驗

// 滅2秒 // 亮7秒 ioctl(fd,LED_ON);}

// 休眠1秒

ioctl(fd,LED_ON);只需將上面的代碼改為如下代碼即可:

在理論課中,我們學習了許多中斷方面的知識,包括中斷向量、中斷優先級、中斷過程等。在PXA270系統里,中斷控制器分外部設備和 PXA270X 處理器設備產生的兩個層次的中斷,前者是初級的中斷源,后者是次級中斷源,大量的次級中斷源通常被映射為一個初級中斷源。

補充代碼1 voidshowversion(void){ printk(“*********************************************n”);

printk(“t %s tn”, VERSION);

printk(“*********************************************nn”);

} static intSimpleINT_temp_count = 0;補充代碼2 //-------------------READ------------------------ssize_tSIMPLE_INT_read(struct file * file ,char * buf, size_t count, loff_t * f_ops){

#ifdef OURS_INT_DEBUG

#endif return count;printk(“SIMPLE_INT_read [--kernel--]n”);} 補充代碼3 //-------------------WRITE-----------------------ssize_tSIMPLE_INT_write(struct file * file ,const char * buf, size_t count, loff_t * f_ops){

#ifdef OURS_INT_DEBUG

} 補充代碼4 //------------------structfile_operationsINT_ctl_ops ={ open: SIMPLE_INT_open, read: SIMPLE_INT_read, #endif return count;printk(“SIMPL_INT_write [--kernel--]n”);write:SIMPLE_INT_write, ioctl:SIMPLE_INT_ioctl, release:SIMPLE_INT_release, };

通過此實驗,我了解了硬件中斷管腳與中斷號的對應關系,以及中斷號與中斷處理程序的對應關系,對于今后編寫更為復雜的中斷程序打下基礎。

4.實驗十五

數碼管顯示實驗

在此實驗中,我們要編寫針對 74LV164 的驅動程序,并用其串并轉換功能來控制八段LED數碼管的顯示。

補充代碼1 voidshowversion(void){ printk(“*********************************************n”);

printk(“t %s tn”, VERSION);

printk(“*********************************************nn”);

} 補充代碼2 //-------------------READ------------------------ssize_tSERIAL_LED_read(struct file * file ,char * buf, size_t count, loff_t * f_ops){ #ifdef OURS_HELLO_DEBUG

} 補充代碼3 //-------------------WRITE-----------------------ssize_tSERIAL_LED_write(struct file * file ,const char * buf, size_t count, loff_t * f_ops)return count;printk(“SERIAL_LED_read [--kernel--]n”);#endif { #ifdef OURS_HELLO_DEBUG

} 補充代碼4 //-------------------IOCTL-----------------------ssize_tSERIAL_LED_ioctl(structinode * inode ,struct file * file, unsigned intcmd, long data){ #ifdef OURS_HELLO_DEBUG

#endif

} 補充代碼5 //-------------------OPEN------------------------ssize_tSERIAL_LED_open(structinode * inode ,struct file * file){ #ifdef OURS_HELLO_DEBUG

#endif

return 0;} MOD_INC_USE_COUNT;printk(“SERIAL_LED_open [--kernel--]n”);return 0;printk(“SERIAL_LED_ioctl [--kernel--]n”);return count;#endif write_byte(* buf);printk(“SERIAL_LED_write [--kernel--]n”);補充代碼6 //-------------------RELEASE/CLOSE---------------ssize_tSERIAL_LED_release(structinode *inode ,struct file * file){ #ifdef OURS_HELLO_DEBUG

printk(“SERIAL_LED_release [--kernel--]n”);

#endif MOD_DEC_USE_COUNT;return 0;} 補充代碼7 //------------------structfile_operationsSERIAL_LED_ops ={ open: SERIAL_LED_open,read: SERIAL_LED_read,write:SERIAL_LED_write,ioctl:SERIAL_LED_ioctl,release:SERIAL_LED_release, };補充代碼8 staticint __initHW_SERIAL_LED_init(void){ int ret =-ENODEV;

ret =

devfs_register_chrdev(SERIAL_LED_MAJOR, &SERIAL_LED_ops);

showversion();if(ret < 0)“serial_led_ctl”,} {

} else { } return ret;printk(“ pxa270 serial_led_driver register success!![--kernel--]n”);printk(“ pxa270 init_module failed with %dn [--kernel--]”, ret);return ret;補充代碼9 staticint __init pxa270_SERIAL_LED_init(void){ int ret =-ENODEV;

printk(“pxa270_SERIAL_LED_init [--kernel--]n”);

#endif

ret = HW_SERIAL_LED_init();if(ret)return ret;return 0;} 補充代碼10 static void __exit cleanup_SERIAL_LED(void){ #ifdef OURS_HELLO_DEBUG #ifdef OURS_HELLO_DEBUG

#endif }

補充代碼11 MODULE_DESCRIPTION(“serial_led driver module”);

MODULE_AUTHOR(“liduo”);

MODULE_LICENSE(“GPL”);

module_init(pxa270_SERIAL_LED_init);module_exit(cleanup_SERIAL_LED);使用測試程序看到的測試結果是數碼管按0-9顯示輸出。實驗作業要求在上述基礎上,分別實現一下兩個功能:

①要求您再編寫一個測試程序,實現 PXA270-EP 目標板上的 LED 數碼管循環顯示的數字9-0。

②要求您再編寫一個測試程序,實現 PXA270-EP 目標板上的 LED 數碼管循環顯示的數字02468。

由于在測試程序中定義了數組buf[10]分別存儲了0-9是個數,因此上述功能的實現方法是,分別對測試程序做如下修改:

原測試程序: while(1){ for(count=0;count<10;count++){ data[0] = buf[count];ret=write(fd,data,1);sleep(1);} } 實現功能①: while(1){ for(count=9;count>=0;count--)} } 結果顯示

// 倒序顯示數字

{ data[0] = buf[count];ret=write(fd,data,1);sleep(1);devfs_unregister_chrdev(SERIAL_LED_MAJOR, “serial_led”);printk(“cleanup_SERIAL_LED [--kernel--]n”);實現功能②: while(1){ for(count=0;count<9;count=count+2)} } 結果顯示

// 更改顯數順序

{ data[0] = buf[count];ret=write(fd,data,1);sleep(1);

通過更改顯數的順序,很容易實現實驗作業里要求的功能。

5.實驗十六 LED點陣驅動程序設計

通過本實驗的操作,我們將 8X8 的點陣 LED 驅動起來并通過編寫測試程序,使其能夠按照您的意圖進行顯示。要求您還編寫更多的測試程序

補充代碼1 voidshowversion(void){ printk(“*********************************************n”);printk(“t %s tn”, VERSION);printk(“*********************************************nn”);

} 補充代碼2 //-------------------READ------------------------ssize_tSIMPLE_LED_read(struct file * file ,char * buf, size_t count, loff_t * f_ops){ #ifdef OURS_LED_DEBUG

#endif return count;printk(“SIMPLE_LED_read [--kernel--]n”);} 補充代碼3 //-------------------IOCTL-----------------------ssize_tSIMPLE_LED_ioctl(structinode * inode ,struct file * file, unsigned intcmd, long data){

#endif

} 補充代碼4 //------------------structfile_operationsLED_ctl_ops ={ open: SIMPLE_LED_open, read:

SIMPLE_LED_read, write: SIMPLE_LED_write, ioctl: SIMPLE_LED_ioctl, release:SIMPLE_LED_release, };補充代碼5 staticint __init pxa270_LED_CTL_init(void){ int ret =-ENODEV;

printk(“pxa270_LED_CTL_init [--kernel--]n”);

#endif

ret = HW_LED_CTL_init();if(ret)

return ret;#ifdef OURS_LED_DEBUG return 0;printk(“SIMPLE_LED_ioctl [--kernel--]n”);#ifdef OURS_LED_DEBUG return 0;} 補充代碼6 static void __exit cleanup_LED_ctl(void){

#ifdef OURS_LED_DEBUG

#endif

} ①要求您再編寫一個測試程序,實現按橫的方向隔行順序掃描 LED 點陣數碼管。

②要求您再編寫一個測試程序,實現按豎的方向順序掃描 LED 點陣數碼管。作業一,隔行掃描:

printk(“cleanup_LED_ctl [--kernel--]n”);outw(0x0000,ioremap_addr);

devfs_unregister_chrdev(SIMPLE_LED_MAJOR, “led_ary_ctl”);for(i=1;i<=8;i2++){

buf[0]=c;buf[1]=~r;// row for(j=1;j<=8;j++){

} r = 1;c = c<<1;

write(fd,buf,2);

printf(“buf[0],buf[1]: [%x,%x]n”,buf[0],buf[1]);usleep(200000);// sleep 0.2 second r=r<<1;

buf[1]=~r;// column

結果顯示

作業二,豎向掃描:

for(i=1;i<=8;i++){

buf[0]=c;buf[1]=~r;// row for(j=1;j<=8;j++){

} r = 1;c = c<<1;

write(fd,buf,2);

printf(“buf[0],buf[1]: [%x,%x]n”,buf[0],buf[1]);usleep(200000);// sleep 0.2 second r=r<<1;

buf[1]=~r;// column

結果顯示

6.實驗十七 AD驅動實驗

通過本實驗的操作,我們將 AD 轉換器驅動起來并通過編寫測試程序,使其能夠將模擬信號量按照我們的要求轉換成數字信號量。為了更加清楚地理解 AD 轉換器的工作過程,請您再編寫一個測試程序,將 UCB_ADC_INP_AD0 換成其他通道,來觀察其他 AD 通道情況。

補充代碼1 voidshowversion(void){ printk(“%sn”,VERSION);} struct ucb1x00 *ad_ucb;

補充代碼2 //-------------------READ------------------------staticssize_tadctl_read(struct file * file ,char *buf, size_t count, loff_t *offset){

} 補充代碼3 //-------------------WRITE-----------------------ssize_tadctl_write(struct file * file ,const char *buf, size_t count, loff_t *offset){

#ifdef OURS_HELLO_DEBUG printk(“writen”);

#endif

} 補充代碼4 //-------------------OPEN------------------------ssize_tadctl_open(structinode * inode ,struct file * file){

#ifdef OURS_HELLO_DEBUG printk(“openn”);

#endif

}

補充代碼5 //-------------------RELEASE/CLOSE---------------ssize_tadctl_release(structinode *inode ,struct file * file){

#ifdef OURS_HELLO_DEBUG printk(“releasen”);

#endif return 0;return 0;return count;#ifdef OURS_HELLO_DEBUG printk(“readn”);#endif return count;} 補充代碼6 staticstructfile_operationsadctl_ops = {

};補充代碼7 //-------------------INIT------------------------staticint __initHW_AD_CTL_init(void){

return ret;}

補充代碼8 staticint __init pxa270_AD_CTL_init(void){ int ret =-ENODEV;#ifdef OURS_HELLO_DEBUG int ret =-ENODEV;ret = devfs_register_chrdev(ADCTL_MAJOR, “adctl”, &adctl_ops);showversion();ad_ucb=ucb1x00_get();if(ret < 0){

} else { } adctl_dev_handle = devfs_register(NULL, “ad_ctl”, DEVFS_FL_DEFAULT, printk(“adctl driver register success!n”);printk(“fail %dn”,ret);return 0;read: ioctl: adctl_read, adctl_ioctl, write: adctl_write, open: adctl_open, release:adctl_release,ADCTL_MAJOR, 0, S_IFCHR, &adctl_ops, NULL);printk(“initn”);#endif ret=HW_AD_CTL_init();if(ret)}

補充代碼9 static void __exit cleanup_AD_ctl(void){

}

7.實驗十八 DA驅動實驗

通過本實驗的操作,我們使用示波器看到了通過DA轉換而輸出的波形。在此基礎上,要求試寫一個實現輸出三角波的測試程序。

補充代碼1 #include #include #include #include #include #include #include #include 補充代碼2 voidshowversion(void){ printk(“*****************************n”);#ifdef OURS_HELLO_DEBUG printk(“cleanupn”);#endif devfs_unregister_chrdev(ADCTL_MAJOR,“ad_ctl”);devfs_unregister(adctl_dev_handle);return ret;return 0;

} printk(“t %st n”,VERSION);printk(“*****************************n”);static long ioremap_addr;補充代碼3 //-------------------READ------------------------ssize_tSIMPLE_DA_read(struct file * file ,char * buf, size_t count, loff_t * f_ops){ #ifdef OURS_DA_DEBUG

} 補充代碼4 //-------------------WRITE-----------------------ssize_tSIMPLE_DA_write(struct file * file ,const char * buf, size_t count, loff_t * f_ops){

printk(“SIMPLE_DA_write[--kernel--]n”);

#endif

return count;} 補充代碼5 //-------------------IOCTL-----------------------ssize_tSIMPLE_DA_ioctl(structinode * inode ,struct file * file, unsigned intcmd, outb(buf[0],ioremap_addr);#ifdef OURS_DA_DEBUG return count;#endif printk(“SIMPLE_DA_read[--kernel--]n”);long data){ #ifdef OURS_DA_DEBUG

printk(“SIMPLE_DA_ioctl[--kernel--]n”);

#endif return 0;} 補充代碼6 //-------------------OPEN------------------------ssize_tSIMPLE_DA_open(structinode * inode ,struct file * file){

#ifdef OURS_DA_DEBUG printk(“SIMPLE_DA_open [--kernel--]n”);

MOD_INC_USE_COUNT;return 0;

#endif } 補充代碼7 /------------------structfile_operationsDA_ctl_ops ={

read: SIMPLE_DA_read,};

補充代碼8 release:

SIMPLE_DA_release, ioctl:

SIMPLE_DA_ioctl, write:

SIMPLE_DA_write, //-------------------INIT------------------------staticint __initHW_DA_CTL_init(void){ int ret =-ENODEV;

}

補充代碼9 staticint __init pxa270_DA_CTL_init(void){ int ret =-ENODEV;

printk(“pxa270_DA_CTL_init [--kernel--]n”);

#endif #ifdef OURS_DA_DEBUG } printk(“ pxa270 led_driver register success!![--kernel--]n”);{ else } return ret;printk(“ pxa270: init_module failed with %dn [--kernel--]”, ret);{ if(ret < 0)showversion();ret = devfs_register_chrdev(SIMPLE_DA_MAJOR, “da_ctl”, &DA_ctl_ops);

ret = HW_DA_CTL_init();if(ret)

return ret;return 0;} 補充代碼10 static void __exit cleanup_DA_ctl(void){

#endif } 補充代碼11 MODULE_DESCRIPTION(“DA_ctl driver module”);MODULE_AUTHOR(“liduo”);MODULE_LICENSE(“GPL”);module_init(pxa270_DA_CTL_init);module_exit(cleanup_DA_ctl);printk(“cleanup_DA_ctl [--kernel--]n”);#ifdef OURS_DA_DEBUG

六、實驗中遇到的問題及解決方法

每一次上課重新啟動后,當需要將宿主PC機的根目錄掛在到PXA270-EP目標板的mnt目錄下(即在超級終端中輸入命令“mount –o soft,timeo=100,rsize=1024 192.168.0.100:/ /mnt”)時,常顯示無法掛載。

解決方法:在超級終端下的掛載命令應該用”mount –o nolock 192.168.0.100:/ /mnt”,如果依然不能掛載需要重啟NFS服務,即在PC機終端中輸入命令”service nfs restart”兩遍后就可以掛載,當然有時候也可能是因為網線沒插好。

在每次重啟機器之后都需要將PC機終端的IP地址和開發板中的系統的IP地址設定正確,不然也無法掛載。

七、實驗總結及心得

本學期的所有實驗均在宿主PC機與PXA270-EP目標板上進行。在實驗中,我們先建立硬件實驗平臺,又建立主機軟件開發環境,接著為實驗進行各項配置,最后完成了各個實驗中的多種功能。值得注意的是,前期的硬件、軟件準備必須完整無誤地實現,后續的實驗才能順利進行。所以,打基礎的工作一定要仔細謹慎。后續實驗中雖然給出了驅動程序的框架,仍需要我們自己補充完整,并開動腦筋舉一反三,在原代碼的基礎上進行一定修改以實現新的功能。

通過這學期的實驗,我逐步完成了建立實驗軟件開發平臺,搭建實驗編譯軟件環境,在PC上編輯、編譯一個應用程序,并且在嵌入式系統上運行和調試它的過程。在實驗中,不難發現,編譯驅動程序大體框架都是一樣的,比如里面的讀函數、寫函數、ioctl函數、打開、關閉以及函數模塊的初始化并且在超級終端上顯示出等。但所不同的是,要根據不同的實驗要求修改名稱,并且對其中必要的部分進行修改。

除此之外,我認為很多基礎知識對實驗的進行也起著非常大的作用,例如數碼管的顯示原理。在掌握了基礎知識之后,上機的過程會顯得相對簡單,尤其是代碼框架已經給出,我們所以需要做的就是根據需要稍作改動來得到我們想要的結果。

在實驗過程中常常會遇到各種各樣的問題,剛開始時我不知如何是好,只能求助于老師和同學,后來隨著實驗的進行,我對實驗的內容和虛擬機都有了一定的了解,遇到問題時也可以靜下心來思考其原因,自己嘗試各種方法去解決問題。整個實驗讓我了解了一套完整的嵌入式系統驅動程序開發的全過程,學到的內容非常豐富,相信在學習了這些內容后,在今后的學習工作中接觸到類似內容,我不會感到無從下手,而是能夠有條不紊。

感謝老師的辛勤指導!

下載北郵2014《現代通信技術》實驗報告二word格式文檔
下載北郵2014《現代通信技術》實驗報告二.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    北郵數據庫實驗報告

    數據庫實驗報告(三) 姓名:學號:班級: 1. 用Transact-SQL語句、數據導入、SQL Server Management Studio(企業管理器)輸入的方法對所給定的8張表的數據輸入到數據庫中。自行決定每......

    南郵通信技術實驗報告實驗一

    南京郵電大學通達學院 課程實驗報告 題 目: IP網絡中的TCP-UDP通信實驗 學 院 通達學院 學 生 姓 名 王偉慧 班 級 學 號 10005002 指 導 教 師 王珺 開 課 學 院......

    北郵通信考研經驗

    本帖旨在幫助通信電信的孩子們,有啥問題可以在下面回復,我盡量幫助大家。 本人13年考研,錄取學校北京郵電大學張平導師組,工學碩博連讀。想到哪里寫哪里,思路比較亂,大家將就著看......

    北郵嵌入式實驗報告[五篇]

    嵌入式系統開發實驗報告 班級: 姓名: 班內序號: 學號: 日期: 目錄 一、 實驗目的 .........................................................................................

    北郵數據庫第一次實驗報告

    《數據庫原理》實驗報告 實驗名稱班級組號組員姓名 數據庫實驗平臺的安裝、數據庫創建與維護實驗 計算機科學與技術8班2011211308 梁展偉、李安一、實驗目的 1.通過對Micr......

    北郵數據結構實驗報告-排序范文大全

    北京郵電大學 數據結構試驗報告 實驗名稱: 實驗四排序 學生姓名:班級:班內序號:學號: 日期: 2014年1月4日 1 實驗目的 學習、實現、對比各種排序算法,掌握各種排序算法的優劣,以......

    北郵日歷java實驗報告

    Java日歷實驗報告 信息工程27班項明鈞 一、實驗要求 寫一個建議日歷圖形用戶界面二、設計思路 此次作業主要用到了窗口布局設計及各個組件的功能顯示,事件處理機制。首先需......

    北郵數據庫實驗報告[最終版]

    數據庫實驗報告(四) 姓名:學號:班級: 1. 簡單查詢:SQL語句: select credit from course where course_name='SQL Server數據庫開發技術'; 查詢“數據庫開發技術”課程的學分;......

主站蜘蛛池模板: 色一情一乱一乱一区99av| 亚洲人成网站18禁止| 国产福利酱国产一区二区| 欧美午夜片欧美片在线观看| 日本免费人成视频播放| 日韩人妻无码精品专区906188| 亚洲精品国产欧美一二区| 久99久精品免费视频热| 精品九九人人做人人爱| 99国产欧美久久久精品蜜芽| 亚洲精品字幕| 欧洲美熟女乱又伦免费视频| 亚洲日本va午夜中文字幕一区| 亚洲国产精品无码7777一线| 又大又粗欧美黑人aaaaa片| 亚洲蜜桃精久久久久久久久久久久| 欧美日韩在线亚洲综合国产人| 狠狠精品干练久久久无码中文字幕| 竹菊影视欧美日韩一区二区三区四区五区| 少妇群交换bd高清国语版| 无码av免费精品一区二区三区| 国产精品久久久久不卡无毒| 亚洲欧美色国产综合| 国产亚洲va在线电影| 日本巨大的奶头在线观看| 色老头在线一区二区三区| 国产乱人伦偷精品视频| 7777精品伊人久久久大香线蕉| 日本无码v视频一区二区| 亚洲人成电影综合网站色www| 天堂中文8资源在线8| 成人网站免费看黄a站视频| 亚洲欧洲偷自拍图片区| 国产成人综合亚洲看片| 亚洲精品人成网线在线播放va| 亚洲AV无码乱码A片秀色直播| 国产精品无码专区av在线播放| 亚洲av无码专区色爱天堂| 少妇久久久久久久久久| 午夜无码精品国产片| 欧美成人精品第一区二区三区|