基于Matlab GUI的PC机与智能车的无线通信

最新更新时间:2013-12-14来源: 互联网关键字:Matlab  GUI  PC机  智能车  无线通信 手机看文章 扫描二维码
随时随地手机看文章

引言

  在以速度决定优劣的飞恩卡尔智能车比赛中,任何因素都可能影响小车的运行。为了满足对小车在赛道中各种状态精确分析的需求,上位机的效据采集与处理要求通信波特率高、信号传输稳定、不丢包、数据处理量大、数据处理及时等。在基于Matlab环境下的串口通信中,查询方式下的非实时串行通信技术对实时性要求很高的智能车通信有很大的局限性。而在目前普遍采用的中断机制下的通信虽然可以满足实时性的需要,却需要修改Matlab自带的instrcallback回调函数。程序调试过程中惨改了回调函数后,需要重新启动Matlab才能使得新的回调函数文件生效。由此可以看出,其操作复杂易出错,且instrcallback函数接收到保存在工作空间的数据不能被GUI组件的函数实时调用。故此方式在需要对多组数据进行分别作图分析时,往往生成多个零散图形窗口。为了满足智能车的实时通信需求,同时使基于Matlab GUI的通信界面更加简洁,本文提出了一种将事件中断函数写入GUI组件函数中的方式。

  Matlab是由美国Mathworks公司开发的面向理论分析研究及工程设计处理和绘图的一套具有强大功能的软件系统。Matlab运行稳定、可靠,使用方便,是广大科研人员进行科学研究的得力助手。从Matlab6.0版本开始,Mathworks公司在软件中增加了设备控制箱(instrument control toolbox),提供了对RS-232/RS-485通信标准的串口通信的正式支持。Matlab GUI(Graphic User Interface)是内置于Matlab的进行图形界面开发的模块。本文主要介绍在Mariab GUI环境下,上位机与智能车进行实时通信盼办法。该方法较之使用VC/VB高级语言编程,

  大大缩减了开发时间,提高了开发效率。另外,较之传统的RS-232接口,使用蓝牙接口能够更大范围地全方位进行数据传输和采集。实验结果表明,经过两次握手处理后数据传输实时稳定,具有很强的实用性。

  1 系统总体设计方案

  系统采用飞恩卡尔MCA8HCS12G128单片机作为智能车的控制器,PC机为上位机。利用Matlab GUI构建起二者的实时通信、数据处理和绘图等平台。整个系统的原理框图如图1所示,介绍了基于Matlab的GUI和串口通信机制下建立上位机与智能车实时通信和作图的平台方法。

  系统的原理框图

  智能车与PC机通过蓝牙相连,系统工作时,由Matlab调用设备控制工具箱中的serial类函数来设置串口属性,创建串口对象,从而实现Matlab对串口的控制和读写操作。在对智能车的调试过程中,可以通过Matlab向蓝牙发送特殊指令,启动智能车。在智能车系统运行后便可以将所采集位置和速度等效据通过蓝牙回送给PC机。

  由Matlab通过中断方式实时接收数据,并对数据进行分析和处理,实时绘出相应的图形。

  2 Matlab GUI设计介绍

  ①运行Matlab后,点击主界面左上角的GUI图标即可运行Matlab GUI开发工具。

  ②点击Blank GUI(Default)选项并点击OK按钮,完成新建Blank GUI.

  ③在新建的Blank GUI界面的右方菜单中添加设计所需要的元素,完成串口通信及数据实时显示等功能的GUI界面设计。

  ④编写GUI组建相应的响应控制代码,运行后的通信仿真界面如图2所示。

  运行后的通信仿真界面

  3 单片机与PC机串行通信

  3.1 设计思想

  MCA8HCS12G128单片机的软件设计需要实现对程序的初始化、接收与发送串口信号、速度和位置数据的采集等功能。为了保证上位机采集数据的可靠性和稳定性,防止出现丢包事件,在通信过程中约定了双方的握手方法。在程序初始化以后,等待fwrite命令发送的握手信号0xFF.当单片机第一次接收到的信号为0xFF时,则握手成功,并开始运行电机和激光头等子程序。在实验过程中发现存在发送的第一组数据第一个字节丢失的现象,为了增强数据的可靠性,首先判断数据包的前两个字节是否为0xFF,是则剔除相应字节,分离出有效的数据,再在回送的速度、激光传感器的数据中嵌入两个字节的握手信号0xFF,Matlab接收到串口的数据后进行相应的处理。智能车控制器通信的总程序流程如图3所示。

  智能车控制器通信的总程序流程

  3.2 系统蓝牙串口通信主要代码

  

