串口调试助手设计-虚拟仪器课程设计大学论文

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

虚拟仪器课程设计题目:串口调试助手设计
学院:xxx交通大学机电工程学院班级:xx
学号:xx
姓名:xxxx
目录
《虚拟仪器设计》课程设计任务书 (2)
1.引言 (4)
2. labview及串口通信简介 (4)
2.1 Labview (4)
2.2串口通信简介 (5)
3.串口相关节点介绍 (6)
3.1 VISA配置串口 (6)
3.2 设置缓冲区大小 (7)
3.3visa写入 (7)
3.4 VISA读取 (7)
4.程序框图设计 (8)
4.1 串口初始化输入模块 (8)
4.2数据发送程序 (9)
4.3数据接收 (9)
4.4字节数显示 (10)
4.5 属性节点设置 (10)
5.前面板设计 (10)
6.结语 (11)
7.心得体会 (12)
8. 参考文献 (13)
xxx交通大学机电工程学院
《虚拟仪器设计》课程设计任务书
学生姓名:xxx 学号:2xxxxxx
一、设计题目
串口调试助手设计
二、设计目的和要求
通过对虚拟仪器的设计,了解虚拟仪器设计的基本原理及常用的对象使用方法;通过设计一台虚拟式数据采集系统、图形识别系统、通过串口、并口控制、测温系统、转速测量系统等,了解虚拟仪器数据采集卡的使用及设置,并口或串口的数据传输,了解虚拟编程中如何使用非NI公司的数据采集卡或电脑中常用的声卡,如何配置DAQ助手等,学会把外界物理信号采集到计算机并进行简单分析或者通过虚拟仪器产生符合要求的信号并通过声卡输出或者学会利用NI的ELVIS系统设计简单的测量软件。

加深虚拟仪器知识、单片机的了解,培养学生运用虚拟仪器思想解决工程实际问题的能力。

二、设计内容
A.详细要求:
(1)串口可选;(2)波特率可调;(3)串口通讯方式可调(9位还是11位);
(4)校验方式可选(奇校验偶校验);(5)设计界面要标准
B.前面板上要设置必要的控件对象以设置相应参数。

C.设计界面要美观,程序可读性好。

三、设计进度安排
设计时间总计2周
课程设计任务及要求讲解(0.5天)
设计任务分析及查找资料(1.5天)
程序编制及调试(5.5天)
设计说明书撰写(2天)
答辩(0.5天)
四、设计任务书应包括的主要内容
目录设计题目任务分析实现过程程序前面板及流程图
结束语心得体会参考文献
五、考核方法
考核方式由三部分组成:平时学习态度(含考勤)、设计完成情况(含方案、程序质量、界面、说明书等)及答辩情况确定。

六、教师评语及成绩
指导教师:
1.引言
这学期我们系统的学习了虚拟仪器设计,对于虚拟仪器有了比较深刻的认识。

LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。

LabVIEW软件是NI设计平台的核心,也是开发测量或控制系统的理想选择。

LabVIEW开发环境集成了工程师和科学家快速构建各种应用所需的所有工具,旨在帮助工程师和科学家解决问题、提高生产力和不断创新。

这次课程设计的任务就是根据一个学期对labview的学习以及对G编程的了解设计出一款类似串口调试助手的软件。

串口调试助手是串口调试相关工具,支持9600,19200等常用各种波特率及自定义波特率,可以手动调节串口,能设置校验、数据位和停止位,能以ASCII码或十六进制接收或发送任何数据或字符,可以任意设定发送周期,并能将接收数据保存成文本文件,能发送任意大小的文本文件,也可以计算已发送和接收的字节数。

2 labview及串口通信简介
2.1 Labview
LabVIEW是一种图形化的编程语言的开发环境,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。

LabVIEW [2] 集成了与满足GPIB、VXI、RS-232和RS-485 协议的硬件及数据采集卡通讯的全部功能。

它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。

这是一个功能强大且灵活的软件。

利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。

图形化的程序语言,又称为“G”语言。

使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或框图。

它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW 是一个面向最终用户的工具。

它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。

使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。

2.2串口通信简介
串口通信的概念非常简单,串口按位(bit)发送和接收字节。

尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

它很简单并且能够实现远距离通信。

比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。

典型地,串口用于ASCII码字符的传输。

通信使用3根线完成,分别是地线、发送、接收。

由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。

其他线用于握手,但不是必须的。

串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。

对于两个进行通信的端口,这些参数必须匹配。

