SCADA系统中交流采样器设计
[11-20 17:13:54] 来源:http://www.88dzw.com 嵌入式系统 阅读:8181次
文章摘要:(2)SN74ALVCl64245的1DIR、2DIR接LF2407A的19脚W/R,DSP写时W/R=DIR-4245=1。ALVCl64245的数据从A到B;DSP读时W/R=DIR-4245=0,ALVCl64245的数据从B到A;(3)SN74ALVCl64245的A端数据线接DSP的数据线,B端接MAXl25的数据线。 1.4 A/D转换电路设计 为实现高精度的交流采样,本系统的ADC选用MAXIM公司的14位MAXl25CEAX。有关该芯片的资料参见文献[6],图4为具体应用电路。(1)CHlA~CH4A、CHlB~CH4B分别接PT/CT(电压/电流互感器)调理电路的输出电压。
SCADA系统中交流采样器设计,标签:嵌入式系统开发,嵌入式开发,http://www.88dzw.com(2)SN74ALVCl64245的1DIR、2DIR接LF2407A的19脚W/R,DSP写时W/R=DIR-4245=1。ALVCl64245的数据从A到B;DSP读时W/R=DIR-4245=0,ALVCl64245的数据从B到A;
(3)SN74ALVCl64245的A端数据线接DSP的数据线,B端接MAXl25的数据线。
1.4 A/D转换电路设计
为实现高精度的交流采样,本系统的ADC选用MAXIM公司的14位MAXl25CEAX。有关该芯片的资料参见文献[6],图4为具体应用电路。
(1)CHlA~CH4A、CHlB~CH4B分别接PT/CT(电压/电流互感器)调理电路的输出电压。DO~D13接电平转移器件的5V数据线,经电平转移后接DSP的D0~D13。
(2)DSP的IOPF6直接接MAXl25的CONVST端,IOPF6端发一个正脉冲启动一次A/D转换。转换结束时,MAXl25的INT端输出低电平,通过5V—3V电平转移电路接到DSP的IOPA2(XINn)脚,程序查询IOPA2(ⅪNT1)是否为低电平,为低则读取转换结果。
(3)DSP的IS脚直接接MAXl25的CS端.DSP将MAXl25视为一个I/O端口,用端口指令访问。DSP的电平可以直接驱动MAXl25的控制端。
下面是对MAXl25操作的DSP C语言实例。
(1)写命令到MAXl25
outport(MAXl25,0x03);//input Mux A/Four—Channel
(2)发出启动MAXl25进行A/D转换的脉冲
MAXl25CONV_HIGH;//IOPF6=1
MAXl25CONV_LOW;//需要大于30ns的负脉冲
MAXl25CONV_HIGH;//上升沿启动转换
(3)查询IOPA2(ⅪNT1)是否为低电平(转换完成)
while(*PADATDIR&0X0004)
{KICKDOG;}
(4)读转换结果
for(i=0;i <4;i++)//read result about Ila、Va、Ib、Vb
{
ADC_Result[i]=portl;
Ch_RealData[i][Dots_Index]=(ADC—Result[i ]<<2)/4;
//14 bits dala change to 16 hits data}
1.5 CAN总线接口电路设计
LP2407A集成了CAN控制器,扩展一片CAN收发器就构成了CAN接口电路。收发器选用Philips公司的P82C250,具体电路如图5。
P82C250是5V电源供电,与LF2407A连接要加电平转移电路。R301、D301完成3.3V电平向5V电平转移;R302、R303完成5V电平向3.3V电平转移。
其他如串口扩展电路、SRAM扩展电路、液晶扩展电路等为通用电路.在此不做阐述。
2软件设计
2.1嵌入式软件设计思想
借鉴Windows编程中基于消息驱动的思想,在嵌入式软件中引入基于消息的处理方泫。嵌入式系统的消息可以分为:键盘输入命令、系统接口电路产生的状态信息(如报警、越限等)以及上位机命令。消息的接收采用中断方式,确保消息可靠及时的接收;时间要求非常苛刻的消息,如电机保护,在中断直接处理;其他消息在主程序中对消息进行解析执行。程序设计思想可以用图6表示。
本系统通过CAN总线接收上位机的命令(接收消息)。CAN接收方式采用中断方式.当上位机下达命令时,该装置通过中断及时接收.实时任务直接在中断程序中完成,满足系统的实时性要求;非实时任务则将该命令存入消息(或命令)缓冲区,等待在主函数中查询处理。
2.2程序整体框图
整个程序由主函数、功能函数、CAN通信中断函数、DSP的定时器T1的周期中断(采样中断)函数构成。
DSP的CAN控制器接收中断采用DSP的内核中断1;定时器T1的周期中断采用DSP的内核中断2,用来定期触发MAXl25进行A/D转换。关于LF2407A的中断编程可参见文献[1~2]。
主函数main()的流程如图7所示。
主函数先初始化系统,启动实时采样,实时采样一直运行并始终保持有多个周期的波形数据,供故障录波后观察故障点前后几个周期的波形,以便分析故障原因。然后进入消息处理的循环程序。从流程图可以看到,程序先检查消息(或命令)缓冲区,若有消息/命令,则调用相应功能函数执行命令,判断是否到计算周期以确定是否调用计算函数,然后回到消息处理入口;若没有消息等待处理,则判断100ms计算周期是否到(计算周期可以调整)。若到,则计算一遍电参数,判断是否有越限情况。若有越限则通知上位机,然后返回到消息处理入口,重复开始消息(或命令)的解析执行。消息接收程序以中断方式在后台运行。
2.3功能函数设计
功能函数由主函数main()调用,下面介绍几种主要的功能函数。限于篇幅,函数没有展开,只列出函数名。
计算电参数的函数:void Calc();
向上位机传送电参数值的函数:unsigned int Send_AcqData();
执行参数设定命令的函数:unsigned int Set_Parameter();
向上位机传送报警数据的函数:unsigned Int Send_AlarmnData();
向上位机传送录波数据的函数:unsigned Int Send_WaveRecordData();
本交流采样系统已运行在铁路水电远动系统的FTU(Field Terminal Unit)中,与上位机通信的应用层协议采用DeviceNet协议。实际证明该系统功能正常、性能稳定。
《SCADA系统中交流采样器设计》相关文章
- › SCADA系统中交流采样器设计
- 在百度中搜索相关文章:SCADA系统中交流采样器设计
- 在谷歌中搜索相关文章:SCADA系统中交流采样器设计
- 在soso中搜索相关文章:SCADA系统中交流采样器设计
- 在搜狗中搜索相关文章:SCADA系统中交流采样器设计