資源簡介
SLE4442邏輯加密卡驅(qū)動(dòng)程序源碼,C語言實(shí)現(xiàn),希望能夠幫助到大家

代碼片段和文件信息
//?#include?
//?#include?
//?#include?
#include?“Include.h“
#if(PRO_TYPE?==?ICCARD)
//私有函數(shù)
void?BreakOperate(void);
void?StartComm(void);
void?StopComm(void);
uchar?ReceiveByte(void);
void?SendByte(uchar?ch);
void?SendComm(uchar?auchar?buchar?c);??????????????????????//發(fā)送命令
void?ReadMode(uchar??*ptuchar?count);
void?ProcessMode(void);
////
const?__code?uint8??ICHead[4]?=?{0xA20x130x100x91};
//unsigned?char?ICHead[4]?=?{0xA20x130x100x91};
//const?unsigned?char?__code?ICSM[3]?=?{0xFF0xFF0xFF};
void?sle4442_init(void)
{
//????uint8?i?=?0;
/**?CLK?out?*/
????P2IE?&=?~BIT1;
????P2OE?&=?~BIT1;
/**RST?out?*/
????P9IE?&=?~BIT0;
????P9OE?&=?~BIT0;
/**DAT?in?*/
????P2IE?|=?BIT0;
????P2OE?|=?BIT0;
// /**PWR?out?*/
// P62DIR=?0;
// P62C0?=?1;
// P62C1?=?1;
//
/**CARD?in?*/
????P7IE?|=?BIT3;
????P7OE?|=?BIT3;
// P61C1?=?1;//上拉輸入
//ResetCard();
//????for(;i<4;?i++)
//????{
//????????if(IC_Buff[i]?==?ICHead[i])
//????????{
//????????????continue;
//????????}
//????}
}
/*********************************************************************
函?數(shù)?名:?ReadMainMem()
功????能:?讀ic卡主存
說????明:7.45ms+17*50us*n
調(diào)????用:
全局變量:
入口參數(shù):?IC卡地址(32?-?255)指向內(nèi)部RAM的指針字節(jié)數(shù)
出口參數(shù):指向內(nèi)部RAM的指針?*pt
返?回?值:?無
*********************************************************************/
void?ReadMainMem(uchar?addruchar??*ptuchar?count)
{
????//ResetCard();
????SendComm(RMM_COMMaddr0xff);
????ReadMode(ptcount);
????BreakOperate();
}
/*********************************************************************
函?數(shù)?名:?WriteMainMem()
功????能:?寫IC卡主存一次?1Byte
說????明:
調(diào)????用:
全局變量:
入口參數(shù):?addr:?IC卡地址(32?-?255)?dat:?寫入的字節(jié)
出口參數(shù):無
返?回?值:?無
*********************************************************************/
void?WriteByteMainMem(uchar?addruchar??dat)
{
//????ResetCard();
????SendComm(WMM_COMM?addr?dat);?????//寫主存的命令字地址數(shù)據(jù)
????ProcessMode();
????BreakOperate();
}
/*********************************************************************
函?數(shù)?名:?WriteMainMem()
功????能:?寫IC卡主存
說????明:
調(diào)????用:
全局變量:
入口參數(shù):?addr:?IC卡地址(32?-?255)?pt:?指向數(shù)據(jù)區(qū)的指針count:字節(jié)個(gè)數(shù)
出口參數(shù):無
返?回?值:?無
*********************************************************************/
void?WriteMainMem(uchar?addruchar??*pt?uchar?count)
{
????uchar?i;
????for(i?=?0;?i?????{
????????WriteByteMainMem(addr?+?i?*pt);
????}
}
/*********************************************************************
函?數(shù)?名:?ReadProtectMem()
功????能:?讀保護(hù)存儲器
說????明:
調(diào)????用:
全局變量:
入口參數(shù):?指向直接尋址數(shù)據(jù)區(qū)的指針
出口參數(shù):無
返?回?值:?無
*********************************************************************/
void?ReadProtectMem(uchar??*pt)
{
//????ResetCard();????//3600us
????SendComm(RPM_COMM0xff0xff);?//讀保護(hù)存儲器的命令字后兩個(gè)參數(shù)忽略
????ReadMode(pt4);???????????????//
????BreakOperate();
}
/*********************************************************************
函?數(shù)?名:?ProtectByte()
功????能:?保護(hù)一字節(jié)注意待保護(hù)的字節(jié)是已經(jīng)寫入過的地
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????11248??2018-04-25?08:58??sle4442.c
?????文件????????2130??2018-04-25?08:58??sle4442.h
評論
共有 條評論