0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)工控主板EM9161對ISO7816協(xié)議的支持概述

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2019-11-17 11:50 ? 次閱讀

在當(dāng)前的金融POS終端及相關(guān)領(lǐng)域,ISO7816通訊協(xié)議得到了廣泛應(yīng)用。英創(chuàng)的工控主板EM9161,可在其異步串口的基礎(chǔ)上,通過簡單的設(shè)置,就可把串口轉(zhuǎn)為符合ISO7816協(xié)議的接口,實現(xiàn)與各種智能卡的通訊。本文主要介紹采用EM9161的COM2口,實現(xiàn)ISO7816通訊的基本方法。


上圖表示EM9161作為ISO7816主控方與智能卡的連接示意圖,其中原COM2口的數(shù)據(jù)發(fā)送管腳TXD2作為ISO7816的半雙工數(shù)據(jù)信號DIO;原COM2口的RTS2n控制線作為ISO7816的時鐘信號SCK。兩個信號線的電平均為3.3V的TTL信號電平。
應(yīng)用程序進(jìn)行ISO7816通訊的基本流程為:
1、按標(biāo)準(zhǔn)方法打開串口“COM2:”,并設(shè)置相應(yīng)串口參數(shù);
2、通過DeviceIoControl(…)函數(shù)使能ISO7816通訊模式,并設(shè)置相關(guān)參數(shù);
3、設(shè)置波特率,注意在使能ISO7816模式后,必須重新設(shè)置波特率;
4、進(jìn)行數(shù)據(jù)通訊,數(shù)據(jù)幀的奇偶校驗位需要與通訊對端匹配;
5、通過DeviceIoControl(…)函數(shù)禁止ISO7816通訊模式;
6、按標(biāo)準(zhǔn)方法關(guān)閉串口“COM2:”。
為了實現(xiàn)從通常的異步串口到ISO7816的轉(zhuǎn)換,EM9161的串口驅(qū)動增加了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調(diào)用,需要同時設(shè)置相應(yīng)的參數(shù)。這些參數(shù)包括ISO7816的協(xié)議類型,幀數(shù)據(jù)的應(yīng)答規(guī)范等,定義相應(yīng)的參數(shù)如下:
#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,F(xiàn)I / DI = 372,則SCK時鐘頻率為3.57MHz。在EM9161中,對DI和FI的設(shè)置,是通過設(shè)置(FI/DI)這個比值來實現(xiàn)的,其中有效的值如下表所示:

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

選擇藍(lán)色區(qū)域的值,可得到對應(yīng)的黃色區(qū)域的FI和綠色區(qū)域的DI,由此可計算相應(yīng)的波特率。
在具體的調(diào)用中,參數(shù)的傳遞是通過兩個DWORD實現(xiàn)的,代碼如下:
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');
}

關(guān)閉ISO7816通訊模式比較簡單,沒有任何參數(shù):
if (!DeviceIoControl ( m_hSer, // 串口handle
IOCTL_SERIAL_DISABLE_ISO7816, // 命令碼
NULL, 0,
NULL, 0,
NULL, NULL ))
{
printf('IOCTL_SERIAL_DISABLE_ISO7816 failed!\r\n');
}


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6081

    瀏覽量

    34936
