0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术工控主板EM9161对ISO7816协议的支持概述

英创信息技术 来源:英创信息技术 作者:英创信息技术 2019-11-17 11:50 次阅读

在当前的金融POS终端及相关领域,ISO7816通讯协议得到了广泛应用。英创的工控主板EM9161,可在其异步串口的基础上,通过简单的设置,就可把串口转为符合ISO7816协议的接口,实现与各种智能卡的通讯。本文主要介绍采用EM9161的COM2口,实现ISO7816通讯的基本方法。


上图表示EM9161作为ISO7816主控方与智能卡的连接示意图,其中原COM2口的数据发送管脚TXD2作为ISO7816的半双工数据信号DIO;原COM2口的RTS2n控制线作为ISO7816的时钟信号SCK。两个信号线的电平均为3.3V的TTL信号电平。
应用程序进行ISO7816通讯的基本流程为:
1、按标准方法打开串口“COM2:”,并设置相应串口参数
2、通过DeviceIoControl(…)函数使能ISO7816通讯模式,并设置相关参数;
3、设置波特率,注意在使能ISO7816模式后,必须重新设置波特率;
4、进行数据通讯,数据帧的奇偶校验位需要与通讯对端匹配;
5、通过DeviceIoControl(…)函数禁止ISO7816通讯模式;
6、按标准方法关闭串口“COM2:”。
为了实现从通常的异步串口到ISO7816的转换,EM9161的串口驱动增加了2个IOCTL功能如下:
#include
#define IOCTL_SERIAL_ENABLE_ISO7816\
CTL_CODE(FILE_DEVICE_SERIAL_PORT,40,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define IOCTL_SERIAL_DISABLE_ISO7816 \
CTL_CODE(FILE_DEVICE_SERIAL_PORT,41,METHOD_BUFFERED,FILE_ANY_ACCESS)

使能ISO7816的DeviceIoControl调用,需要同时设置相应的参数。这些参数包括ISO7816的协议类型,帧数据的应答规范等,定义相应的参数如下:
#define AT91C_US_USMODE_ISO7816_0 0x4// ISO7816 protocol: T = 0
#define AT91C_US_USMODE_ISO7816_1 0x6 // ISO7816 protocol: T = 1
#define AT91C_US_INACK (0x1 << 20)    // Inhibit Non Acknowledge
#define AT91C_US_DSNACK (0x1 << 21)    // Disable Successive NACK

此外ISO的波特率按如下公式计算:
BR = (DI / FI)× SCK
上式中的SCK = 串口波特率×FI / DI,例如串口波特率为9600,FI / DI = 372,则SCK时钟频率为3.57MHz。在EM9161中,对DI和FI的设置,是通过设置(FI/DI)这个比值来实现的,其中有效的值如下表所示:

DI = 1

DI = 2

DI = 4

DI = 8

DI = 16

DI = 32

DI = 12

DI = 20

FI = 372

372

186

93

47

23

12

31

19

FI = 558

558

279

140

70

35

17

47

28

FI = 774

774

372

186

93

47

23

62

37

FI = 1116

1116

558

279

140

70

35

93

56

FI = 1488

1488

744

372

186

93

47

124

74

FI = 1806

1806

930

465

233

116

58

155

93

FI = 512

512

256

128

64

32

16

43

26

FI = 768

768

384

192

96

48

24

64

38

FI = 1024

1024

512

256

128

64

32

85

51

FI = 1536

1536

768

384

192

96

48

128

77

FI = 2048

2048

1024

512

256

128

64

171

102

选择蓝色区域的值,可得到对应的黄色区域的FI和绿色区域的DI,由此可计算相应的波特率。
在具体的调用中,参数的传递是通过两个DWORD实现的,代码如下:
DWORD dwMode, dwFI_DI_Ratio;
DWORDpBuf[2];

dwMode = AT91C_US_USMODE_ISO7816_0;
dwFI_DI_Ratio = 372;
pBuf[0] = dwMode;
pBuf[1] = dwFI_DI_Ratio;
if (!DeviceIoControl ( m_hSer, // 串口handle
IOCTL_SERIAL_ENABLE_ISO7816, // 命令码
pBuf, sizeof(pBuf), // input buffer
NULL, 0, // output buffer
NULL, NULL ))
{
printf('IOCTL_SERIAL_ENABLE_ISO7816 failed!\r\n');
}

关闭ISO7816通讯模式比较简单,没有任何参数:
if (!DeviceIoControl ( m_hSer, // 串口handle
IOCTL_SERIAL_DISABLE_ISO7816, // 命令码
NULL, 0,
NULL, 0,
NULL, NULL ))
{
printf('IOCTL_SERIAL_DISABLE_ISO7816 failed!\r\n');
}


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35196
收藏 人收藏

    评论

    相关推荐

    工控主板EM9161实现音频输出的方法

    本帖最后由 luna 于 2011-3-3 14:29 编辑 随着嵌入式技术的广泛应用,在工业控制领域有越来越多的应用需要高品质的音频输出,而EM9161作为一款高性价比的工控主板
    发表于 03-03 01:24

    工控主板EM9161实现音频输出的方法

    随着嵌入式技术的广泛应用,在工业控制领域有越来越多的应用需要高品质的音频输出,而EM9161作为一款高性价比的工控主板产品,在推出不到三个月的时间里,已得到广大客户
    发表于 08-31 17:02 20次下载

    基于EM9161工控主板的彩色智能监控终端方案

    公司的 EM9161 是一款预装WinCE 操作系统的工控主板产品,它不仅支持标准TFT彩色
    发表于 06-09 15:59 41次下载
    基于<b class='flag-5'>EM9161</b><b class='flag-5'>工控</b><b class='flag-5'>主板</b>的彩色智能监控终端方案

    工控主板的掉电数据保护功能

    本文所指的工控主板包括EM9160、EM9260、EM
    发表于 06-09 16:20 29次下载

    嵌入式Linux工控主板如何实现ISO7816协议

    ISO7816在基于工控主板上应用时,可将ISO7816智能卡简单的理解成一个串口设备。
    的头像 发表于 09-27 16:07 3531次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b>嵌入式Linux<b class='flag-5'>工控</b><b class='flag-5'>主板</b>如何实现<b class='flag-5'>ISO7816</b><b class='flag-5'>协议</b>

    EM9161如何升级EM9171

    EM9161EM9161G是使用WinCE 5.0操作系统的嵌入式工控板,在市场上,具有良好的性能表现,得到客户的认可。
    的头像 发表于 10-12 11:39 1505次阅读

    信息技术工控主板EM9161实现音频输出的过程

    随着嵌入式技术的广泛应用,在工业控制领域有越来越多的应用需要高品质的音频输出,而EM9161作为一款高性价比的工控主板产品,在推出不到三个月的时间里,已得到广大客户的广泛认可,其中不乏
    的头像 发表于 11-05 10:09 1548次阅读

    信息技术EM9000工控主板的版本信息管理概述

    EM9000是公司极具特色的一款ARM9工控主板。经过长时间的完善,现系统已完全稳定。
    的头像 发表于 11-17 11:23 1690次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b><b class='flag-5'>EM</b>9000<b class='flag-5'>工控</b><b class='flag-5'>主板</b>的版本<b class='flag-5'>信息</b>管理<b class='flag-5'>概述</b>

    信息技术EM9161评估开发套件与LCD的连接方法概述

    使用Microsoft提供的著名免费软件开发工具eVC(+SP4)或微软的其他开发工具,在EM9161上开发应用程序。EM9161工控主板带有一个标准TTL电平的彩色显示数字接口,接口
    的头像 发表于 11-18 09:50 1921次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b><b class='flag-5'>EM9161</b>评估开发套件与LCD的连接方法<b class='flag-5'>概述</b>

    信息技术ISO7816通讯协议工控主板EM9160介绍

    在新的国家电网智能终端相关标准中,规定了通过专门的加密芯片来保证设备数据安全性的方法,而设备主控单元与加密芯片采用了广泛应用的ISO7816通讯协议
    的头像 发表于 11-18 09:56 2328次阅读

    信息技术嵌入式Linux主板EM9160支持ISO7816通讯协议介绍

    新的技术需求,我们对嵌入式Linux主板EM9160的串口驱动进行了升级,使其多个串口都可支持ISO7816
    的头像 发表于 11-18 10:09 2210次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b>嵌入式Linux<b class='flag-5'>主板</b><b class='flag-5'>EM</b>9160<b class='flag-5'>支持</b><b class='flag-5'>ISO7816</b>通讯<b class='flag-5'>协议</b>介绍

    信息技术主板EM9170的主要技术特色介绍

    EM9170是公司2011年推出的新一代的工控主板产品。在
    的头像 发表于 01-14 14:14 1562次阅读

    信息技术EM9161开机启动画面设置方法介绍

    更改开机画面,公司调整了EM9161系统内核,不需要重新烧写内核,只通过内建指令LCDSet.exe来设置开机画面及显示分辨率。其指令的格式是: \LCDSet [filename] 如
    的头像 发表于 01-15 13:56 1298次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b><b class='flag-5'>EM9161</b>开机启动画面设置方法介绍

    信息技术工控主板彩色LCD屏安装与连接简介

    公司的工控主板EM9000、EM9161EM9
    的头像 发表于 01-15 13:59 1821次阅读

    信息技术EM9X60利用串口实现ISO7816介绍

    为基础,并针对客户应用的需求,增加了更多通用数字IO,该产品继续保持了Linux操作系统作为客户应用程序的软件平台。这三款主板均具备6个串口,其中的4个串口可支持ISO7816,用户可以通过简单的设置,即可将异步串口转换为符合
    的头像 发表于 01-15 14:49 2822次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b><b class='flag-5'>EM</b>9X60利用串口实现<b class='flag-5'>ISO7816</b>介绍