基于Matlab环境的串行数据通信

更新时间:2023-05-19 12:55:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于Matlab环境的串行数据通信

维普资讯

《微计算机信息》测控自动化 )0 4年第 2 ( 20 0卷第 3期

基于 M lb环境的串行数据通信 a t aSe i| m m u ia i n Ba e n M a l b E i nm e t ra Co nc t s d o o t nv r a o n

张立材Zh n Lc a g, iai

摘要:介绍基于 Malb环境的微机与单片机串行数据通信 t a方法该方法利用 Ma a的 Isr me tC n o db nt u n o t l工具箱的 sra r e l i

信。仪器控制工具箱 sr l的主要特点如下: e a类 i()持基于 G I总线 ( E - 8、 PB标准 )VIA总线、 1支 PB I E48H I E、 S

类对象实现串行数据通信 .实验系统在 Ma a环境下实现 db数据采集

串行接口 (S 2 2 R一 2、 S 4 5的通信标准; R一 3、 S4 2R一 8)(1持二进制和文本 (S I)种数据的通信,本方式支 2支 A CI两文持 ( a dr o ma d r rga a l is u ns言: s n adc m n sf ormm e nt met) t o p b r语

关键词:行通信; e il类对象;片机 串 S ra单中图分类号:19 9 1P l文献标识码: B

()持异步通信和同步通信; 3支()持基于事件驱动的通信。 4支

文章编号: 0 8— 5 0( 0 4 0 -0 0—0 10 0 7 2 0 ) 3 1 0 2

2 Malb对串行口的控制 t aA bsra t: A a t c ppr a h o e a c m muniat b we n ompu— o c f r s r l o i c i on et e c t e d mi r pr c s or b s d o M al b e vio r an co o e s a e n ta n r nm e i i to nt s n r—

Ma a中的串行口是通过类 sr实现的。了保证代码平 d b ea i l为

d c d I e ly e a c s o jc f te Ma a n t m n u e . t mpo s s r l l s be to h d b I s u e t i a rTo l o o b x. Th e pe m e s se u nn ng n e x r i nt y tm r i o M a b da en io

v r nme nt a hiv d t a qu ston. c e es aa c i ii

台的独立性, r类的内核是用 Jv si ea l aa间接实现的,故在使用中应注意, d对串行口的支持不如 V sa c+、 ep i高级 Ma a b i l+ D lh等 u

语言完善 .果希望以中断方式对串口进行控制 .采取比较复 如须杂的事件和回调函数机制。由于建立在 Jv础上 .现起来 aa基实效率比较低。 () 1串行口对象的建立方法和使用要点使用下面的语句可以建立串行口对象 s sr ( C M1 )%创建 C M1串口对象 .以 s标识它 =e a O : i l O并

Ke r s eilc mmu iain;eilcas o jc; co y wod:sra o nct o sr ls bet mi— a rpr e s oc s or

串行通信具有高效可靠、价格便宜,遵循统一的标准等特点,为重要的通信手段。机的特点是具有较强的分析处理能 成微力,好的人机界面和大容量的多种存储方式 .般应用中多以很一

这样就创建串行口对象, s可以认为是该设备的句柄 (a— hnde。里串行口的属性使用系统默认值。行口对象建立后, i)这串可以用文件操作的方式对其进行打开、闭和读写操作。常可以关通用以下几个函数进行串行口打开、闭操作关fp ns:%打开 C M 1口 oe ( 1 O串

微机为上位机 .以单片机或其它处理系统为下位机的方式构成应用系统。为单片机的价格低,能强,干扰能力好,许环因功抗允境温限宽和面向控制等特点 .所以下位机采用单片机来构成主

从式多级工作模式,成对数据的采集、析处理,完分或对控制对象的控制。

fls() c es;%关闭 C M 1口 .口对象仍占用内存 o O串串操作完毕后应将串口对象删除,放空间。免影响其它程释以

Ma a d b是由美国 Ma w rs司开发的面向理论分析研究 h t ok公和工程设计处理的一套具有强大功能的软件系统。其中 Ma a db语言是一种以无维矩阵为基本运算单元的解释执行的高级语言,程

简便。别适合于数值计算。要几个语句就能实现诸编特只如 F T、种方法的滤波、统辨识、波变换等。 d具有强 fr各系小 Ma a b大的绘图功能,有丰富的工具箱函数。对特定领域中的课题 含能方便地进行分析、算和研究。实际应用中通过各种数据交换计在方式将数据传入计算机。而借助 Ma a的强大分析处理能力进 d b对数据进行分析和处理。 Ma a在 d b环境下 .通过 R一 3要 S 2 2串行

序对串口的调用。删除串口对象用 d lt、la命令实现 .如 ee cer e例删除上面建立的串口对象 s操作如下:可 dlt(;%从计算机内存中删除 C M1释放空间 ee s e ) O . c a: l r%清除工作空间中的对象 e s () d串行口对象属性 2 Ma a b使用 sr函数创建串口对象后 .过对象句柄操作串口 . ei l a通 非常方便。口对象有很多属性,用如下的命令可以查看串口串使 所有属性 st )%s sr创建的 C M1串口对象的标识符 e( s是 ei l a O

通过定义串口对象的属性,能定义串口的通信模式 .可 就也 D lh等编程软件设计串行通信动态连接库 .再通过 Ma a调以了解串口的状态。几个比较重要的属性如下: ep i d b 用串行通信动态连接库实现,行通信动态连接库可以用 Wi—串 n串口通信属性: dw提供的 A IMS o控件或其它软件公司设计的通信控 os P、 C mm件设计通信程序,种方法可行但比较繁琐。计如果问题比较 这设简单,希望避免与其它编程软件混合编程 .少不同程序之间又减的相互调用,以用下面介绍的方法,用 Ma a e a类实现可利 d sr b i l串行通信 .大大简化通信程序设计可Bu R t ad a e D tBt aa i s P ry ai ts a e pc )

口用串行通信方式交换数据,一种方法是用诸如 Vs a c+、 i l+ u

定义传输波特率 (省 9 0 b s可设为 10 .缺 60 p, 2 0定义数据帧的比特位数 (般为 7或 8位 )一 定义校验方式 (取值

:o e o d ee、 r、可 n n、d、vn mak定义数据帧停止位位数(般为 1 1一、. 5或 2 )

2 0 4 0 12 0 p等等 ) 4 0。 8 0,9 0 b s

1 Malb sra类的主要特点 t eil a自 Ma a 60版本起, t ok t . l b Mah rs公司在软件中增加了 I— w n

So Bt tp i s

T r n tr定义结束字符 emia o串口读数据方式 R a A yc d e定义异步读操作为连续或手工方式 (o— ed sn Mo cn t u u一续方式 (省 )或定义为 ma u ) i os连 n缺, na 1电话: 0

s u e t o t l olo[]提供了对 R 2 2串口通信的正式支 t m n nr obx1, r C oT S3持。利用该工具箱的 sr及其相关函数,可靠地进行串行通 ei l a能中国自控网:t:ww a tc nr 1 o .n ht/ w.uo o t . m o p/ oc 1 0 -2 O 1 0元/邮局订阅号:29 6年 8 .4

基于Matlab环境的串行数据通信

维普资讯

网络与通信串门名属性fls() coes;

Pr 0t

义系统的串口名称 (般为 C M1或 C M2 )一 O O

d lt s ee () e;c e rS; la … . .

(1 t b串行读写操作 3 l Ma a建赢串口对象并打开串口后,就可以对串口对象进行读写操作与一的文件操作类似,口的读写操作有文本方式和二般串进制方式两种。在文本方式下,串口设备只接收可以显示的 A C I符 . O 0 H~ x F范围内的字符解释为控制字符。 S I字将 x 0 O lH串

%数据处理

这里略去单片机 (位机 )通信程序,参考文献【】者下的可 2或[]计。 3设PC M 8O3 CS 1

口可以工作在同步方式或者异步方式,同步方式在数据传送完毕之前 .送端程序 (是 Ma a )于等待状态,止任何其他 发就 t b处 l禁

应用系统

操作如果采用异步方式,送数据写到缓冲区后,序可以返发程回命令窗口内执行其它操作,序执行效率较高,程因此一般串行通信多采用异步方式。 fr fs I )%向 C M

I串口输出字符串 I ,操 pi (。 D n: O D写作以同步方式进行 i=saf 1%从 C M1串口读入字符串 I到变量 i d fcn s: O D d 对于文本通信方式,应的读写命令是 fcn、 r t在异相 saff i f pn。步通信方式, s ed y c d= c n iuu (省方式 )且 . aAsn Mo e o—t o s缺 R n,

IB3口I R 22

xf I TD RD XI图 1

RD X TD X

4结论通过本文介绍的方法,以方便的实现 Mal可 t b应用程序与 a

单片机 (位机 )数据通信,于一般应用该方法足以应付。但下的对由于 Mal t b中的 sr l是通过 Jv a ei类 a aa间接实现的 .对串口的功能还是有所限制的,现复杂的函数回调比较困难。外 Mal 实另 tb a本身缺少精确定时机制,应用于实时监测或控制时 .对本文在应提出的方法进行改进,要是解决精确定时问题。时可以用其主定它计算机语言调用 Wid w P实现精确定时与数据通信 . n o sA I再通过 D DE等方法与 Ma a d b交换数据:或是用 Mal t b与 C语言 a

单片机 (位机 )返回的数据会自动存入输入缓冲区。即一旦下 fr t命令完成 .片机开始发送数据,些数据被存入输入缓 pi f n单这冲区 .用 f af令可将数据去处再 s n命 c若以二进制通信方式进行通信 .串口相应的读写操作命令是 fe d、wr e ra f i t

3编程实例下面通过以 MC 0 1单片机为下位机 .C为上位机组成的 S8 3 P实验数据采集系统为例,绍 Ma a介 l f b串行通信程序设计实现。 数据采集系统的结构框图如图 1所示。单片机应用系统将采集到的数据通过串行口发送出来,计算机通过串行口接收由

接口函数 me[]现精确定时。 x实 4参考文献

[ M tw rs o .n mm m o t l olo[]2 0 1 a o r I ̄] h k C p e C n o To x, 00 r b Z

[马忠梅. 2]单片机的 C语言应用程序设计(订版)北京:修,北京航空航天大学出

版社 .9 9 19 【孙育才 .片微型计算机应用系统设计与实现, 3】单南京:京东南大学南出版社 .9 0 19 [ M tw rs o . xe a It f e A I] 0 0 4 ah o r E t n l n r cs Pf, 0 .] k C p r ea/ Z 2

由于单片机信号为 rr I L电平,以在单片机应用系统与计算机 r所串行口之间,串行口芯片 MA 2 2作电平变换。系统工作时 .用 X3 计算机可以通过串行口发送相关指令 .单片机根据上位机的命令做出反应,此,以查询、制单片机的工作状态据可控上位机通信程序 ssr l C M1 )%创建 C M1串口对象 .以 S识它= ei ( O ; a O并标 s B u R t= 8 0;置 C M1串口的波特率为 3 4 0 p . a d ae 3 4 0%设 O 80bss n uB f rie 4 9;%设置 C M1串口的输入缓冲区大 . p t u eSz= 0 6 I 0小为 49 0 6字节

作者简介:立材,于 15张生 9 9年,,师,士,业于西安交 男讲硕毕通大学,要从事通信工程,像处理和信息融合。 E m izl 主图— al hi:—c i snac n a@ i .or Aut hor Re um e: a, c i b n i 1 59. He i nsr t ri s Zh ngLia, ur n 9 s a i tuc o n t e Col g fI f r a in a d nto. X i a i e st fAch— h le e o n o m to n Co r 1 n Un v r iy o i tc ur a Tec no o y. Re eie h s e t e nd h lg c v d i ma t d g e fom Xi n ser e r e r a

%上述操作也可按以下方式用一条指令完成s s ̄ l( C M1,=e a 0 B u R t, 8 0 a d ae 3 4 0. Pr y, ai tn n , Daa i ,, So Bi , ) oe tB t s 8 tp t s 1;

Ja t n n v r i n 1 9 . s r s r h i tr ss n l d o io o g Ui ie st i 3 Hi e e c n e e t i c u e c mmu y 9 -nia i n e i e ng mag o e sng i

f r a in uso c to ngne r,i i e pr c s i, n o m to f i n.E-m a h i z lc@ s n t m h iai i a.o

o ns%打开 C M1串口 f e(: p ) O

( 1 0 5陕西西安市雁塔路 l号西安建筑科技大学信控学 705 3院 )张立材

fr ts S, ayc ) pi f, sn;%向 C n( OM1串口输出字符串

S,操作以异步方式进行 写…一

( l g fI o ma in a nto,Xin Un v riy o - Col e o nf r to nd Co r l e a ie st fAr c ie t r n c oo y, a 7 0 5,Chn ) Zh ng Lia h tcu e a d Te hn l g Xin, 1 05 ia a, ci

%写其它数据%其它操作

(稿日期:0 3 1 .2收 2 0 .0 1、

c ̄ a f,‰ ,)%读字符 S单片机返回数据以 S打头= cn s 1; . d fcn(,%i,)%读数据长度位数值 =saf s 1; degh f a f,%i,)%读数据长度位数值 lnt=s n( c s d;fr i:dl n t o=l e gh

d t (=ra(,, it6 )%数据读入数组 d ̄ aa i f ds 1 nl ; mx ) e a mx中ed n

%串行口使用完后 .及时关闭应

@固

本文来源:https://www.bwwdw.com/article/hxl4.html

Top