已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于MATLAB的温度检测系统设计 成人教育学院毕业设计论文 2012 年 6 月目 录前言31 系统总体结构42 系统硬件42.1 系统的硬件设计42.2 AT89S52单片机实验开发板52.2.1 AT89S52单片机介绍62.2.2 串行接口介绍82.3 DS18B20传感器简介102.3.1 DS18B20内部结构102.3.2 DS18B20的工作原理112.3.3 DS18B20的指令系统122.3.4 DS18B20的通信协议132.3.5 DS18B20使用中注意事项142.3.6 DS18B20与单片机的典型接口设计153 系统的软件设计163.1下位机程序设计163.2 MATLAB程序设计173.2.1 MATLAB串口通信技术183.2.2 MATLAB GUI介绍203.2.3 GUI界面设计214 系统调试234.1 下位机调试234.2 串口调试234.3 系统联调24基于MATLAB的温度检测系统设计前言温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。传统靠人工控制的温度、湿度、液位等信号的测压力控系统,外围电路比较复杂,测量精度较低,分辨率不高,需进行温度校准非线性校准、温度补偿、传感器标定等;且它们的体积较大、使用不够方便,更重要的是参数的设定需要有其它仪表的参与,外界设备多,成本高,因而越来越适应不了社会的要求。在对多类型、多通道信号同时进行检测和控制中,传统的测控系统能力有限。如何将计算机与各种设施、设备结合,简化人工操作并实现自动控制,满足社会的需求,成为一个很迫切的问题。温度检测是现代检测技术的重要组成部分,在保证产品质量、节约能源和安全生产等方面起着关键的作用。随着电子技术和微型计算机的迅速发展,微机测量和控制技术得到了迅速的发展和广泛的应用。单片机具有处理能力强、运行速度快、功耗低等优点,应用在温度测量与控制方面,控制简单方便,测量范围广,精度较高。由单片集成电路构成的温度传感器的种类越来越多,测量的精度越来越高,响应时间越来越短,因其使用方便、无需变换电路等特点已经得到了广泛的应用,例如:以前常用的AD590和LM35等,以及现在得到广泛应用的DSl820、DS1821和DS1620等。本次毕业设计正是为了完成温度采集而设计的,而且采用了美国DALLAS公司生产的可组网数字式温度传感器DS18B20。由于物体的性质与稳定有着非常密切的关系,因此在工农业生产中,经常会遇到温度的测量和控制问题,它对保证生产质量、提高生产效率、节约能源及促进国民经济的发展起着非常重要的作用。新型数字化、网络化传感器在工程中的应用具有极其重要的意义。这类传感器是 各种参量送入计算机系统,进行智能监测、控制的最前端。随着科技的发展,数字化、网络化传感器应用日益广泛,以其传统方式不可比拟的优势渐渐成为技术的趋势和主流。近年来,利用智能化数字式温度传感器以实现温度信息的在线检测已成为温度检测技术的一种发展趋势。数字化技术推动了信息化的革命,在传感器的器件结构上采用数字化技术,使信息的采集更加方便。例如,对于温度信号采集系统,传统的模拟温度传感器多为铂电阻、铜电阻等。每一个传输线至少有两根导线,带补偿接法需要三根导线。如果对50路温度信号进行检测,就需要100根导线接到采集端口,然后还要经过电桥电路、信号放大、通道选择、AD转换等,才能将温度信号供计算机处理。而DS18B20新型单总线数字温度传感器,采用3脚或8脚封装,从DS18B20读出或图1 总设计框图写入数据仅需要一根IO口线。,使得硬件电路结构简单,广泛使用于距离远,节点分布多的场合。具有较强的推广应用价值。1 系统总体结构本次设计的目的就是以数字传感器DS18B20作为前端,采集温度经过单片机处理后,再采用串口通信,在MATLAB环境下对数据进行分析与处理,将结果用图形显示并储存,完成人机交互过程。系统总体设计如图1所示。本系统的设计包括硬件和软件两大部分。系统的硬件部分大致可分为四部分:DS18B20温度采集部分、单片机处理部分、显示部分、与计算机串口通信部分。系统的软件部分分为五大部分:读取DS18B20的内部数据部分、单片机对温度的处理部分、数码显示部分、串口通信部分、MATLAB界面部分。2 系统硬件2.1 系统的硬件设计在本设计提出在上位机MATLAB 环境下,使用RS232串行接口实时接收。该方法较之使用VC、VB高级语言编程,极大地缩减了开发时间,提高了开发效率。系统主要由上位机PC机和下位机AT89S52部分。上位机和下位机通过RS232进行通讯。上位机负责数据处理和图形化显示,它是在MATLAB环境下进行的,应用了仪器控制工具箱中关于串行通信的函数,通过程序控制整个系统的工作并进行数据处理。下位机负责数据采集和响应主机的控制处理信号。本设计中,由DS18B20构成的单片机温度测量装置主要由四部成:DS18B20温度传感器、AT89S52、显示模块和电源模块图2所示。产品的主要技术指标:测量范围:-55.0+125.0,测量精度:0.1,反应时间1.5s。图2 温度检测系统结构图2.2 AT89S52单片机实验开发板该开发板可对ATMEL公司的89S5x系列ISP单片机AT89S51、 AT89S52、 AT89S53、 AT89LS53、 AT89S8252、AT89LS8252的DIP40封装的器件进行直接编程操作。单片机开发板结构如图3。图3 AT89S5x单片机实验开发板整体结构开发板的结构: 1CPU系统:包括复位、时钟、在线编程电路及I/O引线插孔; 2串行接口:采用232构成; 3显示模块:采用串行显示,由六片74HC164和六个七段共阴数码管组成; 4模数转换模块:采用ADC0809及外围器件,能实现8路八位的模数采集; 5数模转换模块:采用串行D/A转换TLC5616,能实现10位的数模转换; 6LED显示模块:由8个LED灯构成,其中3个红灯、2个黄灯、3个绿灯; 7单脉冲发生电路:产生单个正或负脉冲; 8用户外接元件区:方便用户外加少量外接元件进行实验。本设计只用到CPU系统,串行接口,显示模块。CPU系统由AT89S52单片机组成。串行接口是RS232串口。下面对各个部分作一简单介绍。2.2.1 AT89S52单片机介绍2.2.1.1 单片机简介Atmel公司的AT89S52芯片是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。2.2.1.2 单片机引脚功能AT89S52芯片采用40脚双列直插封装方式。当然,不同芯片之间引脚功能也略有差异。AT89S52单片机是高性能单片机,因为受到引脚数目的限制,有部分引脚具有第二功能。引脚分配如图4所示。图4 AT89S52双列直插式封装和引脚分配下面以双列直插式为例,介绍AT89S52单片机的引脚。引脚可分为三个部分:I/O口引脚、控制引脚和电源时钟引脚。P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如表1所示。表1 P1口的第二功能P2 口:P2口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如表2所示。在flash编程和校验时,P3口也接收一些控制信号。2.2.2 串行接口介绍2.2.2.1 RS232C简介计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。RS-232-C接口又称EIARS-232-C是目前最常用的一种串行通讯接口。它是在1970年由美国电子工业协会EIA联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是数据终端设备DTE和数据通讯设备DCE之间串行二进制数据交换接口技术标准该标准规定采用一个25个脚的DB25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。1接口的信号内容:实际上RS-232-C的25条引线中有许多是很少使用的,在计算机与终端通讯中一般只使用39条引线。2接口的电气特性:在RS-232-C中任何一条信号线的电压均为负逻辑关系。即逻辑“1”,-5-15V:逻辑“0”,+5+15V。噪声容限为:2V。即要求接收器能识别低至+3V的信号作为逻辑“0”,高到-3V的信号作为逻辑“1。3接口的物理结构RS-232-C接口连接器一般使用型号为DB-25的25芯插头座,通常插头在DCE端,插座在DTE端,一些设备与PC机连接的RS-232-C接口,因为不使用对方的传送控制信号,只需三条接口线,即“发送数据”、“接收数据”和“信号地”。所以采用DB-9的9芯插头座,传输线采用屏蔽双绞线。由于RS-232-C接口标准出现较早,难免有不足之处,主要有以下四点:1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。2)传输速率较低,在异步传输时,波特率为20Kbps。3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种其地传输容易产生共模干扰,所以抗噪声干扰性弱。4)传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在50米左右。2.2.2.2 232芯片介绍232是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。由于电脑串口rs232电平是-10v +10v,而一般的单片机应用系统的信号电压是ttl电平0 +5v,232就是用来进行电平转换的,该器件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-V TTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。主要特点:1)单5V电源工作2) LinBiCMOSTM工艺技术3) 两个驱动器及两个接收器4) 30V输入电平5)低电源电流:典型值是8mA6)符合甚至优于ANSI标准 EIA/TIA-232-E及ITU推荐标准V.287)ESD保护大于MIL-STD-883(方法3015)标准的2000V2.3 DS18B20传感器简介由DALLAS半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现912 位的数字值读数方式。其可以分别在93.75ms和750ms内完成9位和12位的数字量,最大分辨率为0.0625 而且从DS18B20 读出或写入DS18B20的信息仅需要一根口线(单线接口)写。2.3.1 DS18B20内部结构DS18B20的外形及引脚功能说明:图5为DS18B20引脚。图5 DS18B20底视图1 GND :地。2 DQ :单线运用的数据输入输出。3 VDD :可选的电源引脚。DS18B20利用Dallas的单总线控制协议,实现了利用单线控制信号在总线上进行通信。由于所有的设备通过漏极开路端即DS18B20的DQ脚连在总线上,控制线需要一个上拉电阻大约5k 。在这一总线系统中,微控制器控设备通过唯一的64位序列码识别和访问总线上的器件。采用3脚PR 35封装或8脚SO IC封装, 其内部结构框图如图6所示。64 位ROM 的结构开始8位是产品类型的图6 DS18B20内部结构编号, 接着是接着的48 位是唯一的系列号,最后的8 位是开始56 位CRC。64位ROM 和ROM 操作控制部分允许DS18B20作为一个单线器件工作并遵循单线协议。直到ROM 操作协议被满足DS18B20 控制部分的功能是不可访问的。单线总线主机必须首先操作五种ROM 操作命令之一:1)Read ROM读ROM,2Match ROM匹配ROM, 3Search ROM搜索ROM,4Skip ROM跳过ROM,或5Alarm Search(告警搜索)。在成功地执行了ROM 操作序列之后,DS18B20 特定的功能便可访问,然后总线上主机可提供六个存贮器和控制功能命令之一。DS18B20温度传感器的内部存储器还包括一个高速暂存RAM 和一个非易失性的可电擦除的EEP2ROM。高速暂存RAM的为9字节的存储器,结构如表2所示。表2 DS18B20字节定义其中1、2字节用来存放当前温度, 1为低8位, 2为高8位。字节3、4用来预置报警温度的上下限,字节5用于配置寄存器,用于确定温度数据位数,字节6、7、8均为保留字节,字节9存放前8个字节循环冗余校验码。2.3.2 DS18B20的工作原理DS18B20的测温原理如图7所示,图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将- 55所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1 和温度寄存器被预置在-55所对应的一个基数值减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当图7 DS18B20的内部测温电路框图减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。在DS18B20完成温度变换之后,温度值与贮存在TH和TL 内的触发值相比较。因为这些寄存器仅仅是8位,所以0. 5位在比较时被忽略。TH或TL的最高有效位直接对应于16位温度寄存器的符号位。如果温度测量的结果高于TH或低于TL,那么器件内告警标志将置位。每次温度测量更新此标志。只要告警标志置位,DS18B20将对告警搜索命令作出响应。这允许并联多个DS18B20,同时进行温度测量。如果某处温度超过极限,那么可以识别出正在告警的器件并立即将其读出而不必读出非告警的器件。2.3.3 DS18B20的指令系统读暂存存储器 指令代码BEh此命令读暂存存储器的内容。读开始于字节0,并继续经过暂存存储器,直至第九个字节(字节8,CRC)被读出为止。如果不是所有位置均可读,那么主机可以在任何时候发出一复位以中止读操作。复制暂存存储器 指令代码48h此命令把暂存存储器复制入DS18B20的E2存储器,把温度触发器字节存贮入非易失性存储器,如果总线主机在此命令之后发出读时间片,那么只要DS18B20 正忙于把暂存存储器复制入E2,它就会在总线上输出“0”当复制过程完成之后,它将返回“1”。如果由寄生电源供电,总线主机在发出此命令之后必须能立即强制上拉至少10ms。温度变换 指令代码44h此命令开始温度变换。不需要另外的数据温度变换将被执行,接着DS18B20便保持在空闲状态。如果总线主机在此命令之后发出读时间片,那么只要DS18B20正忙于进行温度变换,它将在总线上输出“0”;当温度变换完成时它便返回“1”。如果由寄生电源供电,那么总线主机在发出此命令之后必须立即强制上拉至少2秒。重新调出E2指令代码B8h此命令把贮存在E2中温度触发器的值重新调至暂存存储器。这种重新调出的操作在对DS18B20上电时也自动发生,因此,只要器件一接电,暂存存储器内就有有效的数据可供使用。在此命令发出之后,对于所发出的第一个读数据时间片,器件都将输出其忙的标志“0”忙,“1” 准备就绪。读电源 指令代码B4h对于在此命令送至DS18B20之后所发出的第一读出数据的时间片,器件都会给出其电源方式的信号“0”寄生电源供电,“1”外部电源供电。2.3.4 DS18B20的通信协议DS18B20器件要求采用严格的通信协议,以保证数据的完整性。该协议定义了几种信号类型:复位脉冲,应答脉冲时隙;写0,写1时隙;读0,读1时隙。与DS18B20的通信,是通过操作时隙完成单总线上的数据传输。发送所有的命令和数据时,都是字节的低位在前,高位在后。1)复位和应答脉冲时隙每个通信周期起始于微控制器发出的复位脉冲,其后紧跟DS18B20发出的应答脉冲,在写时隙期间,主机向DS18B20器件写入数据,而在读时隙期间,主机读入来自DS18B20的数据。在每一个时隙,总线只能传输一位数据。时序图见图8。2)写时隙当主机将单总线DQ从逻辑高拉到逻辑低时,即启动一个写时隙,所有的写时隙必须在60-120us完成,且在每个循环之间至少需要1us的恢复时间。写0和写1时隙如图所示。在写0时隙期间,微控制器在整个时隙中将总线拉低;而写1时隙期间,微控制器将总线拉低,然后在时隙起始后15us之释放总线。时序图见图9。3)读时隙?DS18B20器件仅在主机发出读时隙时,才向主机传输数据。所以在主机发出读数据命令后,必须马上产生读时隙,以便DS18B20能够传输数据。所有的读时隙至少需要60us,且在两次独立的读时隙之间,至少需要1us的恢复时间。每个读时隙都由主机发起,至少拉低总线1us。在主机发起读时隙之后,DS18B20器件才开始在总线上发送0或1,若DS18B20发送1,则保持总线为高电平。若发送为0,则拉低总线当发送0时,DS18B20在该时隙结束后,释放总线,由上拉电阻将总线拉回至高电平状态。DS18B20发出的数据,在起始时隙之后保持有效时间为15us。因而主机在读时隙期间,必须释放总线。并且在时隙起始后的15us之内采样总线的状态。时序图见图9。图8 复位和应答脉冲时隙图9 读写时序2.3.5 DS18B20使用中注意事项DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS18B20操作部分最好采用汇编语言实现。2)在DS18B20的有关资料中均未提及单总线上所挂DS182B0数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此。当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。3)在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。2.3.6 DS18B20单片机的典型接口设计在硬件上,DS18B20与单片机的连接有两种方法:一种是Vcc接外部电源,GND接地,I/O与单片机的I/O线相连。此方法可以使所有使用外部电源的DS18B20同时完成温度变换。另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。DS18B20内部电容在I/O 线为高电平时贮存能量,在I/O线为低电平时消耗能量,并在I/O信号线再为高电平时能量得得到补充。这样,DS1820 在不需要外部提供能量的情况下就可以完成各项操作命令。值得注意的是,采用此种方法时UDD引脚必须接地。使用寄生电源的优点是:1远程温度检测无需本地电源;2缺少正常电源条件下也可读ROM。就两种方式相比较而言,寄生电源方式少用一根导线,但它完成温度测量所需的时间较长,而外部电源方式测量速度则要快些。无论是内部寄生电源还是外部供电,I/O口线要接4.7K左右的上拉电阻。图10给出了DS18B20与微处理器的典型连接。图10a中DS18B20采用寄生电源方式,其VDD和GNG端均接地,图10b中DS18B20采用外接电源方式,其VDD端用3V5.5V电源供电。本系统采用图10b所示接线方式,即外接电源工作方式。图10 (a)寄生电源工作方式图10 (b)外接电源工作方式3 系统的软件设计3.1 下位机程序设计下位机采用MCS51单片机指令进行编程,主要包括初始化、温度计算、温度显示三部分组成。DS18B20对时序和电性参数的要求很高,主CPU经过单总线接口访问DS18B20的工作流程必须要遵守严格的操作顺序:首先,对DS18B20进行初始化;其次,发送ROM命令;再则,发送功能命令。程序主流程如图11所示。源程序见附录。图11 测温主流程框图3.2 MATLAB程序设计MATLAB是由美国mathworks公司开发的面向理论分析研究和工程设计处理的一套具有强大功能的软件系统。在设计研究单位和工业部门,MATLAB被认作进行高效研究、开发的首选软件工具。其编程语法规则与一般的结构化编程语言大同小异,而且使用更方便,具有一般编程基础的用户都可以很快熟练掌握。MATLAB具有超强的数据处理能力,被广泛的应用于信号处理、自动控制等领域,而且它的图形用户界面编程技术GUIDE简单易学,即使非专业人员也能编制出界面友好、功能强大的应用程序。对于一般的微转换器,实现数据的采集过程较为简单,但要对采集的结果进行快速的实时处理就比较困难,因为绝大多数MCU只提供简单的8位无符号数的四则运算指令系统,对于有符号数的乘方、开方等运算软件实现起来比较困难。3.2.1 MATLAB串口通信技术对于WINDOWS系统而言,硬件系统的驱动程序有着十分严格的规范,可以用C或汇编语言进行开发,而MATLAB本身是一个跨平台的软件,并不具备直接访问硬件的能力。即使安装了驱动程序并能正常作的硬件设备,MATLAB也没有统一的形式对其进行访问。对于系统的串口,在MATLAB6.X中以类SERIAL的形式提供了支持。当用指令建立了一个串口对象句柄以后,对串口的硬件操作可以文件操作的软件形式来完成,方法比较简单。在MATLAB中的设备控制工具条INSTRUMENT CONTR0L T00LB0X用来负责上、下位机之间的通信。该设备控制工具箱的特色如下:1支持基于串行接口RS-232、RS-422、RS-485、GPIB总线IEEE2488、HPIB标准、VISA总线的通信;2通信数据支持二进制和文本ASCII两种方式,文本方式支持SCPIStandard Commands for ProgrammableInstruments语言;3支持异步通信和同步通信;4支持基于事件驱动的通信。从以上Matlab设备控制工具箱的特点可以看到,Matlab完全可以满足我们实现串行通信的要求。Matlab对串行口的编程控制主要分为四个步骤。1创建串口设备对象并设置其属性。comserialcom1;%创建串口1的设备对象com1com.TerminatorCR;%设置终止符为CR回车符,缺省为LF换行符com.InputBufferSize1024;%输入缓冲区为256B,缺省值为512Bcom.OutputBufferSize1024;%输出缓冲区为256B,缺省值为512Bcom.Timeout0.5;%设置一次读或写操作的最大完成时间为0.5s,缺省值为10ss.ReadAsyncModecontinuous缺省方式;%在异步通信模式方式下,读取串口数据采用连续接收数据continuous的缺省方式,那么下位机返回的数据会自动地存入输入缓冲区中。注意:有些属性只有在对象没有被打开时才能改变其值,如InputBufferSize、OutputBufferSize属性等。对于一个RS-232/RS-422/RS-485串口设备对象,其属性的缺省值为波特率9600b/s,异步方式,通信数据格式为8位数据位,无奇偶校验位,1位停止位。如果要设置的串口设备对象的属性值与缺省值的属性值相同,用户可以不用另行设置。另外,设置串口设备对象的属性也可以用一条指令完成,如:comserialCOM1,BaudRate,38400,Parity,none,DataBits,8,StopBits,1。也可以用set命令,如setcom,BaudRate,19200,Parity,even。创建了对象后可以在Matlab命令窗口直接敲对象名并回车,看到其基本属性和当前状态。若需要知道其全部的属性,可以用getscom命令。2打开串口设备对象。fopencom;3读写串口操作。初始化并打开串口设备对象之后,现在可以对串口设备对象进行读写操作,串口的读写操作支持二进制和文本ASCII两种方式。当Matlab通信数据采用文本ASCII方式时,读写串口设备的命令分别是fscanf、fpritf;当Matlab通信数据采用二进制方式时,读写串口设备的命令分别是fread、fwrite。下面以文本方式读写串口为例:a.读串口。Afscanfcom1,%d,10,100;%从串口设备对象com1中读入10*100个数据填充到数组A10,100中,并以整型的数据格式存放。b.写串口。fprintfcom1,%s,RS232?,async;%将字符串RS232?以字符的数据格式写入到串口设备com1,写操作以异步的方式进行。4关闭并清除设备对象。fclosecom;%关闭串口设备对象deletecom;%删除内存中的串口设备对象clear com;%清除工作空间中的串口设备对象当不再使用该串口设备对象时,顺序使用以上3条命令,可以将所创建的串口设备对象清除,以免占用系统资源。可以看出,在Matlab中进行串行通信是十分方便的,编程较为简单。而且,在Matlab中串行通信的失误率很低,通信较为可靠,也可以采用增加握手信号以及数据校验等的方式进一步增加通信的可靠性。INSTRUMENT C0NTR0L T00LB0X包括两大部件:M文件函数和接口驱动适配器。这两部件提供了MATLAB与外设的通讯功能。MATLAB的两大部件提供一条外设与MATLAB之问的交互通道,使用户与外设之间进行信息获取和传送。同许多高级语言一样,MATLAB通过调用M文件函数来创建设备对象,得到设备的文件句柄,而设备驱动程序作为操作系统中直接控制硬件的模块,是链接操作系统内核与系统外部设备I/0操作的关键模块。它将具体的硬件细节隐藏实现对外设操作的透明,因此MATLAB可以象操作文件一样实现对外设的读、写操作。同时MATIAB支持二进制和文本ASCII 两种串行通信方式,支持异步通信和同步通信;支持查询和基于事件驱动的两种串行通信方式。3.2.2 MATLAB GUI介绍图形用户界面graphical user interface,GUI是由窗口、光标、按键、菜单、文字说明等对象Object构成的一个用户界面。用户通过一定的方法如鼠标或键盘选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。假如科技工作者仅仅执行数据分析、解方程等工作,一般不会考虑GUI的制作。但是如果想向客户提供应用程序,想进行某种技术、方法的演示,想制作一个供反复使用且操作简单的专用工具,那么图形用户界面是最好的选择之一。Matlab为表现其基本功能而设计的演示程序demo是使用图形界面的最好范例。Matlab的用户在指令窗口中运行demo打开图形界面后,只要用鼠标进行选择和点击,就可浏览丰富多彩的内容。开发实际的应用程序时应该尽量保持程序的界面友好,因为程序界面是应用程序和用户进行交互的环境。在当前情况下,使用图形用户界面是最常用的方法。提供图形用户界面可使用户更方便地使用应用程序,不需要了解应用程序怎样执行各种命令,只需要了解图形界面组件的使用方法;同时,不需要了解各种命令是如何执行的,只要通过用户界面进行交互操作就可以正确执行程序。在Matlab中,图形用户界面是一种包含多种图形对象的界面,典型的图形界面包括图形显示区域、功能按钮空间以及用户自定义的功能菜单等。为了让界面实现各种功能,需要对各个图形对象进行布局和时间编程。这样,当用户激活对应的GUI对象时,就能执行相应的时间行为。最后,必须保存和发布自己创建的GUI,使得用户可以应用GUI对象。在Matlab中,所有对象都可以使用M文件进行编写。GUI也是一种Matlab对象,因此,可以使用M文件来创建GUI。使用M文件创建GUI的方法也是最基础的,使用其他方法创建GUI图形界面时,实现图形控件的各种功能时,也需要编写相应的程序代码。除了使用M文件来创建GUI对象之外,Matlab还为用户开发图形界面提供了一个方便高效的集成开发环境:Matlab图形用户界面开发环境matlab graphical user interface dev
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年标准工程师工作报告
- 工程施工合同
- 预算管理制度
- 人员培训与提升承诺函9篇
- 2026年内蒙古科技职业学院单招综合素质考试题库含答案详解(培优)
- 2026年保定职业技术学院单招职业技能考试题库附参考答案详解(模拟题)
- 新媒体内容策划及执行方案
- 网络销售合同范本与注意事项解析
- 上海五星级酒店工程施工组织设计范本
- 建筑施工安全教育记录内容
- 搅拌站设备安装组织方案
- 学校冷冻食品配送投标方案
- 12345政务热线招录工作人员的笔试备考题库及答案详解一套
- 2025年通辽单招题库及答案护理
- 2025至2030中国真空(泵和阀门)行业项目调研及市场前景预测评估报告
- 机场值机考试试题及答案
- 房子转让过户协议书范本
- 《网络与通信技术》全套教学课件
- 防御性驾驶安全培训内容
- 家校沟通策略与实施方法
- 物业工程主管岗位面试问题及答案
评论
0/150
提交评论