| | 网站首页 | 新闻 | SOPC | FPGA | DSP | ARM | 嵌入式操作系统 | 下载 | 所有产品 | 留言 | 论坛 | 购买指南 | 网络协议 | 驱动设计 | | |
![]() |
![]() |
| 您现在的位置: 21嵌入式控制研究室 >> DSP >> DSP应用 >> 文章正文 |
|
|||||
| 串行通讯在变频调速中的应用 | |||||
| 作者:佚名 文章来源:本站原创 点击数: 更新时间:2005-11-29 | |||||
|
摘 要:本文研究了以TMS320F240为核心控制器的变频调速装置与PC机的通讯及程序设计方法。文章分析了通讯协议及数据传输的格式,详细介绍了DSP和上位机的软件设计,给出了流程图和人机界面,验证了该软件可以用于PC机对调速装置的远程监控,获得预期的效果。 关键词:数字信号处理器;串行通信;PC机 一 引言 交流电机因其坚固耐用、体积小、价格便宜而在工业领域获得广泛的应用,目前交流电机的调速方法主要是变频调速。变频调速技术集自动控制、微电子等技术于一体,它以很好的调速性能、显著的节能效果在工业领域得到了广泛的应用,变频器便是其中应用最多的一种调速装置。现代变频调速器采用的是数字控制技术,以专用数字处理芯片为核心,能够适合各种场合的电机拖动控制。它不仅节省能源,又是生产机械自动化的重要手段。采用变频器和微机组合实现对电机的控制能够充分发挥变频器的优势,使电机的调速过程更加灵活,因此微机与变频器之间的通讯也就十分重要。 本文中的数字信号处理(简称DSP)采用的是TI公司的TMS320F240(以下简称F240),它是专门用于数字电机控制(DMC)的一种低价格、高性能16位定点运算DSP,其将高性能的DSP内核和丰富的微控制器外设功能集于一身,为控制系统应用提供了一种理想的解决方案。F240的串行通信接口(SCI)支持CPU与其他采用标准NRZ(不返回零)格式的异步外设间的数字通信,因此可以利用DSP中的SCI模块完成与微机间的指令和数据传递,实现微机对生产现场的检测和控制。 PC机界面采用可视化编程工具VB6.0来编写,VB6.0是运行与Windows上的交互式可视化集成开发环境,利用其强大的通讯控件和可视化编程,可方便实现PC机与DSP间的通信,同时提供良好的人机界面,方便用户的操作和使用。 二 通信协议 F240的SCI的接收和发送数据都是采用的非归零码,如图1所示。它是标准的异步通
图1 典型的SCI数据帧格式 信方式,一帧数据包括1位起始位、8位数据位(最低有效位在前)、奇偶校验位(可选)、1位或2位停止位。本文中的帧数据由10位组成,没有奇偶校验位,用专门的字节来校验,停止位选择的是1位。 通讯数据由10个字节组成,如图2所示,主要由标志段(同步信号)、地址段、信息段和校验段4部分组成,下面分别说明。
标志段的报头采用“7EH”,用以通知CPU一次传输数据的开始,即只有检测到报头后才认为接收到的是一组正确数据。 地址段的5~7位是上位机地址,0~4位是下位机地址,采用地址段可以实现多PC机与多变频调速装置之间的通信,只有当CPU检测到正确的属于本机的地址时才响应命令。 信息段包含三类信息:命令字、状态字和功能码。其中命令字由高低两个字节组成,可以传递修改功能码、起停和正反转等信息。功能码由三个字节组成,用以传送对诸如频率,启动时间,制动时间等变频器参数。状态字由两个字节组成,用以说明下位机的一些现行状态,诸如非法命令、操作是否成功等。 校验段的值为前九个字节的异或,当CPU接收完数据后对前九个字节做异或运算,再和检验段进行比较,如果相等则认为接收的数据是正确的;如果不相等则把信息段全部置零用以通知接收数据错误,要求重发。 三 DSP的软件设计 一般来说单片机的通信程序可以有两种选择,即查询方式和中断方式。考虑到CPU要完成的控制功能比较复杂时,主循环的时间通常会比较长,因此采用查询方式时的实时性往往不好,下位机对上位机的响应速度比较慢,同时在没有握手信号的情况下也有可能丢失数据。对于变频调速装置中的DSP来说,需要做大量的数据采集、占空比计算以及保护显示、故障记录等工作,可见不适合采用查询方式。鉴于以上原因本文采用的是中断方式。 F240 SCI的初始化工作放在主程序的开始部分,主要完成SCI控制寄存器的初始化,包括中断的设置,波特率,数据位,停止位等等。由于SCI中断既包含发送中断也包含接收中断,因此作为下位机的DSP SCI初始化时开的是接收中断而发送中断是关闭的,即下位机只有接收到上位机命令时才会发送数据,同时程序也是以此为标志位来区分发送过程和接收过程的。下面给出了SCI的初始化程序: SPLK #0017H,SCICCR ;SCI使能,10位数据位,无奇偶校验 SPLK #0051H,SCICTL1 ;接收错误中断和接收使能,时钟使能 SPLK #0002H, SCICTL2 ;接收中断使能,发送中断禁止 SPLK #0022H,SCIPC2 ;使能发送和接收(TXD & RXD)引脚 SPLK #0060H,SCIPRI ;SCI处于低中断优先级 SPLK #0000H,SCIHBAUD SPLK #0082H,SCILBAUD ;波特率为9600bps M_SBIT1 SCICTL1,B5_MSK ;从复位中唤醒SCI 由于CPU完成的控制任务很复杂,所以系统的整体设计要求局部功能对CPU的占用时间尽可能的少,以尽可能地避免中断冲突,使系统整体的控制性能比较优越。针对于通讯模块的程序设计,如果把数据接收发送和数据处理都放到中断服务子程序中将违背上述原则,因此在通信中断服务子程序中只进行数据的接收或发送,即每次只接收或发送一个数据,然后退出中断,当接收或发送完十个数据后就关闭接收或发送中断,这时可以进行数据处理。数据处理放在主循环中,主要用于解码和通知CPU完成相关地操作、形成下位机要反馈地数据信息,数据处理完毕后可以使能相应地接收或发送中断。图3和图4分别给出了这两部分子程序的流程图。
图3 SCI ISR流程图 图4 数据处理流程图 四 PC机的软件设计 采用VB6.0编写通信程序主要有两种方法:(1)利用VisualBasic中的OCX控件MSComm32;(2)运用API函数。方法一,简单、易调试,它使用OnComm事件和CommEvent属性捕捉并检查通信事件和错误的值,属事件触发。本文采用的是这种方法,人机界面如图5所示。 软件的核心部分是控件MSComm32,通过它可以设置通信的端口,波特率,数据位,停止位等控制信息。MSComm控件提供了两种处理通信问题的方法:事件驱动方法和查询方法。最基本的通信事件有接收、发送和出错等,可以使用户方便地处理通信中的所涉及问题,本文采用的就是事件驱动方法。下面给出了该控件的初始化程序。 With MSComm1 '初始化MSComm .CommPort = 1 ' Use COM1. .Settings = "9600,N,8,1" ' 9600 baud, no parity, 8 data, and 1 stop bit. .InputMode = comInputModeBinary .InputLen = 10 .RThreshold = 10 .SThreshold = 1 .OutBufferCount = 0 .InBufferCount = 0 .PortOpen = True 'Open the port End With 由于变频器具有大量的运行参数和设定参数,要完成对其监控上位机软件就必须具有相应的数据库,以保证可以对这些参数进行有效的管理,本文中的数据库是采用Access来建立的,包含了参数的最大值最小值以及当前值等信息。VB中的Data控件支持Access数据库,具有预先设计的数据库导航允许用户遍历所有数据,基本上不需要或很少的编程就可以很方便的实现数据库的连接。但是该控件无法实现数据的浏览,因此需要把具有数据绑定功能的控件同Data控件结合起来使用,本文中是采用Textbox和ComboBox控件来显示数据库内容的。 软件还包含了对通讯线路故障和通信状态的检测以及无效端口和端口开关的容错处理,在一定程度上提高了软件运行的可靠性。
图5 上位机人机界面 五 结论 利用DSP的串行通信接口(SCI)和功能强大的面向对象的开发工具VB6.0,可以方便地实现DSP与PC机间的单机或多机串行通信。本文所涉及的软件已在PC机和以TMS320F240为核心的变频调速装置上进行了调试,通过PC机远程控制电机的转速、起停等运行状况,验证了本方案的正确性,并获得了满意的效果。 |
|||||
| 文章录入:fengfeiyi 责任编辑:fengfeiyi | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 | | |
![]() |
站长:康草科技 |