欢迎来到天天文库
浏览记录
ID:6103379
大小:180.51 KB
页数:6页
时间:2018-01-02
《实验一物理层实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一 物理层实验一、实验目的1.进一步理解并掌握物理层的定义和功能。2.了解并掌握物理层的特性。3.掌握物理层典型的接口规范EIA RS232C的功能特性,并利用RS232C通信接口实现两台PC间会话的基本通信程序。4.进一步掌握Windows下事件编程机理,掌握VC++/C++Builder中用户自定义事件、消息的使用方法,以及消息响应函数的编写方法。二、实验内容1. 观察实验用串行口连线的连接情况。2. 按图1-5(a)所示的计算机网络原理实验物理连接模型,将PC连接起来。3. 仔细阅读TSerialPort类的定义及实现的源代码。
2、4. 设计基本串行通信程序,在两台通过RS232C串行口连接的PC间传输单个字符。(a) (b)图1-5 网络原理实验物理连接方法三、相关知识计算机或终端与调制解调器间的接口是物理层协议的一个实例,其中典型的物理层标准是美国电子工业协会EIA提出的RS-232C。在数据通信中,数据终端设备(DTE)是指具有一定数据处理能力及收发数据能力的设备,如计算机。数据电路端接设备(DCE)是指在DTE和传输线路之间提供信号变换和编码功能,并负责建立、保持和释放数据链路的连接,如MODEM。RS232就是DTE和DCE就是之间的接口标准,其主要内
3、容包括:机械特性:采用25芯连接器,DTE为插头,DCE为插座。电气特性:采用非平衡型电气特性,低于-3V为“1”,高于+4V为“0”,最大20Kbps,最长15m。功能特性:定义了21条线,许多子集,基本与CCITTV.24兼容。规程特性:对不同的功能子集,有不同的规程。RS-232C有14中不同的接口类型,适合于单工、半双工、全双工、同步、异步。RS-232C的缺点是传输性能低,距离短,速率低。1977年以RS-232C为基础,进行改进,提出RS-449。之后重新设计,提出了X.21接口规范。EIA RS-232C采用25针连接器(D
4、B-25),图1-2给出了25针连接器的连接方法。图1-2 RS-232C接口的连接然而目前每个PC上一般配置的是两个9针RS232C连接器,它们分别用COM1和COM2表示,每个连接器的引脚功能见下表1-1。表1-1 RS-232C引脚功能引脚功能1载波检测2发送数据3接收数据4数据设备就绪5信号地6数据终端就绪7请求发送8清除发送通信距离较近时(小于15米),可以用电缆直接连接标准R232端口,即采用空(零)MODEM方式连接。实验中两台PC通过RS232C串行通信口连接就是采用这种方法连接的,连接方法见下表1-2。也可以采用更为
5、简单的连接方法,即只使用2、3、5三个引脚的功能。这样,通过访问串行口,就可以在两台PC间发送或接收数据。表1-2 空MODEM连接方法(9针连接器)PCA串行端口连接器PCB串行端口连接器322378876,145546,1四、实验指导(1)设计MDI应用程序界面。创建一个MDI应用程序,MDI子窗体上放置一个Memo组件。(2)将文件SerialPort.h和SerialPort.cpp添加到工程中,并在main.h中添加#include一行。(3)在父窗体的初始化代码中,初始化串行口,并为每个串行口创建对
6、应的一个接收窗体和一个发送窗体。(4)编写接收窗口Memo组件的KeyDown事件代码,以便将用户的输入发送到串行口。(3)在主窗体中定义WM_COMM_RXCHAR消息的映射及相应的消息函数。(4)编写相应的消息处理函数,将接收到的数据显示在接收窗口中。(1).publicPhysical(stringCommPort){try{port=newSerialPort(CommPort,9600,Parity.None,3,StopBits.One);port.ReadBufferSize=32;PhySap=newSAP();}catc
7、h(Exceptione){}}(2).privatevoidMainForm_Load(objectsender,EventArgse){sendForm=newChildForm();sendForm.MdiParent=this;sendForm.Text="发送窗口";sendForm.Name="SendWindow";sendForm.Show();rcvForm=newChildForm();rcvForm.MdiParent=this;rcvForm.Text="接收窗口";rcvForm.Name="ReceiveWin
8、dow";rcvForm.rtxBox.ReadOnly=true;rcvForm.Show();CheckForIllegalCrossThreadCalls=false;this.Layo
此文档下载收益归作者所有