衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

英創信息技術ISO7816通訊協議在工控主板EM9160介紹

英創信息技術 ? 來源:英創信息技術 ? 作者:英創信息技術 ? 2019-11-18 09:56 ? 次閱讀

在新的國家電網智能終端相關標準中,規定了通過專門的加密芯片來保證設備數據安全性的方法,而設備主控單元與加密芯片采用了廣泛應用的ISO7816通訊協議。工控主板EM9160為了適應這一新的技術需求,對其內核進行了升級,使其多個串口都可支持ISO7816協議,為客戶進行智能終端整機設計時,提供了靈活的選擇。
對EM9160工控主板,可在其異步串口的基礎上,通過簡單的設置,就可把串口轉為符合ISO7816協議的接口,實現與各種智能卡的通訊。EM9160共有6個異步串口,在Windows CE環境中為“COM2:”- “COM7:”,其中支持ISO7816的串口如下表所示:

串口

管腳配置

備注

COM3

TXD:半雙工數據線
RXD:復位輸出控制 低電平有效
GPIO14:作為SCK 輸出頻率與波特率等參數有關

COM5

TXD:半雙工數據線
RXD:復位輸出控制 低電平有效
GPIO15:作為SCK 輸出頻率與波特率等參數有關

COM6

TXD:半雙工數據線
RXD:復位輸出控制 低電平有效
GPIO15:作為SCK 輸出頻率與波特率等參數有關

COM7

TXD:半雙工數據線
RXD:復位輸出控制 低電平有效
GPIO15:作為SCK 輸出頻率與波特率等參數有關

EM9160的“COM5:”- “COM7:”串口信號均為TTL電平,建議客戶首選其中之一作為與ISO7816智能芯片的通訊接口。如果這些串口已分配給設備的其他功能,也可以考慮使用COM3口,需要注意的是COM3口的缺省配置是RS232電平,客戶需要在購買時特別通知我們把COM3設置為TTL電平才能與安全模塊相連。當然GPIO15或GPIO14一旦作為了ISO7816的工作時鐘輸出,就不能再用作其他的用途了。

作為應用程序,在操作ISO7816模式的串口(以COM5為例)時,一般的流程如下:

1、按標準方法打開串口“COM5:”;

2、通過DeviceIoControl(…)函數使能ISO7816通訊模式;

3、設置包括波特率、奇偶校驗在內的相關串口參數;

4、根據需要可通過DeviceIoControl(…)函數對對端芯片進行一次復位操作;

5、進行正常數據通訊;

6、通過DeviceIoControl(…)函數禁止ISO7816通訊模式;

7、按標準方法關閉串口“COM5:”。

在上述流程中,需要注意的是一定要先使能ISO7816模式,再設置波特率,才能保證得到正確的通訊參數。

為了實現從通常的異步串口到ISO7816的轉換,EM9161的串口驅動增加了3個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)

#define IOCTL_SERIAL_RESET_ISO7816 \

CTL_CODE(FILE_DEVICE_SERIAL_PORT,42,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 = SCK /(FI / DI)

上式中的SCK = 串口波特率×(FI / DI),例如串口波特率為9600,則SCK時鐘頻率為3.5712MHz。在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;

DWORD pBuf[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 parameters

NULL, 0, // output parameters

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’);

}

對ISO7816對端芯片的復位,需要設置復位時間,以ms為單位:

DWORD dwMilliseconds = 1; // 可以設為0,實際復位時間為幾十微秒

if (!DeviceIoControl ( m_hSer,

IOCTL_SERIAL_RESET_ISO7816,

&dwMilliseconds, sizeof(DWORD), // input parameters

NULL, 0, // output parameters

NULL, NULL ))

{

printf(‘IOCTL_SERIA, L_RESET_ISO7816 , failed!\r\n’);

}

&am, p;nb, sp; 設置了ISO模式后, ,應用程序仍然可以像操作普通串口那樣,進行數據的讀寫,只是需要注意, 的, 是I, SO7816的半雙工模式的,所以數據通訊的過程更像是RS485的過程。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • WINDOWS
    +關注

    關注

    4

    文章

    3570

    瀏覽量

    89308
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6086

    瀏覽量

    35619
