色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

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

英創信息技術 ? 作者:英創信息技術 ? 2019-09-27 16:07 ? 次閱讀

ISO7816是一套協議標準,這套協議不僅規定了智能IC卡的機械電氣特性,而且還規定了智能IC卡的應用方法。智能IC卡的主要用途可歸為身份識別、支付安全、加密/解密和信息存儲四個方面。智能IC卡已經廣泛應用到金融、電信、電子商務等領域,我們平常使用的IC電話卡,充值電卡、燃氣卡和手機中的SIM卡都屬于智能卡的范疇。

ISO7816協議標準中,將協議模型定義為4層:物理層、數據鏈路層、傳輸層、應用層。

? 物理層:定義了位交換,主要定義波特率和字符幀的傳輸方式

? 數據鏈路層:定義了字符交換,傳輸的檢錯與糾錯等

? 傳輸層:定義了針對協議的面向應用的提出報文傳輸

? 應用層:定義報文交換的內容

當ISO7816在基于英創的工控主板上應用時,可將ISO7816智能卡簡單的理解成一個串口設備。串口的物理連接和系統驅動程序實現了ISO7816協議標準中的物理層和數據鏈路層(如圖1中黃線以下部份)。應用程序負責數據的解析與應用,實現ISO7816協議標準的傳輸層與應用層(如圖1中黃線以上部份)。

圖1中黃線與紅線之間是英創的工控主板,提供了硬件接口、操作系統支持和串口驅動支持,既實現ISO7816協議的數據鏈路層和物理層。用戶將ISO7816智能卡正確的連接到工控主板的串口上,編寫應用程序,通過調用系統API函數就能實現對ISO7816智能卡的訪問。

圖 1:英創工控主板連接ISO7816智能卡

本文將以英創工控主板EM9280連接基于ISO7816協議的ESAM模塊為例,討論用戶需要做的兩項工作:

1、將智能卡連接到工控主板的串口

2、應用程序如何訪問已連接到系統中的智能卡

1、智能卡(ESAM)的硬件連接

如圖2中的U2所示,ESAM模塊需要一個工作時鐘和一個復位信號,通過一位IO與主機連接實現數據通訊。ESAM的復位信號使用EM9280的一位GPIO控制,工作時鐘使用EM9280的一路PWM。ESAM模塊使用單個I/O與主機通訊,自動切換收發方向,EM9280提供的是標準3線串口,所以沒有辦法與ESAM直接連接。圖2中利用74HCT157,將串口的RXD,TXD模擬成ISO7816單IO通訊模式,利用串口的RTS#信號實現數據收發方向的自動切換。當EM9280發送數據時,RTS#輸出低電平,選通74HCT157的A組,數據通過TXD6→2A→2Y輸出到I/O腳。而1A通過R2上拉到高電平,所以1Y也是高電平,RXD6不會收到任何數據。數據發送完成后,RTS#被串口驅動程序自動將置為高電平,74HCT157的B組選通,ESAM模塊發送的數據由I/O→1B→1Y到達RXD6,串口接收由ESAM模塊發來的數據。此時2B由R2上拉到高電平,所以2Y亦是高電平,不會影響I/O上的數據傳輸。

圖 2:EM9280連接ESAM模塊

2、應用程序設置方法

對應用程序來講,與ESAM通訊類似于RS485的半雙工通訊,只是在開始串口通訊之前,針對ESAM模塊,還需要一些額外的設置。

2.1 產生ESAM工作時鐘

ESAM模塊缺省工作時鐘是其通訊波特率的372倍,我們使用EM9280的PWM1來產生ESAM的工作時鐘。


// Generate clock for ISO7816.
m_hPWM = CreateFile(_T('PWM1:'), // name of device
GENERIC_READ|GENERIC_WRITE, // desired access
FILE_SHARE_READ|FILE_SHARE_WRITE, // sharing mode
NULL, // security attributes (ignored)
OPEN_EXISTING, // creation disposition
FILE_FLAG_RANDOM_ACCESS, // flags/attributes
NULL); // template file (ignored)
if( m_hPWM == INVALID_HANDLE_VALUE )
{
goto InitClearUp;
}
PWM_INFO PwmInfo;
PwmInfo.dwFreq = dwFI_DI_Ratio * dwBaud; // = 372 * 9600 = 3.5712MHz
PwmInfo.dwDuty = 50; // 50%
PwmInfo.dwResolution = 1;
dwNumberOfBytesWritten = 0;
WriteFile( m_hPWM, &PwmInfo, sizeof(PWM_INFO), &dwNumberOfBytesWritten, NULL);

