ESAM模块字节接收函数

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

函数名称:EsamReceChar

函数功能:Esam接收一个字节

入口参数:无

出口参数:iTemp,ESAM复位响应的13个字节

描述:最多接收3次,与卡接收一字节函数功能一致

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

unsigned char EsamReceChar(void)

{

unsigned int iErrCoun;

unsigned long int iTemp;

unsigned char cTemp=0;

CardWorkFlag=~(ICXOR+MXOR)&CardWorkFlag;

for(iErrCoun=0;iErrCoun<3;iErrCoun++)

{

for(iTemp=0;iTemp<40000;iTemp++)

{

//判断起始位

if(!(EsamSDAInputCheck)) break;

else if(iTemp>(40000-2))

{

//超时错误

CardError=ErrorRWBIT|CardError;

goto RstOkEnd;

}

}

//接受1个字节,8位

for(iTemp=8;iTemp>=1;iTemp--)

{

cTemp=cTemp>>0x1;

Delay1ETU();

if(EsamSDAInputCheck)

{

//生成偶校验

CardWorkFlag=CardWorkFlag^0x80;

cTemp=0x80|cTemp;

}

else

{

cTemp=(~0x80)&cTemp;

}

}

Delay1ETU();

//判断偶校验是否正确

if(EsamSDAInputCheck) CardWorkFlag=ICXOR|CardWorkFlag;

if(CardWorkFlag&ICXOR)

{

if(CardWorkFlag&MXOR) goto RstOkEnd;

}

else if(!(CardWorkFlag&MXOR)) goto RstOkEnd;

//如果校验位错,则将I/O口置低—高,等待字符的再次发送。最多3次

CardError=ErrorRWBIT|CardError;

EsamSDAOutput;

EsamSDAOutputLow;

Delay1ETU();

EsamSDAOutputHigh;

}

RstOkEnd:

Delay05XETU();

return cTemp;

}

CPU卡程序设计实例(十二)ESAM模块字节接收函数相关推荐

  1. CPU卡程序设计实例(二十六)卡和ESAM之间外部认证

    /******************************************* 函数名称:CardExterVali 函数功能:卡与ESAM之间外部认证 输入参数:cApplySerialN ...

  2. CPU卡程序设计实例(二十三)卡和ESAM之间内部认证

    1.标识符宏定义 //CPU卡密钥标识 #define CardInfoDownKey 0x81 // #define CardInfoUpKey 0x82 // #define CardInside ...

  3. CPU卡程序设计实例(八)ESAM模块卡上、下电

    1.3 ESAM模块上电程序 /******************************************* 函数名称:EsamPowerUp 函数功能:Esam上电 输入参数:无 输出参数 ...

  4. CPU卡程序设计实例(六)ETU配置

    1.数据位宽时间(ETU)计算程序 前面已经说过,数据位宽是CPU卡程序设计中非常重要的一环,涉及到数据读写的可靠性和稳定性.下面这段程序就是在IAR环境下,基于MSP430单片机C语言的数据位宽计算 ...

  5. CPU卡程序设计实例(二十五)ESAM过程密钥内部认证

    /******************************************* 函数名称:EsamInsideVali 函数功能:ESAM过程密钥内部认证 输入参数: pcReceCardR ...

  6. CPU卡程序设计实例(十)ESAM复位程序

    ESAM复位程序 /************************************** 函数名称:*EsamRst 函数功能:Esam复位 入口参数:无 出口参数:复位数据 描述: Esam ...

  7. CPU卡程序设计实例(十三)终端向ESAM发送数据

    终端向ESAM发送一个字节函数 /************************************** 函数名称:EsamSendChar 函数功能:向Esam发送一个字节 入口参数:cSen ...

  8. c语言压缩文本文件北京理工大学,北京理工大学C语言程序设计第十二章文件.ppt...

    北京理工大学C语言程序设计第十二章文件 2000年1月25日 北京理工大学 / 第十二章 文件 第一节 文件概述 第二节 文件的处理 第三节 文件的顺序读写操作 第四节 文件的随机读写操作 第五节 文 ...

  9. 计算机基础函数运用,计算机应用基础第十二讲:EXCEL中函数的实际运用.doc

    文档介绍: 计算机应用基础第十二讲:EXCEL中函数的实际运用.doc计算机应用基础第十二讲:EXCEL中函数的实际运用课 题EXCEL屮函数的实际运用课型多媒体课授课时间第20周教学目的实例分析,掌 ...

最新文章

  1. python环境搭建_搭建Python编程环境
  2. 【深度学习入门到精通系列】R2 Unet解释
  3. 代画PCB及C语言编程
  4. 5分钟带你理解一致性Hash算法
  5. centos6.5 安装 OpenResty
  6. mysql 导出所有表_Mysql导出(多张表)表结构及表数据 mysqldump用法
  7. 电流感应电阻器行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  8. springMVC 简单事例
  9. java 定时器 quartz_Java定时器和Quartz使用
  10. 业务员的3个经典故事
  11. java青鸟影院项目_影院在线售票云平台(仿猫眼电影,附SpringBoot项目源码) 系统功能实现...
  12. 阿里云ASR 语音识别接口调用
  13. Linux UDP协议栈中的片段分析 - udp_recvmsg
  14. 计算机屏幕怎么设置键盘,[怎么用屏幕键盘]怎么用键盘调屏幕分辨率
  15. 怎么把柱形图和折线图放在一起_Excel图表制作:柱形图和折线图的组合图案例...
  16. Can‘t connect to any repository: 的解决办法, 在Push代码,提交代码到代码仓库的时候,提示不能连接到该代码仓库
  17. 前端自学Vue笔记干货(第一版,持续更新中~~~)
  18. 法拉科机器人接头_【发那科】图解FANUC机器人I/O信号板
  19. 日语语法(四):形容词
  20. Python08--文件读取及写入操作

热门文章

  1. 如何将加密内容的光盘里音频/视频拷贝出来
  2. 加密与解密第三版光盘ISO资料
  3. 鸡尾酒瓶的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  4. windows tftp客户端使用方法
  5. Flash Builder4 和java整合 、Blazed交互
  6. STM32F103VET6流水灯
  7. 整蛊小病毒,自己拿来快乐
  8. c语言中vector的用法,c中vector的用法
  9. c语言三子棋详解!!! (电脑智能下棋)(附上完整代码)
  10. 51单片机的延时计算