(原創)-智能電能表SM1演算法開發套件(主站介面) 基礎資料篇

來源:互聯網
上載者:User

國家電網新標準推出了,最近剛拿到一些資料,由於公司沒有研發團隊,加上國網給的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來引用他

通訊流程:

從中可以看出我們要設計的流程是:

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)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.