ESAM产品说明及应用操作指令流

合集下载

esam标准

esam标准

esam标准
ESAM(Extended Secure Application Module)是一种安全应用模块的标准,用于保护和管理集成电路卡(IC卡)中的应用程序和敏感数据。

ESAM标准由中国的国家密码管理局(State Cryptography Administration)制定和发布。

ESAM标准包含了一系列的技术规范和安全要求,旨在保障IC卡应用的安全性和可靠性。

以下是ESAM标准的一些主要内容:
1. 安全要求:ESAM标准规定了对于ESAM生产、应用和管理过程中的安全性要求,包括密钥管理、身份验证、数据传输保护、应用生命周期管理等方面的要求。

2. 功能规范:ESAM标准定义了ESAM的功能规范,包括指令集、数据结构、算法等。

它涵盖了ESAM模块的各种基本功能,如密钥管理、数据加密解密、数字签名等。

3. 接口规范:ESAM标准定义了ESAM模块与应用层之间的接口规范,确保应用程序可以正确地与ESAM模块进行通信和交互。

4. 安全评估:ESAM标准规定了对ESAM模块的安全性进行评估和验证的要求,包括安全评估方法、测试用例和评估结果的评定等。

通过遵循ESAM标准,可以确保IC卡应用的安全性和可信度,防止潜在的安全威胁和攻击。

请注意,ESAM标准仅适用于中国境内的IC卡应用,并且需要遵守相关的法律法规和隐私保护要求。

ESMS大坝安全监测系统说明书

ESMS大坝安全监测系统说明书

ESMS大坝安全监测系统说明书1:系统功能:ESMS系统主要用于完成与测量大坝的传感器进行数据采集,计算,分析,了解大坝实际运行状态。

2:设计思想ESMS系统本者易操作,界面美观的原则进行设计。

采用VB6进行编制。

它与MCU 之间采用类似研华通信协议来完成数据交流,通讯总线采用RS-485。

它具有远程控制操作功能,错误自动报警功能,远程控制和错误报警均采用电信交换网络实现。

系统结构框图设计慨要3详细设计3-1:数据库设计ESMS 大坝安全监测系统软件的数据库采用ACCESS数据库。

