32位捕获寄存器的实现方法

文档序号:5879695阅读:247来源:国知局
专利名称:32位捕获寄存器的实现方法
技术领域
本发明涉及微处理器32位寄存器的实现方法,特别涉及用于电力系统频率测量的32位捕获寄存器的实现方法。
背景技术
电力系统中需要精确测量其电气频率,但目前市场上运用较多的微控制器中部分产品只有16位捕获寄存器,该16位捕获寄存器最大计数值为65536,计时间隔为 1. 3107aiiS,而一般微处理器的工频周期为20ms,在这种情况下,利用16位频率捕获寄出器测量电气频率时,需要计数满15个最大周期值才能达到一个工频时间间隔,即便能计数满工频周期间隔,其频率测量的分辨率也会较低,不能保证电气频率测量计算的精度。在这种情况下,多数保护装置采用固定采样频率进行采样,或者采用插点方式进行数据补偿,但是,上述采样方式当测量系统由于故障导致频率变化时,就无法保证采样频率的精确度。

发明内容
本发明的目的在于提供了一种32位捕获寄存器的实现方法,能够克服了现有技术中的不足,保证电力系统频率测量的精度。为达到上述目的,本发明的技术方案是本发明的32位捕获寄存器的实现方法包括以下步骤步骤1 选定所用微处理器的一 I/O 口(input/output,输入输出端口),将所述的 I/O 口定义为捕获口,并将所述的I/O 口的中断触发方式设置为上升沿或下降沿中断触发, 该I/O 口用于检测带有频率信息的方波信号;步骤2 选定所述的微处理器的一 16位定时器(timer),通过调用TIMER_ CONFI⑶RE函数将所述的16位定时器的一第一定时/计数器(timerA)和一第二定时/计数器(timerB)配置为32位周期计数器,使该16位定时器具有32位计数功能。较佳地,所述的I/O 口具有较高的中断优先级,或者具有捕获功能。较佳地,所述的I/O 口的中断优先级设置为2。较佳地,所述的第一定时/计数器和第二定时/计数器均为16位。较佳地,所述的第一定时/计数器的装载值作为32位周期计数器的初始值,所述的第二定时/计数器的当前计数值即为所述的32位周期计数器的当前值。较佳地,在32位模式下,当第一定时/计数器和第二定时/计数器被配置为一个完整的32位周期计数器时,对第一定时/计数器和第二定时/计数器的各项操作,如装载初始值、运行控制、中断控制等,都是将对第一定时/计数器的各项操作作为总体上的32位周期计数器的控制,而对第二定时/计数器的操作对总体上的32位周期计数器无任何效^ ο本发明的32位捕获寄存器用于测量电力系统的电气频率,实现简单,且能保证电力系统频率测量的精度。