a.波特率:这是一个衡量符号传输速率的参数。

指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数,如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位,1个停止位,8个数据位),这时的波特率为240Bd,比特率为10位*240个/秒=2400bps。

一般调制速率大于波特率,比如曼彻斯特编码)。

通常电话线的波特率为14400,28800和36600。

波特率可以远远大于这些值,但是波特率和距离成反比。

高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。

b.数据位:这是衡量通信中实际数据位的参数。

当计算机发送一个信息包,实际的数据往往不会是8位的,标准的值是6、7和8位。

如何设置取决于你想传送的信息。

比如,标准的ASCII码是0~127(7位)。

扩展的ASCII码是0~255(8位)。

如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。

每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。

由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。

[1]
c.停止位:用于表示单个包的最后一位。

典型的值为1,1.5和2位。

由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。

因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。

适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

d.奇偶校验位:在串口通信中一种简单的检错方式。

有四种检错方式:偶、奇、高和低。

当然没有校验位也是可以的。

对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。

例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。

如果是奇校验,校验位为1,这样就有3个逻辑高位。

高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。

这样使得接收设备能够知道一个位的状态,有机会判断是
否有噪声干扰了通信或者是否传输和接收数据是否不同步。

串口通信是指外设和计算机间,通过数据信号线、
地线、控制线等,按位进行传输数据的一种通讯方式。

这种通信方式使用的数据线少,在远距离通信中可以节
约通信成本,但其传输速度比并行传输低。

串口是计算机上一种非常通用的设备通信协议。

大多数
计算机(不包括笔记本电脑)包含两个基于RS-232的
串口。

串口同时也是仪器仪表设备通用的通信协议;很
多GPIB兼容的设备也带有RS-232口。

同时,串口通信
协议也可以用于获取远程采集设备的数据。

图1 程序框图RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。

可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。

用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。

RS-232只限于PC串口和设备间点对点的通信。

3 串口相关节点介绍
3.1 VISA配置串口
该节点的主要功能是初始化、配置串口,如图1
图2 VISA配置串口
VISA资源名称:指PC的串口名,例:COMl,COM2等。

波特率:串口速率,默认为9600bps。

数据比特:一帧信息中的位数,LabVIEW 中允许5~8位数据,默认为8。

奇偶:奇偶校验位,可选为无校验、奇校验或偶校验,默认为无校验。

停止位:一帧信息中的停止位的位数,可选为1位、1.5位或2位。

流控制:设置传输机制使用的控制类型,可选为None、XON/XOFF软件流控或
RTS/CTS硬件流控,默认为None。

根据此节点的特征:输入数字“0”代表为无校验,输入数字“1”为奇校验,输入数字“2”为偶校验。

对于停止位则输入数字“10”代表选择的停止位为1位,输入数字“15”代表选择停止位为1.5位,输入数字“20”代表选择停止位为2位。

握手控制(流控制)一般设为不使用,即输入数字“0”
3.2 设置缓冲区大小
该节点主要用来在初始化阶段设置缓冲区大小
图3 设置缓冲区大小
其中屏蔽指明要设置大小的缓冲区。

大小指明I/O缓冲区的大小,以字节为单位。

大小应略大于要传输或接收的数据数量。

如在未指定缓冲区大小的情况下调用该函数,函数可设置缓冲区大小为4096字节。

如未调用该函数,缓冲区大小取决于VISA 和操作系统的设置。

3.3visa写入
图4 VISA 写入
该节点的主要功能:将把写入缓冲端口输入的数据写入由VISA资源名称端口指定的设备中。

可用于将字符串写入串口的输出缓存,将字符串从串口发送出去。

3.4 VISA读取
VISA读取的作用是从VISA资源名称指定的设备或接口中读取指定数量的字节,并使数据返回至读取缓冲区。

如图5
图5 VISA读取
4.程序框图设计
根据串口调试助手需要的功能,添加不同的条件结构和不同的节点,以此达到设计功能的完善,程序框图分为以下几个模块。

4.1 串口初始化输入模块
图6是串口初始化输入模块的程序框图,其功能是实现对串口的打开、选择以及波特率的选择,除此之外还有对数据位的初始化。

图6 串口初始化
该程序框图输入端是由下拉列表节点构成,在下拉列表中预设串口号、波特率、数据位。

再根据设置的串口号或者波特率触发后面的条件结构,对输入进行处理,比如串口选择COM3时,触发条件2并使条件结构输出COM3并输入到VISA配置端口,波特率的设置和选择与此类似。