数据库名字为UNISYS,UNISYS 分为以下几个表:1:USERSET 用于存放用户档案字段名:USERNAME(用户名,10),USERPSD(用户密码 ,10),USERLEV(用户级别,6)2:COLLECTION_TMP 用于存放临时采集数据字段名:SURVEYNAME(测点名称,12),COLLECTTIME(采集时间,8),COLLECTDATE(采集日期,8),RAWVALUE1(初值1,8,对于差动电阻为R1,振弦为频率)RAWVALUE2 (初值2,8对于差动电阻为R2,振弦为温度)RAWVALUE3(初值3,8,对于差动电阻为R 和,振弦为空),RAWVALUE4(初值4,8,对于差动电阻为100欧姆值,振弦为空).MIDVALUE(计算值,8,相对位移).REMAKE(备注,20,)3:COLLECTION_OK 用于存放临时采集数据正常值同上4:COLLECTION_ALARM 用于存放临时采集数据异常值字段名:SURVEYNAME(测点名称,12),COLLECTTIME(采集时间,8),COLLECTDATE(采集日期,8),RAWVALUE1(初值1,8,对于差动电阻为R1,振弦为频率)RAWVALUE2 (初值2,8对于差动电阻为R2,振弦为温度)RAWVALUE3(初值3,8,对于差动电阻为R 和,振弦为空),RAWVALUE4(初值4,8,对于差动电阻为100欧姆值,振弦为空). MIDVALUE(计算值,8,相对位移). REMAKE(备注,20,出错原因)5:CHANGE_DATA 用于存放修正后的采集数据同上6:CHANGE_DATA_BCK 用于存放修正后数据的备份同上7:ALARM_DATA 用于存放采集数据异常值字段名:SURVEYNAME(测点名称,12),COLLECTTIME(采集时间,8),COLLECTDATE(采集日期,8),RAWVALUE1(初值1,8,对于差动电阻为R1,振弦为频率)RAWVALUE2 (初值2,8对于差动电阻为R2,振弦为温度)RAWVALUE3(初值3,8,对于差动电阻为R 和,振弦为空),RAWVALUE4(初值4,8,对于差动电阻为100欧姆值,振弦为空). MIDVALUE(计算值,8,相对位移),,REMAKE(备注,20,出错原因)8:CHANGE_DATA_BCK 用于存放修正后数据的备份字段名:SURVEYNAME(测点名称,12),COLLECTTIME(采集时间,8),COLLECTDATE(采集日期,8),RAWVALUE1(初值1,8,对于差动电阻为R1,振弦为频率)RAWVALUE2 (初值2,8对于差动电阻为R2,振弦为温度)RAWVALUE3(初值3,8,对于差动电阻为R 和,振弦为空),RAWVALUE4(初值4,8,对于差动电阻为100欧姆值,振弦为空). MIDVALUE(计算值,8,相对位移),FINALVALUE(绝对位移,8),REMAKE(备注,20,)9:ALARM_DATA_BCK 用于存放采集数据异常值的备份字段名:SURVEYNAME(测点名称,12),COLLECTTIME(采集时间,8),COLLECTDATE(采集日期,8),RAWVALUE1(初值1,8,对于差动电阻为R1,振弦为频率)RAWVALUE2 (初值2,8对于差动电阻为R2,振弦为温度)RAWVALUE3(初值3,8,对于差动电阻为R 和,振弦为空),RAWVALUE4(初值4,8,对于差动电阻为100欧姆值,振弦为空). MIDVALUE(计算值,8,相对位移),,REMAKE(备注,20,出错原因)10:HISTORY_DATA 用于存放采集历史数据,包含异常值,正常值同上11:PRT_SURVEY_DATA 用于存放的打印数据(包含人工,历史,修正,异常)同上12:HISTORY_DATA_BCK 用于存放采集历史数据的备份,包含异常值,正常值同上13:UNIT 用于存放大坝各部位的有关信息字段名:UNITNID(各部位的ID号,2)UNITNAME(各部位的名称,20)14:COLLOBJICT 用于存放测量对象的有关信息字段名:COLLOBJICTID(测量对象的ID号,2)COLLOBJICTNAME(测量对象的名称,20)15:SURVEY_INFO 用于存放每个测点的所有信息字段名:SURVEYNO(测点号,12), APPARATUSTYPE(仪器类型,2),MCUTYPE(MCU号码,2), LOCATION(埋设位置,3相对于DAMS_INFO的UNITNMB字段),LOCATIONLEV(埋设高程置,3)SETDATE(安装日期,8),COLLECTTYPE(采集类型,8)FORMULA(计算公式,2相对于FORMULA的UNITNMB字段), CALCPARA1(计算参数1,8,存放初始最小值),CALCPARA2(计算参数2,8,存放初初始最大值),CALCPARA3(计算参数3,8,存放初初始位移值),CALCPARA4(计算参数4,8,存放灵敏度系数),CALCPARA5(计算参数5,8,),CALCPARA6(计算参数6,8,),CALCPARA7(计算参数7,8,),MCUNUMBER(MCU号码,3) SCOPE0(最大正变化幅度)SCOPE0(最大负变化幅度)16:PRT_SURVEY_INFO 用于存放测点库的打印数据(临时)同上17:MCU_INFO 用于存放每个采集模块的所有信息字段名:MCUTYPE(MCU类型,20),MCUMAX(MCU初始最大值,8),MCUMIN(MCU初始最小值,8) MCUADD(MCU地址),MCUVER(MCU版本号).18:PRT_MCU_INFO 用于存放采集模块库的打印数据(临时)19:CONTROL_INFO 用于存放控制信息(测点定时测量的起始,终止时间等) 字段名:SURVEYNO(测点号,12),SURVEYB_DATE(测量起始日期,8),SURVEYB_TIME(测量起始时间,8),SURVEYE_DATE(测量终止日期,8),SURVEYE_TIME(测量终止时间,8),INTERVAL(测量间隔,5,单位分钟),MODE(测量方式,1,计算机测量或是模块测量)20:FBT_INFO 用于存放分布图信息字段名:FBTNAME(分布图名称,20),SURVEYNO(测点号,12)21:PRT_FBT_INFO 用于存放分布图信息库的打印数据(临时)同上22:YYL_INFO 用于存放扬压力方块图信息字段名:FBTNAME(扬压力方块图名称,20),SURVEYNO(测点号,12)23:SURVEY_LOCATION 用于存放测点布置字段名:LOCATIONNAME(测点布置名称,20),SURVEYNO(测点号,12)24:TELCODE 用于存放报警维护人员信息及BB机,手机号码字段名:WORKNAME(维护人员姓名,10) TELEPHONE(维护人员姓名手机,12),BB(维护人员姓名 BB机,12)26:INFOCODE 用于存放系统标准信息代码字段名:INFOCODE (系统标准信息代码,60)25:SURVEY_GROUP 用于存放测点组信息字段名:GROUPNAME(测点组名,20),SURVEYNO(测点号,12)26:PRT_SURVEY_GROUP 用于存放测点组信息库的打印数据(临时)同上27:HANDWORK_REC 用于存放测点人工测量数据字段名:SURVEYNAME(测点名称,12),COLLECTTIME(采集时间,8),COLLECTDATE(采集日期,8),RAWVALUE1(初值1,8,对于差动电阻为R1,振弦为频率)RAWVALUE2 (初值2,8对于差动电阻为R2,振弦为温度)RAWVALUE3(初值3,8,对于差动电阻为R 和,振弦为空),RAWVALUE4(初值4,8,对于差动电阻为100欧姆值,振弦为空)MIDVALUE(计算值,8,相对位移).REMAKE(备注,20,)28:WORK_REC 用于存放用户工作记录字段名:USERNAME(用户姓名,10),INDATE(进入日期,8),INTIME(进入时间,8),OUTDATE(退出日期,8),OUTTIME(退出时间,8),29:PRT_WORK_REC 用于存放用户工作记录库的打印数据(临时)同上30:FORMULA 用于存放测点计算公式字段名:FORMULATYPE(公式类型,20),FORMULA(公式,30)31:PRT_FORMULA 用于存放测点计算公式库的打印数据(临时)同上32:SYSTEM_INFO 用于存放系统信息字段名:DAMSNAME(大坝名称,20),BASELEV1(坝址高程,8),BASELEV2(库底高程,8)CALL(系统出错是否呼叫维护人员,1)COMMPORT(通讯端口,1) CALLPORT(呼叫端口,1)3-2 软件的通讯协议:#MMCC 读MM的CC通到的值MCU返回"$"+CC通到的值+ "!"#MMA 读MM的所有值MCU返回"$"+MM的所有值,每个值之间以,隔开+ "!"#MMT 读MM的类型MCU返回"$"+MM的类型,每个值之间以,隔开+ "!"#MML 校准零点返回"$"+零点值+ "!"#MMH 校准幅点返回"$"+幅点值+ "!"#MMF 读MM的版本号MCU返回"$"+MM的版本号,每个值之间以,隔开+ "!"#MMO 自测试MCU返回"$"+MM的自测试值+ "!"#MMD 读MM的日期+时间MCU返回"$"+"XX"年"XX"月"XX"日"XX"时"XX"分"XX"秒+ "!"#MMUXXXXXX 设置MM定时采集时间间隔,单位分钟如果XXXXXX为000000则取消定时测量MCU返回"$"+CC通到的值+ "!"#MMS 读MM定时采集时间间隔MCU返回"$"XXXXXX+"!" 单位:分钟#MMR 读MM剩余存储空间MCU返回"$"XXXXXX+"!" 单位:字节#MMB 读MM的存储数据MCU返回"$"XXXXXX(数据快长度单位:字节)+数据内容"!"#MMZ+"XX"年"XX"月"XX"日"XX"时"XX"分"XX"秒+ " 设置MM的日期+时间MCU返回"$"+"XX"年"XX"月"XX"日"XX"时"XX"分"XX"秒+ "!"注:MM是采集模快地址代号,从0-FFCC是采集模快的通道代号,从0-8所有通信字符采用ASCII码3-3程序流程图Private Sub Form_Load()Me.RefreshEnd SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)For i = 0 To 7Label114(i).ForeColor = &HC000&Next iGauge1(g_intGaugeIndex).PointerID = 0Gauge1(g_intGaugeIndex).PointerStart = 0Gauge1(g_intGaugeIndex).PointerEnd = 3Gauge1(g_intGaugeIndex).PointerID = 1Gauge1(g_intGaugeIndex).PointerValue = 3Gauge1(g_intGaugeIndex).RefreshTimer1.Interval = 0End SubPrivate Sub Gauge1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)Timer1.Interval = 250g_intGaugeIndex = Indexn = 0End SubDim Msg, Style, Title, Help, Ctxt, Response, MyStringMsg = "确定退出吗?"Style = vbYesNo + vbQuestion + vbDefaultButton2Title = "系统信息提示"Response = MsgBox(Msg, Style, Title, Help, Ctxt)If Response = vbYes ThenSet db = OpenDatabase(App.Path + "\mdb\sysdata.mdb")Set dr = db.OpenRecordset("工作日志")dr.MoveLastdr.Editdr(4) = Datedr(5) = Timedr.Updatedr.Closedb.CloseDoMe.Height = Me.Height - 190If Me.Height < 200 Then GoTo bbDoEventsLoop Until Me.Height = 405bb: DoMe.Top = Me.Top + 220Me.Left = Me.Left + 220Me.Move Me.Left, Me.TopDoEventsLoop Until Me.Top > Screen.Height - 500EndElseCancel = TrueEnd IfEnd Selectg_intGaugeIndex = IndexLabel114(Index).ForeColor = &HFF&Private Sub Command1_Click() Command1.Enabled = False Command2.Enabled = False Data1.Recordset.AddNew DTPicker1.Value = Date DTPicker2.Value = Time MaskEdBox1.SetFocusEnd SubPrivate Sub Command2_Click() On Error Resume Next Command2.Enabled = False Command1.Enabled = False Data1.Recordset.Edit MaskEdBox1.SetFocusEnd SubPrivate Sub Command3_Click() On Error Resume NextDim Msg, Style, Title, Help, Ctxt, Response, MyString Msg = "确实删除该记录?"Style = vbYesNo + vbQuestion + vbDefaultButton2 Title = "系统信息提示"Response = MsgBox(Msg, Style, Title, Help, Ctxt)If Response = vbYes ThenData1.Recordset.DeleteData1.RefreshElseCancel = TrueEnd IfData1.Recordset.MoveLastEnd Sub数据采集Sub Collect()On Error Resume NextMSComm1.PortOpen = TrueCommand5.Enabled = FalseSurvey_ID = 0'Me.Show'''Set dr = db.OpenRecordset("Collectiontemp")'''dr.MoveFirst'''Do While Not dr.EOF '删除测值表''' dr.Delete''' dr.MoveNext'''LoopPicture3.Visible = False '隐藏CHART表Chart = FalseCommand3.Enabled = False'''Set dr = db.OpenRecordset("alarmval") '删除报警表'''dr.MoveFirst'''Do While Not dr.EOF''' dr.Delete''' dr.MoveNext'''Loopdb.Execute "delete * from [正常临时采集数据]"db.Execute "delete * from [异常临时采集数据]"Survey_ID1 = M_intNumberReDim Surveyinfo(M_intNumber)ReDim Ascll_Code(M_intNumber)ReDim ValueMin(M_intNumber)ReDim ValueMax(M_intNumber)ReDim R1(M_intNumber)ReDim Formual(M_intNumber)For i = 0 To M_intNumber - 1Set dr = db.OpenRecordset("select * from [测点信息] where [测点编号]='" & M_strSurvey(i) & "'")Surveyinfo(i) = dr(1)ValueMin(i) = dr(11)ValueMax(i) = dr(10)R1(i) = dr(8)Formual(i) = dr(16)'Ascll_Code(i) = dr(4) + dr(3)dr.MoveNextNext iData1.DatabaseName = App.Path + "\mdb\sysdata.mdb"Data1.RecordSource = "正常临时采集数据"Data1.RefreshData2.DatabaseName = App.Path + "\mdb\sysdata.mdb"Data2.RecordSource = "异常临时采集数据"Data2.RefreshOdoMeter1.Value = 1'滚动数字赋初值 OdoMeter2.Value = M_intNumberCommand1.Enabled = FalseCommand2.Enabled = FalseCommand4.Enabled = Falseresult = False'Call yashi(2)Timer1.Interval = 2000Timer1.Enabled = TrueMSComm1.Output = "#" + Ascll_Code(M_intNumber - 1) + Chr$(13) Text3.Text = Text3.Text + "#0" + Ascll_Code(M_intNumber - 1) + Chr$(13) Toggle1.Visible = TrueToggle1.Value = TrueEnd Sub曲线显示Sub Linedraw()Dim PointName As StringDim J As Integer 'J用于显示加载过程Dim strTable() As String '用于装在表名Dim intNub As Integer '如果某个因子数据为空,不用该参数程序会出错'On Error Resume NextintNub = 0Picture3.Visible = TrueText3.Text = DTPicker1.ValueText4.Text = DTPicker2.ValueTrend1.ClearAllTime1 = DTPicker2.ValueTrend1.XMax = CDbl(Time1 + "12:00:00")Time1 = DTPicker1.ValueTrend1.XMin = CDbl(Time1 + "12:00:00")Trend1.SetXDisplay Trend1.XMin, Trend1.XMaxCombo4.ClearReDim strTable(M_intDrawline - 1)For i = 0 To M_intDrawline - 1 '用于装在表名Set dr = ds.OpenRecordset("select * from surveypoint where SurveyPointNo='" + M_strDrawline(i) + "'")strTable(i) = dr(9)Next iFor i = 0 To M_intDrawline - 1PointName = M_strDrawline(i)Set Rs = ds.OpenRecordset("select * from " + strTable(i) + " where SurveyPointNo='" + PointName + "'AND ( SURVEYDA TE BETWEEN # " + Text3.Text + "# AND #" + Text4.Text + "# ) ORDER BY SurveyDate ") ', dbOpenDynaset)If Rs.RecordCount = 0 Then '判断这个时段内有没有数据MsgBox PointName + " 在这个时段内没有数据!"GoTo aa '开始下一个因子End IfJ = 0Gauge10.PanelMax = Rs.RecordCountGauge10.PanelMin = 0Gauge10.RefreshRs.MoveFirstDo While Not Rs.EOFGauge10.BandID = 1Gauge10.BandEnd = JGauge10.RefreshJ = J + 1V alue = Rs.Fields(PointWay)Time1 = Rs.Fields("surveydate")Trend1.AddXY intNub, CDbl(Time1 + Rs.Fields("surveyTime")), ValueRs.MoveNextLoopRs.CloseCombo4.AddItem PointName '添加过程线因子名称intNub = intNub + 1aa:Next iTrend1.RefreshCall ledsendNumberLed2.V alue = Format$(Trend1.V arMax)NumberLed2.RefreshNumberLed3.V alue = Format$(Trend1.V arMin)NumberLed3.RefreshNumberLed4.V alue = Format$(Trend1.V arAvg)NumberLed4.RefreshPicture3.Visible = FalseEnd SubPrivate Sub Trend1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = 2 ThenPopupMenu toolsEnd IfEnd SubPrivate Sub Y轴设置_Click()Dim ValueMax, ValueMinDim Message, Title, Default, Message1Message = "请输入Y轴最大值"Message1 = "请输入Y轴最小值"Title = "Y轴设置"Default = "1"ValueMax = InputBox(Message, Title, Default)Do While ValueMax = ""ValueMax = InputBox(Message, Title, Default)LoopValueMin = InputBox(Message1, Title, Default)Do While ValueMin = ""ValueMin = InputBox(Message1, Title, Default)LoopDo While ValueMax - ValueMin <= 0ValueMin = InputBox(Message1, Title, Default)LoopTrend1.TrackYDisplayMax = ValueMaxTrend1.TrackYMax = ValueMaxTrend1.TrackYDisplayMin = ValueMinTrend1.TrackYMin = ValueMine '设置Y轴显示数值的范围Trend1.RefreshEnd SubPrivate Sub 背景色彩_Click()On Error GoTo FeilWith CommonDialog1.Flags = cdlCCFullOpen.ShowColorEnd WithTrend1.TrackID = 1Trend1.TrackBackColor = CommonDialog1.ColorTrend1.RefreshFeil: Exit SubEnd SubPrivate Sub 边框色彩_Click()On Error GoTo FeilWith CommonDialog1.Flags = cdlCCFullOpen.ShowColorEnd WithTrend1.BackColor = CommonDialog1.ColorTrend1.RefreshFeil: Exit SubEnd Sub分布图制作程序Sub Fbt_draw()Dim progress_name As StringDim sql As StringOn Error Resume Nextsqlstr = "DELETE * FROM fbttemp " '删除数据库的值Data3数据库绑定到DBGRIG1表Data3.Database.Execute sqlstrFor i = 0 To J - 1Set ds = db.OpenRecordset("select * from yyl where SurveyPointNo='" & Fbt_point(i) & "'AND ( SURVEYDATE BETWEEN # " & DTPicker2.Value & "# AND #" & DTPicker1.Value & "# ) ORDER BY SurveyDate ")ds.MoveLastIf ds.RecordCount = 0 Then '判断数据是否为空MsgBox "没有数据!", vbOKOnly, "警告!"Exit SubEnd Ifds.MoveFirstFbt_value(i) = ds(6)Next iPercent1.Max = ds.RecordCount '百分比设置Percent1.PortionID = 0Percent1.PortionValue = 0For i = 0 To J - 1 '添加值到数据库arr(i, 1) = Fbt_point(i)arr(i, 2) = Fbt_value(i)Data3.Recordset.AddNewData3.Recordset(0) = Fbt_point(i)Data3.Recordset(1) = Fbt_value(i)'If IsNull(ds(3)) = True Then MsgBox "没有数据" Data3.Recordset.Updateds.MoveNextNext i' LoopMSChart1.ChartData = arr '添加值到表MSChart1.RefreshData3.RefreshDBGrid1.RefreshDBGrid1.Visible = TrueEnd Sub定时测量程序Private Sub MSComm1_OnComm()Dim RecStr As StringDim strLen As IntegerDim Value As StringDim Myval As StringSelect Case mEventCase comEvSendCase comEvReceiveRecStr = MSComm1.InputText1.Text = Text1.Text + RecStrIf RecStr = "" ThenExit SubEnd IfIf Left(RecStr, 1) <> ">" ThenRecStr = ""Exit SubEnd IfstrLen = Len(RecStr)RecStr = Right(RecStr, strLen - 1)Timer1.Enabled = FalseIf CSng(RecStr) - CSng(ValueMin(M_intNumber - 1)) <= 0 Then '判断是否比最小值还低If Survey_ID < 3 ThenCall yashi(1)MSComm1.Output = "#" + Ascll_Code(M_intNumber - 1) & Chr$(13)Text3.Text = Text3.Text + "#1#" + Ascll_Code(M_intNumber - 1) + Chr$(13)Survey_ID = Survey_ID + 1Timer1.Interval = 2000Timer1.Enabled = TrueExit SubElseMyval = CStr(Formual(M_intNumber - 1) * (CDbl(RecStr) - R1(M_intNumber - 1)))If Len(Myval) > 7 ThenMyval = Left(Myval, 7)End IfSurvey_ID = 0Data2.Recordset.AddNewData2.Recordset(0) = M_strSurvey(M_intNumber - 1)Data2.Recordset(1) = DateData2.Recordset(2) = TimeData2.Recordset(3) = RecStr 'Text1.Text 'ValueData2.Recordset(4) = MyvalData2.Recordset(9) = Surveyinfo(M_intNumber - 1)Data2.Recordset(7) = "数值超过最低限制"Data2.Recordset(10) = "数值超过最低限制"Data2.Recordset.UpdateData2.RefreshDBGrid1.RefreshDr1.AddNewDr1(0) = M_strSurvey(M_intNumber - 1)Dr1(1) = DateDr1(2) = TimeDr1(3) = RecStrDr1(4) = MyvalDr1.UpdateIf M_intNumber = 1 ThenMSComm1.PortOpen = False '测量完毕Toggle1.Visible = FalseCommand1.Enabled = TrueCommand5.Enabled = TrueTimer1.Enabled = FalseExit SubElseRecStr = ""'Call yashi(2)Timer1.Interval = 3000Timer1.Enabled = TrueM_intNumber = M_intNumber - 1MSComm1.Output = "#" + Ascll_Code(M_intNumber - 1) & Chr$(13)Text3.Text = Text3.Text + "#2#" + Ascll_Code(M_intNumber - 1) + Chr$(13)End IfExit SubEnd IfEnd IfIf CSng(RecStr) - CSng(ValueMax(M_intNumber - 1)) >= 0 Then '判断是否比最大值还高If Survey_ID < 3 ThenCall yashi(1)MSComm1.Output = "#" + Ascll_Code(M_intNumber - 1) & Chr$(13)Survey_ID = Survey_ID + 1Timer1.Interval = 2000Timer1.Enabled = TrueExit SubElseMyval = CStr(Formual(M_intNumber - 1) * (CDbl(RecStr) - R1(M_intNumber - 1)))If Len(Myval) > 7 ThenMyval = Left(Myval, 7)End IfSurvey_ID = 0Data2.Recordset.AddNewData2.Recordset(0) = M_strSurvey(M_intNumber - 1)Data2.Recordset(1) = DateData2.Recordset(2) = TimeData2.Recordset(3) = RecStr 'Text1.Text 'ValueData2.Recordset(4) = MyvalData2.Recordset(9) = Surveyinfo(M_intNumber - 1)Data2.Recordset(7) = "数值超过最高限制"Data2.Recordset(10) = "数值超过最高限制"Data2.Recordset.UpdateData2.RefreshDr1.AddNewDr1(0) = M_strSurvey(M_intNumber - 1)Dr1(1) = DateDr1(2) = TimeDr1(3) = RecStrDr1(4) = MyvalDr1.UpdateSurvey_ID = 0DBGrid1.RefreshIf M_intNumber = 1 ThenMSComm1.PortOpen = False '测量完毕Toggle1.Visible = False'Call Value_chartCommand1.Enabled = TrueCommand4.Enabled = TrueCommand5.Enabled = TrueTimer1.Enabled = FalseExit SubElseRecStr = ""'Call yashi(2)Timer1.Interval = 3000Timer1.Enabled = TrueM_intNumber = M_intNumber - 1MSComm1.Output = "#" + Ascll_Code(M_intNumber - 1) & Chr$(13)Text3.Text = Text3.Text + "#!#" + Ascll_Code(M_intNumber - 1) + Chr$(13)End IfEnd IfExit SubEnd IfMyval = CStr(Formual(M_intNumber - 1) * (CDbl(RecStr) - R1(M_intNumber - 1)))If Len(Myval) > 7 ThenMyval = Left(Myval, 7)End IfData1.Recordset.AddNew '正常测值Data1.Recordset(0) = M_strSurvey(M_intNumber - 1)Data1.Recordset(1) = DateData1.Recordset(2) = TimeData1.Recordset(3) = RecStr 'Text1.Text 'ValueData1.Recordset(4) = MyvalData1.Recordset(9) = Surveyinfo(M_intNumber - 1)Data1.Recordset.UpdateData1.RefreshDr1.AddNewDr1(0) = M_strSurvey(M_intNumber - 1)Dr1(1) = DateDr1(2) = TimeDr1(3) = RecStrDr1(4) = MyvalDr1.UpdateDBGrid1.RefreshIf M_intNumber = 1 ThenTimer1.Enabled = FalseMSComm1.PortOpen = False '测量完毕Toggle1.Visible = FalseCommand1.Enabled = TrueTimer1.Enabled = FalseExit SubElseRecStr = ""Timer1.Interval = 3000Timer1.Enabled = TrueM_intNumber = M_intNumber - 1MSComm1.Output = "#" + Ascll_Code(M_intNumber - 1) & Chr$(13)Text3.Text = Text3.Text + "#3#" + Ascll_Code(M_intNumber - 1) + Chr$(13) End IfCase comEvCTSCase comEvDSRCase comEvCDCase comEvRingCase comEvEOFMsgBox "EOF信号超时"Case comEventCTSTOMsgBox "CTS信号超时"Case comEventDSRTOMsgBox "DSR信号超时"Case comEventCDTOMsgBox "CD信号超时"Case comEventBreakMsgBox "收到一中断信号"Case comEventFrameMsgBox "幀错误"Case comEventOverrunMsgBox "端口超速"Case comEventDCBMsgBox "DCB意外错误"Case comEventTxFullMsgBox "传输缓冲区已满"Case comEventRxParityMsgBox "奇偶校验错误"Case comEventRxOverMsgBox "接受缓冲区溢出错误"End Select End Sub。