收藏 人收藏

    評論

    相關(guān)推薦

    工控主板EM9161實現(xiàn)音頻輸出的方法

    本帖最后由 luna 于 2011-3-3 14:29 編輯 隨著嵌入式技術(shù)的廣泛應(yīng)用,在工業(yè)控制領(lǐng)域有越來越多的應(yīng)用需要高品質(zhì)的音頻輸出,而EM9161作為一款高性價比的工控主板
    發(fā)表于 03-03 01:24

    工控主板EM9161實現(xiàn)音頻輸出的方法

    隨著嵌入式技術(shù)的廣泛應(yīng)用,在工業(yè)控制領(lǐng)域有越來越多的應(yīng)用需要高品質(zhì)的音頻輸出,而EM9161作為一款高性價比的工控主板產(chǎn)品,在推出不到三個月的時間里,已得到廣大客戶
    發(fā)表于 08-31 17:02 ?20次下載

    基于EM9161工控主板的彩色智能監(jiān)控終端方案

    創(chuàng)公司的 EM9161 是一款預(yù)裝WinCE 操作系統(tǒng)的工控主板產(chǎn)品,它不僅支持標(biāo)準(zhǔn)TFT彩色
    發(fā)表于 06-09 15:59 ?41次下載
    基于<b class='flag-5'>EM9161</b><b class='flag-5'>工控</b><b class='flag-5'>主板</b>的彩色智能監(jiān)控終端方案

    創(chuàng)工控主板的掉電數(shù)據(jù)保護(hù)功能

    本文所指的創(chuàng)工控主板包括EM9160、EM9260、EM
    發(fā)表于 06-09 16:20 ?29次下載

    創(chuàng)嵌入式Linux工控主板如何實現(xiàn)ISO7816協(xié)議

    當(dāng)ISO7816在基于創(chuàng)工控主板上應(yīng)用時,可將ISO7816智能卡簡單的理解成一個串口設(shè)備。
    的頭像 發(fā)表于 09-27 16:07 ?3368次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b>嵌入式Linux<b class='flag-5'>工控</b><b class='flag-5'>主板</b>如何實現(xiàn)<b class='flag-5'>ISO7816</b><b class='flag-5'>協(xié)議</b>

    EM9161如何升級EM9171

    EM9161EM9161G是使用WinCE 5.0操作系統(tǒng)的嵌入式工控板,在市場上,具有良好的性能表現(xiàn),得到客戶的認(rèn)可。
    的頭像 發(fā)表于 10-12 11:39 ?1440次閱讀

    創(chuàng)信息技術(shù)工控主板EM9161實現(xiàn)音頻輸出的過程

    隨著嵌入式技術(shù)的廣泛應(yīng)用,在工業(yè)控制領(lǐng)域有越來越多的應(yīng)用需要高品質(zhì)的音頻輸出,而EM9161作為一款高性價比的工控主板產(chǎn)品,在推出不到三個月的時間里,已得到廣大客戶的廣泛認(rèn)可,其中不乏
    的頭像 發(fā)表于 11-05 10:09 ?1474次閱讀

    創(chuàng)信息技術(shù)EM9000工控主板的版本信息管理概述

    EM9000是創(chuàng)公司極具特色的一款A(yù)RM9工控主板。經(jīng)過長時間的完善,現(xiàn)系統(tǒng)已完全穩(wěn)定。
    的頭像 發(fā)表于 11-17 11:23 ?1611次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</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>

    創(chuàng)信息技術(shù)EM9161評估開發(fā)套件與LCD的連接方法概述

    使用Microsoft提供的著名免費軟件開發(fā)工具eVC(+SP4)或微軟的其他開發(fā)工具,在EM9161上開發(fā)應(yīng)用程序。EM9161工控主板帶有一個標(biāo)準(zhǔn)TTL電平的彩色顯示數(shù)字接口,接口
    的頭像 發(fā)表于 11-18 09:50 ?1844次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</b><b class='flag-5'>EM9161</b>評估開發(fā)套件與LCD的連接方法<b class='flag-5'>概述</b>

    創(chuàng)信息技術(shù)ISO7816通訊協(xié)議工控主板EM9160介紹

    在新的國家電網(wǎng)智能終端相關(guān)標(biāo)準(zhǔn)中,規(guī)定了通過專門的加密芯片來保證設(shè)備數(shù)據(jù)安全性的方法,而設(shè)備主控單元與加密芯片采用了廣泛應(yīng)用的ISO7816通訊協(xié)議。
    的頭像 發(fā)表于 11-18 09:56 ?2187次閱讀

    創(chuàng)信息技術(shù)嵌入式Linux主板EM9160支持ISO7816通訊協(xié)議介紹

    新的技術(shù)需求,我們對嵌入式Linux主板EM9160的串口驅(qū)動進(jìn)行了升級,使其多個串口都可支持ISO7816
    的頭像 發(fā)表于 11-18 10:09 ?2099次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</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'>協(xié)議</b>介紹

    創(chuàng)信息技術(shù)主板EM9170的主要技術(shù)特色介紹

    EM9170是創(chuàng)公司2011年推出的新一代的工控主板產(chǎn)品。在
    的頭像 發(fā)表于 01-14 14:14 ?1463次閱讀

    創(chuàng)信息技術(shù)EM9161開機(jī)啟動畫面設(shè)置方法介紹

    更改開機(jī)畫面,創(chuàng)公司調(diào)整了EM9161系統(tǒng)內(nèi)核,不需要重新燒寫內(nèi)核,只通過內(nèi)建指令LCDSet.exe來設(shè)置開機(jī)畫面及顯示分辨率。其指令的格式是: \LCDSet [filename] 如
    的頭像 發(fā)表于 01-15 13:56 ?1250次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</b><b class='flag-5'>EM9161</b>開機(jī)啟動畫面設(shè)置方法介紹

    創(chuàng)信息技術(shù)工控主板彩色LCD屏安裝與連接簡介

    創(chuàng)公司的工控主板EM9000、EM9161、EM9
    的頭像 發(fā)表于 01-15 13:59 ?1760次閱讀

    創(chuàng)信息技術(shù)EM9X60利用串口實現(xiàn)ISO7816介紹

    為基礎(chǔ),并針對客戶應(yīng)用的需求,增加了更多通用數(shù)字IO,該產(chǎn)品繼續(xù)保持了Linux操作系統(tǒng)作為客戶應(yīng)用程序的軟件平臺。這三款主板均具備6個串口,其中的4個串口可支持ISO7816,用戶可以通過簡單的設(shè)置,即可將異步串口轉(zhuǎn)換為符合
    的頭像 發(fā)表于 01-15 14:49 ?2694次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</b><b class='flag-5'>EM</b>9X60利用串口實現(xiàn)<b class='flag-5'>ISO7816</b>介紹