4 基于Matlab GUI的PC机与智能车的通信

  4.1 Matlab GUI基础上实现串口通信的软件设计

  在Matlab环境下,读取串口数据有查询和中断两种方式。查询方式数据只能分批进行传送,实时性不高,且对系统资源的占用比较大。以中断方式实现的串口通信,通常的处理方式是对Matlab提供的instrcallback回调函数进行修改,采用事件驱动的方式,达到实时处理下位机传送数据的目的。但是采用Matlab的事件和回调函数机制编程要相对复杂一些,在对instreallback函数进行修改和备份等操作时容易出错且比较麻烦。另外,每次修改instreallbaek函数后都要重新启动Matlab,可能会导致数据丢失等一些不必要的麻烦。将事件驱动函数写入GUI组件的M文件中,可以减少绾程的复杂性,避免一些不必要的麻烦,实现串口之间的实时通信。

  4.2 设备控制工具箱介绍

  Matlab设备控制工具箱主要是提供Matlab软件与各种智能仪器的直接通信功能。工具箱提供了以下功能:

  ①支持串行接口(RS-232/RS-422/RS-485)、GPIB接口(IEEE 488)等通信协议。

  ②支持IVI、VXI plug&play和Matlab设备驱动(instrument drivers),不需要学会写与设备相关的指令即能与仪器直接联通。

  ③传输的数据可以是文本或二进制的(数字的)。

  ④支持同步和异步(有阻塞或无阻塞)通信。

  ⑤支持基于事件的通信。

  ⑥新的TMTOOL图形用户接口不仅能够连接仪器、接收/发送数据,而且可以自动生成M代码文件,以加入编写的Matlab程序中。

  5 基于Matlab GUI查询方式实现异步串行通信

  基于Matlab查询方式的非实时串口通信虽然编程简单,对数据的调用处理也更为容易,但是只能接收一个过程的数据,这在对实时性要求较高的系统中往往不能满足设计者的需求。以下为部分通信程序代码。

  

6 基于Matlab中断方式实现实时串行通信

  事件驱动方式的优点是程序响应及时,可靠性高。在Matlab环境下实现实时通信的中断方式,实际上就是采用事件驱动的方式实现的,类似于VB语言MSComm控件中OnComm事件的实现方法。当串口上监视到缓冲区有指定字节数目的数据可用(bytes-available event),串口接收到的数据长时间处于非激活状态(break-interrupt event),串行口引脚状态改变(pin-status event)或输出缓冲区为空(output empty eve nt)等事件发生时,Matlab会自动调用回调函数进行通信事件的处理。因此,事件驱动实质上是一种中断机制,而回调函数实质上相当于一个中断服务子程序。Matlab端实时串行通信的程序流程如图4所示。以下为两种不同的方式实现实时通信的中断机制程序。

  Matlab端实时串行通信的程序流程

  6.1 将中断服务子程序写入GUI组件的部分M文件代码

  主程序创建串口设备对象、设置串口设备属性及打开串口等初始化操作的代码与查询方式下的初始化代码相同:

  

  6.2 通过调用修改后的instroallback.m文件实现中断

  主程序:

  修改instreallback(obj,evenlt)回调函数,instrcallback.m文件包含了Matlab提供的回调函数程序模板,设计者可以根据需要自行添加相应的服务程序代码。Matlab安装目录下有两个instrcallback.m文件,只需要修改\MATLAB\toolbox\matlab\iofun\@instrument目录下的instrcallback.m文件即可。另外,在修改instrcallback.m文件之前,最好对其做一个备份。在修改了instrcallback(obj,event)回调函数后,需要对其进行保存,重新启动Matlab配置该文件,才使修改后的函数生效。

  智能车启动过程速度的实时显示

  图5为以下方式实现的智能车启动过程速度的实时显示,修改后的instrcallback.m文件主要程序代码如下:

  

  实验证明,基于Matlab事件驱动实现的智能车与上位机的实时串口通信可以很好地满足智能车调试过程中的需要,且将中断服务子程序写入GUI组件和修改instrcallback.m文件两种方式的通信都稳定可靠。

  结语

  在Matlab环境下两种实现智能车与PC机实时通信的中断机制都能实时稳定地进行数据传输,不过将中断服务子程序写入GUI组件的方式编程简单,数据处理方便,实现更为容易,开发效率相对得到了较大的提高。实践证明,采用这种方法是可行的,它不但能够应用于本文的智能车系统,也可广泛应用在其他具有串口通信能力的仪器设备中。

