IP視頻監(jiān)控系統(tǒng)中云臺(tái)控制模塊的設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 系統(tǒng)總體框架
Tetra開(kāi)發(fā)板系統(tǒng)總體框架如圖1所示,BSP-15的數(shù)據(jù)總線(xiàn)和地址總線(xiàn)與SDRAM、Flash以及視頻輸入輸出芯片SAA7113和SAA7121相連,進(jìn)行數(shù)據(jù)交換。另外,BSP-15作為PCI總線(xiàn)的主設(shè)備,控制南橋芯片VT82C686B和網(wǎng)絡(luò)芯片RTL8139C,通過(guò)南橋芯片擴(kuò)展IDE接口、RS-232串口、USB接口、ISA總線(xiàn)等外擴(kuò)接口。音頻輸入輸出芯片通過(guò)I2S總線(xiàn)控制。由于I/O口有限,因此其他控制接口和數(shù)據(jù)交互都使用I2C總線(xiàn)來(lái)完成,包括EEPROM、SAA7113和SAA7112和87LPC764的控制。
2 系統(tǒng)實(shí)現(xiàn)
2.1 云臺(tái)控制硬件結(jié)構(gòu)框圖及工作原理
云臺(tái)控制硬件框圖如圖2所示。BSP-15首先將云臺(tái)控制信息通過(guò)I2C總線(xiàn)發(fā)送給87LPC764,87LPC764將控制碼解釋后,通過(guò)串行口轉(zhuǎn)發(fā)到RS485接口芯片MAX487,從而將控制碼通過(guò)RS485接口發(fā)送給云臺(tái)攝像機(jī)。云臺(tái)攝像機(jī)接收到控制碼時(shí),根據(jù)要求進(jìn)行相應(yīng)的云臺(tái)操作。另外,87LPC764連接了PCI總線(xiàn)上的一條中斷線(xiàn),可向BSP-15申請(qǐng)中斷來(lái)通知BSP-15云臺(tái)控制狀態(tài),以及向BSP-15申請(qǐng)發(fā)送其他數(shù)據(jù)。
2.1.1 87LPC764
87LPC764是PHILIPS公司生產(chǎn)的、以加速的80C51為內(nèi)核的高性能、高可靠性和低價(jià)格的工業(yè)級(jí)通用型嵌入式微處理器。內(nèi)含4KB OPT程序代碼控制器,128字節(jié)的用戶(hù)RAM存儲(chǔ)器,32字節(jié)用戶(hù)代碼存儲(chǔ)器。具有全雙工UART,內(nèi)帶I2C總線(xiàn)控制。還具有可由外部晶振或內(nèi)部振蕩源驅(qū)動(dòng)的內(nèi)部看門(mén)狗定時(shí)器,其溢出時(shí)間具有8級(jí)時(shí)間選擇。
2.1.2 云臺(tái)攝像機(jī)
云臺(tái)攝像機(jī)的云臺(tái)是一種安裝在攝像機(jī)支撐物上的工作臺(tái),用于攝像機(jī)與支撐物的聯(lián)結(jié),云臺(tái)具有水平和垂直運(yùn)動(dòng)的功能。一般云臺(tái)攝像機(jī)內(nèi)置解碼器,遵循云臺(tái)控制標(biāo)準(zhǔn)協(xié)議,根據(jù)外部控制信號(hào),可以完成指定速度的水平、垂直運(yùn)動(dòng),光圈、焦距調(diào)節(jié),攝像機(jī)關(guān)閉、開(kāi)啟等功能。
2.1.3 云臺(tái)控制協(xié)議
當(dāng)前比較通用的云臺(tái)控制協(xié)議有派爾高公司推出的PELCO-D、PELCO-P協(xié)議,另外還有三星公司、Sony公司等公司針對(duì)其專(zhuān)用云臺(tái)制定的云臺(tái)協(xié)議。在開(kāi)發(fā)過(guò)程中,考慮到對(duì)不同協(xié)議的云臺(tái)攝像頭的兼容,將云臺(tái)控制設(shè)計(jì)為可兼容各類(lèi)協(xié)議的通用控制模塊。可根據(jù)不同云臺(tái)攝像機(jī)更新監(jiān)控系統(tǒng)的云臺(tái)協(xié)議,實(shí)現(xiàn)對(duì)各類(lèi)云臺(tái)的支持。
在實(shí)際應(yīng)用中,PELCO-P協(xié)議是當(dāng)前業(yè)內(nèi)最為流行的云臺(tái)控制協(xié)議,PELCO-P協(xié)議一般采用RS-485接口進(jìn)行傳輸,波特率一般在1200~9 600bps之間,1位起始位,1位停止位,8位數(shù)據(jù)位,無(wú)校驗(yàn)位。其數(shù)據(jù)傳輸格式如表1所示。其中地址碼用于區(qū)分不同的云臺(tái)攝像機(jī),而四個(gè)數(shù)據(jù)字節(jié)則包含了本條云臺(tái)控制命令的全部信息,具體數(shù)據(jù)含義如表2所示。
2.2 87LPC764控制程序設(shè)計(jì)
87LPC764所完成的功能很多,包括全局上電復(fù)位和電源控制、底板LED控制、看門(mén)狗定時(shí)控制、外部報(bào)警。另外在需要的情況下,可以擴(kuò)展I/O口,其內(nèi)部自帶的EEPROM也可記錄各類(lèi)信息。在實(shí)際設(shè)計(jì)中,由于原版87LPC764的程序使用匯編編寫(xiě),很多功能和實(shí)際要求不相符,因此在本項(xiàng)目中,將87LPC764的全部代碼用C語(yǔ)言重新改寫(xiě),修改和加入了針對(duì)本項(xiàng)目所需的功能。
主程序部分判斷與BSP-15交互的信息,程序流程圖如圖3所示。圖中接收和發(fā)送都是相對(duì)BSP-15而言的。87LPC764等待BSP-15的指令,一旦收到指令則執(zhí)行,如果收到外部信號(hào),則申請(qǐng)中斷,等待BSP-15讀取相應(yīng)信息。其中I2C讀寫(xiě)、串口讀寫(xiě)、內(nèi)部定時(shí)器均采用中斷方式。這里給出的流程圖僅為部分流程,與云臺(tái)控制無(wú)關(guān)的部分程序,不做詳細(xì)描述。
2.3 VxWorks中87LPC764驅(qū)動(dòng)程序設(shè)計(jì)
驅(qū)動(dòng)程序部分主要是在VxWorks操作系統(tǒng)下,完成通過(guò)I2C與87LPC764交互,作為中介解釋并傳遞由上層應(yīng)用程序發(fā)送給87LPC764的命令,以及將87LPC764反饋的各種信息告知上層應(yīng)用程序。
驅(qū)動(dòng)程序流程如圖4所示。首先隨系統(tǒng)啟動(dòng)初始化驅(qū)動(dòng)程序中各部分的變量,將中斷函數(shù)與指定的PCI中斷連接,創(chuàng)建一個(gè)消息隊(duì)列,然后開(kāi)始進(jìn)入阻塞式的等待狀態(tài)。當(dāng)87LPC764向BSP-15申請(qǐng)中斷時(shí),跳入中斷函數(shù)入口,通過(guò)I2C總線(xiàn)從87LPC764讀取一個(gè)字節(jié)的數(shù)據(jù),并判斷是否需要繼續(xù)讀取。讀取完成后,中斷函數(shù)將數(shù)據(jù)發(fā)送到消息隊(duì)列中,然后跳出。驅(qū)動(dòng)接收到消息隊(duì)列中的數(shù)據(jù)時(shí),將向上層應(yīng)用程序報(bào)告,并轉(zhuǎn)由上層應(yīng)用程序處理。另外,驅(qū)動(dòng)程序中同樣提供了所有有關(guān)87LPC764的操作的獨(dú)立函數(shù),可直接由上層程序調(diào)用,由驅(qū)動(dòng)程序通過(guò)I2C給87LPC764發(fā)送操作命令。
2.4 云臺(tái)協(xié)議部分程序設(shè)計(jì)
云臺(tái)協(xié)議程序主要完成四個(gè)部分的內(nèi)容:云臺(tái)協(xié)議文件解析、Flash燒寫(xiě)、云臺(tái)模塊初始化、提供Web服務(wù)端控制接口。圖5給出了協(xié)議文件解析和模塊初始化的簡(jiǎn)單流程,下面對(duì)這四個(gè)部分進(jìn)行具體說(shuō)明:(1)云臺(tái)協(xié)議文件的解析。這一部分主要是完成將上層Web服務(wù)端通過(guò)網(wǎng)絡(luò)接收的云臺(tái)協(xié)議文件進(jìn)行轉(zhuǎn)換。由于云臺(tái)協(xié)議文件是文本文件,按照一定格式書(shū)寫(xiě),因此文件解析主要是將文本中有效部分的ASCII碼轉(zhuǎn)換為十六進(jìn)制的云臺(tái)控制碼。并且考慮到協(xié)議兼容性問(wèn)題,解析過(guò)程中要標(biāo)識(shí)很多特征位,如地址碼、旋轉(zhuǎn)速度碼在碼片中的位置、校驗(yàn)字節(jié)的位置及計(jì)算方法以及控制碼的碼長(zhǎng)等。(2)Flash燒寫(xiě)功能。在云臺(tái)協(xié)議文件解析后,將已解析后的云臺(tái)協(xié)議調(diào)用底層Flash燒寫(xiě)驅(qū)動(dòng)燒入Flash存儲(chǔ)器,并且在需要的時(shí)候?qū)f(xié)議從Flash存儲(chǔ)器中讀出。(3)程序初始化。在每次開(kāi)機(jī)后,初始化并設(shè)置好所需變量,將云臺(tái)協(xié)議數(shù)據(jù)按照一定格式存放在內(nèi)存中??紤]到可能要同時(shí)控制多個(gè)不同協(xié)議的云臺(tái)攝像機(jī),因此實(shí)際項(xiàng)目中最多可同時(shí)支持四種不同的云臺(tái)協(xié)議。相應(yīng)地,在初始化時(shí)要調(diào)用Flash讀取函數(shù),從Flash中將需要的一個(gè)或多個(gè)協(xié)議讀出,并存放在內(nèi)存中供模塊使用;(4)云臺(tái)接口函數(shù)。根據(jù)Web服務(wù)端要求,當(dāng)Web服務(wù)層調(diào)用時(shí),將指定的云臺(tái)標(biāo)準(zhǔn)協(xié)議進(jìn)行解釋?zhuān)ㄔO(shè)置要控制的云臺(tái)地址碼、轉(zhuǎn)動(dòng)速度,計(jì)算出校驗(yàn)碼,然后調(diào)用底層驅(qū)動(dòng)程序?qū)⒖刂拼a發(fā)送給87LPC764,并在需要的情況下告知87LPC764應(yīng)使用何種波特率。
本文從總體上介紹了基于Tetra硬件開(kāi)發(fā)平臺(tái)的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)中云臺(tái)攝像機(jī)控制模塊的設(shè)計(jì)與實(shí)現(xiàn)。項(xiàng)目中云臺(tái)模塊對(duì)各種類(lèi)型云臺(tái)的兼容能力,以及可同時(shí)監(jiān)控多種不同類(lèi)型云臺(tái)攝像機(jī),是本產(chǎn)品的一個(gè)亮點(diǎn)。本項(xiàng)目所開(kāi)發(fā)的視頻監(jiān)控系統(tǒng)已經(jīng)投入市場(chǎng),以其完善的功能得到用戶(hù)的認(rèn)可。
參考文獻(xiàn)
1 周航慈,周立功,朱 旻等. PHILIPS 51LPC系列單片機(jī)原理及應(yīng)用設(shè)計(jì)[M]. 北京:北京航空航天大學(xué)出版社,2001
2 BSP-15 Processor datasheet[Z]. Equator Technologies, Inc.,2002
3 87LPC764 datasheet[Z]. Koninklijke Philips Electronics,2001
4 Equator hardware platforms stingray hardware platform· tetra hardware platform[Z]. Equator Technologies, Inc.,2002