<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM9的遠(yuǎn)程圖像無(wú)線監(jiān)控系統(tǒng)的設(shè)計(jì)

          基于ARM9的遠(yuǎn)程圖像無(wú)線監(jiān)控系統(tǒng)的設(shè)計(jì)

          作者: 時(shí)間:2011-01-27 來(lái)源:網(wǎng)絡(luò) 收藏

          ③關(guān)閉攝像機(jī)接口函數(shù):

          static void v4l_cam_close(struct video_device *v);

          中斷處理接口函數(shù)。該中斷處理函數(shù)在使用C端口模式完成1幀圖像采集后被調(diào)用。函數(shù)原型定義如下:

          static void

          s3c2440_camif_isr_c(int irq,void *dev_id,struct pt_regs *regs);

          讀取圖像數(shù)據(jù)的實(shí)現(xiàn)函數(shù)。該函數(shù)通過(guò)dev→rdy的值判斷1幀圖像有無(wú)采集轉(zhuǎn)換結(jié)束。如果該值置1,則表示采樣結(jié)束,這時(shí)就可以從圖像數(shù)據(jù)的緩沖中拷貝數(shù)據(jù)到用戶的存儲(chǔ)空間;如果為0,則函數(shù)進(jìn)入阻塞或返回EAGAIN標(biāo)志。順便提一下,dev→rdy的值是在中斷處理函數(shù)中設(shè)置的。(實(shí)現(xiàn)代碼略——編者注)

          1.3 圖像數(shù)據(jù)的壓縮

          S3C2440的CAMIF接口處理得到的1幀圖像數(shù)據(jù)比較大,還要經(jīng)過(guò)進(jìn)一步的壓縮才能適合進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)傳輸。S3C2440處理器內(nèi)部沒(méi)有提供硬件的圖像壓縮編碼器,但因?yàn)樗闹黝l較高,可以使用軟件來(lái)進(jìn)行圖像壓縮??紤]到CPU的處理能力和對(duì)單幀采樣圖像的清晰度有較高的要求,采用基于離散余弦變換算法(DCT)的JPEG/MJPEG方式對(duì)圖像數(shù)據(jù)進(jìn)行壓縮編碼。

          1.4 圖像數(shù)據(jù)的傳輸

          通信單元承擔(dān)了圖像的數(shù)據(jù)傳輸任務(wù)。在本系統(tǒng)中,有兩種通信單元可供使用。一種是GPRS/CDMA無(wú)線傳輸模塊。它們通過(guò)串口與S3C2440處理器相連接,在以太網(wǎng)絡(luò)傳輸線纜難以鋪設(shè)的環(huán)境中可以使用這種通信方式。它的缺點(diǎn)是通信帶寬小,傳輸速度慢,但是如果對(duì)實(shí)時(shí)性要求不高,也能夠傳輸高清晰的靜態(tài)圖片。另一種通信單元是10MHz的CS8900a以太網(wǎng)絡(luò)傳輸模塊。它可與局域網(wǎng)相連接,然后將監(jiān)控圖像發(fā)送到局域網(wǎng)的監(jiān)控服務(wù)器或者通過(guò)網(wǎng)關(guān)發(fā)送到互聯(lián)網(wǎng)上。這種通信方式速度高,實(shí)時(shí)性好,但監(jiān)控現(xiàn)場(chǎng)要安裝有線的以太網(wǎng)絡(luò)。

          1.5 攝像機(jī)云臺(tái)的控制

          攝像機(jī)的云臺(tái)控制接口采用RS485通信方式。因S3C2440內(nèi)部只有RS232的控制器,為此使用MAX485芯片設(shè)計(jì)了一個(gè)RS232到RS485的轉(zhuǎn)換接口。該電路原理如圖4所示。

          圖4中RS485的數(shù)據(jù)流方向由GPE13口的電平進(jìn)行控制。

          2 系統(tǒng)軟件的設(shè)計(jì)

          系統(tǒng)軟件包含下位機(jī)軟件、服務(wù)器軟件和客戶端軟件。下位機(jī)軟件部署在遠(yuǎn)程圖像監(jiān)控設(shè)備上。這個(gè)軟件作為一個(gè)Linux的守護(hù)進(jìn)程啟動(dòng),負(fù)責(zé)壓縮采樣到的圖像數(shù)據(jù),并把壓縮后的圖像打包,然后通過(guò)Socket通信方式上傳到監(jiān)控服務(wù)器。如果使用GPRS/CDMA無(wú)線傳輸模塊,上位機(jī)軟件在系統(tǒng)啟動(dòng)完成后,就自動(dòng)進(jìn)行PPP撥號(hào),建立起一條TCP/IP的通信管道。客戶端軟件部署在一臺(tái)連接到互聯(lián)網(wǎng)的PC機(jī)上,它提供給最終用戶瀏覽監(jiān)控畫(huà)面,設(shè)置監(jiān)控參數(shù)等功能。服務(wù)器軟件也部署在一臺(tái)連接到互聯(lián)網(wǎng)的計(jì)算機(jī)上。這臺(tái)計(jì)算機(jī)在互聯(lián)網(wǎng)上有固定的IP或者域名,服務(wù)器軟件作為一個(gè)后臺(tái)進(jìn)程啟動(dòng),為客戶端和遠(yuǎn)程圖像監(jiān)控設(shè)備之間的通信起到一個(gè)橋梁的作用。因?yàn)檫h(yuǎn)程監(jiān)控設(shè)備的IP地址是動(dòng)態(tài)的,無(wú)法被客戶端直接尋址,因此就需要服務(wù)器作為雙方通信的中間橋梁。

          下位機(jī)軟件通過(guò)驅(qū)動(dòng)程序提供的接口,在遠(yuǎn)程圖像監(jiān)控設(shè)備中完成硬件的初始化、控制等功能,同時(shí)又負(fù)責(zé)圖像的壓縮和傳輸。它是所有設(shè)備的控制中樞,因此這里著重描述下位機(jī)軟件的工作流程,如圖5所示。

          為了省電,一些像SAA7113、攝像機(jī)和夜視紅外燈等大功耗的器件和設(shè)備只有在需要時(shí)才工作,所以這些設(shè)備在初始化時(shí)都是斷開(kāi)電源的。

          下位機(jī)程序讀取保存在設(shè)備上的設(shè)備ID號(hào)(該ID號(hào)是唯一的),以及監(jiān)控服務(wù)器的域名/IP地址和端口,然后下位機(jī)程序作為Socket連接的客戶端主動(dòng)與監(jiān)控服務(wù)器進(jìn)行連接。連接成功之后,送出設(shè)備的ID號(hào)。這時(shí)如果有監(jiān)控的客戶端想要查看某個(gè)遠(yuǎn)程監(jiān)控設(shè)備的圖像,只要向監(jiān)控服務(wù)器發(fā)出請(qǐng)求,告訴服務(wù)器要連接的設(shè)備ID號(hào),服務(wù)器就會(huì)根據(jù)這個(gè)ID號(hào)對(duì)應(yīng)的Socket句柄,為客戶端和遠(yuǎn)程監(jiān)控設(shè)備建立一個(gè)Socket連接通道。

          3 總結(jié)

          遠(yuǎn)程圖像無(wú)線監(jiān)控系統(tǒng)在高壓輸電線路的覆冰監(jiān)測(cè)中得到了成功的應(yīng)用。在野外全天候環(huán)境下,適時(shí)準(zhǔn)確地監(jiān)測(cè)高壓輸電線路覆冰厚度,同時(shí)發(fā)出預(yù)警處理信息,從而有效地避免了斷纜事故的發(fā)生。

          遠(yuǎn)程圖像監(jiān)控技術(shù)是隨著計(jì)算機(jī)技術(shù)、數(shù)字通信技術(shù)、網(wǎng)絡(luò)技術(shù)、自動(dòng)控制技術(shù)以及LSI、VLSI集成電路的發(fā)展而發(fā)展的,而基于ARM9嵌入式處理器的本系統(tǒng)正是這些技術(shù)學(xué)科相互交叉和融合發(fā)展的集中體現(xiàn)。實(shí)踐證明,ARM9處理器的低功耗、高性能和多功能的特性滿足了遠(yuǎn)程圖像監(jiān)控的許多特殊需求,是實(shí)現(xiàn)遠(yuǎn)程圖像監(jiān)控的很好選擇。


          上一頁(yè) 1 2 3 下一頁(yè)

          關(guān)鍵詞:

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();