rs232串口通信实验报告

       

网络管理与控制

实验报告

(二)

20##-2012 学年第 1 学期

RS232串口通信实验

一、实验题目:

设计一个简单的基于串口通信的信息发送和接受界面

二.实验目的:

1.熟悉并掌握RS232串口标准及原理。

2.实现PC机通过RS232串口进行数据的收发。

3.熟悉VB语言编写程序的环境,掌握基本的VB语言编程技巧

二、实验设备

      PC机一台,RS232串口通信线(9针)一条,跳线一个(一台PC实验时,将其中的2和3短接)

三、实验内容

1、界面内容:

(1)打开串口与关闭串口按钮

(2)信息发送区:信息编辑区,发送信息按钮

(3)信息接受区:信息显示区,接收信息按钮

2、主窗体的程序代码:

Private Sub Form1_load()

MSComm1.PortOpen = True

End Sub

Private Sub Command1_Click()

MSComm1.Output = Text1.Text

End Sub

Private Sub Command2_Click()

Dim buf$

buf = MSComm1.Input

If Len(buf) = 0 Then

Text2.Text = "empty"

Else

Text2.Text = buf

End If

End Sub

Private Sub Command3_Click()

MSComm1.PortOpen = False

End

End Sub

Private Sub Command4_Click()

If MSComm1.PortOpen = True Then

  MSComm1.PortOpen = False

  End If

  MSComm1.Settings = "9600,N,8,1"

  MSComm1.RThreshold = 1

 

  MSComm1.PortOpen = True

  MSComm1.InputLen = 0

 

End Sub

然后生成R232.EXE可执行文件:

3、实验过程:

(1)将9针RS232串口通信线与PC机串口连接,并用跳线将RS232串口通信线另一端2(RXD)和3(TXD)短接。

(2)在VB程序环境下,完成相关的程序编写与初始设置。

(3)调试程序完成数据的发送和接受(或者直接运行R232.EXE程序也可)

调试:

主界面如下图:

首先打开串口,在发送区输入信息,然后点击发送信息,如下图:

点击接收信息如下图:

五、实验总结

     本次实验虽属简单小型实验,却着实遇到不少问题,由于没学过vb,所以首先对vb的编程思想也不熟,不过经过翻阅资料,对本实验所用到的程序基本能懂了,对一些基本操作也明白了。通过实验,我也进一步发现了自己在动手能力和自学能力方面的不足,当然对本实验所涉及到的东西也算是有了不少兴趣,感觉越来越有意思了。同时也对rs232串口的发送与接收信息有了进一步的了解,相信本实验对我日后的进一步学习有莫大帮助。

 

第二篇:rs232串口通信原理

rs232串口通信原理串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。 典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配: a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。 b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。 c,停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。 d,奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶

、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位位1,这样就有3个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步.

相关推荐