Matlab环境下PC与单片机的串行通信及数据处理
[09-12 17:52:37] 来源:http://www.88dzw.com 单片机学习 阅读:8668次
文章摘要:摘要:结合单片机和Matlab两者的优点,基于事件驱动的中断通信机制,提出一种Matlab环境下PC机与单片机实时串行通信及数据处理的方法;完成单片机数据采集系统与PC机的RS-232/RS-485串行通信及其通信数据的分析处理、文件存储、FIR滤波及图形显示;简化系统开发流程,提高开发效率。该方法已成功应用于一个PIC16F876单片机应用系统实例之中。关键词:PIC16F876 Matlab 串口通信 RS-232 事件驱动 回调函数引言Matlab是由美国Mathworks公司开发的面向理论分析研究、工程计算数据处理和缓图的一套具有强大功能的软件系统。其中Matlab语言是一种以矩阵为基
Matlab环境下PC与单片机的串行通信及数据处理,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com
摘要:结合单片机和Matlab两者的优点,基于事件驱动的中断通信机制,提出一种Matlab环境下PC机与单片机实时串行通信及数据处理的方法;完成单片机数据采集系统与PC机的RS-232/RS-485串行通信及其通信数据的分析处理、文件存储、FIR滤波及图形显示;简化系统开发流程,提高开发效率。该方法已成功应用于一个PIC16F876单片机应用系统实例之中。
关键词:PIC16F876 Matlab 串口通信 RS-232 事件驱动 回调函数
引言
Matlab是由美国Mathworks公司开发的面向理论分析研究、工程计算数据处理和缓图的一套具有强大功能的软件系统。其中Matlab语言是一种以矩阵为基本运算单元的解释执行的高级语言,编程简例,只要几条语句就能实现诸如FFT变换、FIR/IIR滤波等数据分析处理,易于掌握。从Matlab6.0版本开始,Mathworks公司在软件中增加了设备控制箱(instrument control toolbox),提供了对RS-232/RS-485通信标准的串口通信的正式支持。利用该工具箱的serial类及instrcallback()回调函数,能可靠地进行实时串地通信。为此,笔者充分结合单片机和Matlab的优点,基于事件驱动的中断通信机制,提出了一种Matlab环境下PC机与单片机实时串行通信的数据处理方法,极大地简化开发流程,提高了系统开发效率。另外,与目前普遍采用的基于Matlab查询方式下的非实时串行通信技术相比,这种方法的实用性也大大增强了。
1 系统总体设计简介
下面以Mircochip公司的PIC16F876单片机为下位机,PC机为上位机组成的实时数据采集处理系统为例,介绍基于Matlab环境下PC机与单片机串行通信的实时数据处理方法的实现。数据采集系统的结构框图如图1所示。PC机串口与单片机USART口通过MAX232电平转换芯片相连,系统工作时,Matlab通过调用设备控制工具箱中的serial类及相关函数。来创建串口设备对象,得到设备的文件句柄,从而以操作文件的方式实现对PC机串行口的读写操作。因而PC机可以通过Matlab向串行口发送特殊指令,PIC单片机应用系统对此作出相应的反应,将A/D采样数据通过串行口回送给PC机。此时,Matlab通过中断的方式,实时接收单片机发送的数据,并完成对数据的分析处理、文件存储、FIR滤波及图形显示。
2 PIC16F876与PC机串行通信接口的设计
2.1 PIC16F876单片机串行通信接口的硬件设计
PIC16F876微处理器芯片内部集成了一个串行通信(SCI)模块。该模块是一个通用的同步/异步收发(USART)通信接口。
图2
PIC16F876的SCI通信接口有两个外部引脚——RC6/TX(SCI发送输出引脚)和RC7/RX(SCI接收输入引脚),引脚的信号电平为TTL类型;而PC机串口的异步串行通信基于RS232标准。两者通信信号的逻辑电平不一致,必须进行信号电平转换。为此,在电路中选用Maxim公司的MAX232芯片,以实现TTL电平与RS-232电平的双向转换。RS-232通信距离一般以不超过12m为宜,在工业控制现场很受限制。为保证硬件设计的兼容性和易扩展性,能够应用于不同场合,考虑到实际应用的需要,在硬件电路中还可选用一个MAX491芯片,添加了一个RS-485通信接口。
如图2所示,实际使用过程中,系统可以根据需要,灵活使用不同的通信标准,十分方便。当PIC单片机SCI通信接口引脚直接通过MAX232芯片与PC机串口相连时,系统采用RS-232的通信标准;当PIC单片机SCI通信接口口引脚与MAX489芯片的DI、RO引脚相连时,系统采用RS-485的通信标准。另外,还可通过PIC单片机控制MAX489芯片的DE、RE引脚,随时使能或屏蔽掉MAX489的数据接收和数据发送功能。
2.2 PIC16F876与PC机串行通信接口的软件设计
- 上一篇:单片机实现对CF卡的读写
《Matlab环境下PC与单片机的串行通信及数据处理》相关文章
- › VB调用Matlab在WEDM仿真系统中的应用
- › Matlab与C/C++混合编程接口及应用
- › VC++和Matlab混合编程的语音识别研究
- › 基于Matlab和Simulink仿真环境的CANbus专用工具包
- › Matlab环境下PC与单片机的串行通信及数据处理
- › VB与MATLAB混合编程探讨
- 在百度中搜索相关文章:Matlab环境下PC与单片机的串行通信及数据处理
- 在谷歌中搜索相关文章:Matlab环境下PC与单片机的串行通信及数据处理
- 在soso中搜索相关文章:Matlab环境下PC与单片机的串行通信及数据处理
- 在搜狗中搜索相关文章:Matlab环境下PC与单片机的串行通信及数据处理