SC-PZ-QJ 自动拍照图片采集485串口摄像头
产品简介
详细信息
一、产品简述
1、采用星光增强级ISP图像信号处理器,支持line-by-line双帧合成WDR,支持高性Local Tone Mapping ,支持多级时空域降噪(NR) : 3DNR, 2DNR,自动白平衡/自动曝光,图像增强(亮度,锐度,对比度,色调,饱和度调整)。可静态拍摄高清图片,标准的JPEG格式,也可定制本地视频录像;
2、采用工业级设计,高可靠性,特别适用于水利、电力、农业、环保、铁路、油田、森林防火等野外使用;
3、采用串口(RS232、RS485、TTL等其中之一)通迅,布线简单,成本低;特别适合于远距离、低功耗、低成本布线方案;
4、黑光级超低照度,内置白光灯(超低功耗),省掉了外置灯(在低照度环境拍摄效果优于普通摄像机配外置补光灯的拍摄效果)。能在黑暗环境下,拍摄出清晰的彩色图片,节省了购买补光灯的费用(解决了补光灯功耗大,不稳定的弊端)同时降低了施工难度,节省了1/3工期;
5、内置补光灯,标配白光补光灯(开灯拍照为彩色图片),亦可定制红外补光灯(开灯拍照为黑白图片),省去外部补光灯,降低成本和便于安装。在光线不足时拍照,自动打开补光灯,拍照完成后自动关闭补光灯,以降低功耗;
6、支持字符叠加功能(中英文),和日期时间自动叠加功能;
7、接线简单,四线制,电源线两条(V+、GND),通迅线两条(RS485接口为485A、485B,RS232或TTL接口为Rx、Tx);
8、4PIN外部接口定义如下:
1、采用星光增强级ISP图像信号处理器,支持line-by-line双帧合成WDR,支持高性Local Tone Mapping ,支持多级时空域降噪(NR) : 3DNR, 2DNR,自动白平衡/自动曝光,图像增强(亮度,锐度,对比度,色调,饱和度调整)。可静态拍摄高清图片,标准的JPEG格式,也可定制本地视频录像;
2、采用工业级设计,高可靠性,特别适用于水利、电力、农业、环保、铁路、油田、森林防火等野外使用;
3、采用串口(RS232、RS485、TTL等其中之一)通迅,布线简单,成本低;特别适合于远距离、低功耗、低成本布线方案;
4、黑光级超低照度,内置白光灯(超低功耗),省掉了外置灯(在低照度环境拍摄效果优于普通摄像机配外置补光灯的拍摄效果)。能在黑暗环境下,拍摄出清晰的彩色图片,节省了购买补光灯的费用(解决了补光灯功耗大,不稳定的弊端)同时降低了施工难度,节省了1/3工期;
5、内置补光灯,标配白光补光灯(开灯拍照为彩色图片),亦可定制红外补光灯(开灯拍照为黑白图片),省去外部补光灯,降低成本和便于安装。在光线不足时拍照,自动打开补光灯,拍照完成后自动关闭补光灯,以降低功耗;
6、支持字符叠加功能(中英文),和日期时间自动叠加功能;
7、接线简单,四线制,电源线两条(V+、GND),通迅线两条(RS485接口为485A、485B,RS232或TTL接口为Rx、Tx);
8、4PIN外部接口定义如下:
红色线 | 黑色线 | 黄色线 | 白色线 |
DC5V~28V | GND | 485B | 485A |
二、产品特点
1、具有超低照度(黑光级),在光线较暗或无光源的环境,仍然拍照得较为清晰的彩色图片;城市环境无需补光就能拍出比较理想的图片效果;
2、通讯端口具有防浪涌保护,防误接保护,提高产品可靠性(通迅端口施加12V电源,可达24H不致损坏);
3、宽电压电源输入5~28V;
4、电源防反接保护、防雷、防浪涌(电源端口反向施加28V电源,可长期不致损坏);
三、技术参数
1、电源电压:DC5~28V(标准电压12V);工作电流:典型值:80mA 夜视值:<400mA
2、起始电压5V,电源电压低于DC6V,补光灯不启动,但拍照正常;
3、功率:未启动补光时:约1W,启动补光时约:5W(夜间拍照亮3秒,不拍不亮);
4、工作温度:-40度~85度;
5、存贮温度:-45度~90度;
6、系统启动时间(上电拍照时间):<3秒,拍照超时时间:白天<1秒 晚上<3秒
7、传感器尺寸:1/2.8cmos;
8、照度: 0.0001Lux;
9、防水等级:IP67;
10、多种图像分辩率支持,并可定制特殊分辩率:1920×1080(1080p)、1280×1024、1280×960(960p)、1280×800、1280×720(720p)、1024×768、800×600、640×480(VGA)、320×240;
11、支持多种串口波特率:9600、19200、38400、57600、115200;
12、支持多种压缩比,0~8级压缩(默认1级),压缩比越高,jpeg图片字节数越小(利于传输和保存),但图片细节稍差;压缩比越低,图片越清,但图片字节数越大;
13、夜视距城市2000米,野外无光源的情况下50到100米。
14、可根据需求,配不同规格镜头(默认6mm 镜头,通光量F1.4)
15、产品尺寸:193×90×85(mm)包装尺寸:234×130×125(mm)净重:0.55 kg 毛重:kg
机械尺寸
1、具有超低照度(黑光级),在光线较暗或无光源的环境,仍然拍照得较为清晰的彩色图片;城市环境无需补光就能拍出比较理想的图片效果;
2、通讯端口具有防浪涌保护,防误接保护,提高产品可靠性(通迅端口施加12V电源,可达24H不致损坏);
3、宽电压电源输入5~28V;
4、电源防反接保护、防雷、防浪涌(电源端口反向施加28V电源,可长期不致损坏);
三、技术参数
1、电源电压:DC5~28V(标准电压12V);工作电流:典型值:80mA 夜视值:<400mA
2、起始电压5V,电源电压低于DC6V,补光灯不启动,但拍照正常;
3、功率:未启动补光时:约1W,启动补光时约:5W(夜间拍照亮3秒,不拍不亮);
4、工作温度:-40度~85度;
5、存贮温度:-45度~90度;
6、系统启动时间(上电拍照时间):<3秒,拍照超时时间:白天<1秒 晚上<3秒
7、传感器尺寸:1/2.8cmos;
8、照度: 0.0001Lux;
9、防水等级:IP67;
10、多种图像分辩率支持,并可定制特殊分辩率:1920×1080(1080p)、1280×1024、1280×960(960p)、1280×800、1280×720(720p)、1024×768、800×600、640×480(VGA)、320×240;
11、支持多种串口波特率:9600、19200、38400、57600、115200;
12、支持多种压缩比,0~8级压缩(默认1级),压缩比越高,jpeg图片字节数越小(利于传输和保存),但图片细节稍差;压缩比越低,图片越清,但图片字节数越大;
13、夜视距城市2000米,野外无光源的情况下50到100米。
14、可根据需求,配不同规格镜头(默认6mm 镜头,通光量F1.4)
15、产品尺寸:193×90×85(mm)包装尺寸:234×130×125(mm)净重:0.55 kg 毛重:kg
机械尺寸
串口摄像机标准协议》
注:蓝色项为常用协议
(一) 标准帧(报文)协议格式:(十六进制格式) C1 C2 代表CRC校验位
D0 | D1 | D2 | D3 | D4 | D5 | D6~Dn | C1 | C2 |
帧头1 | 帧头2 | 地址 | 命令 | 数据长度 低位 | 数据长度 高位 | 数据 | CRC校验 低位 | CRC校验 高位 |
90 | eb | add | Cmd | LenL | LenH | D…. | CrcL | CrcH |
注:协议由帧头,地址,命令,数据长度(D6~Dn的长度,低位在前),CRC校验构成;帧总长=8 + D4 + D5*256;
即:Len = 8+Buf[4]+Buf[5]*256;
报文特点:报文长度最小为8个字节[数据长度为0时],根据D4、D5可计算出报文长度;
帧总长=8 (帧头和校验)+ D4 + D5*256
(1) 帧头两个字节,固定为:90 eb
(2) 地址add是目标机(摄像头)地址,0x01~0xfe,0x00和0xff是保留地址(广播地址);摄像头收到非本机地址协议的,抛弃不作响应;
(3) 命令Cmd对应不同的协议操作;
(4) 数据长度LenL、LenH是D6~Dn的长度,代表数据的总长(不是帧长度);可以是0~65535的长度;
(5) CrcL、CrcH为16位Crc校验,校验从地址Add开始,直至Dn,校验长度为:数据长度+4;
测试发送时,如果不方便计算Crc校验,测试时可用0xc1、0xc2代替;
(6) 帧总长=2(帧头)+1(地址)+1(命令)+2(数据长度)+ n(数据)+2(校验)
= 8 + n(数据长度)
= 8 + D4 + D5*256
(7) CRC校验CrcL和CrcH默认0xc1、0xc2(即0xc2c1可以通过CRC校验,利于在测试时使用);
报文特点:从D4、D5数据长度,可以知道该帧的总长度,帧总长=8(帧头6位+CRC校验2位) + D4 + D5*256
(二) 测试协议 Cmd=0x01
即:Len = 8+Buf[4]+Buf[5]*256;
报文特点:报文长度最小为8个字节[数据长度为0时],根据D4、D5可计算出报文长度;
帧总长=8 (帧头和校验)+ D4 + D5*256
(1) 帧头两个字节,固定为:90 eb
(2) 地址add是目标机(摄像头)地址,0x01~0xfe,0x00和0xff是保留地址(广播地址);摄像头收到非本机地址协议的,抛弃不作响应;
(3) 命令Cmd对应不同的协议操作;
(4) 数据长度LenL、LenH是D6~Dn的长度,代表数据的总长(不是帧长度);可以是0~65535的长度;
(5) CrcL、CrcH为16位Crc校验,校验从地址Add开始,直至Dn,校验长度为:数据长度+4;
测试发送时,如果不方便计算Crc校验,测试时可用0xc1、0xc2代替;
(6) 帧总长=2(帧头)+1(地址)+1(命令)+2(数据长度)+ n(数据)+2(校验)
= 8 + n(数据长度)
= 8 + D4 + D5*256
(7) CRC校验CrcL和CrcH默认0xc1、0xc2(即0xc2c1可以通过CRC校验,利于在测试时使用);
报文特点:从D4、D5数据长度,可以知道该帧的总长度,帧总长=8(帧头6位+CRC校验2位) + D4 + D5*256
(二) 测试协议 Cmd=0x01
数据位 | D0 | D1 | D2 | D3 | D4 | D5 | D6~Dn | C1 | C2 |
解释 | 帧头1 | 帧头2 | 地址 | 命令 | 数据长度 低位 | 数据长度 高位 | 数据 | CRC校验 低位 | CRC校验 高位 |
发送 | 90 | eb | 01 | 01 | 02 | 00 | 55 aa | C1 | C2 |
返回 | 90 | eb | 01 | 01 | 03 | 00 | 00 aa 55 | F6 | EB |
发:(帧长=10)90 eb 01 01 02 00 55 aa c1 c2
返:(帧长=11)90 EB 01 01 03 00 00 aa 55 F6 EB
测试:发:90 eb 01 01 02 00 55 aa c1 c2
返:90 EB 01 01 03 00 00 AA 55 F6 EB
注:本协议主要是用来测试串口(485、232、TTL)是否通或波特率是否正确;如不返回,说明通迅不上;
拍照协议
(三) 拍照协议(Cmd=0x40)
功能:发送拍照命令后,摄像机将开始拍照一张图片,并保存在内存里,等待取图。
注:拍照命令要在摄像机上电4秒后开始拍照为好(上电完毕并稳定图像),发送拍照命令后,一般在3秒内(晚上会时间长,光线好时即返回)返回拍照数据
返:(帧长=11)90 EB 01 01 03 00 00 aa 55 F6 EB
测试:发:90 eb 01 01 02 00 55 aa c1 c2
返:90 EB 01 01 03 00 00 AA 55 F6 EB
注:本协议主要是用来测试串口(485、232、TTL)是否通或波特率是否正确;如不返回,说明通迅不上;
拍照协议
(三) 拍照协议(Cmd=0x40)
功能:发送拍照命令后,摄像机将开始拍照一张图片,并保存在内存里,等待取图。
注:拍照命令要在摄像机上电4秒后开始拍照为好(上电完毕并稳定图像),发送拍照命令后,一般在3秒内(晚上会时间长,光线好时即返回)返回拍照数据
数据位 | D0 | D1 | D2 | D3 | D4 | D5 | D6~Dn | C1 | C2 |
解释 | 帧头1 | 帧头2 | 地址 | 命令 | 数据长度 低位 | 数据长度 高位 | 数据 | CRC校验 低位 | CRC校验 高位 |
发送 | 90 | eb | 01 | 40 | 04 | 00 | 00 02 05 01 | C1 | C2 |
发:90 EB 01 40 04 00 00 02 05 01 C1 C2 //00 02 为00 00 时则返回整包
注: 地址 命令 数据长度 固定 分辩率 压缩比 CRC校验
返:90 EB 01 40 0b 00 00 83 16 00 00 00 00 00 02 05 01 C1 C2
长度 图像大小 保留 保留 分辩率 压缩比
如果分辨率非法和压缩比非法,则返回摄像头默认的分辨率和压缩比(具体的默认视不同的摄像头而不同);
测试:发:90 EB 01 40 04 00 00 02 05 01 C1 C2 (分包方式)
返:90 EB 01 40 0B 00 00 76 94 00 00 4B 00 00 02 05 01 27 B5
发送帧报文
注: 地址 命令 数据长度 固定 分辩率 压缩比 CRC校验
返:90 EB 01 40 0b 00 00 83 16 00 00 00 00 00 02 05 01 C1 C2
长度 图像大小 保留 保留 分辩率 压缩比
如果分辨率非法和压缩比非法,则返回摄像头默认的分辨率和压缩比(具体的默认视不同的摄像头而不同);
测试:发:90 EB 01 40 04 00 00 02 05 01 C1 C2 (分包方式)
返:90 EB 01 40 0B 00 00 76 94 00 00 4B 00 00 02 05 01 27 B5
发送帧报文
报文 | 报文名称 | 报文说明 | 备注 | |
90 EB | 帧头标识 | 固定为90 EB | ||
01 | 摄像机地址 | 地址为01~FE,00、FF为广播地址 | 出厂默认1 | |
40 | 命令 | 40为拍照命令 | ||
04 00 | 数据长度(在此之后,CRC之前的数据的长度) | 后面的00 02 05 01的长度,CRC之前 | 低字节在前(小端模式) 帧总长=数据长度+8 | |
数据 | 00 02 | 分包大小(内部保留无实际作用) | 整包时为0,立即返回图片数据,分包时非0 | 低字节在前(小端模式) |
05 | 分辩率 | 640*480 | ||
01 | 压缩比 | 1~10级,越小越清,但jpg图片数据越大 | ||
C1 C2 | CRC16校验 | C1、C2为默认效验字,校验算法见附录 | 低字节在前(小端模式) |
返回帧报文
报文 | 报文名称 | 报文说明 | 备注 | |
90 EB | 帧头标识 | 固定为90 EB | ||
01 | 摄像机地址 | 地址为01~FE,00、FF为广播地址 | 出厂默认1 | |
40 | 命令(拍照返回) | 40为拍照命令 | ||
0B 00 | 数据长度(在此之后,CRC之前的数据的长度) | 后面的CRC之前的长度,11个数据 | 低字节在前(小端模式) 帧总长=数据长度+8 | |
数据 | 00 | 保留 | 不处理 | |
76 94 00 00 | 图像大小 | 0x76+0x94*256+0x00*256*256(位用不上,图像数据没有那么大) | 低字节在前(小端模式) | |
4B 00 | 保留 | 不处理 | ||
00 02 | 分包大小 | 内部保留无实际作用,同发送帧(不用处理) | 低字节在前(小端模式) | |
05 | 分辩率编号 | 同发送帧(不用处理) | 见下表 | |
01 | 压缩比 | 同发送帧(不用处理) | ||
C1 C2 | CRC16校验 | C1、C2为默认效验字,校验算法见附录 | 低字节在前(小端模式) |
在拍照时,将图片分辩率、压缩比、分包大小,一起设定,即不必重新设置这三个参数,以方便拍照和程序处理
拍照返回后,我们只关心图像大小,即知道jpg图片是多少个字节,其它的则不重要。知道图片长度后,则可以开始从头将数据分段取回了。
表1:分辩率编号对应的图像分辩率
拍照返回后,我们只关心图像大小,即知道jpg图片是多少个字节,其它的则不重要。知道图片长度后,则可以开始从头将数据分段取回了。
表1:分辩率编号对应的图像分辩率
分辨率编号 | 分辨率 | 长宽比 | 备注 |
1 | 160*120 | 4:3 | |
3 | 320*240 | 4:3 | |
5 | 640*480 | 4:3 | 30万 |
6 | 1280*960 | 4:3 | 130万 |
7 | 800*600 | 4:3 | 50万 |
8 | 1024*768 | 4:3 | 80万 |
9 | 1280*800 | 100万 | |
10 | 1600*1024 | 200万以上像素才支持 | |
11 | 1600*1200 | 4:3 | 200万以上像素才支持 |
12 | 2048*1536 | 4:3 | 300万标准像素 |
13 | 2560*1920 | 4:3 | 500万标准像素 |
14 | 2592*1944 | 4:3 | 500万以上像素才支持 |
15 | 1280*720 | 16:9 | 100万 |
16 | 1920*1080 | 16:9 | 200万标准像素 |
17 | 1280*1024 | 5:4 | 130万标准像素 |
18 | 3000*2000 | 600万 | |
19 | 3264*2448 | 4:3 | 800万 |
20 | 3648*2736 | 4:3 | 1000万 |
21 | 4000*3000 | 4:3 | 1200万 |
30 | 480*270 | 16:9 | 新增 |
31 | 640*360 | 16:9 | 新增 |
32 | 800*450 | 16:9 | 新增 |
33 | 960*540 | 16:9 | 新增 |
34 | 1024*576 | 16:9 | 新增 |
35 | 1280*720 | 16:9 | |
36 | 1366*768 | 16:9 | 新增 |
37 | 1440*810 | 16:9 | 新增 |
38 | 1600*900 | 16:9 | 新增 |
39 | 1920*1080 | 16:9 | |
40 | 2560*1440 | 16:9 | 新增 |
41 | 3200*1800 | 16:9 | 500万 |
42 | 3840*2160 | 16:9 | 800万 |
注:设置超出分辩率时,则按支持的分辩率处理 |
(四) 分段取图协议(Cmd=0x48)
功能:从开始地址取一定长度的图片数据,可以从头开始报段取图,然后拼接为整个图片。分段取图,每次取不超过4K字节为好,过大因摄像内存分配过大问题不支持
数据位 | D0 | D1 | D2 | D3 | D4 | D5 | D6~D9 | D10~D11 | C1 | C2 |
解释 | 帧头1 | 帧头2 | 地址 | 命令 | 数据长度 低位 | 数据长度 高位 | 开始地址 | 长度 | 校验 低位 | 校验 高位 |
发送 | 90 | eb | 01 | 48 | 06 | 00 | 00 02 00 00 | 00 03 | C1 | C2 |
//取次,每包768个字节[低位在前]
发:90 EB 01 48 06 00 00 00 00 00 00 03 C1 C2(请求从地址00开始取768个图片数据回来)
开始地址00 长度768(0xffff,65K)
返: 90 EB 01 49 00 03 d0 d1…dn c1 c2 //返回0x0300(768)个图片数据回来
//取第二次,每包768个字节
发:90 EB 01 48 06 00 00 03 00 00 00 03 C1 C2(请求从地址768开始取768个图片数据回来)
开始地址768 长度768(0xffff,65K)
返: 90 EB 01 49 00 03 d0 d1…dn c1 c2 //返回0x0300(768)个图片数据回来
发送帧报文
发:90 EB 01 48 06 00 00 00 00 00 00 03 C1 C2(请求从地址00开始取768个图片数据回来)
开始地址00 长度768(0xffff,65K)
返: 90 EB 01 49 00 03 d0 d1…dn c1 c2 //返回0x0300(768)个图片数据回来
//取第二次,每包768个字节
发:90 EB 01 48 06 00 00 03 00 00 00 03 C1 C2(请求从地址768开始取768个图片数据回来)
开始地址768 长度768(0xffff,65K)
返: 90 EB 01 49 00 03 d0 d1…dn c1 c2 //返回0x0300(768)个图片数据回来
发送帧报文
报文 | 报文名称 | 报文说明 | 备注 | |
90 EB | 帧头标识 | 固定为90 EB | ||
01 | 摄像机地址 | 地址为01~FE,00、FF为广播地址 | 出厂默认1 | |
48 | 命令 | 48为分段取图命令 | ||
06 00 | 数据长度(在此之后,CRC之前的数据的长度) | 后面的00 00 00 00 00 03的长度,CRC之前 | 低字节在前(小端模式) | |
数据 | 00 00 00 00 | 开始地址 | 从jpg图片的开始地址0开始取,取768个字节 | 低字节在前(小端模式) |
00 03 | 取的图片长度(不超4096) | 768个字节(类似其它协议的分包大小) | 低字节在前(小端模式) | |
C1 C2 | CRC16校验 | C1、C2为默认效验字,校验算法见附录 | 低字节在前(小端模式) |
返回帧报文
报文 | 报文名称 | 报文说明 | 备注 | |
90 EB | 帧头标识 | 固定为90 EB | ||
01 | 摄像机地址 | 地址为01~FE,00、FF为广播地址 | 出厂默认1 | |
49 | 命令 | 49为返回图片数据 | ||
00 03 | 数据长度(在此之后,CRC之前的数据的长度) | 后面的jpg图片数据的长度,CRC之前,一共768个数据 | 低字节在前(小端模式) 帧总长=数据长度+8 | |
数据 | d0 d1…dn [FF D8 FF DB] | 图片数据(00 03共768个) | 这部分就是jpg图片的数据,按开始地址保存下来,取部的图片数据后,就是一幅jpg图片的文件 | Jpg图片以FF D8 开头,以FF D9 结束 |
C1 C2 | CRC16校验 | C1、C2为默认效验字,校验算法见附录 | 低字节在前(小端模式) | |
提示:1、拍照,得到图片的长度Len
2、然后从start=0开始取图,每次取1024个(不超4096为宜);
3、返回图片数据后,从start开始保存图片数据,或转发出去;start=start+1024(下一次取图开始地址);
4、继续从start取图,如果start+1024>Len;即是图片最后的数据,不足1024个了,这时取:Len-start个;
5、取完段(start>=Len)时,整个图片数据则取完了。
注意:取图超出所拍照的图片长度时,按出错处理,不返回图片;
(五) 拍照流程说明
(1) 发送拍照协议(Cmd=0x40)后,摄像机即进行拍照操作(晚上则会收到拍照命令后,摄像机会自动开启补光灯,然后调好照片效果后拍照);拍照返回协议有图片长度,说明拍照完成;图片数据保存在摄像机内存里;
(2) 要上电4秒后才能发送拍照,拍照后3秒内返回(白天1秒内返回,晚上可能达3秒);
(3) 分段取图像(Cmd=0x48);
可以从0开始,每次取1K字节(一般512至4K为宜,2K)的图像,直到取完整个图片数据为止;
(4) 拼接图像数据
将取回的图像,从头到尾拼接,则成为了一个jpeg图片文件;然后保存或上传;
(六) 修改波特率和地址(Cmd=0x44)
2、然后从start=0开始取图,每次取1024个(不超4096为宜);
3、返回图片数据后,从start开始保存图片数据,或转发出去;start=start+1024(下一次取图开始地址);
4、继续从start取图,如果start+1024>Len;即是图片最后的数据,不足1024个了,这时取:Len-start个;
5、取完段(start>=Len)时,整个图片数据则取完了。
注意:取图超出所拍照的图片长度时,按出错处理,不返回图片;
(五) 拍照流程说明
(1) 发送拍照协议(Cmd=0x40)后,摄像机即进行拍照操作(晚上则会收到拍照命令后,摄像机会自动开启补光灯,然后调好照片效果后拍照);拍照返回协议有图片长度,说明拍照完成;图片数据保存在摄像机内存里;
(2) 要上电4秒后才能发送拍照,拍照后3秒内返回(白天1秒内返回,晚上可能达3秒);
(3) 分段取图像(Cmd=0x48);
可以从0开始,每次取1K字节(一般512至4K为宜,2K)的图像,直到取完整个图片数据为止;
(4) 拼接图像数据
将取回的图像,从头到尾拼接,则成为了一个jpeg图片文件;然后保存或上传;
(六) 修改波特率和地址(Cmd=0x44)
数据位 | D0 | D1 | D2 | D3 | D4 | D5 | D6 | C1 | C2 |
解释 | 帧头1 | 帧头2 | 地址 | 命令 | 数据长度 低位 | 数据长度 高位 | 数据 | CRC校验 低位 | CRC校验 高位 |
发送 | 90 | eb | 02 | 44 | 04 | 00 | 02 01 0a 0a | C1 | C2 |
返回 | 90 | eb | 0a | 45 | 04 | 00 | 02 01 0a 0a | C1 | C2 |
90 EB 01 44 04 00 02 01 Add Add C1 C2
地址 命令 数据长度 波特率 是否保存
说明:如果波特率编号为0,则不修改,如果为0或FF, 则不修改地址
返回:90 EB 01 45 04 00 02 01 Add Add C1 C2
命令 数据长度 波特率 已保存
注:地址00和FF是广播地址,发送时,接在总线的各个摄像头
波特率参数:
01 = 9600
02 = 19200
04 = 38400
05 = 57600
06 = 115200
字符叠加
(七) 字符叠加 Cmd=0x52(在图像的X、Y座标上,显示中英字符)
字符叠加有记忆能力,在断电重新上电的,仍显示上次的字符。
发:90 EB 01 52 00 00 XL XH YL YH 0B D1 D2 …… C1 C2
地址 命令 数据长度 X座标 Y座标 字体高度 字符 CRC校验
注:在X、Y坐标上,显示字符,字符是ASCII码 字体高度为0时则是默认大小
字符串长度=数据长度-5
例:90 EB 01 52 0A 00 06 00 08 00 0C 31 32 33 34 65 C1 C2
在座标06,08处加入1234e字符,字体高度为12个像素(目前未支持字体高度,由系统决定)
返回:90 EB 01 52 00 00 C1 C2
一个中文字,点两个字节(同windows电脑一样),英文和数字则点一个字节;
换行显示: 当要换行时,加入 就同电脑上的记事本一样,代表换行
例:发:90 EB 01 52 13 00 0A 00 01 00 10 CB AE BF E2 5C 6E C1 F7 C1 BF 3A 31 32 35 C1 C2
注:(水库流量:125) 水 库 / n 流 量 : 1 2 5
发送帧报文:90 EB 01 52 32 00 0A 00 0A 00 10 C9 EE DB DA CE F7 C0 F6 CB AE BF E2 5C D3 EA C1 BF 31 32 36 2E 35 6D 6D 5C CB AE CE BB 32 36 2E 38 6D 5C C1 F7 CB D9 38 2E 33 6D 2F 73 C1 C2
地址 命令 数据长度 波特率 是否保存
说明:如果波特率编号为0,则不修改,如果为0或FF, 则不修改地址
返回:90 EB 01 45 04 00 02 01 Add Add C1 C2
命令 数据长度 波特率 已保存
注:地址00和FF是广播地址,发送时,接在总线的各个摄像头
波特率参数:
01 = 9600
02 = 19200
04 = 38400
05 = 57600
06 = 115200
字符叠加
(七) 字符叠加 Cmd=0x52(在图像的X、Y座标上,显示中英字符)
字符叠加有记忆能力,在断电重新上电的,仍显示上次的字符。
发:90 EB 01 52 00 00 XL XH YL YH 0B D1 D2 …… C1 C2
地址 命令 数据长度 X座标 Y座标 字体高度 字符 CRC校验
注:在X、Y坐标上,显示字符,字符是ASCII码 字体高度为0时则是默认大小
字符串长度=数据长度-5
例:90 EB 01 52 0A 00 06 00 08 00 0C 31 32 33 34 65 C1 C2
在座标06,08处加入1234e字符,字体高度为12个像素(目前未支持字体高度,由系统决定)
返回:90 EB 01 52 00 00 C1 C2
一个中文字,点两个字节(同windows电脑一样),英文和数字则点一个字节;
换行显示: 当要换行时,加入 就同电脑上的记事本一样,代表换行
例:发:90 EB 01 52 13 00 0A 00 01 00 10 CB AE BF E2 5C 6E C1 F7 C1 BF 3A 31 32 35 C1 C2
注:(水库流量:125) 水 库 / n 流 量 : 1 2 5
发送帧报文:90 EB 01 52 32 00 0A 00 0A 00 10 C9 EE DB DA CE F7 C0 F6 CB AE BF E2 5C D3 EA C1 BF 31 32 36 2E 35 6D 6D 5C CB AE CE BB 32 36 2E 38 6D 5C C1 F7 CB D9 38 2E 33 6D 2F 73 C1 C2
报文 | 报文名称 | 报文说明 | 备注 | |
90 EB | 帧头标识 | 固定为90 EB | ||
01 | 摄像机地址 | 地址为01~FE,00、FF为广播地址 | 出厂默认1 | |
52 | 命令 | 52为设置字符叠加 | ||
32 00 | 数据长度(在此之后,CRC之前的数据的长度) | 自此之后,CRC之前的数据的长度 | 低字节在前(小端模式) 帧总长=数据长度+8 | |
数据 | 0A 00 | 显示的X座标,10 | 字符显示的X座标,以左上角为0,X越大,越靠右 | 低字节在前(小端模式) |
0A 00 | 显示的Y座标,10 | 字符显示的Y座标,以左上角为0,Y越大,越靠下 | 低字节在前(小端模式) | |
10 | 字符大小,16 | 字符大小,16、24、32、48等,非标时则自动大小 | 16为字体像素点 | |
C9 EE~2F 73 | 显示字符的ASCII码 | 厦门海沧水库/雨量126.5mm/水位26.8m/流速8.3m/s | 英文、中文(GB2312字库) | |
C1 C2 | CRC16校验 | C1、C2为默认效验字,校验算法见附录 | 低字节在前(小端模式) |
(八) 时间同步(ID=0x83)时间同步后,会在图片左下角,显示拍照时的时间
实质是发送当前日期时间,摄像头断电后,时间复位,需要发送当前时间;
发:90 EB 01 83 06 00 d0 d1 d2 d3 d4 d5 C1 C2(上位机发)
地址 命令 数据长度 年 月 日 时 分 秒 CRC校验
返:90 EB 01 84 00 00 C1 C2
符录:
CRC校验代码
以下均采用CRC多项式为0x1021即:g(x) = x16+x12+x5+x0;CRC
//Crc16计算函数
const unsigned short crc_ta[256]={ /* CRC余式表 */
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,
0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,
0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,
0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,
0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,
0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,
0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,
0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,
0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,
0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,
0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,
0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,
0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,
0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,
0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,
0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,
0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,
0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,
0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,
0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,
0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,
0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,
0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,
0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,
0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,
0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,
0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,
0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,
0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0
};
//CRC校验,适用于要校验的数据是连续的
unsigned short Crc16(unsigned char *ptr, unsigned short len)
{
unsigned short crc;
unsigned char da;
crc=0;
while(len--!=0)
{
da=(unsigned char) (crc/256); // 以8位二进制数的形式暂存CRC的高8位
crc<<=8; //左移8位,相当于CRC的低8位乘以
crc^=crc_ta[da^*ptr]; // 高8位和当前字节相加后再查表求CRC ,再加上以前的CRC
ptr++;
}
return(crc);
}
//适用用数据不连续的校验
unsigned short Crc16_New(unsigned short old_crc,unsigned char *ptr, unsigned short len)
{
unsigned short crc;
unsigned char da;
crc=old_crc;
while(len--!=0)
{
da=(unsigned char) (crc/256); // 以8位二进制数的形式暂存CRC的高8位
crc<<=8; //左移8位,相当于CRC的低8位乘以
crc^=crc_ta[da^*ptr]; // 高8位和当前字节相加后再查表求CRC ,再加上以前的CRC
ptr++;
}
return(crc);
}