NFC主板modbus协议
<p><strong>基础信息:</strong>
波特率:115200
节点号:1</p>
<p>CRC16计算工具:(选择CRC-16/MODBUS模式,注意计算值是高位在后,需要改为高位在前)
<a href="http://www.ip33.com/crc.html">http://www.ip33.com/crc.html</a></p>
<p><strong>注意:</strong>
1、写sn会初始化钱包;
2、读取时,如果出现错误会立即结束,读到多少个块返回多少块;
3、写时,返回数据代表设备接受指令,是否执行成功需要读寄存器确认;
4、执行初始化卡指令时,需要卡片是空白卡,即所有扇区密码(FFFFFFFFFFFF)、权限(FF 07 80 69)都是默认 ;
5、扇区0为保留扇区,不可写sn,默认【扇区3】为业务扇区;
6、推荐卡片权限设置为【08778F69】,即密码A可读、可扣款,密码B可写、可充值;</p>
<p><strong>发卡主机配置流程:</strong>
1、设备配置:设置业务扇区地址--设置密码A--设置密码B
2、初始化卡片:初始化指令(修改所有扇区权限)--写入sn
3、日常使用:查询序列号/查询卡号/扣款/充值/查询金额/修改自动扣款金额</p>
<p><strong>日常使用流程:</strong>
1、设备配置:设置业务扇区地址--设置密码A--设置自动扣款金额
2、日常使用:刷卡自动扣款(返回卡号、sn、扣款后金额)/ 指令读取钱包、sn、卡号</p>
<p><strong>查询指令:</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">功能</th>
<th style="text-align: left;">指令</th>
<th style="text-align: left;">返回</th>
<th style="text-align: left;">鉴权密码</th>
<th style="text-align: left;">寄存器地址</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">读本机块地址</td>
<td style="text-align: left;">01 03 0FA0 0001 873C</td>
<td style="text-align: left;">01 03 02 00 03 F8 45</td>
<td style="text-align: left;">|4000</td>
</tr>
<tr>
<td style="text-align: left;">读本机密码A</td>
<td style="text-align: left;">01 03 0FA1 0003 573D</td>
<td style="text-align: left;">01 03 06 01 02 03 04 05 06 9B B3</td>
<td style="text-align: left;">|4001</td>
</tr>
<tr>
<td style="text-align: left;">读M1卡权限</td>
<td style="text-align: left;">01 03 0FA4 0002 86FC</td>
<td style="text-align: left;">01 03 04 FF 07 80 69 DA 08</td>
<td style="text-align: left;">密码B</td>
<td style="text-align: left;">4004</td>
</tr>
<tr>
<td style="text-align: left;">读本机密码B</td>
<td style="text-align: left;">01 03 0FA6 0003 E6FC</td>
<td style="text-align: left;">01 03 06 FF FF FF FF FF FF 20 FA</td>
<td style="text-align: left;">|4006</td>
</tr>
<tr>
<td style="text-align: left;">读钱包</td>
<td style="text-align: left;">01 03 0FA9 0002 173F</td>
<td style="text-align: left;">01 03 04 06 22 CD 1B 4E 2A</td>
<td style="text-align: left;">密码A</td>
<td style="text-align: left;">4009</td>
</tr>
<tr>
<td style="text-align: left;">读序列号</td>
<td style="text-align: left;">01 03 0FAB 0008 36F8</td>
<td style="text-align: left;">01 03 10 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 40 EF</td>
<td style="text-align: left;">密码A</td>
<td style="text-align: left;">4011</td>
</tr>
<tr>
<td style="text-align: left;">读卡号</td>
<td style="text-align: left;">01 03 0FB3 0002 36F8</td>
<td style="text-align: left;">01 03 04 06 22 CD 1B 4E 2A</td>
<td style="text-align: left;">|4019</td>
</tr>
</tbody>
</table>
<p><strong>修改指令:</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">功能</th>
<th style="text-align: left;">指令</th>
<th style="text-align: left;">返回</th>
<th style="text-align: left;">鉴权密码</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">改为操作3扇区</td>
<td style="text-align: left;">01060FA00003CAFD</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">\</td>
</tr>
<tr>
<td style="text-align: left;">设置A密码为默认密码</td>
<td style="text-align: left;">01100FA1000306FFFFFFFFFFFF805C</td>
<td style="text-align: left;">01 10 0F A1 00 03 D2 FE</td>
<td style="text-align: left;">\</td>
</tr>
<tr>
<td style="text-align: left;">使用默认密码B写入卡片权限</td>
<td style="text-align: left;">01100FA400050AFF078069FFFFFFFFFFFF08B2</td>
<td style="text-align: left;">01 10 0F A4 00 05 42 FD</td>
<td style="text-align: left;">密码B</td>
</tr>
<tr>
<td style="text-align: left;">设置密码B为默认密码</td>
<td style="text-align: left;">01100FA6000306FFFFFFFFFFFF3186</td>
<td style="text-align: left;">01 10 0F A6 00 03 63 3F</td>
<td style="text-align: left;">\</td>
</tr>
<tr>
<td style="text-align: left;">扣款2</td>
<td style="text-align: left;">01100FA900020400000002F98C</td>
<td style="text-align: left;">01 10 0F A9 00 02 92 FC</td>
<td style="text-align: left;">密码A</td>
</tr>
<tr>
<td style="text-align: left;">写序列号[序列号必须是16位】</td>
<td style="text-align: left;">01100FAB000810303132333435363738393031323334357F47</td>
<td style="text-align: left;">01 10 0F AB 00 08 B3 3B</td>
<td style="text-align: left;">密码B</td>
</tr>
<tr>
<td style="text-align: left;">初始化权限</td>
<td style="text-align: left;">01100FB700050AFF078069FFFFFFFFFFFF1A61</td>
<td style="text-align: left;">01 10 0F B7 00 05 B3 38</td>
<td style="text-align: left;">密码B</td>
</tr>
<tr>
<td style="text-align: left;">充值2</td>
<td style="text-align: left;">01100FBC0002040000000238BF</td>
<td style="text-align: left;">01 10 0F BC 00 02 83 38</td>
<td style="text-align: left;">密码B</td>
</tr>
</tbody>
</table>
<pre><code>改扇区到02 01060FA000020B3D
设置A密码为【010203040506】 01100FA10003060102030405063B15
使用0102030405密码B,写入默认权限 01100FA400050AFF078069010203040506B3FB
设置密码B为【010203040506】 01100FA60003060102030405068ACF
使用默认密码设置扇区权限为【08778F69】 01100FA400050A08778F69FFFFFFFFFFFF9929
读钱包+sn : 01030FA9000A16F9 01 03 14 00 00 00 34 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 51 1F
读钱包+sn+id : 01030FA9000C96FB 01 03 18 00 00 00 34 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 06 22 CD 1B 6A 4C
</code></pre>
<p><strong>系统级指令:</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">功能</th>
<th style="text-align: left;">指令</th>
<th style="text-align: left;">返回</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">01节点2S后重启</td>
<td style="text-align: left;">010603E800FF49FA</td>
<td style="text-align: left;">01 06 03 E8 00 FF 49 FA</td>
</tr>
<tr>
<td style="text-align: left;">改485节点号为15</td>
<td style="text-align: left;">010603E9000F187E</td>
<td style="text-align: left;">0F 06 03 E9 00 0F 19 50</td>
</tr>
<tr>
<td style="text-align: left;">改485波特率为9600</td>
<td style="text-align: left;">010603EA0003E87B</td>
</tr>
<tr>
<td style="text-align: left;">改为操作3扇区地址</td>
<td style="text-align: left;">01060FA00003CAFD</td>
</tr>
</tbody>
</table>
<p>注意:修改波特率后需重启生效,修改节点地址立即生效;</p>
<pre><code>15节点2S后重启 0F0603E800FF48D4
改485节点号为1 0F0603E900019894
改485波特率为115200 010603EA0008A9BC</code></pre>
<h2>童车扩展数据</h2>
<p>--读电池电量
01 03 1389 0001 5164</p>
<p>--写锁状态
01 06 138A 0000 ACa4 --关锁状态
01 06 138A 0001 6D64 --开锁状态</p>
<h2>童车NFC模块使用流程</h2>
<p>1、NFC模块设置读写密码,如果不需要发卡,仅设置密码A即可
①设置A密码为【313233343536】 01 10 0FA1 0003 06 313233343536 65fa
②设置密码B为【313233343536】 01 10 0FA6 0003 06 313233343536 D420
2、发卡
①使用默认密码设置扇区权限为【08778F69】 01 10 0FA4 0005 0A 08778F69 FFFFFFFFFFFF 9929 //修改整个认证块数据,包含密码A、密码B、权限
②写入序列号 01 10 0FAB 0008 10 31353130313030313130313334353536 EA08
3、日常使用
③读序列号 01 03 0FAB 0008 36F8</p>