⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 esam_function.h

📁 DSP开发可以用来看外设情况的程序
💻 H
字号:


/****************************************************************/
/*	文件名:		Esam_Function.h 								*/
/* 	功能:		申明ESAM卡的操作函数 							*/
/****************************************************************/

#ifndef Esam_Function_h
#define Esam_Function_h

#define DES8			0
#define DES16			1
#define  DATALENGTH		20				// 定义存储接收应答信号缓冲区的长度

extern Uint16 CommandLength;			// 定义命令报文的实际长度变量						
extern Uint16 Command[20];				// 定义存放命令报文的缓冲区	
extern Uint16 ReplyData[DATALENGTH];	// 定义存储接收应答信号的缓冲区

/****************************************************************/
/*	函数名:		Reset_Esam() 									*/
/* 	功能:		对ESAM卡复位,并取得返回的复位应答信息			*/
/*	参数:														*/
/*				DataPtr----指向存放序列号的数组的指针			*/
/*  返回值:														*/
/*              返回unsigned short int型的16bits整数  			*/
/*				如果正确,返回值等于9000							*/
/****************************************************************/
Uint16 Reset_Esam(Uint16 *DataPtr);				

/****************************************************************/
/*	函数名:		Get_Response() 									*/
/* 	功能:		取回ESAM反馈的数据和MAC码						*/
/*	参数:														*/
/*				DataPtr-----指向存放返回数据指针数组的指针		*/
/*				DataLen-----欲取回的数据和MAC码总长度(以16进制	*/
/*							表示,单字节长度)					*/
/*  返回值:														*/
/*              返回unsigned short int型的16bits整数  			*/
/*				如果正确,返回值等于9000							*/
/****************************************************************/
Uint16 Get_Response(Uint16* DataPtr, Uint16 DataLen);

/****************************************************************/
/*	函数名:		Get_Random() 									*/
/* 	功能:		向ESAM发取随机数命令,并取得8字节或4字节随机数	*/
/*	参数:														*/
/*				OutputPtr--指向存放返回随机数的数组的指针		*/
/*				Length-----随机数长度,16进制表示(0x08,或0x04) 	*/
/*  返回值:														*/
/*              返回unsigned short int型的16bits整数  			*/
/*				如果正确,返回值等于9000							*/
/****************************************************************/
Uint16 Get_Random(Uint16 *OutputPtr, Uint16 Length);

/****************************************************************/
/*	函数名:		Extern_Authen() 								*/
/* 	功能:		发送外部认证命令,进行外部认证					*/
/*	参数:														*/
/*				Input----指向存放随机数数组的指针				*/
/*				KeyID----外部认证密钥标识号						*/
/*				Key------指向存放外部认证密钥数组的指针			*/
/*				Mode-------加解密方式(如果是8字节密钥选DES8=0;	*/
/*						   否则为16字节密钥选DES16=1)			*/
/*  返回值:														*/
/*              返回unsigned short int型的16bits整数  			*/
/*				如果正确,返回值等于9000							*/
/****************************************************************/
Uint16  Extern_Authen(Uint16 *Input, Uint16 KeyID, Uint16 *Key, Uint16 Mode);

/****************************************************************/
/*	函数名:		Set_Protocol() 									*/
/* 	功能:		更改ESAM和DSP的通信协议,注意一般情况下只支持协议*/
/*				从T=1改为T=0									*/
/*	参数:														*/
/*				Mode-----协议方式(0x01:T=0-->T=1;0x10:T=1-->T=0)*/
/*  返回值:														*/
/*              返回unsigned short int型的16bits整数  			*/
/*				如果正确,返回值等于9000							*/
/****************************************************************/
Uint16 Set_Protocol(Uint16 Mode);

/****************************************************************/
/*	函数名:		Del_Direct() 									*/
/* 	功能:		删除以前建立的目录文件(不包括MF文件)			*/
/*  参数:														*/
/*				无												*/
/*  返回值:														*/
/*              返回unsigned short int型的16bits整数  			*/
/*				如果正确,返回值等于9000							*/
/****************************************************************/
Uint16 Del_Direct(void);

/****************************************************************/
/*	函数名:		Create_Keyfile() 								*/
/* 	功能:		建立密钥文件									*/
/*	参数:														*/
/*				FileID-----2字节长度的文件标识符				*/
/*				FileLen----2字节长度的文件空间大小				*/
/*				IncRight---增加密钥权限							*/
/*  返回值:														*/
/*              返回unsigned short int型的16bits整数  			*/
/*				如果正确,返回值等于9000							*/
/****************************************************************/
Uint16 Create_Keyfile(Uint16 FileID, Uint16 FileLen, Uint16 IncRight);