关键字:Matlab  GUI  PC机  智能车  无线通信 编辑:神话 引用地址:基于Matlab GUI的PC机与智能车的无线通信

上一篇:ADI实验室电路:灵活的中频至基带接收机解决方案
下一篇:ADI实验室电路:完整的HART兼容型4mA至20mA解决方案(一)

推荐阅读最新更新时间:2023-10-12 20:55

摄像头识别的智能车硬件系统设计
0 引言 近年来,智能车辆和智能交通已成为汽车和智能控制领域的研究热点之一。智能车即轮式移动机器人,智能车的设计涉及模式识别、传感技术、电子、控制、计算机、机械和电源等多个学科。智能小车能在非特定环境下工作,在探测、救生等方面具有广阔的应用前景,对智能循迹系统的研制和改进,对上述领域产品的研发具有推动作用。 本文以第七届飞思卡尔智能车比赛为背景,讨论摄像头识别的智能车在复杂道路条件下的运行情况。该系统采用MC9S12XS128微控制器作为核心控制器并结合OV7620图像传感器获取路况信息。微控制器输出三路PWM信号,其中两路用来控制车速,一路用来控制舵机的方向。三路信号均通过调节PWM信号的占空比,来控制直流电机的正转、反
[单片机]
摄像头识别的<font color='red'>智能车</font>硬件系统设计
基于TMS320C2XX DSP平台的USB接口设计
   引言   USB接口(Universal Serial Bus)是一种通用的高速串行接口。它最主要的特点是它的高速传输特性。USB1.1理论速度极限可以达到12Mb/s,USB2.0可达到 480Mb/s。这样,它可以很好解决大数据量的数据在嵌入式系统与PC机之间的互传问题;同时,它支持热插拔,并且最多同时支持127个外设,非常适合嵌入式系统的应用。   本次设计是在一个已有的DSP图像采集嵌入式系统的基础上,为它配接上一个USB1.1的接口,以达到DSP图像采集系统高速地将图像数据回传到PC机中的目的。设计的要求主要有:   ①在原有平台提供的接口基础上,加入一个低成本、高速度的USB接口;
[嵌入式]
单片机与IBM-PC机的串行通信分析
  51单片机和IBM - PC机是目前我国应用最广的两种微型计算机。作为单片机,51单片机不但功能强,体积小,价格低,而且使用方便,特别市场上提供的多种51单片机开发系统,为开发应用51单片机提供了非常方便的手段。因此,51单片机在许多领域,特别是工业控制和智能仪器领域已得到广泛的应用。事实已证明,51单片机已成为8位微机之首。作为系统机,IBM - PC的优点已众所周知,可以说,IBM - PC微机的出现为微机领域带来了一场革命。在我国,由于汉字操作系统( CCDOS)的引入,使得IBM - PC在各个领域得到迅速的推广使用。      串行通信是计算机进行数据通信的主要方式之一。由于其连线少,成本低,再加上有调制/解调功能,
