CPU卡程序设计实例(九)CPU卡复位程序

来源:互联网 发布:如何在淘宝二手卖东西 编辑:程序博客网 时间:2024/06/10 12:19

CPU卡复位程序

/**************************************

函数名称:*CPUCardRst

函数功能:CPU卡复位

入口参数:无

出口参数:复位数据

描述:复位过程:先加VCC,200个时钟周期内加CLK,之后,SDA应在CLK加上后的

200个时钟周期内被置于接收状态,CLK加上后,保持RST为低至少400个时

钟周期,之后卡复位RST被置为高,SDA上的应答应在RST信号上升沿后

400-40000个时钟周期内开始,RST为高后,等待400个时钟周期开始接收

应答信号

复位后,卡上反馈13个字节,可以取出这13个字节,但暂时不用这些数据

ErrorRSTBIT|CardError:复位不正常

**************************************/

unsigned char *CPUCardRst(void)

{

unsigned int itemp;

unsigned char cResetBuf[13]={0};

unsigned char *pcResetBuf;

//复位错标志清0

CardError=~ErrorRSTBIT&CardError;

//卡上电时序

CardPowerUp();

for(itemp=0;itemp<13;itemp++)

{

cResetBuf[itemp]=CardReceChar();

if(ErrorRWBIT&CardError) break;

}

if(ErrorRWBIT&CardError)

{

CardError=ErrorRSTBIT|CardError;

CardError=~ErrorRWBIT&CardError;

goto CPUCardRstEnd;

}

delay_ms2M(10);

CPUCardRstEnd:

pcResetBuf=&cResetBuf[5];

return pcResetBuf;

}


0 0