/****************************************************************/
/*	函数名:		Increase_Key() 									*/
/* 	功能:		建立(39-外部认证/主控或36-线路保护)密钥			*/
/*	参数:														*/
/*				KeyID----- 密钥标识符							*/
/*				KeyType----密钥类型(0x39或0x36)					*/
/*				UseRight---密钥使用权							*/
/*				AltRight---密钥更改权限							*/
/*     			NextState--后续状态(如果密钥类型0x36保留为0xFF) */
/*				ErrCount---错误计数器							*/
/*				Keys-------指向存放欲建立密钥的数组的指针		*/
/*				Mode-------加解密密钥方式(如果是8字节密钥选		*/
/*						   DES8=0;否则为16字节密钥选DES16=1)	*/
/*  返回值:														*/
/*              返回unsigned short int型的16bits整数  			*/
/*				如果正确,返回值等于9000							*/
/****************************************************************/
Uint16 Increase_Key(Uint16 KeyID, Uint16 KeyType, Uint16 UseRight, Uint16 AltRight, Uint16 NextState, Uint16 ErrCount, Uint16 *Keys,Uint16 Mode);

/****************************************************************/
/*	函数名:		Create_Binaryfile() 							*/
/* 	功能:		建立带线路加密和MAC保护的二进制文件				*/
/*	参数:														*/
/*				FileID-----2字节长度的文件标识符				*/
/*				FileLen----2字节长度的文件空间大小				*/
/*				RrRight----读权限								*/
/*				WrRight----写权限								*/
/*				SafeKeyID--线路保护密钥标识(0x00,0x01,0x02,0x03)*/
/*  返回值:														*/
/*              返回unsigned short int型的16bits整数  			*/
/*				如果正确,返回值等于9000							*/
/****************************************************************/
Uint16 Create_Binaryfile(Uint16 FileID, Uint16 FileLen, Uint16 RrRight, Uint16 WrRight, Uint16 SafeKeyID);

/****************************************************************/
/*	函数名:		Selete_File() 									*/
/* 	功能:		选择文件										*/
/*	参数:														*/
/*				FileID-----2字节长度的文件标识符				*/
/*  返回值:														*/
/*              返回unsigned short int型的16bits整数  			*/
/*				如果正确,返回值等于9000							*/
/****************************************************************/
Uint16 Select_File(Uint16 FileID);

/****************************************************************/
/*	函数名:		Write_Binaryfile() 								*/
/* 	功能:		将数据加密并写入带线路加密和MAC保护的二进制文件	*/
/*	参数:														*/
/*				InputPtr---指向存放欲写入数据数组的指针(注意:该	*/
/*						   数组的第一个字节存放写入的数据长度,	*/
/*						   每次写入7个字节,加上长度字节共8字节)	*/
/*				DataLen----欲写入数据的实际长度(不大于MAXDATA)	*/
/*				Offset-----写入数据相对文件的2字节偏移量		*/
/*				Keys-------指向存放线路保护密钥数组的指针		*/
/*				Mode-------加解密方式(如果是8字节密钥选DES8=0;	*/
/*						   否则为16字节密钥选DES16=1)			*/
/*  返回值:														*/
/*              返回unsigned short int型的16bits整数  			*/
/*				如果正确,返回值等于9000							*/
/****************************************************************/
Uint16 Write_Binaryfile(Uint16 *InputPtr,Uint16 DataLen, Uint16 Offset, Uint16 *Keys, Uint16 Mode);


/****************************************************************/
/*	函数名:		Read_Binaryfile() 								*/
/* 	功能:		从带线路加密和MAC保护的二进制文件读出密文数据	*/
/*	参数:														*/
/*				Offset-----读出数据相对文件的2字节偏移量		*/
/*				DataLen----欲读出的数据长度(16进制表示)			*/
/*				Keys-------指向存放线路保护密钥数组的指针		*/
/*				OutputPtr--指向存放解密后数据数组的指针			*/
/*				Mode-------加解密方式(如果是8字节密钥选DES8=0;	*/
/*						   否则为16字节密钥选DES16=1)			*/
/*  返回值:														*/
/*              返回unsigned short int型的16bits整数  			*/
/*				如果正确,返回值等于9000							*/
/****************************************************************/
Uint16 Read_Binaryfile(Uint16 Offset, Uint16 DataLen, Uint16 *Keys, Uint16 *OutputPtr, Uint16 Mode); 

#endif

/******************************************************************************/
/*	No more																	  */
/******************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -