|
1.1 CPU卡上电程序
/*******************************************
函数名称:CardPowerUp
函数功能:卡上电
输入参数:无
输出参数:无
描述:复位过程:先加VCC,200个时钟周期内加CLK,之后,SDA应在CLK加上后的
200个时钟周期内被置于接收状态,CLK加上后,保持RST为低至少400个时
钟周期,之后卡复位RST被置为高,SDA上的应答应在RST信号上升沿后
400-40000个时钟周期内开始,RST为高后,等待400个时钟周期开始接收
应答信号
*******************************************/
void CardPowerUp(void)
{
//卡SDA输出1,
CardSDAOutput;
CardSDAOutputHigh;
//卡上电输出高,不上电
CardPowerOutputHigh;
delay_ms2M(10);
//开始复位时序,卡上电200个时钟周期内加MCLK
//卡上电
CardPowerOutput;
CardPowerOutputLow;
Delay05XETU(); //186个时钟周期
//输出MCLK
MCLKOutput;
MCLKOutputLow;
MCLKOutputHigh;
MCLKSEL;
//MCLK加上后,卡复位脚输出低,保持至少400个时钟周期
CardRSTOutput;
CardRSTOutputLow;
Delay05XETU();
//SDA应在MCLK加上后200个时钟周期内被置于接收状态
//卡SDA脚置为输入
CardSDAInput;
Delay1ETU();//372个时钟周期
Delay1ETU();
//卡复位脚输出高,应答信号在RST变高后400-40000个时钟周期开始
CardRSTOutputHigh;
Delay1ETU();
}
1.2 CPU卡下电程序
/*******************************************
函数名称:CardPowerDown
函数功能:卡下电
输入参数:无
输出参数:无
描述:先将RST置低,再将CLK置低,然后将SDA置低,最后将VCC置低
*******************************************/
void CardPowerDown(void)
{
//RST,CLK,SDA,VCC置低
CardRSTOutputLow;
MCLKOutputLow;
CardSDAOutputLow;
CardPowerOutputLow;
CardRSTOutput;
CardSDAOutput;
//将SDA,MCLK,POWER,RST都置为输入口
//CardSDAInput;
MCLKInput;
//MCLKOutput;
CardPowerInput;
//CardRSTInput;
}
|
|