这是机场入口电子卡检查登记的设备。有输入
源代码在线查看: pc与e58串口数据包协议.txt
pc与e58串口数据包协议开始:
常理:
一字节 =8位。
一页 =128字节。
The 512K is internally organized as 512 pages of 128-bytes each.
最大页数=(512*4)-1. (my页)=0页~2047页(0页~0x7FF页)
定义:
显示码 = lcd显示所需要的字节数组。(32个字节的数组,16个字节的数组)
卡号 = 由读卡器送出的双字节数字。(高位在前)
本机卡号= 卡号-最小卡号。
卡号内容= 由10个字节(间接码)组成。
以1个字节为地址可以从eep得到一组显示码。
最终得到全部显示码。
间接码= 间接码< 40 对应的卡号内容显示码是16个字节的数组(0~9,A~Z)。可写8个间接码内容。
间接码>= 40 对应的卡号内容显示码是32个字节的数组。可写4个间接码内容。
每一个使用中的间接码一定要有间接码内容。
数据包格式: (共130字节)
第0字节: 页号(双字节高位)。
第1字节: 页号(双字节低位)。(共有0x7FF页(0页~2047页))
第2字节~
第2+128字节: 数据内容顺续存放。 (共有128字节)
存储空间规划:
1024页~1999页存放存放以本机卡号除以12的商为页号的12个连续卡号的内容。
(每组卡号含10个字节。
本机卡号除以12的余数等于0的本机卡号的卡号内容存在第0
个到第9个字节,
本机卡号除以12的余数等于1的本机卡号的卡号内容存在第10
个到第19个字节......
不使用的本机卡号为空号。空号,多余字节用0xff填空,
不能跳号,一共是128字节。)
2000页~2004页存放数字库和最小卡号。数字库占4.5页,2004页最后放最小卡号
2005页~2047页存放汉字库
pc与e58串口数据包协议结束
使用数据包范例:(一)接受卡号后显示
get本机卡号
1。1)接受卡号,
1。2)从2004页最后处,读出页的数据,
最小卡号(双字节,高位在前)。存放在第0个到第1个字节,
1。3)本机卡号=卡号-最小卡号,
get间接码
2。1)页号= 本机卡号除以12的商,
2。2)用页地址读出页的数据,
2。3)偏移量地址=(本机卡号除以12的余数)乘10,
2。3)以偏移量地址在读出的页数据中顺序取出10个字节的间接码,
get显示码
3。1)检查间接码(是否空号)?
3。2)是,显示一个自选符号(暂),结束。
3。3)顺序检查间接码(是否>=40)?
是,页地址= 2005+((间接码-40)/4),用页地址读出页的数据,偏移量地址=(间接码除以4的余数)乘32,以偏移量地址取出32个字节的显示码放入显示区。
否,页地址= 2000+(间接码/8),用页地址读出页的数据,偏移量地址=(间接码除以8的余数)乘16,以移量地址取出16个字节的显示码放入显示区,
直到10个字节(间接码)处理完,结束。
使用数据包范例:(二)接受pc数据后对eep更新
2。1)接受pc数据包, 按存储页地址(双字节)对eep页写入更新;
2。2)按存储页地址 对eep页读出,向pc发送数据包
24c512 Device Select Code
--------------------------------------------------------------------------------------------------------
| Device Type Identifier | Chip Enable Address | R/W
| b7 b6 b5 b4 | b3 b2 b1 |b0
--------------------------------------------------------------------------------------------------------
Device Select Code | 1 0 1 0 | 0 E2 E1 |R/W
---------------------------------------------------------------------------------------------------------
Note: 1. The most significant bit, b7, is sent first.