[单片机]
单片机与IBM-<font color='red'>PC机</font>的串行通信分析
PC机与单片机之间的串口通信程序的设计与实现
  1.引言   在众多集成可视化开发环境中,VisualC++是编程环境的最佳选择,VC++应用程序的开发主要有两种模式,一种是WIN API方式,另一种是MFC方式,传统的WIN API方式比较繁琐,而MFC是对WIN API再次封装,MFC相对于WIN API开发更具备效率优势,开发者只要在局部做简单地修改,即可处理大部分窗口事物。MFC封装了200多个类并且提供了友好的界面环境,具有类管理灵活方便、代码编写和界面设计集成交互操作、可移植性强等优点,与各种数学手段和数据处理、分析算法相结合还可以实现海量数据分析,智能、快速、灵活数据处理,使便携现场检测仪器功能强,灵活度高,速度快,扩展性好。   串口通信具有连续
[单片机]
<font color='red'>PC机</font>与单片机之间的串口通信程序的设计与实现
matlab基本函数
matlab基本函数 abs :绝对值 acos :反余弦 acosh :反双曲余弦函数 acot :反余切 acoth :反双曲线余切 acsc :反余割 acsch :反双曲线余割 angle :相位角 asec :反正割 asech :反双曲线正割 asin :反正弦 asinh :反双曲线正弦 atan :反正切 atanh :反双曲线正切 atan2 :四象限反正切 ceil :向正无穷方向舍入 ceil(4.3)=5 complex :复数 conj :求共扼 cos :余弦 cosh :双曲余弦 cot :余切 coth :双曲线余切 csc :余割 csch
[嵌入式]
PC发展新流行趋势 放弃光驱采用触控屏
    PC 正在发生变化。通过走访电子商店,我们不难发现笔记本已经放弃了为我们所熟悉的部件,我们可以通过新方法控制某些 PC , PC 将日趋瘦身。尽管今年苹果iPhone和亚马逊的Kindle成为今年的热销产品,但 PC 仍然是数字世界的中心。下面是 PC 的一些流行趋势:     光驱终结     数年来, PC 都配置有光驱,用于运行CD或DVD。光驱主要用于安装新软件、看电影或将音乐转换为数字格式。但上网本热销使我们明白,用户并不留恋CD或DVD光驱。     苹果在两年前推出超薄MacBook Air时就去掉了光驱,但当时并未被视为计算机发展的主潮流,因为该款售价1800美元的计算机并不是面向主流消
[嵌入式]
基于MSP430的无线门禁控制系统设计
引言 随着人们生活水平的不断提高,家庭防盗这一问题也变得尤为突出。传统的机械锁因其结构简单、安全性差等缺陷,已经逐渐被淘汰,电磁锁由于其保密性高、使用灵话、安全系数高,逐渐进入千家万户。如果在一个家居系统中有多个门,就需要一套综合的门控系统,这样就可以监控所有楼门的开关。 参考文献设计的门控系统是以AT89S51单片机为控制核心,系统功耗较大,使用成本较高,所以其应用具有一定的局限性。参考文献设计的门控系统利用局域网进行组网控制,所以制作成本较高,而且应用范围有限。针对以上缺点,本系统采用MSP430系列单片机CCA30F5135芯片为控制核心,其不但具有MSP430系列单片机的低功耗性能,而且具有RF无线收发器的功能,RF
[单片机]
基于MSP430的无线门禁控制系统设计
Rohde & Schwarz无线通信测试仪具有HSDPA监视功能
Rohde & Schwarz推出R&S CMU300通用通信测试仪,它可以检查Node B(UMTS基站)的高速下行分组接入(HSDPA)设置,以及进行物理HSDPA信道的测量统计。新R&S CMU-K72 HSDPA监视功能支持数据流量测量,作为资源分配分析与优化算法的基础。 Rohde & Schwarz公司称,HSDPA技术使网络运营商面临着要提供所有智能网新业务的挑战。它们必须决定现有UMTS网络的哪些部分先采用PSDPA技术升级,因为未来HSDPA用户将与其他UMTS用户共享资源并且必须具有足够的覆盖范围。为了向HSDPA用户选择性分配特定网络能力,运营商必须在其空中接口采用HSDPA参数。 利用R&S C
[新品]
小广播
最新模拟电子文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved