新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 基于Matlab GUI的PC机与智能车的无线通信

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

作者:时间:2013-12-14来源:网络收藏
: 0px; PADDING-TOP: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">  运行后的通信仿真界面

  3 单片机与串行通信

  3.1 设计思想

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

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

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

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

4 基于 的通信

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

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

  4.2 设备控制工具箱介绍

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

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

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

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

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

  ⑤支持基于事件的通信。

数字通信相关文章:数字通信原理




关键词: Matlab GUI PC机 智能车 无线通信

评论


相关推荐

技术专区

关闭