英利EM9160、EM9460系列產品,均以豐富的串口資源為特色,已大量地應用于工業環境中,特別是在電力系統中應用。最近公司即將推出一款新的產品EM9560工控主板,該主板是是以EM9460工控主板為基礎,并針對客戶應用的需求,增加了更多通用數字IO,該產品繼續保持了Linux操作系統作為客戶應用程序的軟件平臺。這三款主板均具備6個串口,其中的4個串口可支持ISO7816,用戶可以通過簡單的設置,即可將異步串口轉換為符合ISO7816的接口,從而方便地實現和各種智能卡之間的通訊。本文將詳細介紹在EM9160、EM9460、EM9560工控主板上設置ISO7816的方法。
1、ISO7816接口資源配置
可支持ISO7816的串口資源包括:ttyS2 + GPIO14、ttyS4 + GPIO15、ttyS5 + GPIO15、ttyS6 + GPIO15,其中的GPIO14和GPIO15分別作為ISO7816的工作時鐘輸出,需要注意的是ttyS4、ttyS5、ttyS6這三個串口共用的是一個工作時鐘輸出,如果需要同時使用的話,要求波特率是一致的。以下為資源列表:
串口 | 管腳配置 | 備注 |
ttyS2 | TXD:半雙工數據線 | |
RXD:復位輸出控制 | 低電平有效 | |
GPIO14:作為SCK | 輸出頻率與波特率等參數有關 | |
ttyS4 | TXD:半雙工數據線 | |
RXD:復位輸出控制 | 低電平有效 | |
GPIO15:作為SCK | 輸出頻率與波特率等參數有關 | |
ttyS5 | TXD:半雙工數據線 | |
RXD:復位輸出控制 | 低電平有效 | |
GPIO15:作為SCK | 輸出頻率與波特率等參數有關 | |
ttyS6 | TXD:半雙工數據線 | |
RXD:復位輸出控制 | 低電平有效 | |
GPIO15:作為SCK | 輸出頻率與波特率等參數有關 |
其中ttyS4-ttyS6缺省為TTL電平,所以建議客戶首選其中之一作為ISO7816接口。ttyS2缺省出廠配置為RS232電平,如果選擇了該串口,需要特別通知我們公司在出廠時將該串口設置為TTL電平。一旦GPIO14、GPIO15作為ISO7816的工作時鐘,就不能再做其他用途使用。
2、硬件接口電路
需要注意的是我們將串口的RXD作為對ISO7816接口的復位信號,相應的在串口驅動中已實現了該功能,在后續應用程序介紹中會介紹對ISO7816進行復位的方法。
3、應用程序設置方法
對于ISO7816設置我們已經在底層的串口驅動中完全實現,因此上層的應用程序在進行ISO7816設置、通訊時,和使用標準的串口方法是類似的。也是按照標準的方式打開串口,只是在設置串口的通訊參數時增加對ISO7816的設置即可,然后就可以按照串口數據收發的標準方式進行ISO7816的數據讀寫,只是需要注意的是ISO7816的半雙工通訊模式。
根據ISO7816協議類型以及幀應答規范,所定義的ISO7816的相關參數均定義在我們公司提到個em9x60_drivers.h文件中。
#define EM9X60_ISO7816_T0 (1 << 27) // D27 of termios.c_cflag
#define EM9X60_ISO7816_T1 (1 << 26) // D26 of termios.c_cflag
#define EM9X60_ISO7816_RXD_RESET(1 << 23) // D23 of termios.c_cflag
#define EM9X60_ISO7816_MODE (EM9X60_ISO7816_T0 | EM9X60_ISO7816_T1)
設置這些參數的方法和標準設置串口的波特率等其他通訊參數一樣,直接調用標準函數tcsetattr( )就可完成。如:
int enable_iso7816(pport_info p_info)
{
struct termios cur_opt;
int status;
tcgetattr(p_info->port_fd,&cur_opt);
// 修改模式,啟動iso7816復位操作
cur_opt.c_cflag |= ( EM9X60_ISO7816_T0 | EM9X60_ISO7816_RXD_RESET );
status = tcsetattr(p_info->port_fd,TCSANOW,&cur_opt);
if(status != 0)
{
perror('Cannot set the serial port parameters');
return -1;
}
// 修改模式,進入iso7816
cur_opt.c_cflag &= ~EM9X60_ISO7816_RXD_RESET;
status = tcsetattr(p_info->port_fd,TCSANOW,&cur_opt);
if(status != 0)
{
perror('Cannot set the serial port parameters');
return -1;
}
return status;
}
-
Linux
+關注
關注
87文章
11345瀏覽量
210406 -
嵌入式主板
+關注
關注
7文章
6086瀏覽量
35618
發布評論請先 登錄
相關推薦
龍芯中科榮獲2024年度信息技術應用創新工作委員會卓越貢獻成員單位
芯盛智能榮獲2024年信息技術應用創新工作委員會卓越貢獻成員單位
飛騰助力首屆教育信息技術應用創新大賽圓滿落幕
有方科技參編的信息技術團體標準發布
龍芯中科助力2024首屆教育信息技術應用創新大賽成功舉辦
中科創達榮獲2024年軟件和信息技術服務優秀企業
信創國產化背景下的工控主板發展現狀
加速鯤鵬落地!拓維信息信創遷移工具榮獲鯤鵬原生開發技術認證
![加速鯤鵬落地!拓維<b class='flag-5'>信息</b>信<b class='flag-5'>創</b>遷移工具榮獲鯤鵬原生開發<b class='flag-5'>技術</b>認證](https://file.elecfans.com/web2/M00/46/D0/pYYBAGKV5wiAQkFLAAA0HUPKaH4034.jpg)
ISO7240x,ISO7241x和ISO7242x四通道數字隔離器數據表
![<b class='flag-5'>ISO7240x</b>,<b class='flag-5'>ISO7241x</b>和<b class='flag-5'>ISO7242x</b>四通道數字隔離器數據表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
中微愛芯AD型RISC內核MCU AiP9M161介紹
![中微愛芯AD型RISC內核MCU AiP<b class='flag-5'>9</b>M161<b class='flag-5'>介紹</b>](https://file1.elecfans.com/web2/M00/03/AE/wKgaoma9t-eAV9QWAAF3-tYcbB8166.jpg)
EC2x&EG9X&EM05 FTP (S)AT命令手冊
DIN 2X2 ISO EM 隔離放大器IC資料
電纜驅動傳感器儀表PT420-0040-111-1110介紹
龍芯中科三項信創方案入圍工信部2023年信息技術應用創新應用示范案例名單
![龍芯中科三項信<b class='flag-5'>創</b>方案入圍工信部2023年<b class='flag-5'>信息技術</b>應用創新應用示范案例名單](https://file1.elecfans.com/web2/M00/C3/19/wKgZomXpfwWAT16RAABpz-I0EpY201.png)
評論