本發(fā)明專利涉及一種用于串口或RS485接口通信的球形攝像機(jī)運(yùn)動(dòng)控制協(xié)議格式定義。
背景技術(shù):
目前,在安防領(lǐng)域用于球形攝像機(jī)運(yùn)動(dòng)控制的最通用的協(xié)議主要有PELCO-D和PELCO-P,以及在此格式基礎(chǔ)上擴(kuò)展的各種協(xié)議。這兩種協(xié)議都只提供了單向的數(shù)據(jù)通信,而且只能控制球形攝像機(jī)機(jī)的運(yùn)動(dòng)方向,沒(méi)有提供球形攝像機(jī)的坐標(biāo)查詢、坐標(biāo)控制以及絕對(duì)速度的控制格式。本協(xié)議則在全新的通信格式定義的基礎(chǔ)上提供了球形攝像機(jī)的坐標(biāo)查詢、坐標(biāo)控制以及速度控制協(xié)議,同時(shí)該協(xié)議可以提供非常好的可擴(kuò)展性,可以任意增加命令以傳輸更多的控制信息,提供球形攝像機(jī)其他的狀態(tài)控制和查詢,比如放大倍數(shù),聚焦控制方式以及聚焦位置等。
技術(shù)實(shí)現(xiàn)要素:
本協(xié)議主要解決了球形攝像機(jī)通過(guò)串口或RS485接口控制時(shí),直接控制球形攝像機(jī)絕對(duì)坐標(biāo)控制,絕對(duì)轉(zhuǎn)速控制以及坐標(biāo)查詢的問(wèn)題,同時(shí)還提供其他球機(jī)狀態(tài)的查詢和控制。
本協(xié)議定義的串口通信格式如下:
LENGTH:第一字節(jié)為命令長(zhǎng)度字節(jié),包括BTYE2~BYTEn,即LENGTH = n-1;
LENGTH:第二字節(jié)為命令長(zhǎng)度字節(jié)取反,即LENGTH = ~LENGTH,用來(lái)校驗(yàn)協(xié)議頭的傳輸準(zhǔn)確性;
ADDR: 球機(jī)地址,取值范圍0~255;
COMMAND:命令內(nèi)容,其中的第一個(gè)字節(jié)為命令字,后續(xù)字節(jié)為命令的具體數(shù)據(jù)內(nèi)容;
CHECKSUM:命令校驗(yàn)和,取模255加法;
CHECKSUM = BYTE0 + BYTE1 + BYTE2 + …… + BYTE(n-1) 。
該通信協(xié)議使用場(chǎng)景為一個(gè)主控端和一個(gè)或多個(gè)被控端(一般是球形攝像機(jī))通信的工作模式,并且只有主控端可以主動(dòng)發(fā)起通信。
設(shè)置球機(jī)坐標(biāo)命令為:
。
獲取球機(jī)坐標(biāo)命令為:
設(shè)置球機(jī)轉(zhuǎn)動(dòng)速度命令為:
設(shè)置球機(jī)的PTZ坐標(biāo)命令為:
獲取球機(jī)的PTZ坐標(biāo)命令為:
獲取球機(jī)的放大倍數(shù)命令為:
發(fā)送端發(fā)送方式為:主控端根據(jù)需要控制的球機(jī)地址,以及控制命令,控制數(shù)據(jù)組成協(xié)議內(nèi)容字符串,同時(shí)在協(xié)議字符串之前加上長(zhǎng)度及其補(bǔ)碼,計(jì)算出校驗(yàn)后后附加到該字符串最后面。
發(fā)送時(shí),所有數(shù)據(jù)必須連續(xù)發(fā)送,中間任何兩個(gè)字節(jié)的時(shí)間間隔不得超過(guò)超時(shí)時(shí)間(比如10毫秒)。
如果發(fā)送的是查詢命令,則在超時(shí)時(shí)間內(nèi)等待接收信息,按照接收端方式對(duì)收到的數(shù)據(jù)進(jìn)行解析。
接收端命令接收方式:逐字節(jié)對(duì)接收到的數(shù)據(jù)進(jìn)行檢查,當(dāng)收到的某個(gè)字節(jié)數(shù)據(jù)與前一個(gè)字節(jié)數(shù)據(jù)成補(bǔ)碼關(guān)系時(shí),表示一條命令的起始,同時(shí)成補(bǔ)碼關(guān)系的第一個(gè)字節(jié)為該命令的長(zhǎng)度,也就是后面還需要接收該數(shù)據(jù)表示的字節(jié)數(shù),則命令接受完畢。收到該長(zhǎng)度表示的所有字節(jié)數(shù)后,除最后一個(gè)字節(jié)外,從長(zhǎng)度開(kāi)始的所有數(shù)據(jù)計(jì)算校驗(yàn)和,如果校驗(yàn)和和最后一個(gè)數(shù)據(jù)相等,則表示該命令接受正確,可以對(duì)收到的命令進(jìn)行解析并執(zhí)行命令內(nèi)容。如果校驗(yàn)和與最后一個(gè)字節(jié)不相等,則命令接收錯(cuò)誤,所有數(shù)據(jù)丟棄。
如果在命令接收過(guò)程中,如果在超時(shí)時(shí)間(比如10毫秒)內(nèi)沒(méi)有接收到數(shù)據(jù),則表示命令傳輸有誤,可能是發(fā)送端出錯(cuò)或者信道中斷,丟棄已經(jīng)收到的所有數(shù)據(jù),后面收到的數(shù)據(jù)表示一條新的命令,按新的命令進(jìn)行解析。
接收端對(duì)收到的完成命令檢查地址信息,如果命令中的地址與本機(jī)一致,則響應(yīng)該命令,如果不一致則丟棄該命令。
如果收到的命令字是查詢命令,則接收端需要返回所需的信息。此時(shí)接受端轉(zhuǎn)換為發(fā)送端,將需要發(fā)送的信息加上長(zhǎng)度以及校驗(yàn)和發(fā)送回原發(fā)送端。
通信信道為:該協(xié)議可以采用標(biāo)準(zhǔn)串口電平傳輸,也可以采用TTL串口電平傳輸,或者采用RS485電平傳輸。
使用本協(xié)議的通信方式,可以非常容易地讀取球機(jī)的坐標(biāo)以及其他信息,如機(jī)芯放大倍數(shù),聚焦位置以及其他工作模式等,也可以精確地控制球機(jī)的坐標(biāo)或者轉(zhuǎn)動(dòng)速度。這種通信方式在需要精確控制球機(jī)位置或速度的工作模式中,比如對(duì)槍機(jī)和球機(jī)進(jìn)行坐標(biāo)關(guān)聯(lián),控制球機(jī)進(jìn)行目標(biāo)跟蹤等場(chǎng)景中非常實(shí)用,實(shí)現(xiàn)原來(lái)PELCO協(xié)議無(wú)法控制的方式或者獲取PELCO協(xié)議無(wú)法獲取的球機(jī)信息。
具體實(shí)施方式
本協(xié)議主要解決了球形攝像機(jī)通過(guò)串口或RS485接口控制時(shí),直接控制球形攝像機(jī)絕對(duì)坐標(biāo)控制,絕對(duì)轉(zhuǎn)速控制以及坐標(biāo)查詢的問(wèn)題,同時(shí)還提供其他球機(jī)狀態(tài)的查詢和控制。
本協(xié)議定義的串口通信格式如下:
LENGTH:第一字節(jié)為命令長(zhǎng)度字節(jié),包括BTYE2~BYTEn,即LENGTH = n-1;
LENGTH:第二字節(jié)為命令長(zhǎng)度字節(jié)取反,即LENGTH = ~LENGTH,用來(lái)校驗(yàn)協(xié)議頭的傳輸準(zhǔn)確性;
ADDR: 球機(jī)地址,取值范圍0~255;
COMMAND:命令內(nèi)容,其中的第一個(gè)字節(jié)為命令字,后續(xù)字節(jié)為命令的具體數(shù)據(jù)內(nèi)容;
CHECKSUM:命令校驗(yàn)和,取模255加法;
CHECKSUM = BYTE0 + BYTE1 + BYTE2 + …… + BYTE(n-1) 。
該通信協(xié)議使用場(chǎng)景為一個(gè)主控端和一個(gè)或多個(gè)被控端(一般是球形攝像機(jī))通信的工作模式,并且只有主控端可以主動(dòng)發(fā)起通信。
設(shè)置球機(jī)坐標(biāo)命令為:
。
獲取球機(jī)坐標(biāo)命令為:
設(shè)置球機(jī)轉(zhuǎn)動(dòng)速度命令為:
設(shè)置球機(jī)的PTZ坐標(biāo)命令為:
獲取球機(jī)的PTZ坐標(biāo)命令為:
獲取球機(jī)的放大倍數(shù)命令為: