999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

寵物智能喂養系統視頻采集驅動設計

2014-01-16 09:21:22郭來霄
電子設計工程 2014年4期
關鍵詞:設備系統

盛 平,郭來霄

(江蘇大學 計算機科學與通信工程學院,江蘇 鎮江 212013)

隨著我國社會經濟的快速發展,城市化進程不斷加速。我國國民生活水平不斷得到提高,我國寵物業也得到了飛速的發展。由于城市生活的封閉性、個性化和人口老齡化等問題不斷凸顯出來。人民生活中休閑、消費和情感寄托方式也呈多樣化的發展。家庭寵物的飼養已經成為了城市居民生活消遣的新方式。

寵物的喂養和看護往往是寵物主人最關心的問題,目前寵物主要還是依靠人工進行喂食,寵物看護系統還停留在專人看護和寵物店托管的模式下?,F有的寵物看護裝置只解決了不讓寵物餓肚子的簡單層面,而沒有解決主人不在家時,寵物和主人的互動要求。主人比較關心的問題,比如寵物現在在做什么,有沒有吃飯,寵物健康狀況怎么樣等,這些心理訴求的滿足才是一套寵物看護系統要解決的問題。而現在的設備還不能滿足這一需求。

目前的家庭寵物看護系統為數不多,算得上看護系統的產品功能單一,只是簡單的測量寵物環境和喂食,不能同時滿足用戶既可以遠程喂養寵物又可以在線觀看寵物進食情況和活動狀況的需求。近年來隨著嵌入式技術迅速的發展,嵌入式系統已經成熟并得到廣泛應用,把嵌入式系統與Web技術結合起來,將Web技術引入到測控系統,實現基于嵌入式Web服務器的遠程測控系統,有良好的應用前景[1]。在嵌入式Linux平臺下利用Boa作為Web服務器的遠程測控系統可以實現上述需求,搭載有高度集成的嵌入式實時視頻采集平臺的寵物智能喂養系統能很好的滿足客戶的不同需求。通過嵌入式實時視頻采集平臺上的紅外CCD攝像頭,寵物主人可以在白天或者晚上用智能手機、平板電腦、PC電腦等通過WEB控制寵物進食同時可以查看寵物進食和活動情況。

在本系統中,驅動程序用來完成用戶和硬件的交互,是硬件設備正常工作的先決條件,充當著不可缺少的角色。本文提出一種基于S3C6410的Linux3.0.1內核版本下的視頻采集系統驅動設計方案,并已成功用于寵物智能喂養系統中,收到良好的效果。

1 硬件系統構架

寵物智能喂養系統主要由圖像采集模塊、視頻解碼模塊、S3C6410、喂食模塊、喂水模塊和顯示模塊組成。紅外CCD攝像頭用于采集智能喂養系統工作狀態中的寵物的進食和活動情況圖像,由于S3C6410不能識別采集到的PAL制式信號,因此需要做視頻解碼處理,這里選用TI公司推出的Tvp5150解碼器,用于將采集到的PAL制式信號轉換成YCrCb格式。S3C6410是整個系統的核心部分,轉換后的數字信號數據經編碼DMA通道進入Camera單元的編碼縮放器,經過高編碼質量和壓縮比的H264編碼后保存到用戶程序開辟的緩存區中,然后傳輸到live555流媒體服務器接收程序中,live555實現了對編碼后視頻流的流化和相關的處理,最后通過嵌入網頁端的流媒體播放器VLC media player播放器實時顯示。系統中的喂食模塊可以實現寵物所需食物的定量投放,喂水模塊可以實現自動喂水和遠程喂水的功能。另外為了方便對圖像進行相關處理,需要NAND FLASH用于存儲截取的圖像,同時,SDRAM、JTAG和供電部分等常用外圍接口是開發過程中不可缺少的部分。由此搭建的高度集成的實時視頻采集系統具有顯著的小型化效果。系統整體框架如圖1所示。

1.1 S3C6410開發平臺