ESAM产品说明及应用操作指令流

ESAM产品说明及应用操作指令流

芯片说明手册目录 ....................................................................................................................................................一、电气特性 (2)1. 芯片参数 (2)2. 电气特性 (2)3. DC参数 (3)4.引脚说明 (4)二、指令流 (6)1. 指令说明 (6)1.1主控公钥更新指令 (6)1.2主站公钥本地更新指令 (6)1.3终端非对称密钥对注册指令 (7)1.4主站公钥远程更新指令 (8)1.5终端非对称密钥更新指令 (9)1.6终端对称密钥更新指令 (10)1.7公钥验证指令 (11)1.8MAC运算指令 (12)1.9取响应数据指令 (14)1.10读二进制文件指令 (16)1.11选择文件指令 (18)1.12写二进制文件指令 (19)2. 指令流举例 (20)2.1主控公钥更新流程 (20)2.2 主站公钥本地更新流程 (21)2.3 终端非对称密钥对注册流程 (21)2.4 主站公钥远程更新流程 (22)2.5 终端非对称密钥更新流程 (22)2.6 终端对称密钥更新流程 (23)2.7 主站参数设置流程 (23)一、电气特性1. 芯片参数容量:32K Byte工作电压:3V、5V波特率:9.6kbps ~56 kbps数据保存时间:10年(25℃)写删次数:50万次(25℃)ESD(抗静电):>4kv(HBM)2. 电气特性2.1 最高绝对限额最高绝对限额表2.2 电压、温度以及频率电气特性电压、温度以及频率电气特性3.DC参数DC特性包括每一个引脚地输入门限以及输出驱动电压及电流。

