医学数字信号处理实验教程-基于MATLAB - 讲义 - 第4章 - 串口助手小工具设计实验_第1页
医学数字信号处理实验教程-基于MATLAB - 讲义 - 第4章 - 串口助手小工具设计实验_第2页
医学数字信号处理实验教程-基于MATLAB - 讲义 - 第4章 - 串口助手小工具设计实验_第3页
医学数字信号处理实验教程-基于MATLAB - 讲义 - 第4章 - 串口助手小工具设计实验_第4页
医学数字信号处理实验教程-基于MATLAB - 讲义 - 第4章 - 串口助手小工具设计实验_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1第4章:串口助手小工具设计实验卓越工程师培养系列2目录《医学数字信号处理实验教程—基于MATLAB》-配套讲义1.实验内容2.实验原理3.实验步骤4.本章任务5.本章习题31.实验内容

学习串口通信协议,以及MATLAB中的部分控件和串口相关函数,如serial、fopen、fclose、fread和fwrite等。然后,设计一个具有以下功能的串口助手小工具:(1)可以选择计算机上可用的串口号;(2)可以选择波特率、校验位、数据位和停止位;(3)可以将串口接收到的数据显示到串口“接收区”,并允许用户使用“清除接收区”按钮清除串口“接收区”中的内容;(4)可以通过“发送”按钮将串口“发送区”发送到其他设备,并允许用户使用“清除发送区”按钮清除串口“发送区”中的内容;(5)允许用户设置发送间隔,实现定时发送功能。《现代医学电子仪器原理与设计实验教程》-套讲义《医学数字信号处理实验教程—基于MATLAB》-配套讲义42.实验原理2.1串口通信协议2.2串口对象的属性2.3串口的基本操作2.4串口的常用函数2.5本章使用到的控件《现代医学电子仪器原理与设计实验教程》-套讲义《医学数字信号处理实验教程—基于MATLAB》-配套讲义52.1串口通信协议《现代医学电子仪器原理与设计实验教程》-配套讲义

(1)串口物理层

串口是异步串行全双工通信,因此串口通信没有时钟线,只需两根数据线就可以实现双向同时传输。收发数据一位一位地在各自数据线上传输,所以串口最多只有一根发送数据线和一根接收数据线。数据线是高低逻辑电平传输,因此还必须有参照的地线,最简单的串口接口由发送数据线TXD、接收数据线RXD和GND共3根线组成。《医学数字信号处理实验教程—基于MATLAB》-配套讲义62.1串口通信协议《现代医学电子仪器原理与设计实验教程》-配套讲义

(2)串口数据格式

串口数据按照一定的格式打包成帧,微控制器或计算机在物理层上以帧为单位进行传输。串口的一帧数据由起始位、数据位、校验位、停止位和空闲位组成,如图4‑2所示。需要说明的是,一个完整的串口数据帧必须有起始位、数据位和停止位,但是不一定有校验位和空闲位。《医学数字信号处理实验教程—基于MATLAB》-配套讲义72.1串口通信协议《现代医学电子仪器原理与设计实验教程》-配套讲义

(3)串口传输速率

串口传输速率用比特率来表示。比特率是每秒传输的二进制位数,单位为bps(bitpersecond)。波特率,即每秒传送码元的个数,单位为baud。由于串口使用NRZ(Non-ReturntoZero,不归零)编码,因此串口的波特率和比特率是相同的。在实际应用中,常用的串口传输速率有1200、2400、4800、9600、19200、38400、57600和115200。《医学数字信号处理实验教程—基于MATLAB》-配套讲义82.2串口对象的属性《现代医学电子仪器原理与设计实验教程》-配套讲义

串口对象有很多属性,可以使用命令“instrhelpserial”查看串口对象的相关函数和属性。书中按照通信相关属性、读写操作属性、回调函数相关属性对串口对象的常用属性进行介绍。《医学数字信号处理实验教程—基于MATLAB》-配套讲义92.3串口的基本操作《现代医学电子仪器原理与设计实验教程》-配套讲义

串口的基本操作分为4个步骤,分别是创建串口、连接串口、读写串口、关闭串口。

(1)创建串口

使用serial函数创建串口对象;

通过串口对象obj设置串口的属性;

同时设置串口对象的多个属性;

在创建串口对象的同时,设置其属性;《医学数字信号处理实验教程—基于MATLAB》-配套讲义102.3串口的基本操作《现代医学电子仪器原理与设计实验教程》-配套讲义

(2)连接串口