图1为本发明32位捕获寄存器的实现方法的总体流程图;图2为本发明32位捕获寄存器的实现方法的一实施例的流程图。
具体实施例方式为使本发明的特征和优点能够更加明显易懂,下面结合附图和具体实施例对本发明作进一步详细的说明。请参阅图1,本发明32位捕获寄存器的实现方法包括以下步骤步骤1 选定所用微处理器的一 I/O 口(input/output,输入输出端口),将所述的 I/O 口定义为捕获口,并将所述的I/O 口的中断触发方式设置为上升沿或下降沿中断触发, 该I/O 口用于检测带有频率信息的方波信号;步骤2 选定所述的微处理器的一 16位定时器(timer),通过调用TIMER_ CONFI⑶RE函数将所述的16位定时器的一第一定时/计数器(timerA)和一第二定时/计数器(timerB)配置为32位周期计数器,使该16位定时器具有32位计数功能。较佳地,所述的I/O 口具有较高的中断优先级,或者具有捕获功能。较佳地,所述的I/O 口的中断优先级设置为2。较佳地,所述的第一定时/计数器和第二定时/计数器均为16位。较佳地,所述的第一定时/计数器的装载值作为32位周期计数器的初始值,所述的第二定时/计数器的当前计数值即为所述的32位周期计数器的当前值。较佳地,所述TIMER_C0NFI⑶RE函数包含两个参数值,分别是定时器参数及位数参数,本实施例是将处理器的定时器2设置为32位周期计数器,将TIMER_C0NFI⑶RE函数中的定时器参数设置为定时器2,将位数参数设置为32,则可将定时器2的第一定时/计数器和第二定时/计数器配置为32位周期计数器。较佳地,在32位模式下,当第一定时/计数器和第二定时/计数器被配置为一个完整的32位周期计数器时,对第一定时/计数器和第二定时/计数器的各项操作,如装载初始值、运行控制、中断控制等,都是将对第一定时/计数器的各项操作作为总体上的32位周期计数器的控制,而对第二定时/计数器的操作对总体上的32位周期计数器无任何效^ ο请参阅图2,本发明实施时包括以下步骤SlOl 选择电气频率测量系统所用微处理器的一 I/O 口(input/output,输入输出端口),设置该I/O 口边沿触发中断方式,用于检测带有频率信息的方波信号;以及选择所用微处理器的一 16位定时器(本实施例选择所用微处理器的定时器2),其用于实现32位周期计数器功能;S102 关闭所用微处理器的外部中断;S103 关闭所用微处理器的外设模块,该外设模块包括I/O 口模块、定时器模块、 A/D采样模块及看门狗模块等;S104 设置测量系统时钟;即使能PLL (Phase Locked Loop,锁相回路或锁相环) 并连接到微处理器作为系统时钟,设置PLL输出频率为200MHz,将测量系统输出分频器的分频值设置为4,则系统进行四分频后的输出频率为50MHz ;S105 使能 I/O 口中断;S106 初始化I/O 口,将选定的I/O 口定义为捕获口,将该捕获口设置为输入端口, 并设置该捕获口上升沿或下降沿触发方式;S107 初始化第一定时/计数器和第二定时/计数器,将第二定时/计数器设置为具有捕获功能的计数器;S108 使能第一定时/计数器和第二定时/计数器;S109 调用TIMER_C0NFI⑶RE函数将第一定时/计数器和第二定时/计数器配置为32位周期计数器;在32位单次触发和周期定时器模式中,第一定时/计数器和第二定时/计数器连在一起被配置为32位递减计数器,并根据写入GPTM第一定时/计数器模式 (GPTMTAMR,通用定时器第一定时/计数器模式)的TAMR位域的值可确定将其选择为周期模式,此时不需要写GPTM第二定时/计数器模式(GPTMTBMR,通用定时器第二定时/计数器模式);SllO 设置第一定时/计数器的装载值a(本实施例中,所用微处理器工作频率为 50MHz,则设置a值为1999999),作为32位周期计数器的初始值,第二定时/计数器的当前计数值b设置为32位周期计数器的当前值;Slll 禁止第一定时/计数器和第二定时/计数器的输出触发功能;S112 设置第一定时/计数器和第二定时/计数器的溢出中断;S113 使能第一定时/计数器和第二定时/计数器开始计数。实施时,当该32位捕获寄存器开始频率测量工作时,首先,电力系统的频率测量程序进入I/O 口中断服务程序,该电力系统频率测量程序每次进入I/O 口中断后都立即取出32位周期计数器的当前值b,并且立即将32位周期计数器的初始值设置为a(因为频率测量系统上电后,1秒内的数据信息将会被丢弃)。频率测量程序运行1秒之后,当该频率测量程序再次进入I/O 口中断服务程序时,取出该32位周期计数器的当前值b,用其初始值 a减去当前值b得到一差值,该差值即是一个工频周期的计时数值,将该差值的数据类型定义为浮点数(float型),计算公式如下
权利要求
1.一种32位捕获寄存器的实现方法,其特征在于,包括以下步骤步骤1 选定所用微处理器的一 I/O 口,将所述的I/O 口的中断触发方式设置为上升沿或下降沿中断触发,该I/O 口用于检测带有频率信息的方波信号;步骤2 选定所述的微处理器的一 16位定时器,通过调用TIMER_C0NFI⑶RE函数将所述的16位定时器的一第一定时/计数器和一第二定时/计数器配置为32位周期计数器。
2.根据权利要求1所述的32位捕获寄存器的实现方法,其特征在于,所述的I/O口的中断优先级设置为2。
3.根据权利要求1所述的32位捕获寄存器的实现方法,其特征在于,所述的第一定时 /计数器和第二定时/计数器均为16位定时/计数器。
4.根据权利要求3所述的32位捕获寄存器的实现方法,其特征在于,所述的第一定时 /计数器的装载值设置为所述的32位周期计数器的初始值,所述的第二定时/计数器的当前计数值设置为所述的32位周期计数器的当前值。
全文摘要
本发明提供了一种32位捕获寄存器的实现方法,包括以下步骤选定所用微处理器的一I/O口,将I/O口定义为捕获口,并将所述的I/O口的中断触发方式设置为上升沿或下降沿中断触发,该I/O口用于检测带有频率信息的方波信号;选定所用微处理器的一16位定时器,通过调用TIMER_CONFIGURE函数将该16位定时器的一第一定时/计数器和一第二定时/计数器配置为32位周期计数器。通过电力系统频率测量程序的设置,实现32位捕获寄存器的频率捕获功能。本发明实现方法简单,且能保证电力系统频率测量的精度。
文档编号G01R1/20GK102457268SQ20101051576
公开日2012年5月16日 申请日期2010年10月15日 优先权日2010年10月15日
发明者刘国营, 常红旗, 李增利, 欧阳强, 王敬仁, 翟富昌, 肖永华, 赵长兵, 陈磊 申请人:北京德威特电力系统自动化有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1