这些参数能够决定最大的DC负载,并决定给定负载的条件下的最大的传送时间。

下表显示了高低电压输入、输出以及IO引脚情况下的DC操作条件,所有的DC参数值在整个温度范围内有效。

ESAM操作过程

ESAM操作过程

终端关于ESAM的操作说明主要参考文件:Ref1:<<RD_TM_100505_关于ESAM功能R8C与ARM的通讯扩展规约>>,Ref2:<<ARM与R8C的通讯帧>>,Ref3:<<智能终端安全功能测试软件操作说明>>主要调试软件:Sw1:<<智能终端安全功能测试软件>>, 该软件模拟实际应用中主站的加密模块功能.名词解释:密钥: 按是否公开分成公钥和私钥公钥: 用于他方在接收到己方数据后,对数据有效性进行验证私钥: 用于己方对即将发送给他方的数据进行加密测试密钥:用于研发测试用的一套密钥套件(国网购买ESAM芯片上未打商标标识)正式密钥:用于正式产品中的一套密钥套件(国网购买ESAM芯片上打商标标识))(PS:因此,终端需要保存主站公钥,主站需要保存终端公钥)1、由于每个终端只能对应单个主站,因此主站公钥和主控公钥直接保存在ESAM芯片中;而每个主站可以对应许多个终端,因此终端公钥需要主站数据库一一保存.2、测试密钥和正式密钥是两个不同的硬件芯片.1.终端非对称密钥对1注册主站: 随机数1 ----+----->签名(主站私钥)------ -----解密获得终端公钥1(终端公钥2)----- | | |终端: 随机数2 ----> -----验签(主站公钥),---->加密终端公钥1(终端私钥2)说明: 通过以上流程, 主站获得了"终端公钥".说明: "读取终端随机数"与"更新密钥请求"两条指令唯一区别在于后者返回值中附加了序列号.举例:获取终端随机数->A5 21 A5 00 00 6B 16<-A561A50900 00 639EBB32FFEFCAF3 4D16获取主站随机数(人工虚拟)如1122334455667788主站计算签名(如图)11AFBDFDCA5C2BB1559C428F51668ED53FA7EBBA0840AB5CDBA80A52265A5584C4E235EF66C1ADCD3DEDDA54EA3C65FA4E8306F648EF 58E35D76D4941D47B68915ECE5F4B8FC742ABE33B57DF88EA2FAF4091537751E544767E8BC44A63E15489B8682F701BF5485B1916073 328CA0739F43A7BD9F8920F40029CE59B99CC1C2终端ESAM芯片计算出的终端公钥密文(计算时间典型值10秒,设计值15秒)->A528A59100011122334455667788639EBB32FFEFCAF311AFBDFDCA5C2BB1559C428F51668ED53FA7EBBA0840AB5CDBA80A52265A5584C4E235EF66C1ADCD3DEDDA54EA3C65FA4E8306F648EF 58E35D76D4941D47B68915ECE5F4B8FC742ABE33B57DF88EA2FAF4091537751E544767E8BC44A63E15489B8682F701BF5485B1916073 328CA0739F43A7BD9F8920F40029CE59B99CC1C28E16<-A568A50101005EBFACE3BDBDE0359B830B7ECA0FF6C9627EF43F2D4ADE146E1E2B84452A1397E23BED01CBAF1F6E5596FE470AEF8F5C1292A0A158E7C2A03 76DC044CAE0A0E3866A3EF0C1E1D352661CBE852F9831143A0E9360FED5EEED61F46F00939E1694D61373C7FE6928DBBCF1616436FB8A8466 68981D82510F8B858326703976315481D0B97ED50F2ED620DF1ED1C27D906CBD7455EED3359926031F5D97DFBDA9A7BC5ACC4ABD644BB7EDA CEE849CEC10E8A0E0159AFFC498E2F3B58F93C23FFABA3658ED25B367D646DC86E96C8A4C444E184EB00344C33EBE0A84FCFB59C4967C9B37 C047D5325F8CD3F6B05D5FE33E07B541654F608998325DE0023044259C83C116主站计算终端公钥1(如图)6E80C1CFDB98D9D5B1FDF4BD6D2D8EC107BB4399FEAAF8FE00A56BD1E908F31362E790D09E4077DA72AEC118F548B94814E869294082 3F7E096C67EE3AC9E54C920DB6BD3769F107ADB489AD9A5120F2EB10440444E3A708A033901901F9786DFDEE5FA54DE0711F694CD971 8A008A4AC78560C508B07D82572EDD688AEE48C6550D6503010001810811223344556677882.终端非对称密钥对2注册同<<终端非对称密钥对1注册>>获取的终端公钥2为:6E80AA01D6001A9734D2C8926234F87614C7B3F60CB829A759C1C6322F14102C93CEADA7551E6F32665324F9A698425038C772C10BED 6935634ED5A01C3A4E8EBCD689573A0D6182A4306371FD15ADA15AF8AB861359B3D0D7A9E1B6C76B1C4113F53AF2D69223A34B35EACF 141371C09854D4243070D168334B111A815FD3C38853650301000181081122334455667788-----------------------------------------3.主控公钥更新主站: --------> -------新公钥密文+签名(cal)------>|(请求更新) | |终端: ----随机数+序列号----> ---------------说明: 通过以上流程,主站下发给终端"主控公钥"举例:获取终端随机数+序列号->A5 2A A5 00 00 74 16<-A56AA51100 00 12E4CE9027B19059 869312A32D021A32 2316主站计算新公钥密文+签名(如图)新公钥密文:AEF028C309D7D07CDB1F44E5675F372450F897303E95EA046CF4905EB32D1A7411AE1612A2397F54E8AEEE2EAB74BBD62C8770C5D931 5257601BBD1E3542FC9817B9FE0064E59EAE03B3FD00DD2F1DD9F16F2997ED7C3815BD5E50324FB6E928AA3E70DA4A2020EBE1FE414F 4EB0B8728CA85A46CB2F77C0D6808DD88C5FCD70517B45CC3CC50318102DA8A5748AC507签名:3719A82C23E38030D7A6FBD03FB3057B8858EB6C762D059C299B1423A480B418CE0D5CFEEDF91703FAF5EB9FFAA5E3F4FFA58934B389 355E5A7ED29AB2FE8FCE8DC4FEDBACE85275384F628D88029ECA25B7182418848E7EFE2A5A15BA52934C0F16B10A467EE3FE259CB0E7 FE7B6A588196C3D422ECD434692F8D1C0EB8D339更新到终端->A524A51001AEF028C309D7D07CDB1F44E5675F372450F897303E95EA046CF4905EB32D1A7411AE1612A2397F54E8AEEE2EAB74BBD62C8770C5D931 5257601BBD1E3542FC9817B9FE0064E59EAE03B3FD00DD2F1DD9F16F2997ED7C3815BD5E50324FB6E928AA3E70DA4A2020EBE1FE414F 4EB0B8728CA85A46CB2F77C0D6808DD88C5FCD70517B45CC3CC50318102DA8A5748AC5073719A82C23E38030D7A6FBD03FB3057B8858EB6C762D059C299B1423A480B418CE0D5CFEEDF91703FAF5EB9FFAA5E3F4FFA58934B389 355E5A7ED29AB2FE8FCE8DC4FEDBACE85275384F628D88029ECA25B7182418848E7EFE2A5A15BA52934C0F16B10A467EE3FE259CB0E7 FE7B6A588196C3D422ECD434692F8D1C0EB8D339C816<-A564A5010000AF16说明:流程同主控公钥更新说明:尚不清楚该指令用途.举例获取终端随机数+序列号->A5 2A A5 00 00 74 16<-A56AA51100 00 4966C28DBD0E966C 869312A32D021A32 D916主站计算新公钥密文+签名(如图)新公钥密文:B73C0675ADBAFE92550A7E0B31A82293692E5CF320115A72816F4C619EB3B3C83A4B02BADB13E7A4D315D0AE98F1B87CF8481BAC1BE3 1A48D7215EA9A13FFA430FB805542404A772EFB9648C08785018B7CB7827695F808149D727A4854E3111873FC7481EE9A9A3D78BE47B 1ABD7F13B6096AFCE61A65D829486EE4AF359E3929876F96C9E53A6D88081850ACE83D8B签名:A66556E9CA19A1EB15FB6E4D990F55D96CDF994E07446FFC0FA39F21E432C632957E0E5B24F5B55EFB44FD31AFB869FE7B8E7D693CF7 2EEE42AE7723855DE84161EF3B49C8DBF6854FDB9DE981B2DBAF4A5DB5240AA660CBBAB1802EE4463DE9B24DE32580EE1196FF9BCD8C F46D1FF72D797D6BCC02FF846ABBC034E720AFC9更新到终端->A525A51001B73C0675ADBAFE92550A7E0B31A82293692E5CF320115A72816F4C619EB3B3C83A4B02BADB13E7A4D315D0AE98F1B87CF8481BAC1BE3 1A48D7215EA9A13FFA430FB805542404A772EFB9648C08785018B7CB7827695F808149D727A4854E3111873FC7481EE9A9A3D78BE47B 1ABD7F13B6096AFCE61A65D829486EE4AF359E3929876F96C9E53A6D88081850ACE83D8BA66556E9CA19A1EB15FB6E4D990F55D96CDF994E07446FFC0FA39F21E432C632957E0E5B24F5B55EFB44FD31AFB869FE7B8E7D693CF7 2EEE42AE7723855DE84161EF3B49C8DBF6854FDB9DE981B2DBAF4A5DB5240AA660CBBAB1802EE4463DE9B24DE32580EE1196FF9BCD8C F46D1FF72D797D6BCC02FF846ABBC034E720AFC9FA16<-A565A5010000B016说明:流程同主控公钥更新说明:尚不清楚该指令用途.举例获取终端随机数->A521A500006B16<-A561A50900 00 F413DA936D4BB097 2716主站计算[使用终端公钥1]会话密钥密文+新主站公钥密文+签名(如图)会话密钥密文:6EF76300567E6B55C1F1F013D3AF723E99137A94DAB03F5B0BA32E86CD2AFB01BD5F428A3E9DDAF208554E76DC1739FCF6694D7324DC 32B2EA197525AF790F8EB29859A0B77381F5A25E4CAB9D856070A855F670F0B571E7C68F3DCB7D77325010E103D0966AC64B3DEA60D2 0EEBC9B815AAC276E5D1D7865F6A6AB9FBB0607E新主站公钥密文:48C97FC0F3251A5380A49619914803A2780537A6BD55988D50643AFD41FEE89DEC782626C5DF26651790D12FA5F65D082D0DAD4699EB 73B048B206977BA563A6F86BA7BFED23FCAACAB59FDF05E30B180********C26118398234936E0F30657909CC28ECB1FD1217E4F65AD B02F5B82F4EE44BCC74DC79D089D614B6E38A032FDCB987C24A42A9077B4BCA387912972签名:1351939472984DED29DA3AD8CEAD5B6303F3693059E40AC65BDC112A4AC739C6575B4C3413E8E196902E9F71C7B92155329162987F58 99745D018BD83C5D511743FB85310E38DB5C967CF66939E96086FB651CD0941CDA2FC6FF54CBB79ACD3B2DB8DBCA26CA03F0F7848B12 369EC640D94E1B21B3B98C36C108C51E2820DFCC更新到终端:-> A526A590016EF76300567E6B55C1F1F013D3AF723E99137A94DAB03F5B0BA32E86CD2AFB01BD5F428A3E9DDAF208554E76DC1739FCF6694D7324DC 32B2EA197525AF790F8EB29859A0B77381F5A25E4CAB9D856070A855F670F0B571E7C68F3DCB7D77325010E103D0966AC64B3DEA60D2 0EEBC9B815AAC276E5D1D7865F6A6AB9FBB0607E48C97FC0F3251A5380A49619914803A2780537A6BD55988D50643AFD41FEE89DEC782626C5DF26651790D12FA5F65D082D0DAD4699EB73B048B206977BA563A6F86BA7BFED23FCAACAB59FDF05E30B180********C26118398234936E0F30657909CC28ECB1FD1217E4F65AD B02F5B82F4EE44BCC74DC79D089D614B6E38A032FDCB987C24A42A9077B4BCA3879129721351939472984DED29DA3AD8CEAD5B6303F3693059E40AC65BDC112A4AC739C6575B4C3413E8E196902E9F71C7B92155329162987F58 99745D018BD83C5D511743FB85310E38DB5C967CF66939E96086FB651CD0941CDA2FC6FF54CBB79ACD3B2DB8DBCA26CA03F0F7848B12 369EC640D94E1B21B3B98C36C108C51E2820DFCC0E16<-A566A5010000B116(若返回失败,说明终端公钥1有误.此时需要重新获取终端公钥1[终端非对称密钥对1注册])主站: ------随机数+签名(主控私钥)------> ----------------| |(返回验证结果)终端: -----验证(主控公钥)-------说明:由于<<智能终端安全功能测试软件>>中的主控公钥和主站公钥均不变,故只要主站随机数固定,生成的签名也固定不变.举例主站根据随机数生成签名(如图)签名:C30541DBD3EC387800C4B71016254E6FE1524E7F310E68404AE884FBEA6D676C0B41CB3529E478A195487EEAB77C716025FBF36DE19E EF91758BFB921C21EA0E04E93A7FBD0583289865DFACF7CF86D876F2DA5A2B002F8AD11AE318556EE22758A9B28FBB454D9887149263 3237970C8D5AE84BE49E7D713B018F9A19676D10发送至终端(根据返回值判断终端保存的公钥正确性)->A523A58900011234567812345678C30541DBD3EC387800C4B71016254E6FE1524E7F310E68404AE884FBEA6D676C0B41CB3529E478A195487EEAB77C716025FBF36DE19E EF91758BFB921C21EA0E04E93A7FBD0583289865DFACF7CF86D876F2DA5A2B002F8AD11AE318556EE22758A9B28FBB454D9887149263 3237970C8D5AE84BE49E7D713B018F9A19676D105316<-A563A5010000AE16说明:流程同主控公钥验证举例主站根据随机数生成签名(如图)签名443D20F9ACE6C86A327E2C800EFA170B21570B5095AA4D88378CBE3BFD197A881F433FB0ADE92E4EAA23683820C448FDB543BE4531DB 31E211352C7C1C3D1A8B40DA82A59D88A84D6A96C2F37A731EA661FFD175888BEF31139E4A03909C3BA9EBD34B6DF1189DFA4F96901D 1672B41818FA9406130783403126B869A5C729AF发送至终端(根据返回值判断终端保存的公钥正确性)->A523A58900091234567812345678443D20F9ACE6C86A327E2C800EFA170B21570B5095AA4D88378CBE3BFD197A881F433FB0ADE92E4EAA23683820C448FDB543BE4531DB 31E211352C7C1C3D1A8B40DA82A59D88A84D6A96C2F37A731EA661FFD175888BEF31139E4A03909C3BA9EBD34B6DF1189DFA4F96901D 1672B41818FA9406130783403126B869A5C729AFAE16<-A563A5010000AE168.终端非对称密钥对1更新主站: 请求---生成会话密钥密文(终端公钥2),------ -----验签(终端公钥2) | | 随机数1, | |解密新终端公钥1(会话密钥) | | 签名(主站私钥) | || | | |终端: -随机数2-> -----验签(主站公钥),---->解密会话密钥(终端私钥2),生成新终端密钥对,加密新终端公钥1(会话密钥),加密并签名(终端私钥2)说明: 通过以上流程, 主站获得了"新终端公钥1"举例获取终端随机数->A521A500006B16<-A561A5 0900 00 5C13800FF909EE69 0B16主站生成[使用终端公钥2]会话密钥+签名(如图)会话密钥:64A15A877A41F6BBB471D4C65E9183E9F9BA8E294EAC8B32CBC0D85C948607F73335AC265CA530DDECE7938B3B944489EA3C620CC5F3 E5EDB6CAEAF8E9B2202283FEFCB94F91A4A432D05D8C08B96D2855718622B0643F6A3717BDF973231D9724934D77BBBE4731F3268DE4 AA3D66549FC769270375F5E41A2441F6948140AC签名:1815A551B869797D9C0D5CF8DC04A29BB13EDC69CC9C1C6D2819B0C4F78429707FEA38E5115EDA32B3E04E366D7AD64A9A95C101230A E11FDAE15D1B88C302A7FD914ABA96C9CE1D2EF404DC99FAD988B4EE08C7515113D122C3855AE6DA40237D9BEFC2B0EB14866EEA0BC2 26EFFAF0F64CA1A2F769431487B2E155D1FCDB9F终端ESAM芯片计算公钥密文->A529A5 11010164A15A877A41F6BBB471D4C65E9183E9F9BA8E294EAC8B32CBC0D85C948607F73335AC265CA530DDECE7938B3B944489EA3C620CC5F3 E5EDB6CAEAF8E9B2202283FEFCB94F91A4A432D05D8C08B96D2855718622B0643F6A3717BDF973231D9724934D77BBBE4731F3268DE4 AA3D66549FC769270375F5E41A2441F6948140AC12345678123456785C13800FF909EE691815A551B869797D9C0D5CF8DC04A29BB13EDC69CC9C1C6D2819B0C4F78429707FEA38E5115EDA32B3E04E366D7AD64A9A95C101230A E11FDAE15D1B88C302A7FD914ABA96C9CE1D2EF404DC99FAD988B4EE08C7515113D122C3855AE6DA40237D9BEFC2B0EB14866EEA0BC2 26EFFAF0F64CA1A2F769431487B2E155D1FCDB9F7116<-A569A5 1101 00CD72691F43BEF44234ADE6A8550B34B78341E09E841ACB879066FC14CC49228C22B525102876F3092BEF716ACBE2AFC72C54D2097696 A08A44C5DA842001486DAA03580D732E909AFAA128816C2E80620829DBB417BD44BD3517F7235B6C63EFCB9806DB0C6066B85B1A8901 4CB57EC3E9390C0165173A61064277B64350C3F45191A80E1AB342045DF2C93BCF142BC3(终端公钥密文)4E1F6D19E229BA11149E53AEF7F2BE6EFB2995A8C2A50B27B14DC6E00E5F8CA4C84252629AD75C0C3F4588930CC54820E8C1BD8B5F62 D307F1D97F161EC4D2CB06213613118CCF20FAC7ABE7DF88D50A1470AC4D38C5AAF3BEA5956E9365A9E5221AAF9EA07F2A3C3CF15BA7 B9CA88CEB27EE7D152A9C689C30DA8591BE14A05(数字签名)3916主站计算[使用终端公钥2]新终端公钥1(如图)6E80B66C76A15E178FE34F82EED8993EE119D49CD5679163019EEA2A5BD12C6C1F9CAFB3BDE5AD4D8200BA3ED137116FB085DF1D63F5 32AB400D3D53C8CE504C954DAF29C6B447B79D824FDDA758449C07BFDB4A94D17FE2073BE297FA00A192B4FAF6A1AE7BAF13DE91733D A137F5A40DCFFAF941A7381006CF8E83CA1E139C40C765030100018000000000000000009.终端非对称密钥对2更新说明:流程同终端非对称密钥对1更新10.终端对称密钥更新获取终端随机数+序列号->A5 2A A5 00 00 74 16<-A56AA51100 00 55B4B973445C55A2 869312A32D02171B C016 主站计算新对称会话密钥密文+下装密钥密文+签名[!测试软件计算失败,原因不明]11.终端对称密钥还原说明:步骤类似终端对称密钥更新[!测试软件计算失败,原因不明]12.单地址计算与验证注意:该指令需要先实现执行[终端非对称密钥注册],以便让主站软件获得终端公钥(尤其是在每次上电后).否则MAC验证将会失败.。