S3C6410是基于 16/32-bit RISC ARMll76JZF-S內核的低成本、低功耗、高性能微處理器,具有高達533 MHz的主頻,4 G ROM和512 M RAM,性能強大,堪比當今主流智能手機。S3C6410內部集成了許多功能強大的硬件加速器,像視頻處理、移動圖像處理、顯示控制和圖像縮放等,集成了Camera接口單元、系統管理器、LCD控制器、定時器、通用I/0端口、12C總線接口等硬件外設,具有先進的OTG接口和能支持SLC/MLC等主流的NAND FLASH[2]。與本系統直接相關的Camera接口單元由7個模塊組成:圖形多路選擇器、捕獲單元、預覽縮放器、編碼縮放器、預覽DMA通道、編碼DMA通道和SFR(特殊功能寄存器)[3]。系統中的兩個DMA通道分別是:預覽DMA通道和編碼DMA通道,其中預覽DMA通道用于液晶屏的顯示,可以把YCbCr4:2:2格式的圖像轉換成RGB格式的數據,并存放于為預覽DMA分配的內存中。編碼通道用于圖像的編解碼處理,可以輸出YCbCr4:2:0或YCbCr4:2:2格式到為編碼DMA分配的內存中。

1.2 紅外CCD攝像頭和TVP5150視頻解碼器

系統中的紅外CCD攝像頭采用優質的1/3英寸SONY CCD芯片,優異的紅外夜視功能,內置24顆紅外燈,夜視距離達5~10 m。其技術參數:DC 12 V 220 mA,紅外燈打開時DC 12 V 1 000 mA,420 TVL,像素頻率27 MHz,輸出PAL制式視頻信號。

TVP5150是TI公司推出的一款超低功耗高性能視頻解碼器,可以對NTSC/PAL/SECAM各制式信號自動識別、切換、設置相應的寄存器,TVP5150解碼器優化的架構使其正常工作時功耗僅115 mW,廣泛應用于便攜、批量大、高性能和高質量的視頻產品中。TVP5150解碼器有一個模擬輸入通道,可以接受1路S-VIDEO信號或2路復合視頻信號 (CVBS),紅外CCD攝像頭采集到的圖像以每秒25幀的速度向TVP5150輸出PAL制式的圖像數據,TVP5150對輸入的PAL制式信號進行自動識別并進行A/D轉換,轉換為符合ITU-R BT.656標準的8位數字YCbCr4:2:2信號。ITU-R BT.656是ITU-R BT.601附件A中的數字接口標準,ITU-R BT.656輸出8位Y:Cb:Cr=4:2:2的數據格式,同步信號內嵌于數據流中串行輸出,也可以單獨引腳與數據流并行輸出[4]。TVP5150可以輸出8位4:2:2的 ITU-R BT.656信號或8位 4:2:2的 ITU-R BT.601信號,這和S3C6410的Camera模塊的輸入信號格式一致,為視頻格式轉換節省了大量工作,TVP5150解碼器內部含有多個特殊功能寄存器,可被編程使用I2C串行接口,用戶通過I2C總線設置外部視頻解碼芯片TVP5150的內部寄存器,從而設定工作狀態。TVP5150芯片的原理圖如圖2所示。

圖2 TVP5150原理圖Fig.2 diagram of TVP5150

2 驅動設計

本系統驅動主要包括兩大部分:處理器 S3C6410的Camera接口驅動和視頻解碼器TVP5150驅動。Camera接口驅動為上層的應用程序提供了底層支持,遵循V4L2標準;視頻解碼器TVP5150驅動完成了I2C設備的注冊,遵循I2C通訊協議,實現了讀寫內部寄存器的接口函數。

2.1 Camera 接口驅動

