DSP芯片SCI模块在电力电子控制装置中的应用
2010-10-26宗波蒋晓春王轩中国电力科学研究院100192
宗波 蒋晓春 王轩 中国电力科学研究院 100192
Zong Bo Jiang Xiaochun Wang Xuan
China Electric Power Research Institute 100192,China
DSP芯片SCI模块在电力电子控制装置中的应用
宗波 蒋晓春 王轩 中国电力科学研究院 100192
Zong Bo Jiang Xiaochun Wang Xuan
China Electric Power Research Institute 100192,China
TMS320F28335是32位浮点DSP(数字信号处理器)芯片,在电力电子装置中的应用日益广泛。本文介绍了利用DSP芯片的SCI(串行通信接口)模块与Visual Basic中的MSComm控件在电力电子控制装置中实现符合IEC60870-5-101规范的串行数据通信方案。该方案可应用于多种基于DSP的电力电子控制装置与上位机间的数据交换。在实际环境下运行表明该方案简单有效、移植方便,便于系统的开发与调试,具有较强的实用性。
数字信号处理器;TMS320F28335;串行通信接口;IEC60870-5-101规范;MSComm控件
DSP;TMS320F28335;SCI;IEC60870-5-101Protocol;MSComm Control
引言
美国TI(Texas Instruments)公司的系列数字信号处理器(DSP)芯片采用多总线的哈佛结构、流水线结构的指令操作方式、专用的硬件乘法器和快速的DSP运算指令,具有处理速度快、接口通用、外设资源丰富、稳定性好、精度高的特点,适用于汇编或C/C++语言开发,在数字信号处理、通信和工业自动化等领域得到了广泛应用[1]。在大功率电力电子应用领域,设备往往要求具有较好的实时性、较高的可靠性以及维护的便利性,这些都为基于DSP的控制器创造了更广阔的应用空间。控制器内部一般具有复杂的通讯网络,而电力电子装置控制系统与监控系统之间多采用串行数据交互的通讯方式,需要一种通用、简单、可靠、移植性好的串行通信方案。
本文给出的串行数据通信方案中,控制器采用DSP芯片的串行通讯接口(SCI)资源,监控系统工作站采用Visual Basic的MSComm控件,通讯符合IEC60870-5-101规约。该方案可实现基于DSP控制的多种电力电子装置与上位机间的数据交换,模块化的设计有效缩短了电力电子控制装置的开发与研制周期,更便于电力电子装置的实验与维护。
1、通信系统的硬件结构
控制器采用TI公司最新推出的C2000系列DSP产品TMS320F28335。该DSP具有三个串行通信接口,每个串行通信接口SCI的接收器和发送器各具有1个16级深度的先入先出数据缓存器(FIFO),可减少空头服务;具有各自独立的使能位和中断位,可以在全双工通信中同时进行操作[2]。为了确保数据的完整性,SCI对接收到的数据进行间断检测、奇偶性校验、超时和帧出错的检查。通过1个16位的波特率选择寄存器,数据传输的速度可以被编程为65535种不同的方式。串行通信接口的数据,无论是接收和发送都采用NRZ(非返回零)格式。NRZ数据格式包括:1个起始位、1~8个数据位、1个奇/偶校验位或无奇/偶校验位、1~2个停止位、1个用于区分数据和地址的额外位。
本文选用电平转换器MAX3232芯片进行F28335与PC间TTL电平和RS-232电平的转换。MAX3232简单易用,单+3. 3V电源供电,仅需外接几个电容即可完成从TTL电平到RS232电平的转换,硬件接口电路如图1所示。
图1 TMS320F28335与MAX3232硬件接口电路
F 28335内部有三路串行通信模块SCIA、SCIB和SCIC,可根据实际工程需要进行配置。图1中所示为仅选用一路SCIB模块与PC进行串行通信的接口电路方案。
2、通信协议设计
考虑到基于DSP的电力电子控制装置与其他设备通信的多种需要。报文采用电力系统行业常用的IEC60870-5-101[3]规约的帧格式。方案中通信速率设定为9600bps,无校验位,数据位8位,停止位1位。
101 规约中规定了2种帧格式,1种是可变帧格式,1种是固定帧格式。可变帧格式可以用来实现主站(上位机)与从站(电力电子装置控制器)之间的数据传输。固定帧格式则可以用来实现主站与从站之间的查询和确认。帧格式如表1、表2所示。
表1 可变帧格式
说明:
1)启动字符:帧格式的特征码68H代表可变帧格式,10H代表固定帧格式。
2)数据长度:包括控制域、地址域、用户数据区的8位位组的个数,为二进制数。L=1字节(控制域)+1字节(控制域)+用户数据个数×2字节。
3)控制域格式如表三所示。
主站到从站的功能码为:
3 发送/确认帧,传送数据 FCV位1;
表3 控制域
4)链路地址域:地址域(A)的含义是当主站触发一次传输服务时,主站向子站传送的帧中表示报文所要送达的目的站址,即子站站址;当由子站向主站传送帧时,表示该报文发送的源站址,即表示该子站站址。地址域的值为0至255,其中FFH=255为广播站地址,即向所有站传送报文。这里规定上位机(主站)地址为0x01,电力电子装置控制器(从站地址)为0x02。
5)链路用户数据:要传输的数据内容。这里每个数据占2个字节。
6)帧校验和:帧校验和是控制域、地址域、用户数据区8位位组的算术和。
7)结束字符:作为该帧数据的结束。
3、DSP程序设计
3.1 DSP SCI模块初始化
初始化串行口,使帧格式满足通信协议的要求,设置波特率为9600bps。打开串口接收终端,并使能串行口。串行口的初始化程序如下:
该段程序完成了复用I O口的设置,SCIB的初始化,使能SCI发送中断并使SCI退出复位。
3.2 DSP通信程序设计
TMS320F28335串行通信的软件设计和F2407、F2812一样,可以采用查询和中断两种不同的方式,其中查询方式是在查询到相应标志成立时,执行相应的动作(如发送一个字节)。这种工作方式要在串行口和接口电路间交换数据、状态和控制三种信息,致使DSP的利用率受到严重影响[4]。
方案中采用中断方式。DSP启动串口后,不再询问其状态,继续执行主程序,直至串行口产生中断,D S P响应后,开始执行相应的中断服务。
下面仅以接收数据为例,说明DSP芯片SCI模块如何工作。数据接收流程图如图2所示。
图2 DSP数据接收流程图
当SCI模块接收数据后,首先判断接收数据是否完整。随后进行数据解析,解析时,先检测数据帧中的地址信号,如果和自身的地址不匹配,则丢弃该帧;否则进行相应的数据解析。在函数实现中利用SWITCH多分支结构,依据帧中的命令信号对帧进行相应分析,完成串行通信的握手和数据的交互。当解析完成之后向上位机发出确认帧,返回主程序。
4、上位机程序设计
通常情况下,电力电子装置需要1套完善的监控平台实现参数设置、指令发送和系统检测等功能。而VB开发环境具有开发过程简单,开发周期短,可用控件兼容性好等优点,在监控系统工作站这一领域具备较好的优势。MSComm是Microsoft提供的Windows下串行通信编程的一个ActiveX控件,其核心内容是组件对象模型C O M,它以属性和事件的形式提供对Windows通信驱动程序API函数的接口[5]。MSComm控件使用事件驱动方式来处理和解决各类通信软件的开发设计,并提供了使用RS232进行数据通信的所有协议。VB为该控件提供了标准时间处理函数,并通过属性和方法提供对串行通信的设置。其中主要属性如下所示:
C o m m P o r t:设置并返回通信端口号;
Settings:以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位;
PortOpen:设置并返回通信端口的状态,也可以打开和关闭端口;
Input:从接收缓冲区返回和删除字符;
Output:向传输缓冲区写一个字符串;
Rthreshold:设定引发OnComm事件的字节数。在设计接收可预知变长数据串时,灵活使用此属性将大大简化程序设计难度。
4.1 上位机程序设计思想
上位机软件可以用来对电力电子设备进行快速状态设置及查询,便于现场工程师进行快速调试及故障排除。
图3 上位机软件流程图
本上位机软件通过RS232接口与DSP控制器进行通信交互。上位机下发数据给DSP控制器时,DSP控制器采用中断方式接收,DSP控制器回报数据给上位机时则采用查询方式。参数的下发采用先查询后下发的方式。查询完成后,修改要调整的参数再下发所有参数。
上位机软件流程图如图3所示。首先完成必要的初始化,如操作窗口重绘、各变量的初始值设置,以及通讯串口的初始化操作等;
进入主循环后根据初始化数据(默认值)显示部分参数数据(必要定值),并自动查询当前控制器数据。在查询控制器数据结束之后,在主界面上对各参数进行显示,此时,用户可根据需要修改参数,并发送至控制器。再次查询之后,可以根据界面显示判断参数是否修改完成。
4.2 上位机程序部分实现代码
在上位机软件代码实现中,数据的发送由命令按钮的C l i c k事件触发,由M S C o m m的O u t p u t属性来实现。在OnComm事件中从接收缓冲区取出数据,数据的接收是由MSComm的Input属性来实现。这样接收和发送由两个事件分别触发,从而保证了通信的实时性。MSComm的Rthreshold属性用来设定引发O n C o m m事件的字节数。在设计接收可预知变长数据串时,程序员只需在发送查询帧时,重新打开串口,并更改此属性,即可灵活改变需要接受的数据串的长度。
通讯串口1设置源代码:
4.3 上位机程序特点
通过使用V B控件,工程人员可以方便地根据不同任务在上位机上设计出美观的界面和实用的功能。
在本软件设计过程中,涉及界面操作及串口操作的函数全部进行模块化封装。在开发同类型的电力电子设备控制系统时,只需要修改数据解析和数据封装函数,即可实现代码复用。
5、结语
TMS320F28335是目前性能最好的DSP之一,除了具有高速运算能力之外,还具有丰富的外设。采用MAX3232芯片实现TMS320F28335与上位机的串行通信,实现简单且性能可靠。该电路适用于近距离PC与DSP串行通信,通信范围15米之内。
本文给出了一种基于DSP的电力电子控制装置与PC间的数据交换的设计方案,此方案通过DSP中的SCI模块,实现了电力电子装置与P C间的串行数据通信,完成了电力电子装置开发调试过程中的定值参数传递与实验数据上传的功能。该方案已在包括DVR(动态电压补偿器),TSF(晶闸管投切滤波器)等多个电力电子项目中投入使用,效果明显,可有效缩短电力电子装置的开发与研制周期,降低电力电子装置的实验与维护成本。
[1] Texas Instrument. DSP Selection Guide. 2004.
[2] TMS320F28335Digital Signal Controllers (DSCs) Data Manual. Texas Instruments Incorporated, USA, 2007.
[3] IEC 60870-5-101. Companion standard for basic telecontrol tasks.
[4] 苏奎峰等. TMS320X281X DSP原理及C程序开发[M]. 北京: 北京航空航天大学出版社.2008.
[5] 范逸之. Visual Basic与RS232串行通信控制[M]. 北京: 清华大学出版社. 2002.
Application of the SCI Module of DSP Chip in Power Electronic Control Devices
TMS320F28335, a 32-bit floating-point DSP (digital signal processor) chip, is more widely used in power electronic control devices. This paper describe a serial data communications program which combines the SCI (serial communication interface) module of DSP and the MSComm control of Visual Basic could easily achieve the transmit data under the protocol of IEC60870-5-101in power electronic control devices. It can be used in data exchange between variety of DSP-based power electronic devices and the host computer. And the real environment test proved that this method is simple, effective and portable convenience, facilitate the development and debugging of DSP-based power electronic control devices, has strong practicability.
宗波(1981-),男,硕士,助理工程师。从事电力电子技术、数字化控制技术的研究;
蒋晓春(1978-),女,硕士,工程师。从事电力电子与电能质量研究;
王轩(1978-),男,硕士,工程师,从事电力系统与电力电子技术的研究。