一、產(chǎn)品簡述
1、采用星光增強級ISP圖像信號處理器,支持line-by-line雙幀合成WDR,支持高性Local Tone Mapping ,支持多級時空域降噪(NR) : 3DNR, 2DNR,自動白平衡/自動曝光,圖像增強(亮度,銳度,對比度,色調,飽和度調整)??伸o態(tài)拍攝高清圖片,標準的JPEG格式,也可定制本地視頻錄像;
2、采用工業(yè)級設計,高可靠性,特別適用于水利、電力、農(nóng)業(yè)、環(huán)保、鐵路、油田、森林防火等野外使用;
3、采用串口(RS232、RS485、TTL等其中之一)通迅,布線簡單,成本低;特別適合于遠距離、低功耗、低成本布線方案;
4、黑光級超低照度,內(nèi)置白光燈(超低功耗),省掉了外置燈(在低照度環(huán)境拍攝效果優(yōu)于普通攝像機配外置補光燈的拍攝效果)。能在黑暗環(huán)境下,拍攝出清晰的彩色圖片,節(jié)省了購買補光燈的費用(解決了補光燈功耗大,不穩(wěn)定的弊端)同時降低了施工難度,節(jié)省了1/3工期;
5、內(nèi)置補光燈,標配白光補光燈(開燈拍照為彩色圖片),亦可定制紅外補光燈(開燈拍照為黑白圖片),省去外部補光燈,降低成本和便于安裝。在光線不足時拍照,自動打開補光燈,拍照完成后自動關閉補光燈,以降低功耗;
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,自動白平衡/自動曝光,圖像增強(亮度,銳度,對比度,色調,飽和度調整)??伸o態(tài)拍攝高清圖片,標準的JPEG格式,也可定制本地視頻錄像;
2、采用工業(yè)級設計,高可靠性,特別適用于水利、電力、農(nóng)業(yè)、環(huán)保、鐵路、油田、森林防火等野外使用;
3、采用串口(RS232、RS485、TTL等其中之一)通迅,布線簡單,成本低;特別適合于遠距離、低功耗、低成本布線方案;
4、黑光級超低照度,內(nèi)置白光燈(超低功耗),省掉了外置燈(在低照度環(huán)境拍攝效果優(yōu)于普通攝像機配外置補光燈的拍攝效果)。能在黑暗環(huán)境下,拍攝出清晰的彩色圖片,節(jié)省了購買補光燈的費用(解決了補光燈功耗大,不穩(wěn)定的弊端)同時降低了施工難度,節(jié)省了1/3工期;
5、內(nèi)置補光燈,標配白光補光燈(開燈拍照為彩色圖片),亦可定制紅外補光燈(開燈拍照為黑白圖片),省去外部補光燈,降低成本和便于安裝。在光線不足時拍照,自動打開補光燈,拍照完成后自動關閉補光燈,以降低功耗;
6、支持字符疊加功能(中英文),和日期時間自動疊加功能;
7、接線簡單,四線制,電源線兩條(V+、GND),通迅線兩條(RS485接口為485A、485B,RS232或TTL接口為Rx、Tx);
8、4PIN外部接口定義如下:
紅色線 | 黑色線 | 黃色線 | 白色線 |
DC5V~28V | GND | 485B | 485A |
二、產(chǎn)品特點
1、具有超低照度(黑光級),在光線較暗或無光源的環(huán)境,仍然拍照得較為清晰的彩色圖片;城市環(huán)境無需補光就能拍出比較理想的圖片效果;
2、通訊端口具有防浪涌保護,防誤接保護,提高產(chǎn)品可靠性(通迅端口施加12V電源,可達24H不致?lián)p壞);
3、寬電壓電源輸入5~28V;
4、電源防反接保護、防雷、防浪涌(電源端口反向施加28V電源,可長期不致?lián)p壞);
三、技術參數(shù)
1、電源電壓:DC5~28V(標準電壓12V);工作電流:典型值:80mA 夜視值:<400mA
2、起始電壓5V,電源電壓低于DC6V,補光燈不啟動,但拍照正常;
3、功率:未啟動補光時:約1W,啟動補光時約:5W(夜間拍照亮3秒,不拍不亮);
4、工作溫度:-40度~85度;
5、存貯溫度:-45度~90度;
6、系統(tǒng)啟動時間(上電拍照時間):<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圖片字節(jié)數(shù)越?。ɡ趥鬏敽捅4妫?,但圖片細節(jié)稍差;壓縮比越低,圖片越清,但圖片字節(jié)數(shù)越大;
13、夜視距城市2000米,野外無光源的情況下50到100米。
14、可根據(jù)需求,配不同規(guī)格鏡頭(默認6mm 鏡頭,通光量F1.4)
15、產(chǎn)品尺寸:193×90×85(mm)包裝尺寸:234×130×125(mm)凈重:0.55 kg 毛重:kg
機械尺寸
1、具有超低照度(黑光級),在光線較暗或無光源的環(huán)境,仍然拍照得較為清晰的彩色圖片;城市環(huán)境無需補光就能拍出比較理想的圖片效果;
2、通訊端口具有防浪涌保護,防誤接保護,提高產(chǎn)品可靠性(通迅端口施加12V電源,可達24H不致?lián)p壞);
3、寬電壓電源輸入5~28V;
4、電源防反接保護、防雷、防浪涌(電源端口反向施加28V電源,可長期不致?lián)p壞);
三、技術參數(shù)
1、電源電壓:DC5~28V(標準電壓12V);工作電流:典型值:80mA 夜視值:<400mA
2、起始電壓5V,電源電壓低于DC6V,補光燈不啟動,但拍照正常;
3、功率:未啟動補光時:約1W,啟動補光時約:5W(夜間拍照亮3秒,不拍不亮);
4、工作溫度:-40度~85度;
5、存貯溫度:-45度~90度;
6、系統(tǒng)啟動時間(上電拍照時間):<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圖片字節(jié)數(shù)越?。ɡ趥鬏敽捅4妫?,但圖片細節(jié)稍差;壓縮比越低,圖片越清,但圖片字節(jié)數(shù)越大;
13、夜視距城市2000米,野外無光源的情況下50到100米。
14、可根據(jù)需求,配不同規(guī)格鏡頭(默認6mm 鏡頭,通光量F1.4)
15、產(chǎn)品尺寸:193×90×85(mm)包裝尺寸:234×130×125(mm)凈重:0.55 kg 毛重:kg
機械尺寸
串口攝像機標準協(xié)議》
注:藍色項為常用協(xié)議
(一) 標準幀(報文)協(xié)議格式:(十六進制格式) C1 C2 代表CRC校驗位
D0 | D1 | D2 | D3 | D4 | D5 | D6~Dn | C1 | C2 |
幀頭1 | 幀頭2 | 地址 | 命令 | 數(shù)據(jù)長度 低位 | 數(shù)據(jù)長度 高位 | 數(shù)據(jù) | CRC校驗 低位 | CRC校驗 高位 |
90 | eb | add | Cmd | LenL | LenH | D…. | CrcL | CrcH |
注:協(xié)議由幀頭,地址,命令,數(shù)據(jù)長度(D6~Dn的長度,低位在前),CRC校驗構成;幀總長=8 + D4 + D5*256;
即:Len = 8+Buf[4]+Buf[5]*256;
報文特點:報文長度最小為8個字節(jié)[數(shù)據(jù)長度為0時],根據(jù)D4、D5可計算出報文長度;
幀總長=8 (幀頭和校驗)+ D4 + D5*256
(1) 幀頭兩個字節(jié),固定為:90 eb
(2) 地址add是目標機(攝像頭)地址,0x01~0xfe,0x00和0xff是保留地址(廣播地址);攝像頭收到非本機地址協(xié)議的,拋棄不作響應;
(3) 命令Cmd對應不同的協(xié)議操作;
(4) 數(shù)據(jù)長度LenL、LenH是D6~Dn的長度,代表數(shù)據(jù)的總長(不是幀長度);可以是0~65535的長度;
(5) CrcL、CrcH為16位Crc校驗,校驗從地址Add開始,直至Dn,校驗長度為:數(shù)據(jù)長度+4;
測試發(fā)送時,如果不方便計算Crc校驗,測試時可用0xc1、0xc2代替;
(6) 幀總長=2(幀頭)+1(地址)+1(命令)+2(數(shù)據(jù)長度)+ n(數(shù)據(jù))+2(校驗)
= 8 + n(數(shù)據(jù)長度)
= 8 + D4 + D5*256
(7) CRC校驗CrcL和CrcH默認0xc1、0xc2(即0xc2c1可以通過CRC校驗,利于在測試時使用);
報文特點:從D4、D5數(shù)據(jù)長度,可以知道該幀的總長度,幀總長=8(幀頭6位+CRC校驗2位) + D4 + D5*256
(二) 測試協(xié)議 Cmd=0x01
即:Len = 8+Buf[4]+Buf[5]*256;
報文特點:報文長度最小為8個字節(jié)[數(shù)據(jù)長度為0時],根據(jù)D4、D5可計算出報文長度;
幀總長=8 (幀頭和校驗)+ D4 + D5*256
(1) 幀頭兩個字節(jié),固定為:90 eb
(2) 地址add是目標機(攝像頭)地址,0x01~0xfe,0x00和0xff是保留地址(廣播地址);攝像頭收到非本機地址協(xié)議的,拋棄不作響應;
(3) 命令Cmd對應不同的協(xié)議操作;
(4) 數(shù)據(jù)長度LenL、LenH是D6~Dn的長度,代表數(shù)據(jù)的總長(不是幀長度);可以是0~65535的長度;
(5) CrcL、CrcH為16位Crc校驗,校驗從地址Add開始,直至Dn,校驗長度為:數(shù)據(jù)長度+4;
測試發(fā)送時,如果不方便計算Crc校驗,測試時可用0xc1、0xc2代替;
(6) 幀總長=2(幀頭)+1(地址)+1(命令)+2(數(shù)據(jù)長度)+ n(數(shù)據(jù))+2(校驗)
= 8 + n(數(shù)據(jù)長度)
= 8 + D4 + D5*256
(7) CRC校驗CrcL和CrcH默認0xc1、0xc2(即0xc2c1可以通過CRC校驗,利于在測試時使用);
報文特點:從D4、D5數(shù)據(jù)長度,可以知道該幀的總長度,幀總長=8(幀頭6位+CRC校驗2位) + D4 + D5*256
(二) 測試協(xié)議 Cmd=0x01
數(shù)據(jù)位 | D0 | D1 | D2 | D3 | D4 | D5 | D6~Dn | C1 | C2 |
解釋 | 幀頭1 | 幀頭2 | 地址 | 命令 | 數(shù)據(jù)長度 低位 | 數(shù)據(jù)長度 高位 | 數(shù)據(jù) | CRC校驗 低位 | CRC校驗 高位 |
發(fā)送 | 90 | eb | 01 | 01 | 02 | 00 | 55 aa | C1 | C2 |
返回 | 90 | eb | 01 | 01 | 03 | 00 | 00 aa 55 | F6 | EB |
發(fā):(幀長=10)90 eb 01 01 02 00 55 aa c1 c2
返:(幀長=11)90 EB 01 01 03 00 00 aa 55 F6 EB
測試:發(fā):90 eb 01 01 02 00 55 aa c1 c2
返:90 EB 01 01 03 00 00 AA 55 F6 EB
注:本協(xié)議主要是用來測試串口(485、232、TTL)是否通或波特率是否正確;如不返回,說明通迅不上;
拍照協(xié)議
(三) 拍照協(xié)議(Cmd=0x40)
功能:發(fā)送拍照命令后,攝像機將開始拍照一張圖片,并保存在內(nèi)存里,等待取圖。
注:拍照命令要在攝像機上電4秒后開始拍照為好(上電完畢并穩(wěn)定圖像),發(fā)送拍照命令后,一般在3秒內(nèi)(晚上會時間長,光線好時即返回)返回拍照數(shù)據(jù)
返:(幀長=11)90 EB 01 01 03 00 00 aa 55 F6 EB
測試:發(fā):90 eb 01 01 02 00 55 aa c1 c2
返:90 EB 01 01 03 00 00 AA 55 F6 EB
注:本協(xié)議主要是用來測試串口(485、232、TTL)是否通或波特率是否正確;如不返回,說明通迅不上;
拍照協(xié)議
(三) 拍照協(xié)議(Cmd=0x40)
功能:發(fā)送拍照命令后,攝像機將開始拍照一張圖片,并保存在內(nèi)存里,等待取圖。
注:拍照命令要在攝像機上電4秒后開始拍照為好(上電完畢并穩(wěn)定圖像),發(fā)送拍照命令后,一般在3秒內(nèi)(晚上會時間長,光線好時即返回)返回拍照數(shù)據(jù)
數(shù)據(jù)位 | D0 | D1 | D2 | D3 | D4 | D5 | D6~Dn | C1 | C2 |
解釋 | 幀頭1 | 幀頭2 | 地址 | 命令 | 數(shù)據(jù)長度 低位 | 數(shù)據(jù)長度 高位 | 數(shù)據(jù) | CRC校驗 低位 | CRC校驗 高位 |
發(fā)送 | 90 | eb | 01 | 40 | 04 | 00 | 00 02 05 01 | C1 | C2 |
發(fā):90 EB 01 40 04 00 00 02 05 01 C1 C2 //00 02 為00 00 時則返回整包
注: 地址 命令 數(shù)據(jù)長度 固定 分辯率 壓縮比 CRC校驗
返:90 EB 01 40 0b 00 00 83 16 00 00 00 00 00 02 05 01 C1 C2
長度 圖像大小 保留 保留 分辯率 壓縮比
如果分辨率非法和壓縮比非法,則返回攝像頭默認的分辨率和壓縮比(具體的默認視不同的攝像頭而不同);
測試:發(fā):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
發(fā)送幀報文
注: 地址 命令 數(shù)據(jù)長度 固定 分辯率 壓縮比 CRC校驗
返:90 EB 01 40 0b 00 00 83 16 00 00 00 00 00 02 05 01 C1 C2
長度 圖像大小 保留 保留 分辯率 壓縮比
如果分辨率非法和壓縮比非法,則返回攝像頭默認的分辨率和壓縮比(具體的默認視不同的攝像頭而不同);
測試:發(fā):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
發(fā)送幀報文
報文 | 報文名稱 | 報文說明 | 備注 | |
90 EB | 幀頭標識 | 固定為90 EB | ||
01 | 攝像機地址 | 地址為01~FE,00、FF為廣播地址 | 出廠默認1 | |
40 | 命令 | 40為拍照命令 | ||
04 00 | 數(shù)據(jù)長度(在此之后,CRC之前的數(shù)據(jù)的長度) | 后面的00 02 05 01的長度,CRC之前 | 低字節(jié)在前(小端模式) 幀總長=數(shù)據(jù)長度+8 | |
數(shù)據(jù) | 00 02 | 分包大小(內(nèi)部保留無實際作用) | 整包時為0,立即返回圖片數(shù)據(jù),分包時非0 | 低字節(jié)在前(小端模式) |
05 | 分辯率 | 640*480 | ||
01 | 壓縮比 | 1~10級,越小越清,但jpg圖片數(shù)據(jù)越大 | ||
C1 C2 | CRC16校驗 | C1、C2為默認效驗字,校驗算法見附錄 | 低字節(jié)在前(小端模式) |
返回幀報文
報文 | 報文名稱 | 報文說明 | 備注 | |
90 EB | 幀頭標識 | 固定為90 EB | ||
01 | 攝像機地址 | 地址為01~FE,00、FF為廣播地址 | 出廠默認1 | |
40 | 命令(拍照返回) | 40為拍照命令 | ||
0B 00 | 數(shù)據(jù)長度(在此之后,CRC之前的數(shù)據(jù)的長度) | 后面的CRC之前的長度,11個數(shù)據(jù) | 低字節(jié)在前(小端模式) 幀總長=數(shù)據(jù)長度+8 | |
數(shù)據(jù) | 00 | 保留 | 不處理 | |
76 94 00 00 | 圖像大小 | 0x76+0x94*256+0x00*256*256(位用不上,圖像數(shù)據(jù)沒有那么大) | 低字節(jié)在前(小端模式) | |
4B 00 | 保留 | 不處理 | ||
00 02 | 分包大小 | 內(nèi)部保留無實際作用,同發(fā)送幀(不用處理) | 低字節(jié)在前(小端模式) | |
05 | 分辯率編號 | 同發(fā)送幀(不用處理) | 見下表 | |
01 | 壓縮比 | 同發(fā)送幀(不用處理) | ||
C1 C2 | CRC16校驗 | C1、C2為默認效驗字,校驗算法見附錄 | 低字節(jié)在前(小端模式) |
在拍照時,將圖片分辯率、壓縮比、分包大小,一起設定,即不必重新設置這三個參數(shù),以方便拍照和程序處理
拍照返回后,我們只關心圖像大小,即知道jpg圖片是多少個字節(jié),其它的則不重要。知道圖片長度后,則可以開始從頭將數(shù)據(jù)分段取回了。
表1:分辯率編號對應的圖像分辯率
拍照返回后,我們只關心圖像大小,即知道jpg圖片是多少個字節(jié),其它的則不重要。知道圖片長度后,則可以開始從頭將數(shù)據(jù)分段取回了。
表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萬 |
注:設置超出分辯率時,則按支持的分辯率處理 |
(四) 分段取圖協(xié)議(Cmd=0x48)
功能:從開始地址取一定長度的圖片數(shù)據(jù),可以從頭開始報段取圖,然后拼接為整個圖片。分段取圖,每次取不超過4K字節(jié)為好,過大因攝像內(nèi)存分配過大問題不支持
數(shù)據(jù)位 | D0 | D1 | D2 | D3 | D4 | D5 | D6~D9 | D10~D11 | C1 | C2 |
解釋 | 幀頭1 | 幀頭2 | 地址 | 命令 | 數(shù)據(jù)長度 低位 | 數(shù)據(jù)長度 高位 | 開始地址 | 長度 | 校驗 低位 | 校驗 高位 |
發(fā)送 | 90 | eb | 01 | 48 | 06 | 00 | 00 02 00 00 | 00 03 | C1 | C2 |
//取次,每包768個字節(jié)[低位在前]
發(fā):90 EB 01 48 06 00 00 00 00 00 00 03 C1 C2(請求從地址00開始取768個圖片數(shù)據(jù)回來)
開始地址00 長度768(0xffff,65K)
返: 90 EB 01 49 00 03 d0 d1…dn c1 c2 //返回0x0300(768)個圖片數(shù)據(jù)回來
//取第二次,每包768個字節(jié)
發(fā):90 EB 01 48 06 00 00 03 00 00 00 03 C1 C2(請求從地址768開始取768個圖片數(shù)據(jù)回來)
開始地址768 長度768(0xffff,65K)
返: 90 EB 01 49 00 03 d0 d1…dn c1 c2 //返回0x0300(768)個圖片數(shù)據(jù)回來
發(fā)送幀報文
發(fā):90 EB 01 48 06 00 00 00 00 00 00 03 C1 C2(請求從地址00開始取768個圖片數(shù)據(jù)回來)
開始地址00 長度768(0xffff,65K)
返: 90 EB 01 49 00 03 d0 d1…dn c1 c2 //返回0x0300(768)個圖片數(shù)據(jù)回來
//取第二次,每包768個字節(jié)
發(fā):90 EB 01 48 06 00 00 03 00 00 00 03 C1 C2(請求從地址768開始取768個圖片數(shù)據(jù)回來)
開始地址768 長度768(0xffff,65K)
返: 90 EB 01 49 00 03 d0 d1…dn c1 c2 //返回0x0300(768)個圖片數(shù)據(jù)回來
發(fā)送幀報文
報文 | 報文名稱 | 報文說明 | 備注 | |
90 EB | 幀頭標識 | 固定為90 EB | ||
01 | 攝像機地址 | 地址為01~FE,00、FF為廣播地址 | 出廠默認1 | |
48 | 命令 | 48為分段取圖命令 | ||
06 00 | 數(shù)據(jù)長度(在此之后,CRC之前的數(shù)據(jù)的長度) | 后面的00 00 00 00 00 03的長度,CRC之前 | 低字節(jié)在前(小端模式) | |
數(shù)據(jù) | 00 00 00 00 | 開始地址 | 從jpg圖片的開始地址0開始取,取768個字節(jié) | 低字節(jié)在前(小端模式) |
00 03 | 取的圖片長度(不超4096) | 768個字節(jié)(類似其它協(xié)議的分包大?。?/td> | 低字節(jié)在前(小端模式) | |
C1 C2 | CRC16校驗 | C1、C2為默認效驗字,校驗算法見附錄 | 低字節(jié)在前(小端模式) |
返回幀報文
報文 | 報文名稱 | 報文說明 | 備注 | |
90 EB | 幀頭標識 | 固定為90 EB | ||
01 | 攝像機地址 | 地址為01~FE,00、FF為廣播地址 | 出廠默認1 | |
49 | 命令 | 49為返回圖片數(shù)據(jù) | ||
00 03 | 數(shù)據(jù)長度(在此之后,CRC之前的數(shù)據(jù)的長度) | 后面的jpg圖片數(shù)據(jù)的長度,CRC之前,一共768個數(shù)據(jù) | 低字節(jié)在前(小端模式) 幀總長=數(shù)據(jù)長度+8 | |
數(shù)據(jù) | d0 d1…dn [FF D8 FF DB] | 圖片數(shù)據(jù)(00 03共768個) | 這部分就是jpg圖片的數(shù)據(jù),按開始地址保存下來,取部的圖片數(shù)據(jù)后,就是一幅jpg圖片的文件 | Jpg圖片以FF D8 開頭,以FF D9 結束 |
C1 C2 | CRC16校驗 | C1、C2為默認效驗字,校驗算法見附錄 | 低字節(jié)在前(小端模式) | |
提示:1、拍照,得到圖片的長度Len
2、然后從start=0開始取圖,每次取1024個(不超4096為宜);
3、返回圖片數(shù)據(jù)后,從start開始保存圖片數(shù)據(jù),或轉發(fā)出去;start=start+1024(下一次取圖開始地址);
4、繼續(xù)從start取圖,如果start+1024>Len;即是圖片最后的數(shù)據(jù),不足1024個了,這時?。篖en-start個;
5、取完段(start>=Len)時,整個圖片數(shù)據(jù)則取完了。
注意:取圖超出所拍照的圖片長度時,按出錯處理,不返回圖片;
(五) 拍照流程說明
(1) 發(fā)送拍照協(xié)議(Cmd=0x40)后,攝像機即進行拍照操作(晚上則會收到拍照命令后,攝像機會自動開啟補光燈,然后調好照片效果后拍照);拍照返回協(xié)議有圖片長度,說明拍照完成;圖片數(shù)據(jù)保存在攝像機內(nèi)存里;
(2) 要上電4秒后才能發(fā)送拍照,拍照后3秒內(nèi)返回(白天1秒內(nèi)返回,晚上可能達3秒);
(3) 分段取圖像(Cmd=0x48);
可以從0開始,每次取1K字節(jié)(一般512至4K為宜,2K)的圖像,直到取完整個圖片數(shù)據(jù)為止;
(4) 拼接圖像數(shù)據(jù)
將取回的圖像,從頭到尾拼接,則成為了一個jpeg圖片文件;然后保存或上傳;
(六) 修改波特率和地址(Cmd=0x44)
2、然后從start=0開始取圖,每次取1024個(不超4096為宜);
3、返回圖片數(shù)據(jù)后,從start開始保存圖片數(shù)據(jù),或轉發(fā)出去;start=start+1024(下一次取圖開始地址);
4、繼續(xù)從start取圖,如果start+1024>Len;即是圖片最后的數(shù)據(jù),不足1024個了,這時?。篖en-start個;
5、取完段(start>=Len)時,整個圖片數(shù)據(jù)則取完了。
注意:取圖超出所拍照的圖片長度時,按出錯處理,不返回圖片;
(五) 拍照流程說明
(1) 發(fā)送拍照協(xié)議(Cmd=0x40)后,攝像機即進行拍照操作(晚上則會收到拍照命令后,攝像機會自動開啟補光燈,然后調好照片效果后拍照);拍照返回協(xié)議有圖片長度,說明拍照完成;圖片數(shù)據(jù)保存在攝像機內(nèi)存里;
(2) 要上電4秒后才能發(fā)送拍照,拍照后3秒內(nèi)返回(白天1秒內(nèi)返回,晚上可能達3秒);
(3) 分段取圖像(Cmd=0x48);
可以從0開始,每次取1K字節(jié)(一般512至4K為宜,2K)的圖像,直到取完整個圖片數(shù)據(jù)為止;
(4) 拼接圖像數(shù)據(jù)
將取回的圖像,從頭到尾拼接,則成為了一個jpeg圖片文件;然后保存或上傳;
(六) 修改波特率和地址(Cmd=0x44)
數(shù)據(jù)位 | D0 | D1 | D2 | D3 | D4 | D5 | D6 | C1 | C2 |
解釋 | 幀頭1 | 幀頭2 | 地址 | 命令 | 數(shù)據(jù)長度 低位 | 數(shù)據(jù)長度 高位 | 數(shù)據(jù) | CRC校驗 低位 | CRC校驗 高位 |
發(fā)送 | 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
地址 命令 數(shù)據(jù)長度 波特率 是否保存
說明:如果波特率編號為0,則不修改,如果為0或FF, 則不修改地址
返回:90 EB 01 45 04 00 02 01 Add Add C1 C2
命令 數(shù)據(jù)長度 波特率 已保存
注:地址00和FF是廣播地址,發(fā)送時,接在總線的各個攝像頭
波特率參數(shù):
01 = 9600
02 = 19200
04 = 38400
05 = 57600
06 = 115200
字符疊加
(七) 字符疊加 Cmd=0x52(在圖像的X、Y座標上,顯示中英字符)
字符疊加有記憶能力,在斷電重新上電的,仍顯示上次的字符。
發(fā):90 EB 01 52 00 00 XL XH YL YH 0B D1 D2 …… C1 C2
地址 命令 數(shù)據(jù)長度 X座標 Y座標 字體高度 字符 CRC校驗
注:在X、Y坐標上,顯示字符,字符是ASCII碼 字體高度為0時則是默認大小
字符串長度=數(shù)據(jù)長度-5
例:90 EB 01 52 0A 00 06 00 08 00 0C 31 32 33 34 65 C1 C2
在座標06,08處加入1234e字符,字體高度為12個像素(目前未支持字體高度,由系統(tǒng)決定)
返回:90 EB 01 52 00 00 C1 C2
一個中文字,點兩個字節(jié)(同windows電腦一樣),英文和數(shù)字則點一個字節(jié);
換行顯示: 當要換行時,加入 就同電腦上的記事本一樣,代表換行
例:發(fā):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
發(fā)送幀報文: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
地址 命令 數(shù)據(jù)長度 波特率 是否保存
說明:如果波特率編號為0,則不修改,如果為0或FF, 則不修改地址
返回:90 EB 01 45 04 00 02 01 Add Add C1 C2
命令 數(shù)據(jù)長度 波特率 已保存
注:地址00和FF是廣播地址,發(fā)送時,接在總線的各個攝像頭
波特率參數(shù):
01 = 9600
02 = 19200
04 = 38400
05 = 57600
06 = 115200
字符疊加
(七) 字符疊加 Cmd=0x52(在圖像的X、Y座標上,顯示中英字符)
字符疊加有記憶能力,在斷電重新上電的,仍顯示上次的字符。
發(fā):90 EB 01 52 00 00 XL XH YL YH 0B D1 D2 …… C1 C2
地址 命令 數(shù)據(jù)長度 X座標 Y座標 字體高度 字符 CRC校驗
注:在X、Y坐標上,顯示字符,字符是ASCII碼 字體高度為0時則是默認大小
字符串長度=數(shù)據(jù)長度-5
例:90 EB 01 52 0A 00 06 00 08 00 0C 31 32 33 34 65 C1 C2
在座標06,08處加入1234e字符,字體高度為12個像素(目前未支持字體高度,由系統(tǒng)決定)
返回:90 EB 01 52 00 00 C1 C2
一個中文字,點兩個字節(jié)(同windows電腦一樣),英文和數(shù)字則點一個字節(jié);
換行顯示: 當要換行時,加入 就同電腦上的記事本一樣,代表換行
例:發(fā):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
發(fā)送幀報文: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 | 數(shù)據(jù)長度(在此之后,CRC之前的數(shù)據(jù)的長度) | 自此之后,CRC之前的數(shù)據(jù)的長度 | 低字節(jié)在前(小端模式) 幀總長=數(shù)據(jù)長度+8 | |
數(shù)據(jù) | 0A 00 | 顯示的X座標,10 | 字符顯示的X座標,以左上角為0,X越大,越靠右 | 低字節(jié)在前(小端模式) |
0A 00 | 顯示的Y座標,10 | 字符顯示的Y座標,以左上角為0,Y越大,越靠下 | 低字節(jié)在前(小端模式) | |
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為默認效驗字,校驗算法見附錄 | 低字節(jié)在前(小端模式) |
(八) 時間同步(ID=0x83)時間同步后,會在圖片左下角,顯示拍照時的時間
實質是發(fā)送當前日期時間,攝像頭斷電后,時間復位,需要發(fā)送當前時間;
發(fā):90 EB 01 83 06 00 d0 d1 d2 d3 d4 d5 C1 C2(上位機發(fā))
地址 命令 數(shù)據(jù)長度 年 月 日 時 分 秒 CRC校驗
返:90 EB 01 84 00 00 C1 C2
符錄:
CRC校驗代碼
以下均采用CRC多項式為0x1021即:g(x) = x16+x12+x5+x0;CRC
//Crc16計算函數(shù)
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校驗,適用于要校驗的數(shù)據(jù)是連續(xù)的
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位二進制數(shù)的形式暫存CRC的高8位
crc<<=8; //左移8位,相當于CRC的低8位乘以
crc^=crc_ta[da^*ptr]; // 高8位和當前字節(jié)相加后再查表求CRC ,再加上以前的CRC
ptr++;
}
return(crc);
}
//適用用數(shù)據(jù)不連續(xù)的校驗
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位二進制數(shù)的形式暫存CRC的高8位
crc<<=8; //左移8位,相當于CRC的低8位乘以
crc^=crc_ta[da^*ptr]; // 高8位和當前字節(jié)相加后再查表求CRC ,再加上以前的CRC
ptr++;
}
return(crc);
}