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