RS485总线在智能供电系统中的应用.docx
RS485总线在智能供电系统中的应用ronggang导语:介绍了RS485串行通讯标准及其接口芯片MAX485,给出了PC与多台TMS320LF2407DSP之间串行远程数据通讯接口电路。描绘了公寓智能供电治理系统中上下微机之间的通讯协议及串行通讯软件摘要:介绍了RS485串行通讯标准及其接口芯片MAX485,给出了PC与多台TMS320LF2407DSP之间串行远程数据通讯接口电路。描绘了公寓智能供电治理系统中上下微机之间的通讯协议及串行通讯软件.关键词:DSPMAX485串行通讯本文介绍的分布式公寓智能供电治理系统以一台主控上位PC机为核心,以RS485协议为根底,通过串口连接多台下位机。下位机以TMS320LF2407DSP为主控芯片。由于下位机要完成每个房间电压、电流信号的实时收集、电量实时计算与负载实时识别等多项任务,算法中包含FFT,计算量大,算法复杂,下位机采用DSP芯片是公道的选择。考虑到DSP原开发软件提供的数据库函数有限,故该系统将一些实时性要求不高的任务,如参数设定、波形显示、电能报表输出等交由上位机处理。本文重点介绍了系统中上下微机之间的串行通讯设计。2串行通讯接口硬件电路设计2.1RS485串行通讯标准及MAX485简介RS485标准是美国电气工业结合会EIA制定的以双绞线作传输线的多点通讯标准,采用平衡发送和差分接收,具有较强的抗共模干扰才能,允许双绞线上一个发送器驱动32个负载设备。它解决了RS232标准传输间隔近、信号易受干扰的问题,是工业上广泛采用的串行通讯标准。MAX485是MAXIM公司推出的低功耗串行收发器芯片,该芯片支持RS485协议,采用单+5V电源工作,内部有一个接收器和驱动器,其电路原理图见图1。图中RO和DI端分别为接收器的输出和驱动器的输入,当与DSP芯片连接时应分别与SCIRXD和SCITXD端相连;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态,当DE为逻辑1时,器件处于发送状态,由于MAX485工作在半双工状态,发送和接收共用同一物理信道,该信道必须分时复用,图中的/RE和DE连接端即为控制信号端。MAX485的A端和B端分别为接收和发送的差分信号端,当A引脚电平高于B时,代表发送的数据为1;当A脚电平低于B时,代表发送的数据为0。2.2DSP通讯模块介绍TMS320LF2407DSP内部有专用的串行通讯模块SCI,可支持异步串行通讯和多处理器通讯,其接收器和发送器是双缓冲的,收发端均有独立的使能和中断标志位,可以半双工或者全双工工作。SCI模块包括SCIRXD串行通讯数据接收和SCITXD串行通讯数据发送两个外部引脚及7个控制类存放器和3个数据类存放器。通过初始化控制类存放器,可设置数据格式、中断使能、中断优先级、波特率等参数。发送数据时,写1到TXWAKE,将数据写入发送数据缓冲存放器SCITXBUF即可启动一次串行发送;接收数据时,从SCIRXD引脚串行移入数据,存储在SCIRXBUF中,供CPU读取。2.3PC机与DSP串行通讯接口电路由于普通PC机上仅配有RS232接口,假设要利用上位微机的串行口来实现RS485标准通讯,必须进展RS232与RS485接口转换。本设计采用瑞赛特8520接口卡将串行口的RS232标准电平转换成与TTL电平兼容的RS485标准电平,该接口卡使用简便、无需再增加任何外围器件,就可利用标准的PC硬件来轻松构造工业级的长间隔通讯系统。另外,DSP芯片的工作电压为+3.3V,而MAX485的工作电压为+5V,设计时在二者之间添加了光隔电路,光隔电路既实现了电平转换,又防止了系统模块与通讯模块在电气上互相之间的影响。PC机与DSP的串行通讯硬件接口电路原理图如图1所示。图中MAX485的接收使能和发送使能引脚共同由DSP的PC2口控制,以选择某一时刻是接收使能还是发送使能。同时,为保证与传输线阻抗匹配,在差分端口A与B之间跨接了120匹配电阻,以消除通讯线路中的信号反射。3串口通讯软件设计3.1通讯协议为保证串行通讯的准确性和可靠性,上、下位机通讯双方必须具有一样的通讯协议,即一样的波特率及信息传送格式。因此,本设计规定:1通讯双方的波特率为9600bps;2TMS320LF2407DSP内部的SCI模块提供了两种多机通讯形式:空闲线形式和地址位形式,本文中DSP通讯采用了较简单的地址位形式,以保证上位机同所选择的下位机可靠通讯。因此帧数据格式定义为:8位数据位、1位地址/数据识别位1表示地址、0表示数据、1位停顿位、无奇偶校验位;3各台下位机不互相通讯,且不主动发送命令和数据,同一时刻只有一个下位机发送信息给上位机。为了识别每个下位机,系统通过拨码开关等硬件电路为其分配一个特定地址。进展通讯前,上位机首先通过RS485总线播送地址信息,所有下位机都侦听播送,并中断接收。下位机接收到地址信息后,进展地址比对,假设地址一样,那么该下位机把本机地址作为应答信号发送回上位机,然后开场预备接收上位机发来的操纵数据信息,而其它的下位机因地址不符,从中断返回。上位机接收下位机发回的应答地址信息后,比拟地址信息,假如相符,正式发送数据信息,假如不符那么重新发送地址信息。下位机收到上位机发送的操纵数据包后,根据数据包格式把有效数据做累加,然后与接收到的累加和即校验码比拟,假设一样,那么执行相应的操纵,并发送成功回馈信息给上位机;假设不一样,那么讲明发送的数据中有错误,将接收数据缓存区清零,并要求上位机重新发送。3.2PC上位机软件设计系统上位机程序采用DELPHI语言编写,它具有功能强大、简便易用和代码执行速度快的特点,是新一代可视化快速应用开发工具。利用DELPHI实现串口通讯常用的方法有3种:1利用控件,如SPCOMM控件、MSCOMM控件及APRO控件等;2使用API函数;3调用其他串口通讯程序。本系统选用较简单的SPCOMM控件来完成串口选择、波特率设置、帧格式设置、发送和接收缓冲区控制、翻开串口等任务,用Timer控件控制发送地址码信息。上位机PC串行通讯流程图如图2所示,其串口通讯局部相关程序如下:procedureTform1.Timer1TimerSender:TObject;begincomm1.BaudRate:=9600;comm1.parity:=None;comm1.StopBits:=_1;comm1.ByteSize:=_8;oper_comm:=true;/串口承受数据流控制变量comm1.WriteCommDatasendbuf,1;end;接收程序代码:procedureTform1.Comm1ReceiveDataBuffer:Pointer;BufferLength:Word;Beginmovebuffer,rbuf,bufferlength;/将缓冲区数据转移到rbuf变量ifoper_comm=truethenbegin判定承受到下位机发送的应答信息,假设是那么继续执行sendbuf:=操纵命令字符;/发送操纵命令comm1.writecommdatasendbuf,1;oper_comm.:=false;end;elsebegin接收上传数据并求和校验收到数据end;End;3.3DSP下位机串行通讯软件设计下位机DSP串行通讯的软件设计可采用查询和中断两种方式,设计中采用了中断方式接收数据、查询方式发送数据。程序分为主程序和中断接收效劳程序、发送数据程序3个模块。在主程序中对SCI异步串口进展初始化包括操纵形式、波特率、字符长度、奇偶校验位、停顿位位数、中断优先级和使能控制等信息。需要留意的是,为了保证通讯的稳定可靠,串行通讯控制存放器SCICTL1的休眠位SLEEP设置很重要,详细方法为:初始化时将所有下位机DSP的SLEEP位都设成1,使得它们在仅当检测到地址字节时才被中断,在中断效劳程序里,将接收的地址与本机地址比对,假设一样,那么软件去除SLEEP位以确保SCI在接收到每一数据帧都产生中断,否那么SLEEP位仍保持以1,以接收下一个地址帧。DSP接收数据中断流程图如图3所示。align=center/align4完毕语本文介绍了公寓智能用电治理系统中利用RS485总线实现PC机和多台DSP的远程串行通讯设计方案。理论证实,该设计运行可靠,抗干扰性强、可完成较长间隔的串行数据通讯任务。该方案对其它基于DSP的远程数据通讯设计具有一定的参考价值。本文的创新点是,利用DSP内部的专用串行通讯模块SCI及RS485专用接口芯片MAX485实现了PC机与多台DSP的通讯,大大减少了系统的外围设计,通过正确设置SCI中串行通讯控制存放器SCICTL1的休眠位SLEEP,防止了通讯混乱,进步了总线抗串扰的才能。1刘和平,王维俊等著.TMS320LF240xDSPC语言开发应用M.北京:北京航空航天大学出版社,2003.2江思敏等著.TMS320LF240xDSP硬件开发教程M.北京:机械工业出版社,2003.6.3张磊,陈建锋,全力.DSP控制的开关磁阻电机系统远程数据通讯的研究.中小型电机,2005,322:43-464王炼红,章兢.TMS320F2812DSP与PC机的串口通讯设计.微计算机信息,2006,07Z:173-175