V4L2(Video For Two)是Linux內核中關于視頻設備的API接口,主要用來對視頻設備進行開關、采集、輸出等操作。在嵌入式系統中多采用Linux作為其軟件平臺,V4L2是Linux2.6采用的內核驅動模型,與之前版本的V4L存在很大差別。V4L2使在Linux下開發視頻設備驅動程序具有統一的接口規范,這套規范給驅動程序開發提供了清晰的模型和接口。應用程序處于最上層,硬件設備處于最下層,這套規范就處于中間層。在Linux2.6發行版之前此類規范都是V4L,它將所有的視頻設備驅動程序都放在其管理中,為編程人員減少了大量的工作[5]。

本方案采用Linux為操作系統,內核版本為3.0.1,相對之前的linux2.6.28而言,內核版本進行了升級,升級之后的linux3.0.1版本兼容了更多的硬件,修復了之前系統中的bug和某些資源的沖突問題,系統安全性能得到了顯著提高。Camera接口驅動正是按照V4L2標準來完成的。s3c_time_core.c文件實現了設備的注冊和大部分系統調用,是驅動的核心,v412接口的ioctl系統調用依靠s3c_time_v412.c來實現。

在Linux操作系統中,設備被映射為特殊的文件,設備驅動程序為各種設備提供一致的訪問接口,應用程序通過調用open、close、read、write等函數去操作相應的設備文件來訪問設備。open()函數用來打開視頻文件設備;camera接口底層的讀寫用 read()和 write()實現;mmap()取代了以前 的copy_to_user()方式,用內存映射方式把設備內存映射到應用程序內存中,從而直接處理設備內存;當video_device配置完畢,在 s3c_time_probe()中通過 video_register_device()函數完成注冊。

2.2 TVP5150驅動

2.2.1 Linux下I2C驅動體系結構

I2C總線是由PHILIPS公司開發的微電子通信控制領域廣泛采用的一種新型總線標準,用于連接微控制器及其外圍設備,其最主要的特點是簡單性和有效性。Linux系統中把I2C設備當作一個普通的字符設備來處理,對I2C設備具有很好的支持,Linux下的I2C體系結構分為3個組成部分:I2C核心、I2C總線驅動和I2C設備驅動。

I2C核心是內核用來維護和管理I2C的核心部分,提供了I2C總線驅動和設備驅動的注冊,注銷方法,I2C總線驅動是對I2C硬件體系結構中適配器端的實現,主要包含了I2C適配器數據結構i2c_adapter、I2C適配器的 algorithm數據結構i2c_algorithm和控制I2C適配器產生通信信號的函數。I2C設備驅動是對I2C硬件體系結構中設備端的實現,設備一般掛接在受CPU控制的I2C適配器上,通過I2C適配器與CPU交換數據。I2C設備驅動主要包含了數據結構i2c_driver和i2c_client,我們需要根據具體設備實現其中的成員函數[6]。Linux I2C體系結構圖如圖3所示。

2.2.2 TVP5150驅動實現

Linux3.0.1相對linux2.6.28而言驅動程序函數接口發生了一些變化,驅動程序進行了優化,TVP5150驅動具體實現如下:TVP5150驅動程序首先要實現對I2C core層的接口,用以掛接I2C adapter層來實現對I2C總線及I2C設備具體的訪問方法,主要包括需要編寫 TVP5150_init()、TVP5150_probe()、TVP5150_remove()等接口函數。

圖3 Linux I2C體系結構圖Fig.3 Structure diagram of Linux I2C system

tvp5150_init()初始化函數,主要調用i2C_add_driver(&tvp5150_i2c_driver)添加設備驅動。

tvp5150_probe()在使用 i2C_add_driver()注冊時被調用,用來檢查被發現的所有的I2C適配器是否符合I2C驅動的特定條件,如果符合相關條件則進行連接,并通I2C適配器來實現對I2C總線及I2C設備的訪問。

tvp5150_remove()在刪除Tvp5150時被調用,使Tvp5150解碼器脫離I2C適配器,并且清除描述該設備相關數據結構。

本文的驅動程序主要實現以下環節:

