北邮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数据库开发技术'; 查询“数据库开发技术”课程的学分;......