首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
分布式发电机励磁监控系统的设计
来源:本站整理  作者:佚名  2011-08-01 09:40:39




 

(1)设置CRC寄存器,并给其赋初值FFFFHEX。

(2)将全部数据的第一个8bit数据与16位CRC寄存器的低8位进行异或,并把结果存入CRC寄存器。

(3)CRC寄存器整体向右移一位,MSB补零,移出并检查LSB。

(4)如果LSB为0,重复第三步;若LSB为1,CRC寄存器与多项式码相异或。

(5)重复第(3)与第(4)步直到8次移位全部完成。此时一个8bit数据处理完毕。

(6)重复第(2)至第(5)步直到所有数据全部处理完毕。

(7)最终CRC寄存器的内容即为CRC值。

Delphi6.0环境下CRC-16实现的函数如下:

function CRC16CRC_Dataarray of ByteDATA_Leninteger word

var

CRC16LoCRC16Hibyte //CRC 寄存器

SaveLoSaveHibyte //CRC 中间寄存器

GLoGHibyte //生成多项式

iinteger //需校验数据的字节数

Flaginteger //移位的次数(8次)

begin

CRC16Lo=byte$ff

CRC16Hi=byte$ff //给CRC寄存器赋初值

$ffff(HEX)

GLo=byte$01

GHi=byte$a0 //多项式码$a001(HEX)

for i=0 to DATA_Len-1 do //各字节数据

begin

CRC16Lo=CRC16Lo xor CRC_Datai //各字节数据

与CRC寄存器进行异或

for Flag=0 to 7 do

begin

SaveLo=CRC16Lo

SaveHi=CRC16Hi

CRC16Hi=CRC16Hi shr 1 //高字节右移一位

CRC16Lo=CRC16Lo shr 1 //低字节右移一位

if SaveHi and byte$01=byte$01 then

//若高字节LSB为1,则低字节MSB置1

CRC16Lo=CRC16Lo or byte$80

if SaveLo and byte$01=byte$01 then

//若低字节LSB为1,则与多项式码进行异或

begin

CRC16Hi=CRC16Hi xor GHi

CRC16Lo=CRC16Lo xor GLo

end

end

end

CRC16=CRC16Lo256+CRC16Hi //CRC低字节在

前,高字节在后

end

用双微机松耦合实现了励磁控制微机与通信控制微机之间的数据交换,并通过通信控制微机完成与上位机之间的通信,将励磁调节器的任务进行分散,增强了装置的功能和可靠性。该系统已在国内多个中、小型水电站投入运行,运行稳定,得到用户的好评。

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:15,859.38000 毫秒