您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > RSS232通信程序设计报告
设计报告项目名称:RS232通信程序设计课程名称:计算机网络课程设计班级:计G131姓名:包俊杰、韩明、林晓学号:132090、132088、132076教师:张晓明信息工程学院计算机系北京石油化工学院一、概述1.1背景在通信领域内,有两种数据通信方式:并行通信和串行通信。随着计算机网络化和微机分级分布式应用系统的发展,通信的功能越来越重要。通信是指计算机与外界的信息传输,既包括计算机与计算机之间的传输,也包括计算机与外部设备,如终端、打印机和磁盘等设备之间的传输。串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。串行通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。使用串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。在串行通信中,二进制数据以数字信号的信号形式出现,不论是发送还是接收,都必须有时钟信号对传送的数据进行定位。在TTL标准表示的二进制数中,传输线上高电平表示二进制1,低电平表示二进制0,且每一位持续时间是固定的,由发送时钟和接收时钟的频率决定。⑴发送时钟:发送数据时,先将要发送的数据送入移位寄存器,然后在发送时钟的控制下,将该并行数据逐位移位输出。通常是在发送时钟的下降沿将移位寄存器中的数据串行输出,每个数据位的时间间隔由发送时钟的周期来划分,参见图8.6所示。⑵接收时钟:在接收串行数据时,接收时钟的上升沿对接收数据采样,进行数据位检测,并将其移入接收器的移位寄存器中,最后组成并行数据输出,如图8.7所示。⑶波特率因子:接收时钟和发送时钟与波特率有如下关系:F=n×B这里F是发送时钟或接收时钟的频率;B是数据传输的波特率;n称为波特率因子。设发送或接收时钟的周期为Tc,频率为F的位传输时间为Td,则:Tc=1/F,Td=1/B得到:Tc=Td/n在实际串行通信中,波特率因子可以设定。在异步传送时,n=1,16,64,实际常采用n=16,即发送或接收时钟的频率要比数据传送的波特率高n倍。在同步通信时,波特率因子n必须等于1。北京石油化工学院1.2开发与运行环境图片管理器的开发与运行环境如下:开发环境:Windows8开发工具:MicrosoftVisualstudio2008C#硬件环境:CPU:3.1GHz、内存:4G、硬盘:500G运行环境:Windows2000/XP/2003/Win7/Win8二、需求分析随着计算机的普及,计算机网络和多微机系统的广泛应用,尽管当今USB通信技术和以太网技术快速发展,然而串口通信技术始终以其连接简便,价格低廉,稳定可靠等优点,在计算机通信领域占有一席之地。微软推出的VisualStudio2008开发工具,可以不再采用第三方控件的方法来设计串口通讯程序。NETFramework2.0类库包含了SerialPort类,方便地实现了所需要串口通讯的多种功能。该串口通信控制程序具有通信参数设置、通信参数显示、打开和关闭串口、接收数据、发送数据、清空发送区和接收区数据的功能。北京石油化工学院三、系统设计4.1界面设计串口通信程序主界面如下图:4.2代码设计1、程序初始化:在启动程序时定义三个全局变量,检测本计算机中是否有串口,并在“串口号”下拉菜单中显示出本计算机拥有的串口号,并初始化四个下拉菜单的默认值。北京石油化工学院2、打开串口:点击打开串口后,将四个下拉菜单的值分别赋值给serialPort控件的4个属性:串口号、波特率、数据位和停止位,并开启穿孔。且将一部分控件禁用:北京石油化工学院3、发送字符串信息:点击发送按钮后,判断用户是否选中了“HEX发送”,若选中则将要发送的字符串转换成16进制写入串行端口,否则直接将字符串写入串行端口。为了方便用户发送信息,我们设置在发送信息时,点击“Enter”键也可以快速发送信息!北京石油化工学院4、发送文件:4.4.1浏览文件:选择要发送的文件,并将文件路径显示在界面上4.4.2发送文件点击发送后,将发送任务交给计时器Timer,并启动计时器。同时禁用部分控件。北京石油化工学院计时器:计时器启动后,开始逐行发送数据,并在状态栏显示发送状态。每读取一行sRead中的字符串就发送一行,然后计时器重新计时读取下一行并发送直到读取的字符串为空时,数据才发送完毕。弹出文件发送成功的提示数据全部发送完成后弹出提示框,并恢复之前禁用的控件。4.4.3停止发送北京石油化工学院5、接收消息:6、保存消息记录:点击保存按钮后,将接收到的信息保存在指定txt文本内的最后一行,并附加系统当前时间,方便用户查看。北京石油化工学院7、清空消息记录:StreamWritersw=newStreamWriter(fullPath,false,Encoding.Default);这里的第二个参数是false,与保存文件时的第二个参数不同。由于要清空文本文件中的内容,所以这里不是在文本的末尾追加一行字符串,而是完全覆盖原来的字符串,所以这里是用空字符串覆盖了原先文本文件中的所有内容。结束语通过这次的课程设计,我对程序的设计有了切身的体会,也让我对C#2008编程语言这门课程有了一定的了解。而在这次的设计过程中,也让我了解到了我对这门课程掌握了多少,对程序的设计有了初步的认识,在设计的过程中让我让我感觉到了很多的知识点是还没有掌握的。我们应该能独立的去发现问题并解决问题,应用一切资源来帮助自己设计。需要在今后的学习过程中不断的加强对知识点的掌握,还要多看书,多多的上网查找资料。
本文标题:RSS232通信程序设计报告
链接地址:https://www.777doc.com/doc-2856108 .html