串口读写数据前,必须使用fopen函数打开串口,也就是将创建的串口对象连接到物理端口。

当串口对象连接到物理端口时:(1)输入缓冲区和输出缓冲区清空;(2)Status属性值为open;(3)BytesAvailable、VaulesReceived、ValuesSent和BytesToOutput属性值为0.

另外,有些串口属性在串口对象连接到物理端口之后,就变为只读,如InputBufferSize和OutputBufferSize等,所以必须要在使用fopen函数连接之前完成这些属性的配置。《医学数字信号处理实验教程—基于MATLAB》-配套讲义112.3串口的基本操作《现代医学电子仪器原理与设计实验教程》-配套讲义

(3)读写串口

读写串口函数很多,本书主要使用fwrite函数写数据到其他串口设备,使用fread函数从其他串口设备读取数据。

比如,通过串口对象obj连接的物理串口向其他串口设备发送数据(sendData):

从串口对象obj连接的物理串口读取n个数据,并将读取的数据赋值给readData:《医学数字信号处理实验教程—基于MATLAB》-配套讲义122.3串口的基本操作《现代医学电子仪器原理与设计实验教程》-配套讲义

(4)关闭串口

当不再使用串口时,使用fclose函数断开串口对象与物理端口的连接。

可以通过obj.Status查看是否断开连接,open为连接状态,closed为断开状态。断开连接之后,建议再使用delete函数将串口对象从内存中删除。

可以通过isvalid函数查看串口对象是否已删除,返回值为0表示已经删除。《医学数字信号处理实验教程—基于MATLAB》-配套讲义132.3串口的基本操作《现代医学电子仪器原理与设计实验教程》-配套讲义

(4)关闭串口

如果希望更完美一些,还可以通过clear函数从MATLAB工作空间清除串口对象

注意,当不再使用串口时,通过fclose函数断开连接是必须的,如果不断开连接,下次再创建串口对象建立连接时,有可能会出现无法连接的现象。而清除内存和MATLAB工作空间是非必需的。《医学数字信号处理实验教程—基于MATLAB》-配套讲义142.4串口的常用函数《现代医学电子仪器原理与设计实验教程》-配套讲义

串口相关的函数有很多,本书中使用的串口相关函数如表4‑4所示。《医学数字信号处理实验教程—基于MATLAB》-配套讲义152.5本章使用到的控件《现代医学电子仪器原理与设计实验教程》-配套讲义

串口助手工具主要使用到6种控件,除了触控按钮(PushButton)、可编辑文本(EditText)、静态文本(StaticText)和面板(Panel)之外,还使用到了复选框(CheckBox)和弹出式菜单(Pop-upMenu)。《医学数字信号处理实验教程—基于MATLAB》-配套讲义163.实验步骤3.1步骤1∶新建串口助手小工具工程文件夹3.2步骤2∶打开GUI界面3.3步骤3∶串口助手小工具GUI界面设计3.4步骤4∶串口助手小工具程序设计3.5步骤5∶安装虚拟串口软件3.6步骤6∶验证串口助手小工具《现代医学电子仪器原理与设计实验教程》-套讲义《医学数字信号处理实验教程—基于MATLAB》-配套讲义174.本章任务

按照本章的实验步骤完成串口助手小工具的设计之后,继续增加以下功能:(1)在串口助手小工具的左下方增加两个静态文本,用于动态指示串口接收字节数和发送字节数;(2)单击“清除接收区”之后,接收字节数清零;(3)单击“清除发送区”之后,发送字节数清零。《现代医学电子仪器原理与设计实验教程》-配套讲义《医学数字信号处理实验教程—基于MATLAB》-配套讲义185.本章习题

1.两个串口设备在进行互相通信时,除了将设备A的发送数据线TXD和设备B的接收数据线RXD相连接,将设备A的接收数据线RXD与设备B的发送数据线TXD相连接之外,是否还需要其他连接? 2.串口的传输速率用什么表示?传输速率的单位是什么? 3.如果串口的数据位为8位,校验为奇校验,停止位为1位,波特率为9600,计算每2ms最多可以发送多少字节数据? 4.串口配置为奇校验时,如果传输的二进制数据为“10011000”,校验位应该是什么? 5.在属性检查器中,弹出式菜单控件的String属性和Value属性分别代表什么? 6.使用serial函数创建一个端口号为COM1的串口对象,即“obj=serial('COM1');”,如何将该串口对象的波特率属性设置为9600? 7.假如串口对象为obj,如何通过函数打开串口?如何通过函数关闭串

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论