2.2 打開串口并使能RTS_TOGGLE功能

使用標準的文件操作函數CreateFile打開串口設備,同時通過SetCommState函數設置串口通訊相關參數。此時ESAM模塊的通訊波特率設置為9600bps,8位數據位,1位停止位,偶校驗。

DCB dcb;
GetCommState( m_hSer, &dcb );
dcb.BaudRate = Baud; // 波特率 = 9600
dcb.ByteSize = Databits; // 數據位 = 8
dcb.Parity = EVENPARITY; // 偶校驗
dcb.StopBits = ONESTOPBIT; // 停止位 = 1
SetCommState(m_hSer, &dcb);

在圖2中,將3線串口模擬成單線的ISO7816模式,使用串口的RTS作為數據傳輸方向控制信號。EM9280可以為打開的串口任意指定一位GPIO作為其RTS信號線,實現方法如下:

DCB dcb;
BOOL bRet;
bRet = DeviceIoControl(m_hSer, // 已經打開的串口設置句柄
IOCTL_SET_UART_RTS_PIN, // I/O control code
&dwRTSPin, // 選擇作為RTS的GPIO,如圖2中選擇GPIO7
sizeof(DWORD),
NULL,
0,
NULL,
NULL);
if( bRet )
{
GetCommState( m_hSer, &dcb ); // Get dcb
dcb.fRtsControl = RTS_CONTROL_TOGGLE; // Enable RTS Toggle
SetCommState(m_hSer, &dcb); // update dcb
}

2.3 數據收發

應用程序可以創建一個線程,然后等待串口事件接收串口數據。

應用程序調用WriteFile函數發送數據,但需要特別注意ISO7816傳輸協議中關于“保護時間”要求,協議中規定兩個連續的字符幀之間必需要有一個最小時間間隔,即保護時間,當波特率為9600bps時,保護時間最小大約為200uS。

如果直接調用WriteFile將要發送的數據一次性發送

WriteFile( m_hSer, Buf, len, &dwLen, NULL);

在EM9280上測得的字符間時間間隔大約為30uS,顯示不能滿足協議保護時間的要求。為了達到保護時間的要求,可以采用下面的方式,將需要發送的數據一個字節一個字節的發送。

