我有一个读卡器/rfid 阅读器,我正在尝试为它创建一个测试应用程序。我确实有来自提供商的协议描述文档,但我以前从未编写过串口软件,一切对我来说看起来都很奇怪。我确实有编程技能,但只是不知道我做错了什么。
所以,设备的型号是CRT288。在规范文档中,我有以下数据:
波特率(BPS):9600
通讯类型:异步通讯
传输类型:半双工
位细节:起始位:1位
数据位:8位
奇偶校验位:无
停止位:1位
起始位 D0 D1 D2 D3 D4 D5 D6 D7 停止位
传输控制代码:
代码 值 含义
STX 0x02 数据包起始字符
ETX 0x03 数据包结束符
ENQ 0x05 发送要求命令(主机 -> 阅读器)
ACK 0x06 肯定回答(读者主机)
NAK 0x15 否定答案(读者主机)
EOT 0x04 取消通讯
最重要的(我相信)命令的数据包格式:
STX(0x02) 命令包 ETX (0x03) BCC
BCC(块校验字符)= STX ^ 命令包 ^ ETX
(^ 是异或计算字符)
例如: 重置命令:
密件抄送=0x02 ^ 0x00 ^ 0x02 ^ 0x30 ^ 0x30 ^ 0x03
含义(STX ^ MSL ^ CMD ^ CMP ^ SDT ^ ETX)
(1) 发送文本的 MSL 长度
(2)CMD 指定一个命令。
(3)CMP命令参数。
(4)SDT 指定发送数据,长度可变(0~264bytes)。
我安装了一些名为 Serial Port Monitor 4.0 (Eltima) 的软件,我正在尝试发送命令,但它似乎不起作用。
0x02 ^ 0x00 ^ 0x02 ^ 0x30 ^ 0x30 ^ 0x03 好像是11什么的。
有人知道如何使用此规范发送正确的命令吗?
最重要的是,读者吃了一张卡,我什至不能拒绝这张卡。它正在为此发出一个命令:)
因此,如果你们有 java 或 c# 中的简单代码示例,或者如何正确格式化命令并将其发送到 rs232,请帮助我。
一个