硬件系统
该系统分为上位机和下位机两大部分,M12作为定时模块接入,其基本的框图如图1所示。
上位机是具有一定配置的PC机,AT89C58作为下位机主控CPU与上位机相连接,完成控制数据与信号数据的交互。与AT89C58相连的可以划分为五个模块,它们分别是:DDS(直接频率合成)模块,采用AD9852来实现;电流电压输出模块,采用TMS320VC5402定点DSP来实现;同步定时模块,采用M12 GPS接收器来实现;开入动作变化量检测模块,采用AT89C2051来实现;开出动作变化量计时模块,采用8255定时器来实现。
本文主要介绍作为同步定时模块的M12是如何与主控设备完成软硬件连接,并且协调工作的。此处硬件的连接是通过标准异步串口来完成的,需要指出的是,M12的标准异步串行接口采用的是3V逻辑电平,而主控设备输出的逻辑电平却是5V,因此采用MAXIM公司生产的MAX3370作为逻辑电平转换模块,起到衔接的作用;主控设备与M12之间采用模拟串行通信。硬件连接简单,主要功能由软件来实现。M12的初始化编程以及定时数据的采集、比较、反馈的详细过程见软件实现。
模块特点
M12接入系统如图2所示。
该系统使用Motorola 公司生产的M21 GPS接收器作为定时源。M12接收器的并行通道已经扩展到12个,提供码跟踪和载波辅助跟踪,可同时跟踪12颗卫星,可串行输出纬度、经度、高度、速度、航向和时间信息。M12接收器的核心硬件MRFIC1504是基于MMC2003的32位RISC控制器。M12接收器提供2.75~3.2V的电压,支持逆向差分,可以通过设置差分基站的方法来改良定位效果。支持RTCM SC-104(美国海用无线电技术委员会)格式的差分功能,NAEA 0183(美国国家海洋电子学会)格式输出,双通信串口,用户可控制的速度滤波器和一个天线检测回路。用户还可以选择使用垂直于电路板或者是平行于电路板的数据/电源连接器。基本的控制流程如图3所示。
在主控设备与M12通信过程中,建议采用其特有的Motorola二进制数据与指令格式,通信速率可以保证在9600bps(取决于M12),而采用NMEA-0183格式时,通信速率只有4800bps,同时在初始化GPS时还需要加入由Motorola二进制转化为NMEA-0183的指令,相比之下较为繁琐,而Motorola二进制是默认通信模式。
在此设计当中,关键的环节在于两个方面,一是M12的初始化,二是主控设备与M12之间采用的模拟串口通信是否可靠。对于M12初始化而言,重点在于理解Motorola二进制数据格式的结构,其次是设置初始化时间。实时时钟是M12的特征之一,它用于缩小TTFF(捕获时间),在主电源被切断而后备电源工作时,数据和时间信息将被存储在RTC寄存器中。因此存在初始化在GPS锁定第一颗卫星之前,或是让让卫星自动搜索两种初始化时间信息的方式。实践证明,第一种方案得到的TTFF较小,所以建议采用。GPS默认提供的是GMT(格林威治时间),因此用户需要根据当地的情况设置时区的偏移量(中国为东8区,+8)。具备以上知识后,就可以从数据包中提取时间信息。此处选用短位置消息。
@@Hbmdyyhmsffffaaaaoooohhhhmmmm VVvvhhddntssrrvvvvvvC<CR><LF>
下面仅仅分析它有关定时信息的部分。
实例如下。
@@Hb021C07D4092D280001121A000000000000 00000000000000000000000000000000000000016088 0000503035463039
转化成16进制的数是021C07D4092D280001,对应的时间是2.28.2004.9:45:40:0001。
对于模拟串口而言,首先应当明确采用哪一种执行方式。其次,就是选定通信波特率。最后就是确定具体的硬件结构。这里采用起始位为1bit,终止位为1bit,无奇偶校验位,波特率为9600,晶振频率为11.0592MHz。处理流程如图4所示。
MRXD代表一个1比特的位地址,它用于检测串口通信起始位,终止位的有效性;MTXD代表一个1比特的位地址,它用于发送串口通信所需的起始位,终止位;CONT代表一个计数器,用于控制所发比特的个数。
源代码。
PCON EQU 87H
HEAD EQU 20H
INT_OK BIT 08H
ORG 0000H
LJMP START
ORG 0023h
LJMP RECIEVE
ORG 0100H
START: MOV PSW,#00H
MOV SP,#70H
MOV TMOD,#20H
MOV TH1,#0FAH
MOV TL1,#0FAH
MOV PCON.#80H
SETB EA
SETB TR1
SETB ES
SETB P1.0
CLR INT_OK
MOV SCON,#70H
MOV DPTR,#TAB1
MOV R7,#11H
SEND1: CLR A
MOVC A,@A+DPTR
MOV SBUF,A
SWAIT1: ;发送@@Gb数据帧,初始化时间偏移
JNB TI,SWAIT1
CLR TI
INC DPTR
DJNZ R7,SEND1
MOV DPTR,#TAB2
MOV R7,#08H
SEND2: CLR A
MOVC A ,@A+DPTR
MOV SBUF,A
SWAIT2: ;发送@@Hb数据帧,启动GPS
JNB TI,SWAIT2
CLR TI
INC DPTR
DJNZ R7,SEND2
MOV R5,#00H
STOP_HERE: ;检测接收到的数据帧是否有效
JNB INT_OK,STOP_HERE
MOV DPTR,#TAB3
MOV RO,#65H
MOV R7,#03H
TIME_1: ;与规定的时间相比较,相等时置中断标志位
CLR A ;不相等时重新接收
MOVC A ,@A+DPTR
MOV @RO,A
INC RO
INC DPTR
DJNZ R7,TIME_1
MOV RO,#36H
MOV R1,#65H
MOV R7,#03H
ACALL CMP
CJNE A ,#00H,WAIT
CPL P1.0
WAIT: CLR INT_OK
AJMP STOP_HERE
RECIEVE: ;接收程序,完成接收,校验,置中断标志位的功能
PUSH PSW
PUSH ACC
CLR ES
CLR RI
MOV PSW,#08H
MOV A,SBUF
CJNE A ,#40H,STOP
RR1: JNB RI,RR1
CLR RI
MOV A ,SBUF
CJNE A ,#40H,STOP;前两个字节若为@@继续,
否则,跳出
MOV RO,#30H
MOV R7,#34H
RR2: JNB RI,RR2
CLR RI
MOV A ,SBUF
MOV @RO,A
INC RO
DJNZ R7,RR2
MOV RO,#30H
MOV R7,#30H
ACALL TEST
MOV A,@RO
CJNE A ,20H,STOP
SETB INT_OK;置中断标志位
STOP: POP ACC
POP PSW
SETB ES
RETI
TEST: MOV A,@RO
MOV 20H,A
INC RO
TT1: MOV A,@RO
XRL 20H,A
INC RO
DJNZ R7,TT1
RET
CMP: MOV A ,@RO
MOV B,A
MOV A,@R1
CJNE A ,B,CMP1
INC R0
INC R1
DJNZ R7,CMP
MOV A,#00H
LJMP CMP3
CMP1: JC CMP2
MOV A,#OFFH
LJMP CMP3
CMP2: MOV A,#01H
CMP3: RET
TAB1: DB
40H,40H,47H,62H,01H,01H,07H,0D4H,0CH,00H,00H,00H,08H, 00H,0D9H,0DH.0AH
TAB2: DB 40H,40H,48H,62H,01H,2BH.0DH,0AH
TAB3: DB 0BH,10H,01H
END
总结
本文主要介绍了如何使用Motorola公司生产的M12 GPS接收器来完成继电保护检测装置的异地双端同步试验,该模块大大提高了继电保护测试水平和工作效率,并且有效减少了人为误差,防止了继电保护及其安全自动装置的不正确动作。