MATLAB在PC机与单片机串行通信的应用.pdf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB PC 单片机 串行 通信 应用
- 资源描述:
-
一、引言 串 T e c h n o l o g y & A p p l i c a t i o n - 技术与应用 摘要:结合单片机与M A T L A B 两者的优点,提出了一种M A T L A B 环境下P C 机与单片机实时串 行通信及数据处理的方法。串行系统主要由P C 机、R S - 2 3 2 C 电平转换器M A X 2 3 2 A C P E 、单片 机以及通信程序构成,单片机程序用其C 语言设计,P C 机通信程序用M A T L A B 中的专门函数和 n s t r u m e n tC o n t r o lT o o l b o x ( 仪器控制工具箱) 实现。 关键词:串行通信;P C 机;单片机;M A T L A B ;仪器控制工具箱 中图分类号:T P 2 7 7文献标识码:A 文章编号:1 0 0 6 8 & 3 X ( 2 0 1 3 X ) 3 - 0 0 1 7 - 0 4 收稿日期:2 0 13 - 0 3 一0 7 M A T L A B 在P C 相与单片栅 串行通信响应用 徐丽丽杨风杨杨 中北大学信息与通信工程学院山西太原0 3 0 0 5 1 行通信是P C 机与单片机之间进行通信的重要手 段,其优点是效率高、可靠性强、价格便宜、 有现成的接口和统一的标准,因而得到了广泛的应用。 在控制工程中,通常使用单片机来采集大量的数据, 通过串口将数据传给处理性能更高的P C ,经过P C 处 理分析后打印输出或传给单片机。M A T L - L B 拥有强大 的数据分析处理能力和绘图功能,含有丰富的工具箱 函数,能够对不同领域的工程应用 提供支持,成为计算机辅助设计和 分析、算法研究和应用开发的基本 工具和首选平台【l 】。本文主要介绍 应用M A T L A B 中的仪器控制工具箱 实现P C 机和单片机的串行通信。 二、系统总体设计简介 下面以A V R 系列的a t e m l l 6 2 单 片机为下位机,P C 机为上位机组 成的实时数据采集处理系统为例, 介绍基于M A T L A B 环境下P C 机与单片机串行通信 的实时数据处理方法的实现。数据采集系统的结构 框图如图l 所示。P C 机串口与单片机U A R T 口通过 M A X 2 3 2 电平转换芯片相连,系统工作时,M A T L A B 通过调用设备控制工具箱中的s e r i a l 类及相关函数来创 建串口设备对象,得到设备的文件句柄,从而以操作 文件的方式实现对P C 机串行口的读写操作。P C 机通 过M A T L A B 向串行口发送特殊指令,同时A V R 单片 万方数据 技术与应用_ T e c h n o l o g y & A p p l i c a t i o n I 设置串1 3 参数 I 打开串1 3 I 向串1 3 发送发射数据信号 I 向单片机串口发送数据 I 等待输入接收数据指令( 若指令输入后 开始接收数据,否则等待) I 向串口发送接收数据信号 I 接收单片机发送的数据 l 对接收的数据进行分析 I 结束 图3 串行通信程序流程图 机应用系统对此做出相应的反应,将A D 采样数据通 过串行1 :3 回送给P C 机。此时,M _ A T L A B 通过中断的 方式,实时接收单片机发送的数据。 三、A V R 系列a t e m l l 6 2 与P C 机串行接口的设计 1 、A V R 系列a t e m l l 6 2 单片机串行通信接口的硬 件原理 1 6 位单片机a t e m l l 6 2 采用异步串行口模块提供了 一个全双工标准通信口,用于完成单片机与外围设备 之间的串行通信。由于单片机的串口采用的是T T L 电 平,与P C 机串行接口的电气规范不一致,因此通信 中采用R S 2 3 2 标准接口。R S 2 3 2 电平采用负逻辑,即 逻辑1 :3 1 5 V ,逻辑0 :+ 3 + 1 5 V 。而单片机使用 的T T L 电平中,高电平( 3 5 5 v ) 为逻辑l ,低电平 ( 0 - 4 ) 8 V ) 为逻辑0 。为实现数据通读,接口之间通 过M A X 2 3 2 电平转换芯片把T T L 高电平表示的1 转 换成R S 2 3 2 的负电压信号,把低电平表示的0 转换成 R S 2 3 2 的正电压信号。M A X 2 3 2 的1 1 引脚接单片机7 引脚的T X D 端,T T L 电平从单片机的T X D 端发出, 经过M A X 2 3 2 转换成R S 2 3 2 电平后从M A X 2 3 2 的1 4 引脚发出,连接到P C 机的串口座的R X D 端,至此计 算机接收到数据。P C 机发送数据时从P C 机串口座的 T X D 端发出数据,再逆向流向单片机5 引脚的R X D 端【2 】。P c 机与a t e m l l 6 2 单片机串行通信原理图如图2 所示。 2 、A V R 系列a t e m l l 6 2 单片机串行通信接口的软 件设计 在M A T L A B 环境下,读取串口数据的方法可以分 为两种查询和中断。当以查询的方式进行串行通信时, 虽然编程容易,但不能对数据进行实时处理,系统实 时性不高,而且会极大地占用系统的资源。当以中断 的方式对串口进行控制实现串行通信时,可以实时处 理下位机传送的数据,但编程相对复杂一些,需要采 用M A T L A B 的事件和回调函数机制口】。由于采用了握 手信号,使得串行通信中,P C 机为主动,单片机为被 动的一种主从方式。串行通信程序流程图如图3 所示。 因此,完整的程序如下: # i n e l u d e i o m 】6 2 v 万方数据 # i n c l u d e v o i dp o r t _ i n i t ( v o i d ) 初始化端1 3 D D R D I = B I T ( I ) ; D D R D & = B I T ( 0 ) ; P O R T D I = B I T ( 1 ) ; P O R T D 0 & 一B I T ( 0 ) ; v o i du a r t O _ i n i t ( v o i d ) U A R T O 初始化 U C S R O B = 0 X 0 0 ; U C S R O A = 0 X 0 0 ; U B R R O L = 0 X 6 7 ; U B R R O H = O X 0 0 ; U C S R O B = 0 X 9 8 ;接收完成中断使能,传送完成中断 使能 U C S R O A & = 0 X E 0 ; v o i di n i t _ d e v i c c s ( v o i d ) C L I ( ) ; p o r t _ i n i t ( ) ; u a r t O _ m i t ( ) ; M C U C R = 0 X 0 0 ; E M C U C R = 0 X 0 0 ; E T I M S K = 0 X 0 0 ; E T I F R = 0 X F F ; G I C R = O X 0 0 ; S F l 0 R = 电X o o : P C M S K 0 = 0 X 0 0 ; P C M S K I = 0 X 0 0 ; v o i ds e n d d a t a ( u n s i g n e dc h a rd a t a ) u a r t 发送数据 w h i l e ( ! ( U C S R O A & ( 1 U D R E 0 ) ) ) ; U D R 0 = d a t a ; ) # p r a g m ai n t e r r u p t _ h a n d l e ru a r t O _ r e c v :2 0 v o i du a r t 0 _ r e c v ( v o i d ) 接收完成中断,接收的数据存于 d a t ab u f f e r 数组中 u n s i g n e dc h a rt e m p d a t a = O ; t e m p d a t a = U D R 0 ; s e n d d a t a ( m m p d a t a ) ; v o i dm a i n ( v o i d ) T e c h n o l o g y & A p p l i c a t i o nl 技术与应用 i n i t _ d e v i c e s ( ) ; w h i l e ( 1 ) ; 四、基于g A T L A B 的通信程序设计 1 、主要的串口操作函数 M A T L A B 的仪器控制工具箱提供了M A T L A B 与 仪器仪表通信的功能。它支持G P I B 、V I S A 、T C P I P 、U D P 、R S 2 3 2 等多个协议,具有同步和异步读写 功能以及事件处理和回调操作功能,可读写和记录二 进制和A S C I I 文本数据。工具箱中有多个函数,以下 仅介绍与串口有关的主要函数。 ( 1 ) 建立串口对象函数嗍 格式o b j = s e r i a l ( p o r t ) 和o b j = s e r i a l ( p o r t ,P r o p e r t y N a r n c ,P r o p e r t yV a l u e ,) 参数:p o r t 为端口的名字,该参数是必须的, 一般为c o m l 和c o r n 2 ;P r o p e r t yN a m e 为属性名, P r o p e r t yV a l u e 为属性值。与串口有关的属性大约有3 8 个,最常用的属性波特率、数据位、校验方式、停止位、 终止符。 属性复制的方法有以下三种: 用s e r i a l 函数; 用s e t 函数,例如:s e t ( o b j ,B a u dR a t e ,9 6 0 0 ) ; 直接赋值方式,例如:o b j B a u dR a t e = 9 6 0 0 。 ( 2 ) 串口读写函数 该类函数有8 个,本文使用到的函数:f w r t i e ( o b j , A ,p r e c i s i o n ,m o d e ) 或f w r i t e ( o b j ,A ) ,以二进制方式 向串口发送数据;A = f f e a d ( o b j ,s i z e ,p r e c i s i o n ) 或 A ,c o u n t ,m s g = f r e a d ( ) ,以二进制方式读串1 :3 ; A - - f s c a n f ( o b j ,f o r m a t ,s i z e ) 或【A ,c o u n t ,m s g = f s c a n f ( ) ,以指令数据格式读串E l ;r e a d a s y n c ( o b j ) 或 r e a d a s y n c ( o b j ,s i z e ) ,以异步方式读串口;s t o p a s y n c ( o b j ) ,停止异步方式读写操作嘲。以上函数中, 0 b j 为串口对象,m o d e 定义为同步或异步读写方式, p r e c i s i o n 定义数据精度,s i z e 为字符或数据数。 ( 3 ) 打开、关闭和清除串口对象函数 主要包括:f o p e n o b j ) ,打开串口对象,即连接 万方数据 技术与应用T e c h n o l o g y A p p l i c a t i o n 两个通讯设备f c l o s e ( o b j ) ,关闭串1 :3 对象d e l e t e ( o b j ) , 清除串口对象:c l e a r ( o b j ) ,从M A T L A B 中清除对象。展开阅读全文
文档分享网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。



链接地址:https://www.wdfxw.net/doc100371316.htm