E-MAS亿美移动智能平台接口调用说明_1.0

E-MAS亿美移动智能平台接口调用说明_1.0

<E-MAS移动代理服务器系统>模块设计说明书作者:李蔚完成日期:2012-5-15签收人:签收日期:修改情况记录:北京亿美软通科技有限公司一.对外提供接口注意:接口基于http1.2协议开发,采用post传输方式,字符集为GBK。

命令字中1-开头:表示短信发送部分2-开头:表示短信应答部分3-开头:短信上行部分4-开头:emay专属通道提供接口1.短信发送部分1.1.发送短信接口提供方:短信发送模块接口调用方:E-MAS用户功能描述:将用户提交的短信信息进行异步发送,单线程的方式达到并发,调用后阻塞发送线程直到应答回来,或超时调用连接:http://域名:端口/sms_server.jsp?jsondata={“cmd”:”1001”,”username”:”XXX”,”userpassword”:”XXX”,”key”:”XXX”,”timestamp”,”YYYYMMDDHHMISS+RANDOM(4)”,”channel_id”:”XXX”,”“mobiles”:”XX,XX,XX”,”sendtime”:”XXX”,”smscontent”:”XXX”,”0为成功,其它为失败1.2.获取Mo接口提供方:短信发送模块接口调用方:E-MAS用户功能描述:取得上行短信,返回上行短信的内容,一次最多取5个。

