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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于S3C2440處理器的遠程圖像無線監(jiān)控系統(tǒng)設(shè)計方案

          基于S3C2440處理器的遠程圖像無線監(jiān)控系統(tǒng)設(shè)計方案

          作者: 時間:2011-12-06 來源:網(wǎng)絡(luò) 收藏

          SAA7113 的CE 引腳與 的一個GPIO 引腳相連,這樣可以控制SAA7113的工作狀態(tài)。當無須采集圖像時,將該GPIO口輸出低電平,使SAA7113芯片處于低功耗狀態(tài),節(jié)省電能的消耗。對照圖2和圖3可以看出,SAA7113芯片就是圖2的“外部圖像傳感器”。它向嵌入式系統(tǒng)的攝像機接口提供了采樣到的標準ITU視頻數(shù)據(jù)。這些數(shù)據(jù)經(jīng)過DMA的P端口或C端口控制傳輸?shù)搅藘?nèi)存,這樣就可以在內(nèi)存中對圖像數(shù)據(jù)作進一步的加工處理。

          1.2 采樣接口驅(qū)動

          圖像采樣接口的驅(qū)動按照Linux視頻設(shè)備驅(qū)動的模型V4L(video for Linux)編寫了SAA7113與攝像機接口的驅(qū)動。驅(qū)動使用C端口模式與DMA進行通信。采樣1幀圖像之前,首先設(shè)置采樣圖像的分辨率和剪輯窗口大小等參數(shù),然后設(shè)置DMA控制器訪問的視頻采樣輸出緩沖的內(nèi)存地址,接著就可以通過設(shè)置的CAMIF接口控制寄存器啟動1幀圖像的采集。當采集完1幀圖像時,CAMIF接口會自動啟動1次C端口的DMA通信,把采集的圖像數(shù)據(jù)傳到內(nèi)存。傳輸結(jié)束后,會產(chǎn)生一個C端口的中斷,通知驅(qū)動1幀數(shù)據(jù)采樣和傳輸結(jié)束。具體來說,這個驅(qū)動需要實現(xiàn)以下功能:

          初始化S3C2440的CAMIF接口的時鐘寄存器。主要是根據(jù)SAA7113的外接晶振頻率設(shè)置攝像機時鐘分頻寄存器(CAMDIVN)。該寄存器的0~3位是分頻系數(shù),其計算方法是:

          CAMCLK_DIV=UPLL/(CAMCLK * 2)-1

          (初始化代碼略— — 編者注)

          配置CAMIF接口的采樣參數(shù)。主要是輸入源圖像數(shù)據(jù)的格式、輸出的圖像格式、采樣的窗口大小、DMA的訪問地址等參數(shù)。這里定義了一個結(jié)構(gòu),用于存儲與CAMIF接口相關(guān)的配置信息:

          基于S3C2440處理器的遠程圖像無線監(jiān)控系統(tǒng)設(shè)計方案

          上述這些配置信息最終是與一系列的寄存器相關(guān)聯(lián)的。這個結(jié)構(gòu)為讀/寫寄存器提供了一個清晰的、集中的存儲緩沖。

          打開、關(guān)閉和控制攝像機的接口函數(shù)。這3個接口函數(shù)是按V4L規(guī)范編寫的,其原型如下:

          ① 打開攝像機接口函數(shù):

          static int

          v4l_cam_open(struct video_device *v,int mode);

          ② 控制攝像機接口函數(shù):

          static int

          v4l_cam_ioctl(struct video_device *v,unsigned int cmd,void *arg);

          ③ 關(guān)閉攝像機接口函數(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ù)的實現(xiàn)函數(shù)。該函數(shù)通過dev→rdy的值判斷1幀圖像有無采集轉(zhuǎn)換結(jié)束。如果該值置1,則表示采樣結(jié)束,這時就可以從圖像數(shù)據(jù)的緩沖中拷貝數(shù)據(jù)到用戶的存儲空間;如果為0,則函數(shù)進入阻塞或返回EAGAIN標志。順便提一下,dev→rdy的值是在中斷處理函數(shù)中設(shè)置的。(實現(xiàn)代碼略——編者注)

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

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



          評論


          相關(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); })();