zoukankan      html  css  js  c++  java
  • (原创)智能电能表SM1算法开发套件(主站接口) 基础资料篇

    国家电网新标准推出了,最近刚拿到一些资料,由于公司没有研发团队,加上国网给的DLL没有DEMO,很多东西只好自己边看一边试;

    看到有些人也和我刚接触这东西一样不知道从何处下手.

    今天感冒了,没什么思绪来写程序,特写一篇文章出来,希望对大家有帮助.同时也希望大家都能一起来多交流交流;

    --------------------------------龙亿

    本人现在写的是远程费控智能电表,所以只需用到以下二个函数(其他函数还没测试,不过听说"充值函数"返回值和说明不一致)

    主站函数说明
    说明:以下函数在 TestZhuzhan.dll 中,测试时请在RD-1000 读
    卡器中插上测试母卡。
    1. 身份认证函数
    函数名称 IdentityAuthentication(char *Div,char *RandAndEndata)
    函数功能身份认证取随机数和密文
    Div,输入参数,8 字节分散因子,16 进制字符串。
    参数说明 RandAndEndata,输出参数,字符型,8 字节随机数+8 字节
    密文。
    成功标志 0,成功;
    200,连接加密机失败;
    201,取随机数1 失败;
    202,取随机数2 失败;
    203,密钥分散失败;
    204,数据加密失败;
    205,取密文失败;
    2.远程控制函数
    函数名称 UserControl(char *RandDivEsamNumData,char *dataOut)
    函数功能远程控制
    RandDivEsamNumData,输入参数,字符型,4 字节随机数
    参数说明 +8字节分散因子+8字节ESAM序列号+数据明文。
    dataOut,字符型,20 字节密文
    成功标志 0,成功;
    200,连接加密机失败;
    201,写卡失败;
    202,读卡失败;
    203,计算密文失败;

    注:这个DLL在C#和VB里都是不可以直接引用的,需要通过DllImport来引用他

    通信流程:

    clip_image002[7]

    从上图中可以看出我们要设计的流程是:

    1.取8 字节分散因子,16 进制字符串(可以是自己设一个固定8字节数);

    2.调用TestZhuZhan.dll接口上的IdentityAuthentication函数得到随机数1和密文1;

    3.将得到的随机数1和密文1发送到电表中,电表将返回4字节随机数2和8字节ESAM序列号;

    4.调用TestZhuzhan.dll接口安全认证函数UserControl(char *RandDivEsamNumData,char *dataOut) , 得到20字节密文;

      参数1中:数据明文为:1字节控制码N1+1字节保留字段+大于当前时间的日期yyMMddHHmmss(书上写的是ssmmHHddMMyy是指密文,明文是不用倒的,这里害我调试了半天才好);

                 N1=1AH代表跳闸,N1=1BH代表合闸允许,N1=2AH代表报警,N1=2BH代表报警解除,N1=3AH代表保电,N1=3BH代表保电解除

    5.将密文发送到电表,结束

    注:1,2,3步安全认证只需发一次,

    控制主要在4,5二步

    具体操作代码将在下一篇中和大家讨论.----龙亿(2009-12-08 16:32)

    作者:龙亿
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    PageObject小结
    python函数默认参数坑
    编译Android 8.0系统 并刷入pixel
    CF 289 F. Progress Monitoring DP计数
    EDU 61 F. Clear the String 区间dp
    Educational Codeforces Round 55 G 最小割
    Educational Codeforces Round 55 E 分治
    hdu 6430 bitset暴力
    AC自动机+DP codeforces86C
    CF895C dp/线性基
  • 原文地址:https://www.cnblogs.com/pbuilder/p/1619556.html
Copyright © 2011-2022 走看看