matlab环境下pc机与16位单片机串行通信的研究_第1页
matlab环境下pc机与16位单片机串行通信的研究_第2页
matlab环境下pc机与16位单片机串行通信的研究_第3页
matlab环境下pc机与16位单片机串行通信的研究_第4页
matlab环境下pc机与16位单片机串行通信的研究_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、入深的从概述USB和驱动程序的基本理论,继而根据DriverWorks的开发流程,重点介绍了其中的USB开发的设计,针对USB及驱动程序开发的初学者,使其能够便捷的了解USB和WDM模型驱动程序,并掌握开发工具中USB驱动开发的要点,快速的进入到驱动程序开发的工作中去。参考文献1王志强.USB设备驱动程序开发技术研究.微计算机信息,2006发.微计算机信息,2005.开发.北京:电子工业出版社,2006.4薛园园.uSB应用开发技术大全”北京:人民邮电出版社,2007.作者简介田心航天信息股份有限公司、数字技术研究院、芯片研发工程师,主要研究方向是信息安全领域的芯片研发与设计。MATLAB环境

2、下PC机与16位单片机串行通信的研究摘要:文章提出一种PC机与16位单片机串行通信的设计方案。利用控制工具箱serial类对象实现PC机与单片机SPCE061A间的异步串行通信,给出设计方案的硬件电路和部分软件程序,并通过对实验结果的分析说明串行通信的可靠性。关键词:MATLAB,单片机,串行通信Research of SeriaI Com rnunication between PC and MCU In MATLAB Envi ronment1.Han Zexi1.6uo Zhenghong2.Peng Hongwen1.Gan Zhiqiang(1.Xian Shiyou Univers

3、ity,Department of Electric Engineer(2.Chinese Petroleum Oil wel l logging Limited companyChangqing Services departmentAbstract:A method of serial communication between PC and16一bitS MCU in MATLAB Environment iS described.ThiS article employs serial Class object of the Instrument Toolbox provided by

4、MATLAB to real ize the asynchronous serial communication between PC and16一bitS MCUw-SPCE061A.Concludes design methodS hardware Circuit and part of software programe.It alSO explain the reliabilitv of the communication result througth the analysiS of experiment result.Keywords:MATLAB,MCU,Serial Commu

5、nlcation随着计算机系统的广泛应用和网络的飞速发展,各种控制设备间的通信功能显得越来越重要。串行通信具有高可靠性、低经济成本、遵循统一的标准等特点,已成为当代重要的通信手段。Pc机的特点是具有较强的分析处理能力、友好的人机界面以及大容量的多种存储方式,而单片机的价格低、功能强、抗干扰能力强和面向控制的特点恰好与Pc机形成了互补。在实际应用中,经常出现将单片机采集的数据或单片机控制的外围设备中的数据传送到上位机或者把上位机处理的数据或其它控制数据传送到单片机中的串行通信的情况。本文以MATLAB环境下的PC机和16位单片机SPCE061A的串行通信为例说明PC机和单片机的串行通信实现方法。

6、设计利用PC机配置的RS232标准串行接口COM和单片机SPCE061A通用异步串行接口UART连接,使用三线制(收、发、地实现数据传递,同时鉴于SPCE061A的I/0输出为3.3V和5.0V可选,与RS232标准接口的电气规范不一致,单片机与Pc机间要进行串行通信需经过MAX232进行电平转换。串行通信总体设计原理框图如图l。上位机(PC机下位机/扒AX一(SPCE061A RS232Tjo广叫232r、/RXD TXD UARTGND RXD图l总体设计原理图凌阳16位单片机SPCE061A通用异步串行口模块提供了一个全双工标准通信口,用于完成SPCE061A于外围设备之间的串行通信。鉴

7、于SPCE061A单片机的串口采用TTL电平,与Pc机串行接口的电气规范不一致,通信中采用RS232C标准接口。如图2所示。RS232C电平采用负逻辑,即逻辑1:一3一15V,逻辑0:+3+15v。而单片机使用的TTL电平中,高电平(3.55v为逻辑I,低电平(00.8V为逻辑0。为实现数据通读,接口之问通过MAX232电平转换芯片把TTL高电平表示的l转换成RS 232C的负电压信号,把低电平表示的0转换成RS232C的正电压信号。我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我们来说已经足够

8、使用了,MAX232的第9脚、第10脚分别和单片机SPCE061A的RXD、TXD相连,电路如图3所示。说明:ST:起始位;DO-D7:8位数据;PA:硬件奇校验位;SP:停止位图2串行通信采用数据帧格式图3硬件接线图在MATLAB6.0以上的版本中新增的设备控制工具箱(instrument control toolbox用来负责上、下位机之间的通信。该设备控制工具箱的特色如下:支持基于串行接口(RS一232、RS一422、RS一485、GPIB总线(IEEE2488、HPIB标准、VISA总线的通信;通信数据支持二进制和文本(ASC I I两种方式,文本方式支持SCPI(Stan dard

9、C0mmand S for ProgrammableInstrument S语言;支持异步通信和同步通信;支持基于事件驱动的通信。MATLAB对串行口的控制操作过程如下:首先要创建串行口设备对象,这里用到的主要函数是setial0;s=serial(coml创建COMl为串口对象并用s标识它定义串口设备对象的通信属性,主要有波特率、异步串行帧格式(包括起始位、数据位、校验位、停止位等和输出输入缓冲区的大小等:BaudRate定义COMl的波特率(默认为9600bps,可取值为1200bps、2400bps等parity定义校验方式(可取值:none、odd、even、mark或spaceInp

10、utBuffersiZ定义输入缓冲区大小0utputBufferSize定义输出缓冲区大小Teminator定义结束字符串用函数fopen0实现设备对象与硬件设备的软连接(相对于硬件设备的连接,这样就可以进行数据的读写操作;fopen(S打开s标识的串口进行MATLAB串行读写操作,主要用到的函数有fprintf0、fscanf0、fwrite0、fread0等;A=fscanf(S,%d,2,100从串口设备对象S 中读入2.100个数据填充到数组A2,100中,并以整型的数据格式存放。fprintf(s,%s,MATl3B',async将字符串MATLAB以字符的数据格式写入到串口

11、设备S,写操作以异步的方式进行。关闭和删除设备对象,用到的是fcl0Se(、delete0和C1ear0等函数。fclose(S关闭串口设备对象delete(S删除内存中的串口设备对象clear S清除工作空间中的串口设备对象MATLAB进行串行通信是十分方便的,程序较为简单。而且,在MATLAB中串行通信的失误率很低,通信较为可靠。本文增加握手信号和数据校验的方式进一步增加通信的可靠性。在MATLAB环境下,读取串口数据的方法可以分为两种查询和中断。以查询的方式进行串行通信时,如下位单片机有大量的数据分时分批传送给Pc机,就需要不停查询串行口的缓冲区,有数据就读取。虽然编程容易,但这样做不能

12、对数据进行实时处理,系统实时性不高,而且会极大地占用系统的资源。以中断的方式对串口进行控制实现串行通信,就可以实时处理下位机传送的数据。但编程相对复杂一些,需要采用MATLAB的事件和回调函数机制。由于采用了握手信号,使得串行通信中, PC机为主动,单片机为被动的一种主从方式。串行通信部分程序如下:function yn=comtrans(ys,L:s=serial(COMI:S.parity=even:S.StopBits=l:S.BaudRate=9600:S.InputBuffersize=1024:S.0utputBuffefSize=1024:S.ReadAsyncMode=cont

13、 inuous:fopen(s:B=1085L:fprint(S,B:fprint(S,ys:M=input(如果需要接收卷积结果请输入:1n: if M=1C=10119L:fprint(S,%s,C:yn=fread(S,L,uint8:endfclose(s:delete(S:clear S:例4串行逋信程序流样图为了验证实现的Pc机与凌阳16位单片机串行通信的正确性,利用单片机产生由两个频率分别为300HZ、800Hz正弦信号叠加得到的一个双频信号序列,通过串口将其传入单片机并进行截止频率为500Hz高通滤波运算,然后将滤波结果传入PC机。值得注意一点是,在串行过程中会有一些随机噪声的

14、加入。另外,由于在传输过程中使用的数均为整型数,对单片机滤波结果也产生一定的影响。对滤波后信号进行频谱分析知上述噪声主要集中在低频,再次对其进行截止频率为200Hz高通滤波。各次滤波前后波形及其频谱分析如图5示,说明了滤波过程的可靠性。图5各次滤波前后信号的波形及频谱分析(参见游览实验证明,本文介绍的基于MATLAB环境下的PC机利用MATLAB的Instrument ControlToolbox的serial 类函数实现了与凌阳16位单片机的串行通信稳定可靠,处理数据方便,编程简单,充分利用MATLAB工具箱中的现有函数,方便地实现串行通信、数据分析处理和图图5各次滤波前后信号的波彤及频谱分

15、析形显示,大大简化系统上位机软件的编程工作量。但是,本文中所实现的串行通信采用的是查询的方式,使得整个串行通信系统不具有良好的实时性,不能对数据进行实时处理,且会极大占有系统资源。在实际应用中,可以利用Matlab提供的instrcallback(obj, event回调函数,根据需要自行设置具体的串行通信事件。当串口上有监视的事件发生时,MATLAB会自动调用回调函数进行通信事件的处理。这样就实现了事件为驱动的中断式串行通信,从而可以解决实时性和系统资源浪费的问题。参考文献及应用M1.西安.西安电子科技大学出版社.2004.现JJ.现代电子技术,2006,第2l期总第236期:4850.指南

16、.北京.科学出版社.2000.通信及数据处理J.单片机与嵌入式系统应用,2006,第12期:27-31.5谢瑞和.串行技术大全.作者简介汉泽西男,1948年生,1982年毕业于西安交通大学信息与控制工程系无线电技术专业。现为西安石油大学电子工程学院教授,多年从事测试计量技术与仪器的教学和科研工作。 MATLAB环境下PC机与16位单片机串行通信的研究作者:汉泽西, 郭正虹, 彭宏文, 甘志强, Han Zexi, Guo Zhenghong, Peng Hongwen, Gan Zhiqiang作者单位:汉泽西,郭正虹,甘志强,Han Zexi,Guo Zhenghong,Gan Zhiqia

17、ng(西安石油大学电子工程学院, 彭宏文,Peng Hongwen(中国石油测井有限公司长庆事业部刊名:电子技术英文刊名:ELECTRONIC TECHNOLOGY年,卷(期:2008,45(2引用次数:0次参考文献(5条1.雷思孝.李伯成.雷向莉凌阳16位单片机原理及应用 20042.陶锋.刘晓东.赵帼英凌阳16位单片机与上位机串行通信实现期刊论文-现代电子技术 2006(213.刘志俭.张志勇MATLAB应用程序接口用户指南 20004.向先波.徐国华.张琴Matlab环境下PC机与单片机的串行通信及数据处理期刊论文-单片机与嵌入式系统应用2004(125.谢瑞和串行技术大全 2003相似

18、文献(10条1.期刊论文邓从阳.黄惟公.DENG Cong-yang.HUANG Wei-gong基于MATLAB与单片机的测控系统设计-仪表技术2007(9提出一种基于MATLAB与单片机的教学测控系统的设计方法.通过MATLAB自带的通信类可以方便的和单片机串口进行通讯,实现对下位机采集的数据进行分析处理.利用MATLAB软件提供的GUI可以设计出一套友好的人机界面实现对单片机测控系统的实时控制.2.期刊论文邓从阳.黄惟公.DENG Cong-yang.HUANG Wei-gong基于Matlab与单片机的教学测控系统设计-电气电子教学学报2007,29(3本文提出一种基于Matlab与单

19、片机的教学测控系统的设计方法.通过Matlab自带的通信类元件库可以方便地和单片机串口进行通讯,实现对下位机采集的数据进行分析处理.利用Matlab软件提供的GUI可以设计出一套友好的人机界面实现对单片机测控系统的实时控制.实验证明,该方法可以开发学生的思维,提高其动手能力,在教学实验中有很好的实用性.3.期刊论文兰红莉.罗文广.Lan Hongli.Luo Wenguang基于MATLAB的PC机与单片机串行通信实现-计算机应用与软件2006,23(6介绍了基于MATLAB的PC机与PIC系列单片机串行通信的实现方法.串行系统主要由PC机、RS-232C电平转换器MAX232ACPE、单片机

20、PIC16F874以及通信程序构成,单片机通信程序用其汇编语言设计,PC机通信程序则是用MATLAB的仪器控制工具箱的函数及通过建立事件和回调函数来实现.给出了具体的通信程序.研制并开发了专用于塑料管道焊接的电熔焊机.给出了系统的工作原理、硬件结构及软件设计流程.该焊机以单片机为基本控制单元,采用模糊-PID算法实现对焊接温度的控制;采用带中文字库的点阵液晶显示模块LCM128645ZK作为显示器件,采用双线串行AT24C01芯片记忆用户的温度设定值,采用固态继电器SSR作为PWM控制的开关器件.对系统进行了MATLAB仿真,结果表明,采用模糊-PID控制算法,该控制器能够发挥模糊控制鲁棒性强

21、、动态响应好、超调小的特点,同时又具有PID控制器的动态跟踪品质和稳态精度.具有很好的实时性。实际应用表明,该控制装置具有体积小、抗干扰能力强、使用方便和通用性强的优点.5.期刊论文郝宝根基于MATLAB和单片机的数字滤波器的设计-仪器仪表用户2008,15(3本文从MATLAB和单片机的角度,实现了数字低通滤波器的设计.本设计搭建了以单片机为核心的硬件电路,通过MATLAB工具箱来设计数字低通滤波器,得到滤波器的系数,而后在单片机中编写汇编程序,用Proleus实现信号的仿真.6.期刊论文向先波.徐国华.张琴Matlab环境下PC机与单片机的串行通信及数据处理-单片机与嵌入式系统应用2004(12结合单片机和Matlab两者的优点

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论