欢迎来到天天文库
浏览记录
ID:36230982
大小:268.98 KB
页数:11页
时间:2019-05-07
《matlab串口通信》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、摘要:结合单片机和Matlab两者优点,基于事件驱动中断通信机制,提出一种Matlab环境下PC机与单片机实时串行通信及数据处理方法;完成单片机数据采集系统与PC机RS-232/RS-485串行通信及其通信数据分析处理、文件存储、FIR滤波及图形显示;简化系统开发流程,提高开发效率。该方法已成功应用于一个PIC16F876单片机应用系统实例之中。关键词:PIC16F876Matlab串口通信RS-232事件驱动回调函数引言Matlab是由美国Mathworks公司开发面向理论分析研究、工程计算数据处理和缓图一套具有强大功能软件系统。其中Matlab语言是一种
2、以矩阵为基本运算单元解释执行高级语言,编程简例,只要几条语句就能实现诸如FFT变换、FIR/IIR滤波等数据分析处理,易于掌握。从Matlab6.0版本开始,Mathworks公司在软件中增加了设备控制箱(instrumentcontroltoolbox),提供了对RS-232/RS-485通信标准串口通信正式支持。利用该工具箱serial类及instrcallback()回调函数,能可靠地进行实时串地通信。为此,笔者充分结合单片机和Matlab优点,基于事件驱动中断通信机制,提出了一种Matlab环境下PC机与单片机实时串行通信数据处理方法,极大地简化开发
3、流程,提高了系统开发效率。另外,与目前普遍采用基于Matlab查询方式下非实时串行通信技术相比,这种方法实用性也大大增强了。PCbfans.cn提示请看下图:1系统总体设计简介下面以Mircochip公司PIC16F876单片机为下位机,PC机为上位机组成实时数据采集处理系统为例,介绍基于Matlab环境下PC机与单片机串行通信实时数据处理方法实现。数据采集系统结构框图如图1所示。PC机串口与单片机USART口通过MAX232电平转换芯片相连,系统工作时,Matlab通过调用设备控制工具箱中serial类及相关函数。来创建串口设备对象,得到设备文件句柄,从而
4、以操作文件方式实现对PC机串行口读写操作。因而PC机可以通过Matlab向串行口发送特殊指令,PIC单片机应用系统对此作出相应反应,将A/D采样数据通过串行口回送给PC机。此时,Matlab通过中断方式,实时接收单片机发送数据,并完成对数据分析处理、文件存储、FIR滤波及图形显示。2PIC16F876与PC机串行通信接口设计2.1PIC16F876单片机串行通信接口硬件设计PIC16F876微处理器芯片内部集成了一个串行通信(SCI)模块。该模块是一个通用同步/异步收发(USART)通信接口。图2PIC16F876SCI通信接口有两个外部引脚——RC6/TX
5、(SCI发送输出引脚)和RC7/RX(SCI接收输入引脚),引脚信号电平为TTL类型;而PC机串口异步串行通信基于RS232标准。两者通信信号逻辑电平不一致,必须进行信号电平转换。为此,在电路中选用Maxim公司MAX232芯片,以实现TTL电平与RS-232电平双向转换。RS-232通信距离一般以不超过12m为宜,在工业控制现场很受限制。为保证硬件设计兼容性和易扩展性,能够应用于不同场合,考虑到实际应用需要,在硬件电路中还可选用一个MAX491芯片,添加了一个RS-485通信接口。如图2所示,实际使用过程中,系统可以根据需要,灵活使用不同通信标准,十分方便
6、。当PIC单片机SCI通信接口引脚直接通过MAX232芯片与PC机串口相连时,系统采用RS-232通信标准;当PIC单片机SCI通信接口口引脚与MAX489芯片DI、RO引脚相连时,系统采用RS-485通信标准。另外,还可通过PIC单片机控制MAX489芯片DE、RE引脚,随时使能或屏蔽掉MAX489数据接收和数据发送功能。2.2PIC16F876与PC机串行通信接口软件设计本通信系统中规定字符格式为:每一帧数据占10位——1位起始位,8位数据位,1位停止位,无奇偶校验位。中间8位数据位即为有效通信传输字节。双方波特率设置为115.2kb/s,以较高速度进行
7、通信。同时,为了增强通信可靠性、减少通信误码率,在通信过程中约定了双方软件握手方法。为了不致使通信过于复杂,提高通信速度,可以直接将握手信号0xFF嵌入到数据包中。软件握手协议规定如下:PC机发送符合握手信号0xFF给单片机,PIC单片机接收到上位机数据若为握手信号0xFF,则回送两次A/D采样数据包,并将握手信号0xFF嵌入到数据包作为第一个数据,两次发送数据时间间隔为5ms;单片机接收到上位机数据若不是握手信号,则继续等待。若PC机接收到数据包第1个字节不是0xFF,则屏弃该数据包;若是,则表示握手成功,经校验正确后将该数据包直接存储接收,并从中分解有效
8、A/D采样数据信息。PIC16F876端串行通信C语
此文档下载收益归作者所有