调用连接:http://域名:端口/sms_server.jsp?jsondata={“cmd”:”1002”,”username”:”XXX”,”userpassword”:”XXX”,”key”:”XXX”,”channel_id”:”通道号”,timestamp”,”YYYYMMDDHHMISS+RANDOM(4)”,”channel_id”:”通道ID” ,}应答数据:{“result”:{“reviceId”:”业务主键”,” channelId”:”通道ID”,” mobile”:”手机号码”,” smsContent”:”短信内容”,” sendTime”,”发送时间”}}注:每次最多返回10条数据。

asymtek操作说明

asymtek操作说明

asymtek操作说明 S-920用户培训手册SOHIGH目录一.机器外观介绍二.软体菜单介绍三.机器校正四.程式编写五.生产运行六.机器保养一.机器外观介绍1.灯塔2.工作灯3.冷却风扇4.轨道5.轨道口6.系统开关7.地线接口8底座9.前盖10.鼠标.键盘11.急停开关12.液晶显示器13.安全开关14.上盖1.胶水压力调节器12.胶管架3.加热及传送控制器4.电脑5.加热块风力表6.夹板气压调节器 7.胶水压力调节器28.点胶阀气压调节器1.排风口2.冷却风扇3.主电源接口4.后盖5.主气压接口6.电线安全封盖7.急停开关8.xy轴马达安全盖9.控制卡安全盖10.灯塔1.主气压表2.主开关3.后盖4.主电源线5.SMEMA连接上线6.SMEMA连接下线7.网络接口8.主气压调节阀及过滤器1.胶水压力调节器2.胶水压力指示表3.点胶阀压力指示表4.点胶阀压力调节器5.加热块风力流量表6.夹板气压调节器7.夹板气压指示表8.加热块气压开关1.轨道2.针槽3.指示灯4.校正块5.接触感应器上图为点胶头的接线图,装点胶头时请参考此图.二.软体菜单介绍 1.当我们打开应用软体时,会进入下面的画面:自动运行程式菜单硬体参数设置菜单编写程式菜单点胶头移动及轨道调宽系统测试及诊断2.点击“Runaprogram”会弹出下面的画面:调用生产程式机器校正及参数设置运行程式关闭软体点胶头移动及调宽操作画面返回主菜单3.点击“Configuration”会弹出下面的画面:select language软体语言选择setupunits单位选择changeoperationlevel操作级别选择machineoffsets机器校正菜单setupruntimepreferences程式运行参数设置菜单setupfluidmanger胶水参数设置setupvalves点胶阀参数设置heightsensor高度探测sensor参数设置setuplocations点胶停止后点胶头停止位置设置 setuppurgestationpurge参数及位置设置setupscale称重系统设置setupvisionvision系统设置setupworkpiecealignment设置Workpiecesetupconveyors轨道系统参数设置菜单scanner扫描仪系统设置setupheaters加热器系统设置setupdispense点胶系统设置setuplogging报警事件查询setuppassword不同操作级别的用户密码设置FeatureAccess其它参数设置ConfigurationfilesConfiguration文件库4.点击“Teachaprogram”,进入编程窗口:新建一个程式打开程式文件夹保存程式运行程式单步运行程式停止程式运行进板出板运行程式时不点胶初始化打开相机排胶水称重移动点胶头选择编程方式插入程式的注释选择要执行或者不执行的程式在程式中插入一个发送命令创建一个子程式插入一个处理命令到程式中插入一个处理过程到程式中插入一个移动命令到程式中插入一个时间命令到程式中做连板程式5.点击主菜单的,进入轨道调宽及点胶头移动窗口:当选择“Dispenser”时:1点胶头移动平面2Y轴方向移动,双箭头为快速移动,单箭头为慢速移动3X轴方向移动,双箭头为快速移动,单箭头为慢速移动5方向移动,箭头为快速移动,头为慢速移动6胶头初始化对应的键盘造作如下:x轴向左慢速移动y轴向后慢速移动x轴向右慢速移动y轴向前慢速移动z轴向下慢速移动z轴向上慢速移动x轴向左快速移动y轴向后快速移动x轴向右快速移动y轴向前快速移动z轴向下快速移动z轴向上快速移动当选择“Conveyors”时:1.轨道调宽,双箭头是快速,单箭头是慢速2.传送带动作,双箭头是快速,单箭头是慢速对应的键盘操作如下:传送带向左慢速移动轨道向后慢速移动传送带向右慢速移动轨道向前慢速移动传送带轴向左快速移动轨道向后快速移动传送带向右快速移动轨道向前快速移动三.机器校正当点胶头被拆下清洗重新安装上后,要做校正,校正步骤如下: 1.在主菜单里点“Configuration”.2.从“Configuration”菜单里选择“Machineoffsets”3.在“Machineoffsets”中选择“Valveoffsets”4.在弹出的画面中,我们会看到校正一共分七步,点击“runtoend”,进入第一个校正5.第一个校正是“teachsafeZ”,将点胶头在Z轴方向移动到一个安全高度后,点击“teach”,软体会自动记下这一高度作为点胶头移动时的安全高度。