VISA打开串口由打开串口按钮控制,当按钮按下条件结构执行真的命令,此时会先打开串口。

串口的数据位、停止位及奇偶校验位由另外的下拉列表控制,方法类似。

并且在程序运行为真且无错误时,对缓冲区进行设置。

4.2数据发送程序
该程序的作用是读取前面输入的配置,并将数据发送区的数据发送给接收区。

程序框图如下:
图7 数据发送
由图7,发送按钮控制发送区数据的发送,当按钮按下,输出为真,则此时发送区的数据通过写入节点写入在输出端输出并返回字节数。

再将写入的数据通过读取节点读取出来,输出数据和字节数。

由于读写数据时每个数据长度不一定都一样,数据较多的,要等待较长的时间,这样才能保证在等待时间内将所有数据读取完毕;数据较少的,就不需等待同样的时间。

然而等待的时间一般较难确定,时间设得太长,占用串口的时间就会较长,会降低通讯效率,造成数据延时;时间太短,数据没有完全返回时就执行下一步程序,可能会造成数据的丢失。

所以这段程序的等待时间是用户自定义的,这样就最大化地利用了资源。

4.3数据接收
该段程序框图主要作用的接收发送区的数据以及清空接收区,其中数据接收区使用的是全局变量。

图8 数据接收程序框图
清空接收区按钮控制接收区数据清空,当按钮未按下,则执行假事件,此时将发送区读取的数据与接收区本来存在的数据利用连接字符串节点连接起来并计算其总的字节数。

设置的最大字节数为10000,即当字节总数超过10000时,接收区不予
显示。

4.4字节数显示
该段程序的作用是将发送或接收到的字节数通过数值显示控件显示出来,并且能够对字节数进行清空方便下次继续计算。

图9 字节数显示
4.5 属性节点设置
Labview中的属性节点是为了对相关节点的属性进行设定,在这里我们用到的属性节点是禁用节点。

关于禁用节点是使用如图10,
图10 禁用节点设置
由图10,打开串口按钮控制事件结构真假,在禁用节点中,0为用户可操作,2为用户不可操作。

因此当串口没打开时,波特率、校验位、数据位是用户可以操作的,而清零、发送数据等清空按钮是不可操作的,并在运行时显示为灰色。

当打开串口按下时,运行真事件,禁用属性设置与上面相反。

5 前面板设计
当程序运行时,我们能直接看出运行结果是就是前面板,也就是说,前面板是程序运行的最终载体。

本次设计的前面板如图11。

图11 前面板设计
前面板设计如图,在本设计中,前面板用到的控件有:下拉列表、按钮、布尔、字符串显示控件、字符串输入控件等。

其中数据发送区为字符串输入控件,可以写入相关字符串;数据位、波特率等的选择使用的是下拉列表,可以通过下拉列表的特性选择需要的数值;打开串口与布尔直接相连,当按钮按下,布尔亮,代表串口的打开状态;清空按钮和字节数显示前面都有介绍,这里不一一赘述。

这些就是前面板的基本构成了。

6.结语
本文对labview课程设计设计出的实用性软件串口调试助手进行了详细的描述,对该设计的程序框图、相关节点的选取、前面板的设计进行了直观全面的展示。

在整个过程中,从题目的选取准备和在设计时出现的问题及解决进行详细的讨论。

最终完成了课程设计并且达到了初期的要求,实现了串口可选、数据位可选、波特率可调等功能。

通过这次课程设计,也将虚拟仪器的理论知识上升到了实践层次,对虚拟仪器有
了更深刻的认识。

7.心得体会
通过此次课程设计,使我更加扎实的掌握了有关虚拟仪器方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。

实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。

这次课程设计的题目是由抽签决定的,而分组是自由组合的,一组三人,我们组最后选定的题目是串口调试助手。

在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。

就在不停出错并且不停改正的过程中,这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。

这也是在我们步入社会之前的一次大练兵,可以反映我们是否可以胜任以后的工作。

在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!
8.参考文献
[1] 侯国屏 .LabVIEW编程与虚拟仪器设计[M].北京:清华大学出版社,2010
[2] 赵茂泰.智能仪器原理及应用[M].北京:电子工业出版社,2009
[3] 汪敏生.LabVIEW基础教程 [M].北京:电子工业出版社,2006
[4] 刘君华.基于LabVIEW的虚拟仪器设计[M].北京:电子工业出版社,2006。

相关文档
最新文档