内容摘要:馈线终端单元(FTU)是配电网馈线自动化系统的主要装置,101规约则是我国电力行业标准。本文讨论了基于新型DSP芯片TMS320F2812的FTU设计,着重介绍了如何利用TMS320F2812的异步串口实现101规约,并给出了涉及异步串口的硬件原理图和C语言源码。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
关键词: 101规约 TMS320F2812 FTU 串行通信
1 引言
101规约即DL/T634.5 101-2002,等同采用国际电工委员会制定的IEC60870-5-101基本远动任务配套标准,是我国电力行业标准,也是我国大多数电力自动化产品支持或将要支持的通信规约。所以,使用101规约作为FTU与配电网主站的通信规约,可以使产品间具有更好的兼容性、开放性和标准性。
快速、准确传输故障信息是实现配电网馈线自动化系统的关键,因而,作为馈线自动化系统主要装置的FTU,要实时检测电网运行状态,即时判断、记录、隔离故障,恢复非故障段线路运行,并快速向主站发送记录数据、执行主站下发的命令。随着交流采样技术的发展,数据处理量的加大,以单片机为核心芯片的传统FTU已难以满足实时性的要求;而目前FTU大都采用AD 2185 DSP外加单片机或CPLD、FPGA等进行硬件外扩,电路复杂,成本高,无疑增加了开发难度、周期和所需费用,并降低了系统的可靠性。TI公司推出的新型32位定点DSP芯片TMS320F2812 (以下简称F2812) 则很好的解决了这一矛盾,它不但具有150M的主频和高速运算处理能力,而且有着丰富的片内外设资源,控制功能极其强大,在几乎不需要任何硬件功能模块外扩的情况下就可以满足FTU所有功能要求。因而,本文基于F2812进行了FTU设计,着重论述了如何利用F2812内部异步串口实现101规约。
2 101规约简介
101规约只采用了OSI 7层模型中的物理层、数据链路层和应用层,这样简化了结构,满足了传送数据时实时快速性的要求。物理层定义了接口电路标准和网络结构,一般采用RS232或RS485。数据链路层主要是在通信设备之间建立可靠的数据传输通道,它需要将输入的数据分成数据块,组成数据帧并进行传送,同时还要处理接收端发来的应答帧;101规约采用的传输帧格式有3种,如图1所示。应用层为用户使用窗口,它的报文仅包含一个应用服务数据单元;应用服务数据单元包含了数据、控制命令等各种信息的统一编码,其格式见图2。链路层的用户数据就是由应用服务数据单元组成 。
单点帧“E5”用来表示无所请求的数据;固定帧则主要用作命令或确认;而可变帧主要用作数据传输,如时钟同步、SCADA数据等。
3硬件设计
3.1 系统硬件结构框图
在系统硬件结构设计上,将FTU分为上下两层板。下面一层是信息采集和控制板,它包括PT、CT、光电耦合器、控制继电器、串口电平转换芯片等组成的数据采集、数字信号控制和通信等模块;上面一层是CPU板,它包括DSP、锁存器等组成的数据处理、数字信号开入或开出等模块。这样的设计使得FTU结构层次化,模块化,抗干扰性强,而且方便和简化了系统的调试工作。系统的硬件结构框图见图3。
3.2 异步串口电路部分
<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />3.2.1 F2812异步串口介绍
F2812片内带有两个全双工SCI (Serial Communication Interface,串行通信接口),一般看作UART。每个串口收发器各带有一个16级深度的FIFO,可以减少对CPU的使用率,同时也防止数据丢失。波特率可通过波特率选择器从串行时钟频率中选取,有64K种 。
系统复位后,默认串口为普通串行通信方式;只有当FIFO发送寄存器中SCIFFENA位(BIT14)置1时,才使能带FIFO的通信方式。此后,读写串口收发缓存器,便可将数据移出或移入FIFO缓存单元。
需要注意的是,每执行一次发送或接收中断,都要用软件清除一次对串口中断的应答信号;并且在使用带FIFO的通信方式时,还要清除一次发送或接收中断标志。否则,CPU无法响应下次中断。另外,接收、发送缓存器的低8位才是有效的数据缓存位。
3.2.2 异步串口驱动电路
如图4所示,F2812的两个异步串口,经过光电耦合器HCPL2631隔离和RS232驱动芯片转换电平后与外界通信,其中,串口B可以选择为RS485通信方式。应用时,串口B只能选择RS232和RS485通信方式中的一种;在硬件上,通过对电阻R241和R242有选择的焊接,以区分RS232和RS485通信通道;在软件上,对于RS232通信方式,串口B用法与串口A完全一样,下面会详细讨论;对于RS485通信方式,由于RS485为半双工通信方式,所以要用软件输出数字信号经光电隔离后对MAX1486的DE引脚加以控制,以实现数据发送和接收间的切换。
图4异步串口驱动电路
4 软件设计
4.1 整体设计思想
对于数据结构,参照101规约规定的帧结构和应用服务数据单元格式,所有传输数据均可由三种结构体来定义,即由启动字符、帧长度、控制字以及地址字组成的报头结构体,按应用服务数据单元格式定义的数据单元结构体,由帧校验和结束字符组成的报尾结构体;这三种结构体内部可以再细分,如数据单元标识可定义为由数据单元类型、传送原因和公共地址组成的结构体。具体应用时,单点帧只有一个固定字符,不需要定义变量;固定帧只用到了报头和报尾结构体,其中帧长度为定值,不需要传送;可变帧用到了这三种结构体。
对于程序结构,由于101规约规定了传输帧的格式只有三种,所以在接收和发送数据处理时,均严格按帧的格式来划分模块,按帧格式中的数据顺序来发送数据,程序实现起来方便,而且可以使程序结构化,模块化,便于维护。
值得注意的是,101规约规定了帧格式中的基本单元为字节,而且F2812异步串口的收发缓存也只有8位有效数据位,但TI的C语言中没有这一数据类型,它的基本单元是字;所以,按字定义数据,在接收和发送数据时只取每个字的低8位,这样虽然浪费了一半的存储器空间,但程序编写容易,效率也较高 。
4.2 程序流程
整个通信程序流程思路为:接收中断函数根据帧与帧之间的时间间隔,区分出每一帧,并将已接收完的一帧数据存入内存,然后打开接收数据处理函数;在接收数据处理函数中按帧的起始字不同,分辨出此帧数据是固定帧还是可变帧数据,再按不同帧的格式进行校验,在地址、长度、帧校验和、结束字符均检验正确后,进入固定帧或可变帧解包处理模块;在帧解包处理模块中,根据此帧数据的功能码和用户数据,设置相应的处理标志,完成后打开发送数据处理函数;在发送数据处理函数中,根据接收数据处理函数所设置的处理标志和主程序设置的处理标志,对相应的具体数据按帧的三种结构进行打包,打包结束后,使能F2812发送中断;发送中断将打包完成的一帧数据发送出去,全部发完后,关闭发送中断。至此,一次完整的收发数据处理过程结束。
可见,整个程序各个部分均参照101规约中帧的格式来编写,以接收数据处理函数为例,给出了其流程图,见图5。
4.3串口程序源码
4.3.1 串口初始化
以串口A为例,主要的寄存器设置如下:
SciaRegs.SCICCR.all=0x7; //一停止位,八数据位,无校验位
SciaRegs.SCICTL1.all=0x3; //使能接收和发送
SciaRegs.SCICTL2.all= 0x3; //使能接收和发送中断
SciaRegs.SCIHBAUD=0x3;
SciaRegs.SCILBAUD=0xCF; // 0x3CF=37.5M /(4800bps×8) -1
SciaRegs.SCIFFTX.all=0xE020; //FIFO及其发送中断使能,级位为0
SciaRegs.SCIFFRX. all="0x2021"; //FIFO接收中断使能,级位为1
SciaRegs.SCICTL1.bit.SWRESET=1; //SCIA使能,脱离复位状态
4.3.2 串口接收、发送中断服务子程序
interrupt void SCIARec (void) {
while (SciaRegs. SCIFFRX. bit. RXFIFST!= 0) {
receive[nRec++]=SciaRegs. SCIRXBUF &0xFF;
//接收FIFO不空,则可读取数据到缓存receive[]
……}
SciaRegs. SCIFFRX. bit. RXFFINTCLR="1";
// 清除接收中断标志
PieCtrl. PIEACK. bit. ACK9 = 1;
// 清除中断应答信号
}
interrupt void SCIASend(void) {
while(SciaRegs. SCIFFTX. bit. TXFFST<16){
SciaRegs. SCITXBUF="send"[nSen++] &0xFF;
//发送FIFO未满,则可将缓存send[]中数据写入
……}
SciaRegs. SCIFFTX. bit. TXINTCLR="1";
//清除发送中断标志
PieCtrl. PIEACK. bit. ACK9 = 1;
//清除中断应答信号
}
要注意的是,本程序中设置的 FIFO 接收中断级位为1;若设为大于1的数,则需要用查询方式接收最后的数据。
5 101规约在FTU中的实现
根据配电网馈线自动化系统的要求,FTU主要实现了101规约中的以下功能集:链路复位,链路请求,总召唤,分组召唤(遥测,遥信),遥控,遥信变位,顺序事件记录(SOE),时钟同步,参数下载,文件传输等命令。这些命令都是101规约应用层向用户开放的使用接口,它们的传输均由帧传输来完成,所以对这些命令数据的接收和发送处理均可在上述的数据、程序结构中方便实现。
由于电网中电磁干扰较大,本FTU在与电网直接接触电路部分均用电压、电流互感器和光电耦合隔离器进行了隔离,在硬件上加入了看门狗电路定期进行自检,程序跑飞时即时复位,并在软件上加入了冗余代码进行保护,具有较高的抗干扰能力。在通信时,串口FIFO的使用使得数据传送更加快速、安全,并减少了对CPU的时间占用;同时,本FTU利用了F2812片上的双串口和CAN总线接口资源,可以按RS485或CAN总线方式级联多台FTU或其它设备并行运行,以满足多种现场需求。
参考文献:
1、 夏远福,江道灼,黄民翔 .101规约在馈线自动化系统中的应用. 继电器,2002,30(10)
2、 申斌,孙同景,等 .DNP3.0在基于DSP的FTU中的实现. 电子技术应用,2004,06
3、 Norwegian IEC 870-5-101 User Conventions, 2000
4、 TMS320F281x Data Sheet .Texas Instruments Incorporated, 2002
文章评论(0条评论)
登录后参与讨论