收藏 人收藏

    評論

    相關推薦

    嵌入式工控主板EM9160的PWM功能

    公司新近推出的嵌入式工控主板EM9160是一款專門面向工業智能設備的高性價比ARM9+WinCE平臺,該
    發表于 04-09 15:49 ?36次下載

    嵌入式Linux工控主板如何實現ISO7816協議

    ISO7816基于工控主板上應用時,可將ISO78
    的頭像 發表于 09-27 16:07 ?3710次閱讀
    <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>

    信息技術嵌入式工控主板EM9160的PWM功能使用方法

     公司新近推出的嵌入式工控主板EM9160是一款專門面向工業智能設備的高性價比ARM9+WinCE平臺,該
    的頭像 發表于 11-01 09:27 ?1651次閱讀

    信息技術嵌入式主板EM9160精簡ISA總線硬件中斷的使用方法

     公司新近推出的嵌入式主板EM9160是一款專門面向工業智能設備的高性價比ARM9+WinCE平臺,該工控
    的頭像 發表于 11-01 09:42 ?1693次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b>嵌入式<b class='flag-5'>主板</b><b class='flag-5'>EM9160</b>精簡ISA總線硬件中斷的使用方法

    信息技術工控主板EM9160L的低功耗應用介紹

    EM9160L是一款與主力產品EM9160功能完全兼容,同時具有低功耗操作能力的高性能ARM9嵌入式主板產品。
    的頭像 發表于 11-14 09:59 ?1622次閱讀

    信息技術工控主板的復位管理介紹

     公司的工控主板是基于ARM9 CPU、預裝正版WinCE的嵌入式主板產品。作為嵌入式應用,系統的可靠啟動是其可靠性的重要組成部分。本文
    的頭像 發表于 11-14 10:03 ?1723次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b><b class='flag-5'>工控</b><b class='flag-5'>主板</b>的復位管理<b class='flag-5'>介紹</b>

    信息技術工控主板EM9161對ISO7816協議的支持概述

    在當前的金融POS終端及相關領域,ISO7816通訊協議得到了廣泛應用。工控
    的頭像 發表于 11-17 11:50 ?1823次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b><b class='flag-5'>工控</b><b class='flag-5'>主板</b><b class='flag-5'>EM</b>9161對<b class='flag-5'>ISO7816</b><b class='flag-5'>協議</b>的支持概述

    信息技術工控主板EM9160對紅外通訊用途介紹

    公司的EM9160是一款高性價比的工控主板,預裝正版WinCE5.0操作系統,具有極強的通訊
    的頭像 發表于 11-18 09:58 ?1303次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b><b class='flag-5'>工控</b><b class='flag-5'>主板</b><b class='flag-5'>EM9160</b>對紅外<b class='flag-5'>通訊</b>用途<b class='flag-5'>介紹</b>

    信息技術嵌入式Linux主板EM9160支持ISO7816通訊協議介紹

    新的技術需求,我們對嵌入式Linux主板EM9160的串口驅動進行了升級,使其多個串口都可支持ISO7816協議,為客戶進行智能終端整機設計
    的頭像 發表于 11-18 10:09 ?2319次閱讀
    <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'>EM9160</b>支持<b class='flag-5'>ISO7816</b><b class='flag-5'>通訊</b><b class='flag-5'>協議</b><b class='flag-5'>介紹</b>

    信息技術工業主板EM9160介紹

    ,如I2C總線時鐘芯片,I2C總線存貯器等。之前已對I2C總線操作鐵電存貯器有過說明,相關文章請參考《工控主板支持鐵電存儲器的簡易方案》。公司的
    的頭像 發表于 01-14 11:09 ?1353次閱讀

    信息技術嵌入式Linux工控EM9160介紹

    I2C總線是一種2線制的主從通訊協議,主要運用于器件之間的數據通訊嵌入式系統中得到非常廣泛的應用。作為一款高性價比的嵌入式Linux工控
    的頭像 發表于 01-14 10:57 ?1391次閱讀
    <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'>EM9160</b><b class='flag-5'>介紹</b>

    信息技術工控主板EM9160介紹

    基于工控主板EM9160的嵌入式應用中,經常需要與具有SPI接口的芯片或電路單元,進行數據通訊。通常情況下,我們建議采用基于GPIO的SP
    的頭像 發表于 01-14 11:16 ?1445次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b><b class='flag-5'>工控</b><b class='flag-5'>主板</b><b class='flag-5'>EM9160</b><b class='flag-5'>介紹</b>

    信息技術主板EM9160硬件介紹

    工控主板上的精簡ISA總線的主要應用,就是支持客戶的專用電路單元的擴展,如數據采集等。精簡ISA總線中還包括了對外部硬件中斷的響應輸入
    的頭像 發表于 01-14 11:27 ?1132次閱讀

    信息技術主板EM9160測頻功能的使用介紹

    公司的主流產品EM9160是一款功能強大的嵌入式工控主板,其主要應用是作為工業智能設備的核心平臺。E
    的頭像 發表于 01-15 14:15 ?1579次閱讀

    信息技術EM9X60利用串口實現ISO7816介紹

    EM9160EM9460系列產品,均以豐富的串口資源為特色,已大量地應用于工業環境中,特別是電力系統中應用。最近公司即將推出一款新的產品EM
    的頭像 發表于 01-15 14:49 ?2972次閱讀
    <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><b class='flag-5'>介紹</b>
    百家乐官网路单破解器| 百家乐官网9人桌布| 豪华百家乐官网人桌| 做生意摆放龙龟方向| 新天地百家乐的玩法技巧和规则 | 百家乐官网厅| 百家乐电子路单破解| 水果老虎机的程序| 圣淘沙娱乐| 赌场百家乐官网怎么破解| 百家乐赌场玩法技巧| bet365滚球| 最好的百家乐官网博彩公司| 百家乐如何睇路| 大发888 娱乐平台| 玩百家乐官网新2娱乐城| 百家乐玩家技巧分享| 大发888注册步骤| 百家乐官网赌场策略论坛| 至尊百家乐娱乐场| A8百家乐官网游戏| 百家乐玩法有技巧| 大三巴娱乐城开户| 迪威百家乐官网赌场娱乐网规则| 威尼斯人娱乐城代理合作| 网上百家乐官网真实度| 赌博百家乐游戏| 日博娱乐城| 百家乐模拟投注器| 现金网hg8568.com| 如何打百家乐官网的玩法技巧和规则 | 大发888 制度| 百家乐官网的薇笑打法| 威尼斯人娱乐城活动| 百家乐官网做庄家必赢诀窍| 百家乐可以出千吗| 百家乐官网真人娱乐场| 百家乐桌游| 百家乐官网是如何骗人的| 金沙百家乐的玩法技巧和规则| 百家乐官网软件编辑原理|