ESAM


认证机制
后台SAM
主密钥MK 读卡序列号,计算用户卡密 钥SK’=DES(MK,Sn) 产生随机数 RND
计算认证码 RZM =DES(RND,SK’ ) 比较RZM = RZM’? 相等, 置对应安全状态 ,返9000 不相等,送错误信息
终端
密钥SK
送卡序列号
RND 取随机数,计算RZM’
RZM’ =DES(RND,SK )
技术支持
智能卡
技术培训
ESAM
终端
热线服务
开发工具
支持1024位 RSA算法
硬件平台的安全性

1)安全等级高----高端产品 ITSEC E4级


2)ROM 和 EEPROM 安全
3)真随机数发生器 RNG 4)DES 加速器及RSA协处理器 5)高频/低频以及高压/低压检测 6)数据加密及地址串扰
7)防DPA/SPA攻击
ESAM的管脚及时序图
二进制
(透明文件) 权限/加密
线性定长 (特殊记录文件) 权限/加密 钱包文件 权限/加密
记录1
记录2 文件体 记录3 ... 记录N ...
N th 记录 3rd
1st
2nd
应用1 应用2 应用3 ... 应用 N
记录2 记录3 ... 文件数据 (未格式化)
密钥文件
记录N
致谢

我们愿尽最大努力成为您可靠且满意的合作伙伴
•内部认证:使用相应密钥对数据进行加解密运算
•外部认证:通过卡外密钥与卡内密钥比对的方法来改
变卡的安全状态,从而获得操作权限。 •安全状态寄存器:4位 •安全指针 状态0-F
•安全权限
0 1 2 3 4 5 6 7 8 9 A B C D E F 读权 F0 写权32 状态区间

ESM-4450中文说明书

Process Controllers——过程控制器(ESM-4450)(英文使用手册为本使用手册依据,图形请参考英文使用手册)ESM-4450带智能I/O模块系统的通用输入PID过程控制器-4位数字处理(PV)和4位数字处理设置(SV)显示-通用处理信号输入(TC,RTD,mV,V,mA)-可选的二级传感器输入- 电压/电流输入的两点或者多点校准-可设定的ON/OFF,P,PI,PD和PID控制形式-自动-调节和手动-调节PID-人工/自动模式选择控制输出-无扰动切换-智能I/O模块系统-可编程制热,制冷和报警的控制输出功能-电动阀门控制功能-8阶梯模糊控制功能以及利用逻辑输入模块来实现的启动-保持-停止功能-利用模拟输入模块实现远程设置点功能-通过0/4…20mA电流输出模块进行处理值或者过程控制的重新信号转换-利用0…5A~CT输入模块进行发热器故障的检测-输入/输出模块的硬件配置-RS-232(标准)或者RS-485(可选)与Modbus RTU的通讯协议关于使用手册ESM-4450制冷控制器的使用手册由两个主要部分构成。

关于这两个部分的说明如下。

当然,还有其他包括设备的选型信息和技术规格的部分。

所有使用手册的标题和页码都在“内容”部分。

用户可以根据部分号码看到任何相关标题。

安装:在这个部分解释说明设备的物理尺寸,面板安装,电气配线,系统中设备的物理和电气安装。

操作和参数:在这个部分将解释用户接触的设备,以及如何进入参数,参数的描述。

还有在这个部分,当进行物理和电气安装或使用设备时,为防止造成严重伤害的警告。

在这个部分中使用的符号解释如下:这个符号用于安全警告。

用户需特别注意这个警告。

用于由于电击触电引起的危险情况。

用户必须明确注意这些警告。

这个符号用于表示功能重点和设备的使用。

ESM 系列过程控制器设计用于测量和控制温度以及任何处理信号。

基于它们的通用处理输入,多功能控制输出,可选报警功能,串口的通讯单元以及输入/输出模块,它们可以用于许多应用场合。

ESM335x WEC7串口硬件流控使用说明


GetCommState( m_hSer, &dcb ); // Purge any pending characters in the serial port. PurgeComm(m_hSer, (PURGE_TXABORT |PURGE_RXABORT |PURGE_TXCLEAR | PURGE_RXCLEAR)); dcb.fRtsControl = RTS_CONTROL_TOGGLE;
BOOL CCESerial::SetRTSToggle( DWORD dwRTSPin ) { DCB BOOL dcb; bRet;
bRet = DeviceIoControl(m_hSer,
// file handle to the driver
2/3Βιβλιοθήκη 成都英创信息技术有限公司ESM335x WEC7 串口硬件流控使用说明
SetCommState(m_hSer, &dcb); return TRUE; }
完整的串口例程请与英创工程师联系获取。
3/3
RTS Handshake 与 OutxCtsFlow 通常是同时使能或同时禁止的,下面是设置 RTS/CTS 的示例代码:
BOOL CCESerial::SetHandshake( BOOL bSet ) { DCB dcb;
GetCommState( m_hSer, &dcb );
1/3
成都英创信息技术有限公司
RTS_CONTROL_HANDSHAKE 输出高,小于 24 个字符时,RTS 输出低 当发送数据时,RTS 信号线被驱动为低,缓冲区数据发送完后,RTS 信号为被驱动高
RTS_CONTROL_TOGGLE
串口参数结构体 DCB 的 fOutxCtsFlow 成员用于指定 CTS(Clear-To-Send)信号是否被监视并作为 输出流量控制信号。如果此成员设置为 TRUE 且 CTS 管脚为高,则串口输出被挂起,直到 CTS 被拉低后 重新输出。如果此成员设置为 FALSE,对应管脚可作为 GPIO 使用。

ESAM安全模块的应用

摘要:本文论述了ESAM安全模块的功能和特点及其在智能卡表等方面的技术优势和应用模式,分析了产品开发和系统应用在安全性和可操作性方面需要考虑的因素,给出了相关应用设计举例和说明,同时给出了有关产品的技术参数和指标。

1、什么是ESAM安全模块?ESAM(Embedded Secure Access Module)嵌入式安全控制模块系列产品,是握奇公司经过多年技术开发和应用实践研制出的具有普遍应用价值的嵌入式数据安全产品。

ESAM硬件平台采用亿恒科技(原西门子半导体)和飞利浦等半导体公司智能卡专用保密微控制器,具有安全的ROM和EEPROM 安全控制、真随机数发生器RNG(可选)、DES/3DES加速器和高级加密协处理器ACE(可选)等安全结构,硬件安全性能达到ITSEC E4级标准,具有防检测、抗攻击、自毁等硬件安全特性。

ESAM芯片操作系统采用握奇公司自主开发的TimeCOS/ESAM嵌入式安全操作系统,具有安全的文件密钥存储、完善的安全机制、标准的加密算法等特点。

ESAM系列产品完全符合ISO7816标准和中国人民银行金融IC卡规范,通过中国人民银行金融卡认证和北京市科委软件产品认证,并获得了国家密码管理委员会的安全认证和生产销售许可,目前在国内发行使用的数量超过300万片。

ESAM特殊的安全属性使它可以嵌入到其他任何具有安全要求的智能设备中,完成文件和密钥的安全存储、数字签名、数据加密解密、双向身份认证、内部分散密钥、电子钱包、通讯线路保护等多种功能。

2、ESAM安全模块功能概述ESAM安全模块的应用是和各种专用或通用智能设备相关的,对于所有需要身份认证、数据加/解密、安全存储、通讯保密等较高数据安全要求的产品和应用系统,ESAM嵌入式安全控制模块都可以发挥其独到的安全控制作用。

1)身份双向认证;2)数据加密解密;3)数字签名;4)分散密钥导出;5)内部分散密钥;6)传输线路保护;7)电子钱包;8)安全数据存储3、ESAM安全模块的应用领域握奇智能公司现已成功地将ESAM模块应用如下产品中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

