人脸识别终端485通信协议.docx
- 文档编号:10922421
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:25
- 大小:22.86KB
人脸识别终端485通信协议.docx
《人脸识别终端485通信协议.docx》由会员分享,可在线阅读,更多相关《人脸识别终端485通信协议.docx(25页珍藏版)》请在冰豆网上搜索。
人脸识别终端485通信协议
人脸识别终端485通信协议
(波特率为57600bps;8个数据位,1个停止位,无奇偶校验位)
目录
一.协议描述3
二.数据包格式3
三.包类型及子类型定义4
四.各命令及其数据结构详细描述5
1.连接与用户认证5
2.识别结果通知7
3.查询系统时间信息7
4.查询部门列表信息8
5.查询用户信息9
6.提取用户特征码10
7.设置系统时间信息11
8.增加、修改或删除部门信息11
9.增加、修改或删除用户信息12
10.修改用户特征码13
11.用户注册13
12.用户识别14
13.强制开门请求15
14.查询门禁记录15
15.删除门禁记录17
16.查询系统日志18
五.错误响应NAK数据格式19
六.其它20
本协议为嵌入式人脸识别终端与第三方系统(门禁控制器、访问系统或签到系统等)对接的协议,支持经过认证的第三方系统可以对门禁终端进行用户管理、记录管理以及操作控制等。
用户管理主要包括查询、增加、修改、删除用户。
(用户模板必须在终端注册)
记录管理主要包括记录查询以及删除。
操作控制主要包括远程控制注册登记及注册资料及结果上传、远程控制识别及识别结果上传等。
一.协议描述
客户端发送请求命令CMD,成功会收到确认响应ACK,如果是请求记录则可以继续发送提取下一条记录请求命令GET-NEXT,成功将收到相应的记录信息,所有请求失败均会收到错误响应NAK。
二.数据包格式
数据包包括包标识、包序号、包类型、数据长度、数据内容共五个字段,定义如下:
包标识
包序号
包类型
子类型
数据长度
数据内容
整个数据包均按1字节对齐。
多字节字段按网络字节序(高字节在前低字节在后)传输。
各字段描述如下:
包标识:
包头标识(2字节,固定为0x6666)
包序号:
包序列号(2字节,值域0-65535),不强制从0开始,但响应包必须与对应的请求包的包序号相同
包类型:
请求或响应命令(1字节),详见下表描述。
子类型:
命令对应的数据类型(1字节)详见下表描述。
数据长度:
包数据内容长度(4字节),不包括本字段及前面各字段(单位:
字节)
数据内容:
请求或响应数据的内容(当数据长度为0时本字段不存在),具体格式依不同包类型不同,详见各种包类型描述。
三.包类型及子类型定义
包类型包括认证请求(AUTH)、查询请求(GET)、查询下一条记录(GET-NEXT)、修改请求(PUT)、修改下一条记录(GET-NEXT)、响应(RESPONSE)、通知(TRAP)等,如下表所示:
包类型
包类型描述
备注
0
认证请求(AUTH)
建立连接并认证
1
查询请求(GET)
发起查询请求
2
查询下一条记录(GET-NEXT)
查询下一条记录
3
修改请求(PUT)
增加、修改或删除操作请求
4
修改下一条记录(PUT-NEXT)
修改下一条记录
5
响应(RESPONSE)
对请求的响应
6
通知(TRAP)
无需请求直接发送事件通知如状态报告或警报等
子类型定义依赖各类型定义,数据长度及格式依赖各类型及子类型定义,具有较强的扩展性。
认证请求(AUTH)的子类型定义如下表所示:
子类型
子类型描述
备注
0
申请用户认证随机数(RANDOM)
提供用户名称发起用户认证请求以获得认证随机数
1
发起用户认证(AUTHENTICATE)
根据终端返回的认证随机数及用户密码进行认证
查询请求(GET)的子类型定义如下表所示:
子类型
子类型描述
备注
0
查询系统时间信息(TIME)
查询终端当前时间信息
1
查询部门列表(DEP)
查询部门列表信息
2
查询用户信息(USER)
查询部分或所有用户信息
3
(过时)
查询某用户的人脸特征(已过时)
4
查询门禁记录(ACCESS)
查询指定时间段内的部分或所有门禁记录
5
查询系统日志(LOG)
查询系统日志
6
查询用户特征码(FEATURE)
查询某用户的人脸特征
查询下一条记录(GET-NEXT)的子类型无意义(保留为0)。
修改请求(PUT)的子类型定义如下表所示:
子类型
子类型描述
备注
0
设置系统时间信息(TIME)
设置终端系统时间信息
1
更新部门列表(DEP)
添加或修改或删除某部门信息
2
更新用户信息(USER)
添加或修改或删除某用户信息
3
(过时)
更新某用户特征码请求(已过时)
4
删除门禁记录(ACCESS)
删除指定时间以前的所有记录
6
更新用户特征码(FEATURE)
更新某用户特征码请求
7
用户注册(ENROLL)
注册新用户或登记用户特征码并将用户信息返回
8
用户识别(VERIFY)
人脸识别并将识别结果返回
9
强制开门(DOOR)
强制开门
修改下一条记录(PUT-NEXT)的子类型无意义(保留为0)。
响应的子类型定义如下表所示:
子类型
子类型描述
备注
0
成功(ACK)
请求成功(查询请求返回请求的数据)
1
失败(NAK)
请求失败
通知(TRAP)子类型定义如下表所示:
子类型
子类型描述
备注
0
保留(RESERVED)
保留
1
识别结果报告(FACE_VERIFY)
通知系统识别结果
四.各命令及其数据结构详细描述
1.连接与用户认证
为保证终端系统安全,只有认证通过才能进行查询或修改操作。
用户认证采用MD5加密方案,密码不直接在链路上传输。
认证用户名为admin,密码为门禁机超级管理员密码。
连接认证过程及数据描述如下:
A.连接建立后,客户端发起认证申请获取认证随机数
包类型:
AUTH
子类型:
RANDOM
数据长度:
0
数据:
无
B.终端收到此认证请求后,返回认证随机数
包类型:
RESPONSE
子类型:
ACK
数据长度:
4
数据:
随机数,由终端随机生成(4字节二进制数)
备注:
NAK,表示无此用户或密码不正确。
C.客户端收到认证随机数后,发送认证请求:
包类型:
AUTH
子类型:
AUTHENTICATE
数据长度:
32
数据:
16字节用户名+16字节MD5校验码+1字节接收识别结果类型(0,不接收;1,只接收消息不接收图片;2,接收图片)
备注:
用户名小于16字节部分填充x00;
直接利用密码+认证随机数生成MD5校验码。
密码长度使用实际密码长度,认证随机数长度为4字节。
D.终端收到认证请求后进行认证,如果认证成功返回:
包类型:
RESPONSE
子类型:
ACK
数据长度:
终端类型信息长度
数据:
返回终端类型信息
终端类型信息数据结构定义如下:
字段名称
长度
备注
协议版本号
2字节
支持的通讯协议版本号(100表示1.00版本)
终端类型
2字节
0-经典型门禁机、1-经典型门禁考勤机、2-桌机型门禁机、3-桌机型门禁考勤机
终端类型名称
16字节
终端类型别名(不同OEM版本会有所不同)
终端型号
16字节
终端类型编号
终端序列号
16字节
终端序列号
备注:
认证失败返回NAK,表示无此用户或密码不正确。
2.识别结果通知
系统连接后,终端识别通过或失败将自动给系统发送识别结果通知。
识别结果通知信息格式为:
包类型:
TRAP
子类型:
FACE_VERIFY
数据长度:
用户编号(4字节)+用户识别结果(1字节)+相似度(1字节)+抓拍照片长度(JPG文件长度)
数据:
用户编号(4字节二进制整数)+用户识别结果(1:
通过,0-失败)+相似度(0-100)+抓拍照片数据(JPG文件格式)
备注:
系统请求识别只发送请求响应(已包含此通知信息),不再额外发送此TRAP通知
3.查询系统时间信息
查询系统当前时间信息。
查询系统时间信息过程及数据描述如下:
A.客户端发起查询系统时间信息请求:
包类型:
GET
子类型:
TIME
数据长度:
0
数据:
无
B.终端收到有效的查询系统时间信息请求时响应系统当前时间信息:
包类型:
RESPONSE
子类型:
ACK
数据长度:
系统时间信息长度
数据:
系统时间信息
系统时间信息数据描述如下:
字段名称
长度
备注
时区
1字节
终端所在时区(-12至12:
表示西12至东12共25时区。
0表示格林威治天文台时间,北京时间为8)
时间
32字节
系统当前时间,格式为:
YYYY-MM-DDhh:
mm:
ss(如2009-09-1418:
01:
02)
NTP-TYPE
1字节
时间同步类型:
1-不启动时间同步
2-本终端作为时间服务器,为其它设备提供时间服务
3-本终端作为时间客户端,与NTP-SERVER指定的时间服务器的时间保持同步
4-本终端既作为时间服务器为其它设备提供时间服务,同时自已的时间与NTP-SERVER指定的时间服务器同步
NTP-SERVER
64字节
指定的时间服务器(NTP-TYPE为2或3时有意义)
4.查询部门列表信息
查询某部门或全部部门信息。
查询过程及数据描述如下:
A.客户端发起查询部门信息请求:
包类型:
GET
子类型:
DEP
数据长度:
0或4
数据:
无或部门编号(4字节二进制)
备注:
指定部门编号时查询指定部门信息,否则查询全部部门信息。
B.终端收到有效的查询部门信息请求时响应查到的部门数:
包类型:
RESPONSE
子类型:
ACK
数据长度:
4
数据:
符合查询条件的部门数(4字节二进制数)
备注:
没有符合条件的部门时用户数等于0
C.客户端不断发送请求下一条记录请求并获得部门信息,直到全部记录请求完成或收到错误响应
包类型:
GET-NEXT
子类型:
0
数据长度:
0
数据:
无
D.终端每收到一个有效的查询下一条记录请求时逐条发送部门信息记录,直到全部记录发送完成
包类型:
RESPONSE
子类型:
ACK
数据长度:
部门信息记录长度
数据:
当前请求对应的一条部门信息记录
部门信息记录格式定义如下:
字段名称
长度
备注
部门编号
4字节
部门编号
部门名称
32字节
部门名称
5.查询用户信息
查询某用户或全部用户信息。
查询过程及数据描述如下:
A.客户端发起查询用户信息请求:
包类型:
GET
子类型:
USER
数据长度:
0或4
数据:
无或用户编号(4字节二进制)
备注:
指定用户编号时查询指定用户信息,否则查询全部用户信息。
B.终端收到有效的查询用户请求时响应查到的记录数:
包类型:
RESPONSE
子类型:
ACK
数据长度:
4
数据:
符合查询条件的用户数(4字节二进制数)
备注:
没有符合条件的用户时用户数等于0
C.客户端不断发送请求下一条记录请求并获得用户信息,直到全部记录请求完成或收到错误响应
包类型:
GET-NEXT
子类型:
0
数据长度:
0
数据:
无
D.终端每收到一个有效的查询下一条记录请求时逐条发送用户信息记录,直到全部记录发送完成
包类型:
RESPONSE
子类型:
ACK
数据长度:
用户信息记录长度
数据:
当前请求对应的一条用户信息记录
用户信息记录格式定义如下:
字段名称
长度
备注
用户类别
1字节
0--普通用户
用户编号
4字节
用户编号
用户卡号
32字节
用户卡号
开门权限
4字节
开门权限(无意义)
用户名
32字节
用户名称
部门
4字节
部门编号(0-默认部门)
用户状态
1字节
0-正常,1-禁用,2-本地用户
注册状态
1字节
0-未注册人脸特征,1-已注册人脸特征
照片类型
1字节
0-BMP;1-JPG
照片长度
4字节
照片的长度,0为无照片
照片数据
照片长度
数据长度由照片长度决定(照片长度为0时本字段不存在)
6.提取用户特征码
提取某用户特征码。
提取用户特征码过程及数据描述如下:
A.客户端发起提取用户特征码请求:
包类型:
GET
子类型:
FEATURE
数据长度:
4
数据:
用户编号(4字节二进制数)
B.终端收到有效的查询用户请求时响应查到的记录数:
包类型:
RESPONSE
子类型:
ACK
数据长度:
用户特征码数据长度
数据:
用户特征码数据(二进制加密数据,只能通过修改用户特征码方式使用)
备注:
用户未注册人脸特征时特征码长度为0
7.设置系统时间信息
设置系统当前的时间信息。
设置系统时间信息过程及数据描述如下:
A.客户端发起设置系统时间信息请求:
包类型:
PUT
子类型:
TIME
数据长度:
系统时间信息长度
数据:
系统时间信息
备注:
系统时间信息格式参见查询系统时间信息。
设置系统时间信息时,时间字段无效时将不改变当前时间,时间同步类型无效时将不改变当前NTP设置。
B.终端收到有效的设置系统时间信息请求时响应:
包类型:
RESPONSE
子类型:
ACK
数据长度:
0
数据:
无
备注:
时区无效或者时间与同步类型两字段均无效时返回NAK
8.增加、修改或删除部门信息
增加、修改或删除某部门信息。
修改部门信息过程及数据描述如下:
A.客户端发送修改部门信息请求:
包类型:
PUT
子类型:
DEP
数据长度:
添加或修改部门信息时为部门信息记录长度,删除用户时长度等于4
数据:
添加或修改部门信息时为部门信息,删除部门时为部门编号,编号等于0时删除全部部门
部门信息格式定义如上节查询部门列表信息请求。
备注:
数据长度为4时表示删除此部门编号的部门,部门编号为0时表示删除所有部门,否则当部门编号存在时表示修改部门信息,部门编号不存在时表示增加新部门。
B.终端收到有效的修改部门信息请求后响应:
包类型:
RESPONSE
子类型:
ACK
长度:
0
数据:
无
9.增加、修改或删除用户信息
增加、修改或删除用户信息。
修改用户信息过程及数据描述如下:
A.客户端发送修改用户信息请求:
包类型:
PUT
子类型:
USER
数据长度:
添加或修改用户信息时为用户信息记录长度,删除用户时长度等于4
数据:
添加或修改用户信息时为用户信息,删除用户时为用户编号,编号等于0时删除全部用户
用户信息格式定义如上节查询用户请求。
备注:
数据长度为4时表示删除此用户编号的用户,用户编号为0时表示删除所有用户,否则当用户编号存在时表示修改用户信息,用户编号不存在时表示增加新用户。
新增或修改用户时用户注册状态无意义,新增用户时自动为未注册状态,修改用户信息时注册状态不变。
B.终端收到有效的修改用户信息请求后响应:
包类型:
RESPONSE
子类型:
ACK
长度:
0
数据:
无
10.修改用户特征码
修改或删除用户特征码信息。
修改用户特征码过程及数据描述如下:
A.客户端发送修改用户信息请求:
包类型:
PUT
子类型:
FEATURE
数据长度:
用户编号长度(4字节)+用户特征码数据长度
数据:
用户编号(4字节二进制数)+用户特征码数据(二进制加密数据,通过提取用户特征码方式得到)
B.终端收到有效的修改用户特征码信息请求后响应:
包类型:
RESPONSE
子类型:
ACK
长度:
0
数据:
无
备注:
用户编号或特征码数据无效时返回NAK
11.用户注册
注册新用户或登记用户特征码并将用户信息返回。
A.客户端发送用户注册请求:
包类型:
PUT
子类型:
ENROLL
数据长度:
用户编号长度(4字节)+保存用户标识(1字节)+注册卡号标示(1字节)
数据:
用户编号(4字节二进制数,为0表示注册新用户)+保存用户标识(0:
只上传用户信息但终端不保存用户,1:
保存并上传用户信息)+注册卡号标示(0:
不注册卡号,1:
可以注册卡号,2:
必须注册卡号)
B.终端收到有效的用户注册请求后响应:
包类型:
RESPONSE
子类型:
ACK
长度:
用户注册响应数据结构长度
数据:
用户注册响应数据结构,包含用户编号+用户特征码长度+用户特征码(二进制加密数据,与提取用户特征码方式得到的特征码一致)+图片类型+用户照片长度+用户照片数据+卡号
用户注册响应数据结构:
字段名称
长度
备注
用户编号
4字节
用户编号
特征码长度
4字节
用户特征码长度
特征码
特征码长度
用户特征码数据
照片类型
1字节
0-BMP;1-JPG
照片长度
4字节
照片的长度,0为无照片
照片数据
照片长度
数据长度由照片长度决定(照片长度为0时本字段不存在)
卡号
32字节
用户卡号
备注:
请求的用户编号或保存用户标识无效时返回NAK
12.用户识别
接受客户端发起的人脸识别请求并将识别结果返回。
开启人体感应并配置一对多方式时检测到有人靠近将自动启动人脸识别并将结果TRAP通知到客户端,所以一对多识别时并不一定要发送识别请求。
A.客户端发送用户识别请求:
包类型:
PUT
子类型:
VERIFY
数据长度:
用户编号长度(4字节)+用户特征码长度(0表示不下发用户特征码)
数据:
用户编号(4字节二进制数,为0表示一对多或者下发特征码模式识别,否则表示一对一识别)+用户特征码(用户特征码长度为0时本字段不存在,否则与用户注册或提取用户特征码方式得到的特征码一致)
B.终端收到有效的用户识别请求后响应:
包类型:
RESPONSE
子类型:
ACK
长度:
用户编号(4字节)+用户识别结果(1字节)+相似度(1字节)+抓拍照片长度(JPG文件长度)
数据:
用户编号(4字节二进制整数)+用户识别结果(1:
通过,0-失败)+相似度(0-100)+照片类型+照片长度+抓拍照片(JPG文件格式)
用户识别响应数据结构
字段名称
长度
备注
用户编号
4字节
用户编号
用户识别结果
1字节
相似度
1字节
照片类型
1字节
0-BMP;1-JPG
照片长度
4字节
照片的长度,0为无照片
照片数据
照片长度
数据长度由照片长度决定(照片长度为0时本字段不存在)
备注:
1.请求的用户编号或特征码无效时返回NAK
2.系统请求识别发送响应结果但不再额外发送TRAP通知
13.强制开门请求
接受客户端发起的强制开门请求并将请求结果返回。
考勤机并且支持IO开门:
IO开门(门编号为0)。
门禁机:
可选择开(0-5)号门
A、客户端发送强制开门请求:
包类型:
PUT
子类型:
DOOR
数据长度:
门编号(1字节)
数据:
门编号(1字节二进制数,可以开0-5号门)
B、终端收到有效的开门请求后响应:
包类型:
RESPONSE
子类型:
ACK
长度:
0
备注:
1.请求的参数无效时返回NAK
14.查询门禁记录
查询指定时间段内的部分或所有门禁记录信息。
查询过程及数据描述如下:
A.客户端发起查询门禁记录请求
包类型:
GET
子类型:
ACCESS
数据长度:
70
数据:
用户编号+开始时间+结束时间+记录类型
查询门禁记录请求的数据格式定义如下:
字段名称
长度
备注
用户编号
4字节
查询指定用户的记录,0表示所有用户
开始时间
32字节
查询门禁记录的开始时间,例如:
2009-01-0100:
00:
00
结束时间
32字节
查询门禁记录的结束时间,例如:
2009-12-3123:
59:
59
记录类型
1字节
0,查询识别成功的记录;1,失败的记录;2,所有记录
是否需要照片信息
1字节
0-返回记录不需要照片信息,1-返回记录需要照片信息
用户编号不为0时只查询指定用户的记录,为0时表示查询所有用户的记录。
时间格式为:
YYYY-MM-DDhh:
mm:
ss
开始时间全填0表示查询自上次查询以来的记录;结束时间全填0表示查询到最后一条记录。
B.终端收到有效的查询门禁记录请求时返回符合条件的记录数:
包类型:
RESPONSE
子类型:
ACK
长度:
4
数据:
符合条件的记录数(4字节二进制数)
备注:
没有符合条件的记录时记录数等于0
C.客户端不断发送请求下一条记录请求并获得记录信息,直到全部记录请求完成或收到错误响应
包类型:
GET-NEXT
子类型:
0
数据长度:
0
数据:
无
D.终端每收到一个有效的查询下一条记录请求时逐条发送符合条件的记录,直到全部记录发送完成
包类型:
RESPONSE
子类型:
ACK
数据长度:
门禁记录长度
数据:
当前请求对应的一条门禁记录
门禁记录格式定义如下:
字段名称
长度
备注
版本要求
记录时间
32字节
产生此条记录的时间
所有版本支持
类别
1字节
保留
用户编号
4字节
用户编号
比对分数
4字节
人脸识别对比分数
状态
1字节
0--识别成功;1--识别失败
照片类型
1字节
0--BMP;1--JPG
照片长度
4字节
照片的长度,0为无照片
照片数据
照片长度
数据长度由照片长度决定,照片长度为0时本字段不存在
识别原因
1字节
识别原因:
0-自动,其它-见用户功能键定义
V1.2以后版本支持
识别失败的记录的用户编号为0,但记录时间、比对分数、识别状态及照片字段均有效。
15.删除门禁记录
删除指定用户(未指定时为全部用户)指定时间以前(未指定时间为表示全部时间)的所有记录。
操作过程及数据描述如下:
A.客户端发起删除门禁记录请求:
包类型:
PUT
子类型:
ACCESS
数据长度:
36
数据:
用户编号+截止时间
删除门禁记录请求的数据格式定义如下:
字段名称
长度
备注
用户编号
4字节
查询指定用户的记录,0表示所有用户
截止时间
32字节
删除门禁记录的截止时间,例如:
2009-01-0100:
00:
00
用户编号不为0时仅删除指定用户编号的记录,否则删除全部用户的记录;
截止时间为全0时删除所有时间的记录,否则删除此时间以前的所有记录
B.终端收到有效的删除门禁记录请求后响应:
包类型:
RESPONSE
子类型:
ACK
数据长度:
0
数据:
无
16.查询系统日志
查询系统日志。
查询系统日志的操作过程及数据描述如下:
A.客户端发起查询系统日志请求:
包类型:
GET
子类型:
LOG
数据长度:
2
数据:
日志类型(1字节)+日志级别(1字节)
日志类型为0表示查询全部类型的日志,否则只查询指定类型的日志
日志级别为0表查询全部级别的日志,否则查找指定级别及以上级别的日志(如日志级别为2表示查询日志级别为大于等于2的所有日志)
B.终端收到有效的查询系统日志请求后返回符合条件的记录数:
包类型:
RESPONSE
子类型:
ACK
数据长度:
4
数据:
符合条件的日志记录数(4字节二进制数)
C.客户端不断发送请求下一条日志记录请求并获得记录信息,直到全部记
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 识别 终端 485 通信协议