卡片回应的串口发送命令代码
时间: 2023-08-06 11:03:07 浏览: 44
卡片回应命令(ATQA)是卡片响应请求命令后返回的数据,用于告诉读写器检测到的卡片类型和其它信息。回应命令的协议格式如下:
起始位(1个字节)+数据长度(1个字节)+数据(n个字节)+校验位(1个字节)+结束位(1个字节)
其中,起始位和结束位固定为0xAA,数据长度为2,数据为卡片类型和其它信息,校验位为数据长度和数据的异或值。
以下是回应命令的串口发送命令代码(以Python为例):
```python
import serial
# 打开串口
ser = serial.Serial('/dev/ttyS0', 9600, timeout=0.5)
# 读取回应命令
response = ser.read(5)
# 解析回应命令
if len(response) == 5 and response[0] == 0xAA and response[-1] == 0xAA:
data_len = response[1]
data = response[2:4]
checksum = response[-2]
if data_len == 2 and checksum == (data_len ^ data[0] ^ data[1]):
atqa = int.from_bytes(data, byteorder='big')
print('ATQA:', hex(atqa))
# 关闭串口
ser.close()
```
其中,`/dev/ttyS0`为串口设备号,`9600`为波特率,`timeout=0.5`为超时时间,`ser.read(5)`为读取5个字节的串口数据,`response[0] == 0xAA and response[-1] == 0xAA`用于判断起始位和结束位是否正确,`data_len == 2 and checksum == (data_len ^ data[0] ^ data[1])`用于判断数据长度和校验位是否正确,`int.from_bytes(data, byteorder='big')`用于将数据转换为整数类型,表示卡片类型和其它信息。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)