首先增加了填充camera接口的結構體:static struct s3c_fimc_camera tvp5150_da-ta,結構體中主要描述了攝像頭的參數,比如圖像尺寸720×240,圖像格式ITU_656_YCBCR422_8BIT,像素頻率27 MHz等。這些數據在初始化camera接口時要用到。在 tvp5150_probe(struct i2c_client*c, const struct i2c_device_id*id)函數中增加了一個函數接口s-3c_fimc_r egister_camera(&tvp5150_data)用于把上面這個結構體填入struct s3c_fimc_config s3c_fimc這個全局變量中,其次定義tvp5150驅動配置參數的結構體tvp5150_i2c_driver,在tvp5150_init()函數中調用 i2c_add_driver(&tvp5150_i2c_driver)添加驅動,之后 tvp5150_probe()被調用時 tvp5150_attach_adapter()會被調用,通過遍歷系統中的所有I2C總線驅動來探測Tvp5150,然后調用內核中已經注冊的適配器來連接Tvp5150。 tvp5-150_attach_adapter()函數主要調用 i2c_detect(adapter,driver)函數來探測設備,探測到目標設備之后創建一個struct i2c_client結構來標識這個設備。

初始化Tvp5150內部特殊功能寄存器的操作主要通過tvp5150_probe()函數來實現,函數中調用i2c_smbus_write_byte_data (c,TVP5150_init_reg[i].subaddr, TVP5150_init_reg[i].value)來完成寄存器的設置,從而完成了初始化tvp5150的過程。其圖像采集驅動流程圖如圖4所示。

3 驅動移植和相關實驗結果

1)驅動程序編寫好之后,在Kconfig-camera文件中添加與驅動相對應項目的編譯配置選項:

config TVP5150

圖4 圖像采集驅動流程圖Fig.4 Flow diagram of image capturing driver

bool"TVP5150"

depends on VIDEO_FIMC

---help---

LYT TVP5150 camera module support

2)在Makefile文件中添加對驅動的編譯條目:

obj-$(CONFIG_TVP5150) +=tvp5150.o

3)修改 mach-smdk6410.c文件:

在i2c_board_info i2c_devs0[]_initdata結構體中{I2C_BOARD_INFO ("ov965x", 0x30), }, 語 句 后 面 添 加{I2C_BOARD_INFO("tvp5150", 0x5c), },

4)進入 linux-3.0.1 內核目錄,執行 make menuconfig進行相關的配置:

其中 External Camera (TVP5150) --->

ResetType(0=low,1=high)前面的選擇框里要選擇0

5)進入內核目錄執行make zImage,重新編澤內核,生成內核文件,將新的內核燒寫到開發板,運行測試程序即可測試到視頻設備采集到的實時圖像,如圖5~7所示。

圖5 寵物智能喂養系統中喂食部分采集圖像Fig.5 Image capturing diagram of intelligent feeding system

圖6 食物從喂食裝置進入喂食箱時的圖像Fig.6 Image of food entering the feeding box from the feeding device

4 結束語

圖7 寵物食物進入喂食箱后的圖像Fig.7 Image after food entering feeding box

通過開發實例詳細介紹了寵物智能喂養系統視頻采集的驅動設計,實現了TI公司視頻解碼芯片TVP5150驅動程序的設計,并成功移植到開發板上,具有較高的性價比,可用于視頻采集、遠程監控等眾多領域,該系統視頻監控的實現滿足了遠程實時觀看寵物進食和活動情況的需求,對寵物看護系統的進一步完善提供了幫助,在實際測試中,該系統測試結果令人滿意,實現了對寵物遠程定時定量的喂食,該系統成本很低,具有很好的應用和推廣價值。

[1]卞東進,顧昊琳,潘應云.基于嵌入式Linux的Web遠程測控系統的設計與實現[J].電子工程師,2008,34(7):68-70.BIAN Dong-jin,GU Hao-lin,PAN Ying-yun.Design and implementation of a remotement measurement and control system based on Embedded Linux Web Server[J].Electronic Engineer, 2008,34(7):68-70.