for( int i; i

WriteFile( m_hSer, Buf+i, 1, &dwLen, NULL);

上面的for循環每調用一次WriteFile函數,只發送1個字節,在EM9280上測得的字符間時間間隔最小大約為500uS,滿足協議保護時間的要求,實際測試也能正常與ESAM模塊通訊。

如果主機串口硬件沒有支持ISO7816模式,如英創公司工控主板EM9170、EM9283等,就可以按本文的方法,增加很少的幾個器件就能連接ISO7816設備。

英創公司Atmel系列工控主板,CPU的串口本身就支持ISO7816模式,可直接連接IS07816智能卡。我們實現了相應的驅動程序,相關的使用方法可參考下面的文章:

ISO7816通訊協議在工控主板EM9160中的實現方案

工控主板EM9161對ISO7816協議的支持

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

我們還提供了ESAM模塊完整的測試程序,需要的用戶可與我們聯系獲取相關代碼。

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

    關注

    87

    文章

    11296

    瀏覽量

    209358
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6085

    瀏覽量

    35303
收藏 人收藏

    評論

    相關推薦

    ISO7816 智能卡標準下載

    ISO7816 智能卡標準下載 ISO 7816-4 Smart Card Standard: Part 4: Interindustry Commands for Interchange[此貼子已經被作者于2008-
    發表于 05-14 23:27

    支持Linux高級客戶自行移植內核

    上市)  該項服務具體說明和實施流程參見:支持客戶進行Linux移植  需要該服務的客戶需與簽訂技術保密協議,并承諾嚴格履行協議
    發表于 01-18 13:52

    工控主板產品選型指南

      成都信息技術有限公司是一家專注于嵌入式工控主板研發、銷售與服務的高科技公司,在嵌入式領域
    發表于 02-28 11:28

    嵌入式主板的無線通訊解決方案

    WiFi模塊。ETA6210模塊繼續保持了PPP撥號模式,使得無論是Linux平臺的主板還是CE平臺的主板,都能方便的使用?! ∠卤砹谐隽水斍?b class='flag-5'>英
    發表于 03-24 14:00

    工控主板通過PPI協議連接西門子PLC

    ,但西門子并未公開PPI協議內容。Modbus是工業控制現場廣泛應用的通訊協議,在嵌入式領域,嵌入式主板通常采用Modbus與PLC相連,
    發表于 10-19 16:14

    主板中預裝Modbus通訊協議

    modbus_Master.h,與原來的靜態庫保持不變,相應各個API函數的說明請參見網站技術天地文章《Wince下的Modbus主控通訊協議》、《
    發表于 10-20 10:40

    ISO7816?(part?1-3)異步

    ISO7816 (part 1-3) asynchronous smart card information?- Contents -I ) Introduction of the ISO7816 standardII ) Summary
    發表于 03-11 13:14 ?4139次閱讀
    <b class='flag-5'>ISO7816</b>?(part?1-3)異步

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

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

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

    在新的國家電網智能終端相關標準中,規定了通過專門的加密芯片來保證設備數據安全性的方法,而設備主控單元與加密芯片采用了廣泛應用的ISO7816通訊協議。
    的頭像 發表于 11-18 09:56 ?2385次閱讀

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

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

    信息技術嵌入式Linux工控主板uboot命令簡介

    成都利公司提供的EM9X60系列嵌入式Linux工控主板,均預裝了Linux2.6.30內核操
    的頭像 發表于 01-15 14:01 ?1378次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b>信息技術<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b><b class='flag-5'>工控</b><b class='flag-5'>主板</b>uboot命令簡介

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

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

    信息技術嵌入式Linux主板Qt串口應用程序簡介

    :/dev/ttyS1,設置串口參數,創建一個單獨的線程來對數據進行收發,使用read函數讀取數據,write函數發送數據。并且公司將其封裝成一個serial類,可以使用serial類方便的操作
    的頭像 發表于 01-17 09:41 ?1820次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b>信息技術<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b><b class='flag-5'>主板</b>Qt串口應用程序簡介

    信息技術Linux工控主板支持3G網卡介紹

    (3rd-generation,第三代移動通訊技術)運用的普及,公司的工控主板同樣對3G無線通訊做了完備的支持。本文就以目前很常用的華為3G網卡770W和E261為例,介紹
    的頭像 發表于 01-17 09:49 ?2210次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b>信息技術<b class='flag-5'>Linux</b><b class='flag-5'>工控</b><b class='flag-5'>主板</b>支持3G網卡介紹

    什么是嵌入式工控主板嵌入式工控主板的分類和應用有哪些?

    什么是嵌入式工控主板,嵌入式工控主板的分類和應用有哪些這樣的問題,相信對于很多不懂行的人或者是初
    的頭像 發表于 07-05 11:15 ?1253次閱讀
    主站蜘蛛池模板: 91国在线产| a级毛片高清免费视频| 99热在线观看精品| 国产 交换 丝雨 巅峰| 久久99精品国产自在自线| 欧美日韩久久久精品A片| 午夜国产视频| 4k岛国精品午夜高清在线观看| 粗好大用力好深快点漫画| 教室里的激情电影| 欧洲老妇人bb| 亚洲综合免费视频| 超碰在线公开视频| 久久国产露脸老熟女熟69| 日本无码人妻精品一区二区视频| 亚洲午夜精品A片久久WWW软件 | 色戒在线完整观看在线播放版| 亚洲日韩在线天堂一| www国产av偷拍在线播放| 精品久久综合1区2区3区激情| 人体内射精一区二区三区| 伊人狠狠丁香婷婷综合尤物| 公么我好爽再深一点| 免费网站在线观看国产v片| 亚洲成人精品| 纯肉高H啪短文合集| 美女撒尿无遮挡免费中国| 国产精品一区二区亚瑟不卡| 久章草一区二区| 亚洲国产黄色| 纯肉小黄文高H| 男人的天堂色偷偷| 一受n攻高h全肉np| 国产精品久久久久影院嫩草| 欧美亚洲精品午夜福利AV| 在线日本v二区不卡| 国产亚洲高清视频| 三级貂蝉艳史 在线观看| 99久久精品费精品国产一区二| 极品美女久久久久久久久久久| 丝袜美女被艹|