芯片说明手册
目录 ....................................................................................................................................................
一、电气特性 (2)
1. 芯片参数 (2)
2. 电气特性 (2)
3. DC参数 (3)
4.引脚说明 (4)
二、指令流 (6)
1. 指令说明 (6)
1.1主控公钥更新指令 (6)
1.2主站公钥本地更新指令 (6)
1.3终端非对称密钥对注册指令 (7)
1.4主站公钥远程更新指令 (8)
1.5终端非对称密钥更新指令 (9)
1.6终端对称密钥更新指令 (10)
1.7公钥验证指令 (11)
1.8MAC运算指令 (12)
1.9取响应数据指令 (14)
1.10读二进制文件指令 (16)
1.11选择文件指令 (18)
1.12写二进制文件指令 (19)
2. 指令流举例 (20)
2.1主控公钥更新流程 (20)
2.2 主站公钥本地更新流程 (21)
2.3 终端非对称密钥对注册流程 (21)
2.4 主站公钥远程更新流程 (22)
2.5 终端非对称密钥更新流程 (22)
2.6 终端对称密钥更新流程 (23)
2.7 主站参数设置流程 (23)
一、电气特性
1. 芯片参数
容量:32K Byte
工作电压:3V、5V
波特率:9.6kbps ~56 kbps
数据保存时间:10年(25℃)
写删次数:50万次(25℃)
ESD(抗静电):>4kv(HBM)
2. 电气特性
2.1 最高绝对限额
最高绝对限额表
2.2 电压、温度以及频率电气特性
电压、温度以及频率电气特性
3.DC参数
DC特性包括每一个引脚地输入门限以及输出驱动电压及电流。

这些参数能够决定最大的DC负载,并决定给定负载的条件下的最大的传送时间。

下表显示了高低电压输入、输出以及IO引脚情况下的DC操作条件,所有的DC参数值在整个温度范围内有效。

DC 参数表
4.引脚说明
4.1 ESAM 模块管脚分配及封装图
ESAM 模块管脚分配图
4.2 ESAM模块管脚说明表
ESAM模块管脚说明表
4.3 ESAM模块封装图
ESAM模块封装说明如下:
ESAM模块应采用DIP8形式封装,DIP8封装尺寸图如下:
ESAM模块封装图
二、指令流
1. 指令说明
1.1 主控公钥更新指令
该指令分两次发送给ESAM模块。

第一次发送指令结构
第二次发送指令结构
上述指令执行成功,ESAM返回9000;否则返回错误代码如下:命令响应状态码
1.2 主站公钥本地更新指令
该指令分两次发送给ESAM模块。

第一次发送指令结构
第二次发送指令结构
上述指令执行成功,ESAM返回9000;否则返回错误代码如下:
命令响应状态码
1.3 终端非对称密钥对注册指令
该指令一次发送给ESAM模块(该指令共计145字节)。

指令结构为
P1:终端非对称密钥对标识(01或02)。

上述指令执行成功,ESAM返回61FA;终端发送取响应命令00C00000FA,取回250字节数据A;之后,ESAM返回6106,终端继续发送取响应命令
00C0000006,返回6字节数据B;250字节数据A+6字节数据B组成256字节的非对称密钥公钥。

否则返回错误代码如下:
1.4 主站公钥远程更新指令
该指令分两次发送给ESAM模块。

第一次发送指令结构
上述每条指令执行成功,ESAM返回9000;否则返回错误代码如下:
1.5 终端非对称密钥更新指令
该指令分两次发送给ESAM模块。

第一次发送指令结构
P1:终端非对称密钥对标识(01或02)。

第二次发送指令结构
P1:终端非对称密钥对标识(01或02)。

上述指令执行成功,ESAM返回61FA;终端发送取响应命令00C00000FA,取回250字节数据A;之后,ESAM返回611A,终端继续发送取响应命令
00C000001A,返回26字节数据B;数据A+数据B = ”6190”+144字节终端公钥+”6080”+128字节数据签名组成的数据。

否则返回错误代码如下:
命令响应状态码:
1.6 终端对称密钥更新指令
该指令分两次发送给ESAM模块。

第一次发送指令结构
第二次发送指令结构
LC:后续数据的长度,其值为(0x20)X(N-1)+0x82
N为更新密钥条数,N最大值为4;当更新密钥条数N大于4条时,采用分组更新,每组重复执行上述操作。

上述指令执行成功,ESAM返回9000;否则返回错误代码如下:
命令响应状态码:
1.7 公钥验证指令
该指令一次发送给ESAM模块(该指令共计145字节)。

指令结构为
P2:要验证公钥文件的文件标识(主站公钥文件标识为09,主控公钥文件标识为01)。

上述指令执行成功,ESAM返回9000;否则返回错误代码如下:
命令响应状态码
1.8 MAC运算指令
该指令用于对主站下发的数据验证MAC。

指令结构为
备注:在MAC验证应用中,P1和P2的所指示的密钥KID,依据具体应用的不同,按下表设置。

该指令正确执行后,模块返回6104;终端发送取响应指令00C0000004,取回4字节MAC值。

命令响应状态码
1.9 取响应数据指令
此命令只用于T=0通讯协议。

命令结构
响应报文数据域
响应报文数据的长度由Le的值决定。

响应报文状态码
IC卡可能回送的状态码如下所示
取响应数据命令响应状态码
例如:
ESAM返回:6108
终端向ESAM发送:00C0000008
ESAM返回:8字节相应数据XX XX XX XX XX XX XX XX 9000
1.10 取随机数指令
定义与范围
Get Challenge命令请求一个用于安全相关过程(如安全报文)的随机数。

命令报文
取随机数命令报文编码
命令报文数据域
命令报文数据不存在。

响应报文数据域
响应报文数据包括随机数,长度为Le个字节。

响应报文状态码
ESAM可能回送的状态码如下所示:
命令响应状态码
1.11 读二进制文件指令
命令用于读取二进制文件的内容(或部分内容)。

命令报文编码
说明:
若P1的高三位为100,则低5位为短的文件标识符,P2为读的偏移量。

若P1的最高位不为1,则P1 P2为欲读文件的偏移量,所读的文件为当前文件。

命令响应状态码
应用举例
条件:文件类型:二进制文件;
文件标识符=0005;
文件主体空间的大小=8个字节。

操作:读出自偏移量00开始到文件结束的所有数据,不进行线路保护。

命令:00 B0 85 00 00
响应:6C08
说明:对于T=0的卡片,6C08表示要求终端向IC卡重发前一个命令的命令头,其中Le=0x08.
命令:00 B0 85 00 08
响应:11 22 33 44 55 66 77 88 9000
1.12 选择文件指令
命令通过文件标识符来选择IC卡中MF、DDF或ADF。

命令报文编码
命令响应状态码
例如:选择3F01文件
终端向ESAM发送:00A40000023F01
1.13 写二进制文件指令
命令用于写二进制文件。

命令报文编码
说明:
♦若P1的高三位为100,则低5位为短的文件标识符,P2为欲读文件的偏移量。

♦若P1的最高位不为1,则P1 P2为欲写文件的偏移量,所写的文件为当前文件。

♦Lc表示要写入的字节数。

若为线路保护写,Lc为写入数据的长度+4字节MAC。

命令响应状态码
应用举例
条件:文件类型:二进制文件; 文件标识符=0005;
文件主体空间的大小=8个字节;
建立时不采用线路保护。

操作:写二进制文件
命令:
00 D6 85 00 08 11 22 33 44 55 66 77 88 响应:9000
2. 指令流举例 2.1主控公钥更新流程
2.2 主站公钥本地更新流程
2.3 终端非对称密钥对注册流程
2.5 终端非对称密钥更新流程
2.7 MAC运算流程
以参数设置为例:
说明:
在上文中,终端序列号是ESAM模块复位信息的后8字节数据,终端对模块进行复位操作时,获取终端序列号,并保存。

相关文档
最新文档