Vietnamese (machine translation)

Lưu ý

Mục đích của file này là để độc giả tiếng Việt có thể đọc và hiểu tài liệu nhân kernel dễ dàng hơn, không phải để tạo ra một nhánh tài liệu riêng. Nếu bạn có bất kỳ nhận xét hoặc cập nhật nào cho file này, vui lòng thử cập nhật file tiếng Anh gốc trước. Nếu bạn thấy có sự khác biệt giữa bản dịch và bản gốc, hoặc có vấn đề về bản dịch, vui lòng gửi góp ý hoặc patch cho người dịch của file này, hoặc nhờ người bảo trì và người review tài liệu tiếng Việt giúp đỡ.

Bản gốc:

ISO7816 Serial Communications

Người dịch:

Google Translate (machine translation)

Phiên bản gốc:

8541d8f725c6

Cảnh báo

Tài liệu này được dịch tự động bằng máy và chưa được review bởi người dịch. Nội dung có thể không chính xác hoặc khó hiểu ở một số chỗ. Khi có sự khác biệt với bản gốc, bản gốc luôn là chuẩn. Bản dịch chất lượng cao (được review) được đặt trong thư mục vi_VN/.

Truyền thông nối tiếp ISO7816

1. Giới thiệu

ISO/IEC7816 là một loạt các tiêu chuẩn chỉ định thẻ mạch tích hợp (ICC)

còn được gọi là thẻ thông minh.

2. Những cân nhắc liên quan đến phần cứng

Một số CPU/UART (ví dụ: Microchip AT91) có chế độ tích hợp có khả năng

xử lý giao tiếp bằng thẻ thông minh.

Đối với các bộ vi điều khiển này, trình điều khiển Linux phải có khả năng

hoạt động ở cả hai chế độ và phải thực hiện ioctls thích hợp (xem phần sau) có sẵn ở cấp độ người dùng để cho phép chuyển từ chế độ này sang chế độ khác và ngược lại.

3. Cấu trúc dữ liệu đã có sẵn trong kernel

Nhân Linux cung cấp cấu trúc serial_iso7816 (xem [1]) để xử lý

Truyền thông ISO7816. Cấu trúc dữ liệu này được sử dụng để thiết lập và cấu hình Các tham số ISO7816 trong ioctls.

Bất kỳ trình điều khiển nào cho các thiết bị có khả năng hoạt động cả RS232 và ISO7816 đều nên

triển khai lệnh gọi lại iso7816_config trong cấu trúc uart_port. các serial_core gọi iso7816_config để thực hiện phần cụ thể của thiết bị để phản hồi tới TIOCGISO7816 và TIOCSISO7816 ioctls (xem bên dưới). Iso7816_config cuộc gọi lại nhận được một con trỏ tới struct serial_iso7816.

4. Cách sử dụng từ cấp độ người dùng

Từ cấp độ người dùng, cấu hình ISO7816 có thể được lấy/đặt bằng cách sử dụng cấu hình trước đó

ioctls. Ví dụ: để đặt ISO7816, bạn có thể sử dụng mã sau

#include <linux/serial.h>

/* Bao gồm định nghĩa cho ISO7816 ioctls: TIOCSISO7816 và TIOCGISO7816 */

#include <sys/ioctl.h>

/* Mở thiết bị cụ thể của bạn (ví dụ: /dev/mydevice): */

int fd = open (“/dev/mydevice”, O_RDWR); nếu (fd < 0) {

/* Xử lý lỗi. Xem lỗi. */

}

cấu trúc serial_iso7816 iso7816conf;

/* Các trường dành riêng sẽ có giá trị bằng 0 */

bộ nhớ(&iso7816conf, 0, sizeof(iso7816conf));

/* Kích hoạt chế độ ISO7816: */

iso7816conf.flags |= SER_ISO7816_ENABLED;

/* Chọn giao thức: */

/* T=0 / iso7816conf.flags |= SER_ISO7816_T(0); / hoặc T=1 */ iso7816conf.flags |= SER_ISO7816_T(1);

/* Đặt thời gian bảo vệ: */

iso7816conf.tg = 2;

/Đặt tần số xung nhịp/

iso7816conf.clk = 3571200;

/* Đặt hệ số truyền: */

iso7816conf.sc_fi = 372; iso7816conf.sc_di = 1;

if (ioctl(fd_usart, TIOCSISO7816, &iso7816conf) < 0) {

/* Xử lý lỗi. Xem lỗi. */

}

/* Sử dụng các lệnh gọi tòa nhà đọc() và write() ở đây... */

/* Đóng thiết bị khi hoàn tất: */
nếu (đóng (fd) < 0) {

/* Xử lý lỗi. Xem lỗi. */

}

5. Tài liệu tham khảo

[1] bao gồm/uapi/linux/serial.h