[2]S3C6410數據手冊.三星公司[Z].2008.

[3]劉寧,周孟特,王智芳,等.便攜式紅外電路故障檢測儀視頻采集驅動設計[J].計算機工程與科學,2010,33(12):189-193.LIU Ning,ZHOU Meng-te,WANG Zhi-fang,et al.The driver design of video capturing in Portable Infrared Detection Testers[J].Computer Engineering&Science,2010,33(12):189-193.

[4]王凱.基于TVP5150的視頻LCD顯示設計[J].電子設計工程,2011,19(1):178-181.WANG Kai.Design of Video LCD monitor based on TVP5150[J].Electronic Design Engineering,2011,19 (1):178-181.

[5]張輝,李新華,劉波,等.基于V4L2的視頻設備驅動開發與移植[J].電腦知識與技術,2010,6(15):3988-3990.ZHANG Hui,LI Xin-hua,LIU Bo,et al.The video device driver programming and proting based on V4L2[J].Computer Knowledge and Technology,2010,6(15):3988-3990.

[6]宋寶華.Linux設備驅動開發詳解[M].北京:人民郵電出版社,2010.

猜你喜歡
設備系統
諧響應分析在設備減振中的應用
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
主站蜘蛛池模板: 男人的天堂久久精品激情| 国产真实乱子伦视频播放| 日韩无码视频网站| 欧美成人国产| 久996视频精品免费观看| 亚洲一区网站| 青青热久免费精品视频6| 一级毛片在线免费看| 99视频精品全国免费品| 国产91线观看| 国产91蝌蚪窝| 亚洲中文字幕久久无码精品A| 国内嫩模私拍精品视频| 日韩不卡高清视频| 午夜福利亚洲精品| 免费啪啪网址| 熟妇人妻无乱码中文字幕真矢织江| 亚洲一区二区三区国产精品 | 亚洲精品欧美日韩在线| 九九视频免费在线观看| 亚洲国产精品一区二区第一页免| 亚洲天堂网在线观看视频| 91尤物国产尤物福利在线| 九色国产在线| 亚洲bt欧美bt精品| 成·人免费午夜无码视频在线观看| 亚洲精品天堂在线观看| 国产精品自在线拍国产电影| 日韩国产欧美精品在线| 亚洲欧美不卡中文字幕| 午夜精品区| 国产 在线视频无码| 久久久久亚洲精品无码网站| 日韩av高清无码一区二区三区| 国产精品妖精视频| 九九热这里只有国产精品| 国产情精品嫩草影院88av| 免费午夜无码18禁无码影院| 国产在线视频二区| 1024你懂的国产精品| 97青草最新免费精品视频| 免费a在线观看播放| 国产成人1024精品| 精品色综合| 91亚洲精品国产自在现线| 日本精品αv中文字幕| 亚洲av无码牛牛影视在线二区| 美女国内精品自产拍在线播放| 制服丝袜一区二区三区在线| 国产毛片基地| 中文国产成人精品久久| 自拍偷拍欧美日韩| 老司机精品一区在线视频| 在线无码av一区二区三区| 国产精品自在线天天看片| 国产永久在线观看| 亚洲欧美另类中文字幕| 免费一级毛片在线播放傲雪网| 亚洲天堂视频网站| 欧美成人午夜在线全部免费| 99热在线只有精品| 成人精品视频一区二区在线| 一本大道东京热无码av| 国产欧美日韩资源在线观看| 亚洲69视频| 久久久久人妻一区精品色奶水| 人妻中文久热无码丝袜| 欧美a在线看| 亚洲系列中文字幕一区二区| 九九香蕉视频| 国产成人毛片| 999精品色在线观看| 国产视频a| 欧美精品高清| 久久99国产视频| 亚洲精品自拍区在线观看| 国产精品无码制服丝袜| 91成人免费观看| 高清色本在线www| 高清欧美性猛交XXXX黑人猛交 | a天堂视频| 日韩高清中文字幕|