1MATLAB及相关技术 ···················· 1 2.1 MATLAB的发展现状 ·················· 1 2.2 图形用户界面(GUI) ················· 1 2.3 GUI控件对象类型及描述 ················ 2 2.4 控件对象的属性 ···················· 3 2MATLAB串口通信技术 ··················· 4 3.1 MATLAB外部函数接口简介 ··············· 4 3.2 USB-CAN总线 ············· 错误!未定义书签。 3GUI设计方法 ···············4.1 GUI设计标准 ·····················4.2 创建用户界面 ·············5.1 系统功能分析 ·············5.2 软件界面 ···············5.3 主界面的设计实现 ·设计总结 ·················致 谢 ·················参 考 资 料 ················ 错误!未定义书签。 5 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。
··········
1 总体介绍
基于MATLAB的在线监控平台是指通过MATLAB软件和USB转CAN总线实现单片机上的数据接收和发送,从而实现伺服系统速度、电流的采集及波形显示;实现对速度的控制。下文将先介绍MATLAB/GUI界面和USB-CAN总线串口通信技术,然后分析基于MATLAB的GUI设计方法,最后设计一个GUI界面。
随着计算机技术的发展,计算机在信号处理中的应用越来越广泛,并且变得越来越重要,它能使得各种复杂的处理算法得以实现。但是数据采集到计算机后要进行各种处理,使用VC、VB等编程语言就显得不方便。由于MATLAB提供功能强大的各种计算,只要几个语句就能实现诸如各种方法的滤波、系统辨识、小波变换等,因此采用MATLAB软件非常适合。Matlab不仅具有强大的科学计算功能,还具有满足一般要求的数据采集以及,界面设计开发功能。Matlab GUI(Graphic User Interface)就是内置于Matlab的进行图形界面开发的模块。本文利用Matlab GUI设计通过串口进行数据发送和接收的界面,基于 Matlab的串口通信通过USB-CAN总线实现串口数据发送与接收功能。
2 MATLAB及相关技术
2.1 MATLAB的发展现状
MATLAB产品系列被广泛地应用于包括信号与图像处理、控制系统设计、通讯、
系统仿真等诸多领域,是集数学计算结果可视化和编程于一体, 能够方便地进行科学计算和大量工程运算的数学软件。它的一大特性就是数据采集,报告生成,和依靠MATLAB语言编程产生独立C/C++代码等等。其在信号处理中的应用显得越来越重要,使得各种复杂的处理算法得以实现。MATLAB 提供了众多外部函数接口, 本文从中选择MEX 文件接口作为MATLAB 对外界进行读写通道,首先USBCAN 接口卡进行设计, 接下来以这个接口卡为通道, 实现了MATLAB对于硬件的访问。
2.2 图形用户界面(GUI)
GUI是由各种图形对象组成的用户界面,在这种用户界面下,用户的命令和对程
序的控制是通过“选择”各种图形对象来实现的。 MATLAB中的图形用户界面设计向导包括以下6个工具:
1.布局编辑器(Layout Edtor)——在图形窗口中创建及布置图形对象。布局编辑器
1
是可以启动用户界面的控制面板,上述工具都必须从布局编辑器中访问,用guide命令可以启动,或在启动平台窗口中选择GUIDE来启动布局编辑器
2. 几何排列工具(Alignment Tool)——调整各对象相互之间的几何关系和位置; 3. 对象浏览器(Object Browser)——用于获得当前MATLAB图形用户界面程序中的全部对象信息,对象的类型,同时显示控件的名称和标识,在控件上双击鼠标可以打开该控件的属性编辑器;
4. 属性查看器(Property Inspector)——查询并设置属性值;
5. 菜单编辑器(Menu Editor)——创建、设计、修改下拉式菜单和快捷菜单; 6. Tab顺序编辑器(Tab Order Editor)——用于设置当用户按下键盘上的Tab键时,对象被选中的先后顺序。
2.3 GUI控件对象类型及描述
控件对象是事件响应的图形界面对象。当某一事件发生时,应用程序会做出响应并执行某些预定的功能子程序(Callback)。
控件对象及其功能:
1.按钮(Push Buttons):执行某种预定的功能或操作;
2.开关按钮(Toggle Button):产生一个动作并指示一个二进制状态(开或关),当鼠点击它时按钮将下陷,并执行callback(回调函数)中指定的内容,再次点击,按钮复原,并再次执行callback中的内容;
3. 单选框(Radio Button):单个的单选框用来在两种状态之间切换,多个单选框组成一个单选框组时,用户只能在一组状态中选择单一的状态,或称为单选项; 4. 复选框(Check Boxes):单个的复选框用来在两种状态之间切换,多个复选框组成一个复选框组时,可使用户在一组状态中作组合式的选择,或称为多选项; 5.文本编辑器(Editable Texts):用来使用键盘输入字符串的值,可以对编辑框中的内容进行编辑、删除和替换等操作;
6.静态文本框(Static Texts):仅仅用于显示单行的说明文字; 7. 滚动条(Slider): 可输入指定范围的数量值; 8. 边框(Frames):在图形窗口圈出一块区域;
9. 列表框(List Boxes):在其中定义一系列可供选择的字符串;
10.弹出式菜单(Popup Menus): 让用户从一列菜单项中选择一项作为参数输入;
2
此外还有坐标轴(Axes)用于显示图形和图像。
MATLAB中的控件大致可分为两种,一种为动作控件,鼠标点击这些控件时会产生相应的响应。一种为静态控件,是一种不产生响应的控件,如文本框等。
每种控件都有一些可以设置的参数,用于表现控件的外形、功能及效果,既属性。属性由两部分组成:属性名和属性值,它们必须是成对出现的。
2.4 控件对象的属性
控件对象属性:第一类是所有控件对象都具有的公共属性,第二类是控件对象作为图形对象所具有的属性。 1.控件对象的公共属性
Parent 取值为某个图形窗口对象的句柄,该句柄表明了控件对象所在的图形窗口; Children 取值为空矩阵,因为控件对象没有自己的子对象;
Tag 取值为字符串,定义了控件的标识值,在任何程序中都可以通过这个标识值控制该控件对象;
UserDate 取值为空矩阵,用于保存与该控件对象相关的重要数据和信息; Visible 取值为no 或off。 2.控件对象的基本控制属性
BackgroundColor 取值为颜色的预定义字符或RGB数值; ForegroundColor 取值为颜色的预定义字符或RGB数值; Enable 取值为on(缺省值),inactive和off;
Extend 取值为四元素矢量[0,0 width, height],记录控件对象标题字符的位置和尺寸;
String 取值为字符串矩阵或数组,定义控件对象标题或选项内容; Max,Min 取值都为数值;
Callback 取值为字符串,可以是某个M文件名或一小段MATLAB语句,当用户激活某个控件对象时,应用程序就运行该属性定义的子程序;
Style 取值可以是pushbutton, radiobutton, checkbox, edit, text, slider, frame, popupmenu 或listbox;
Value 取值可以是矢量,也可以是数值,其含义及解释依赖于控件对象的类型。 3.Callback管理属性
3
BusyAction 取值为cancel或queue;
ButtDownFun 取值为字符串,一般为某个M文件名或一小段MATLAB程序; Creatfun 取值为字符串,一般为某个M文件名或一小段MATLAB程序; DeletFun 取值为字符串,一般为某个M文件名或一小段MATLAB程序; HandleVisibility 取值为on, callback或off; Interruptible 取值为on 或off。
此外还有控件对象的修饰控制属性和控件对象的辅助属性。
3 MATLAB串口通信技术
3.1 MATLAB外部函数接口简介
MATLAB 具有良好的扩展性以及强大的数据分析能力和处理能力,且拥有一套
完整的、功能齐全的编程环境,。但在某些情况下, 与外部环境的数据和程序进行实时交换是非常重要的。但MATLAB只支持串口和很少一部分硬件, 不能实现对数据的实时采集, 它所处理的数据必须是现成的。因此它不能很好地用于需要在现场对数据进行分析和处理。MATLAB本身是一个跨平台的软件, 并不具备直接访问硬件的能力。即使安装了驱动程序并能正常工作的硬件设备, MATLAB 也没有统一的形式对其进行访问。所以对于USBCAN 接口卡的设计完成后, 需要选择一种MATLAB的外部接口函数, 以便于MATLAB通过USBCAN 接口卡对于CAN 总线上的数据进行接收和发送。通过定义串口对象的属性,就能定义串口的通信模式,从串口对象属性也能了解串口的状态。
表1 串口对象属性
串口属性 含义
BaudRate 定义传输波特率
DataBits 定义每帧数据的比特位数 Parity 定义奇偶校验类型
StopBits 定义用于表示帧结束的比特位数 Terminator 定义结束字符
ReadAsyncMode 定义异步读操作为连续方式还是手工方式 BreakInterruptFcn 定义中断事件的回调函数
PinStatusFcn 定义当串口的CD,CTSC,DSR 或RI 针状态变化
时触发的回调函数
3.2 USB-CAN总线
本课题设计的CAN-USB转接卡的功能是:采集CAN总线上的数据,通过USB总线和上
4