• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于ARM11的圖像采集系統(tǒng)設計

    2013-06-29 01:47:26符多鐸譚秋林王紅亮王道勝
    電視技術 2013年9期
    關鍵詞:開發(fā)板服務器端攝像頭

    符多鐸,譚秋林,王紅亮,王道勝

    (中北大學儀器科學與動態(tài)測試教育部重點實驗室電子測試技術國家重點實驗室,山西 太原 030051)

    隨著科學技術的發(fā)展,圖像采集與處理技術的應用越來越廣泛。設計能夠?qū)崿F(xiàn)圖像采集與圖像處理一體化、結(jié)構(gòu)緊湊并能有效降低成本的專用圖像處理系統(tǒng),將具有很大的市場應用前景。如果采用計算機作為主處理器,用PCI或其他總線接口來實現(xiàn)圖像采集,雖然圖像數(shù)據(jù)采集的實時性能得到保證,但系統(tǒng)的體積大,整體結(jié)構(gòu)復雜,不便于應用到便攜式環(huán)境中[1]。但如果采用單片機或FPGA這類微處理器來代替計算機,這時圖像數(shù)據(jù)采集的實時性又難以實現(xiàn),從而導致系統(tǒng)的整體性能降低。近年來,隨著嵌入式技術的發(fā)展,ARM處理器運算的能力不斷地增強以及處理圖像的技術不斷地提高,基于ARM的圖像采集廣泛地被用于各個領域[2-5]。本系統(tǒng)采用S3C6410作為處理器,實現(xiàn)了基于ARM11實時對攝像頭圖像進行采集,并增強了圖像采集的性能。

    1 系統(tǒng)組成

    本系統(tǒng)硬件平臺主要是ARM11開發(fā)板加上一些輔助性的外圍設備,用到的外圍設備主要有網(wǎng)絡端口、CMOS攝像頭等。開發(fā)板采用的是韓國三星公司的S3C6410處理器,該處理器功能強大,采用ARM1176JZF-S的核,包含16 kbyte的指令數(shù)據(jù)Cache和16 kbyte的指令數(shù)據(jù)TCM。使用的攝像頭是OV9650攝像頭,這款攝像頭采用 CMOS 圖像傳感器,支持 YUV,RGB565,RGB555,GRB,RAW RGB等多種輸出格式,全部可以通過寄存器來設置。本方案主要用到RGB輸出模式,OV9650主要通過PCLK時鐘與HREF來控制8 bit并行數(shù)據(jù)的傳輸。

    平臺的軟件系統(tǒng)采用嵌入式Linux系統(tǒng),它是源碼開放的嵌入式操作系統(tǒng),支持多任務,具有完備的TCP/IP協(xié)議棧并支持多種文件系統(tǒng)[6]。另外Linux系統(tǒng)能夠方便地進行移植和內(nèi)核定制,也使得本系統(tǒng)實現(xiàn)起來較為方便和簡單,如Video4Linux2內(nèi)核應用編程接口函數(shù),能實現(xiàn)對OV9650攝像頭單幀圖像的采集,并保存成文件供進一步處理。

    系統(tǒng)組成如圖1所示。

    圖1 系統(tǒng)組成框圖

    2 Linux系統(tǒng)平臺搭建

    往開發(fā)板中燒寫嵌入式Linux操作系統(tǒng)的具體的操作流程如下:

    1)打開軟件SD-Flasher.exe燒寫軟件,將FAT32格式的SD卡連入計算機,將要燒寫的u-boot燒寫到SD卡中。利用串口調(diào)試軟件dnw來訪問開發(fā)板,并將u-boot文件拷貝到開發(fā)板的nandflash中。點擊serial port/transmit,如圖2 所示。

    圖2 dnw軟件菜單選項(截圖)

    2) 選擇文件“u-boot_nand_ram256.bin”,打開后將Linux內(nèi)核燒寫到NandFlash里面。

    3)接下來將UBIF文件系統(tǒng)拷貝到開發(fā)板中,選擇文件 rootfs_qtopia_qt4-mlc2.ubi,打開,這樣就完成了將文件系統(tǒng)燒寫到NandFlash中,如圖3所示。

    圖3 dnw軟件選擇文件系統(tǒng)相關文件(截圖)

    4)重新啟動開發(fā)板,這樣就可以進入Linux系統(tǒng)了。

    3 應用程序的編寫

    3.1 下位機服務器端程序的編寫

    下位機服務器端程序流程如圖4所示。

    圖4 下位機服務器端程序流程圖

    首先,打開OV9650攝像頭設備,在/dev下會有設備/dev/video0,打開設備/dev/video0,通過ioctl函數(shù)即可以對攝像頭設備進行操作,將采集到的圖像傳遞給socket網(wǎng)絡服務器端口,socket套接字將數(shù)據(jù)發(fā)送到網(wǎng)絡端口上,本設計網(wǎng)絡端口號設為8888。

    本設計中圖像采集主要是靠Linux中視頻設備內(nèi)核驅(qū)動Video4Linux2來實現(xiàn)的。在Linux中,訪問視頻設備可以像訪問普通文件一樣進行讀寫,攝像頭在/dev/video0下。

    Video4Linux2在本設計中用到的結(jié)構(gòu)體及其說明如下:

    本設計用到命令標識符及其功能說明如下:

    Video4Linux2下視頻編程的流程如下:

    1)打開視頻設備;

    2)通過ioctl函數(shù)查詢驅(qū)動功能;

    3)通過ioctl函數(shù)獲取設備的輸入;

    4)通過ioctl函數(shù)查看當前設備是否有輸入輸出數(shù)據(jù);

    5)通過ioctl函數(shù)獲取并設置幀參數(shù);

    6)通過ioctl函數(shù)開始采集數(shù)據(jù)。

    關于socket服務器端TCP協(xié)議編程如下:

    下面幾個函數(shù)是本程序中用到的socket API,這些函數(shù)都在 sys/socket.h 中。

    1)int socket(int family,int type,int protocol);//打開網(wǎng)絡通訊端口

    2)int bind(int sockfd,const struct sockaddr*myaddr,socklen_t addrlen);//將參數(shù)sockfd和myaddr綁定在一起,使sockfd這個用于網(wǎng)絡通訊的文件描述符監(jiān)聽myaddr所描述的地址和端口號

    3)int listen(int sockfd,int backlog);//listen()聲明sockfd處于監(jiān)聽狀態(tài)

    4)int accept(int sockfd,struct sockaddr*cliaddr,socklen_t*addrlen);//三次握手完成后,服務器調(diào)用accept()接受連接

    服務器程序結(jié)構(gòu)為:

    整個服務器程序是一個while死循環(huán),每次循環(huán)處理一個客戶端連接,通過connfd進行通信,然后關閉connfd斷開連接,而不關閉listenfd。accept()成功返回一個文件描述符,出錯返回-1。

    3.2 上位機客戶端程序的編寫

    上位機客戶端程序流程如圖5所示。

    圖5 上位機客戶端程序流程圖

    打開系統(tǒng)本身自帶的framebuffer,并進行初始化,利用內(nèi)存映射將framebuffer映射到內(nèi)存上以便以后對采集到的圖像進行操作。framebuffer是Linux內(nèi)核當中的一種驅(qū)動程序接口。framebuffer機制模仿顯卡的功能。用戶可以將framebuffer看成是顯示內(nèi)存的一個映像,將其映射到進程地址空間之后,就可以直接進行讀寫操作,而寫操作可以立即反應在屏幕上。這種操作是抽象的,統(tǒng)一的。主要利用open函數(shù)來打開文件,ioctl函數(shù)來找出framebuffer顯示的邊界以及framebuffer顯示像素的位數(shù)等,mmap函數(shù)來進行內(nèi)存映射。

    打開CMOS攝像頭設備并且進行初始化,確定采集到數(shù)據(jù)的格式,本設計將采集到的數(shù)據(jù)自動轉(zhuǎn)換為RGB565格式,這樣傳輸時對于數(shù)據(jù)進行處理也會比較簡單。

    通過socket網(wǎng)絡編程接收采集到的數(shù)據(jù)給上位機,是RGB565格式的,通過函數(shù)RGB565to32將16 bit格式的數(shù)據(jù)轉(zhuǎn)換成在計算機上可顯示的32 bit格式,之后在計算機上將圖像通過內(nèi)存映射的方法將圖像顯示出來。

    4 實驗結(jié)果及分析

    硬件實物如圖6所示。

    圖6 實物圖示

    啟動開發(fā)板,將程序拷貝到開發(fā)板里,通過計算機控制開發(fā)板,執(zhí)行服務器端的程序。然后在PC機上轉(zhuǎn)換到命令行模式,按“s”保存圖片。保存的圖片如圖7所示。

    圖7 采集的圖像

    在圖像采集領域,利用ARM微處理器來控制圖像傳感器進行圖像采集,有其他微處理芯片所不能達到的優(yōu)勢。加之,可以很方便地在ARM開發(fā)板上搭建代碼全公開的嵌入式Linux操作系統(tǒng),這樣使得基于ARM的圖像采集系統(tǒng)在今后的圖像采集領域會有更大的發(fā)展。

    [1]胡志海,王德君,趙巧云,等.基于SOPC的便攜式智能圖像采集系統(tǒng)設計[J].儀器儀表學報,2010,31(2):371-376.

    [2]劉攀,王紅亮,孟令軍.基于FPGA的數(shù)字圖像采集存儲系統(tǒng)的設計[J].電視技術,2010,34(6):32-34.

    [3]劉珂含,何培宇,關勝平,等.基于TMS320VC5509A的圖像采集與識別系統(tǒng)[J].四川大學學報:自然科學版,2008,45(1):48-52.

    [4]嚴新忠,陳雨.基于嵌入式ARM的圖像采集與傳輸設計[J].研究與開發(fā),2009,28(11):57-59.

    [5]劉紅喜,李長江,孫俊喜.基于DSP的圖像采集及處理系統(tǒng)的設計與實現(xiàn)[J].電子技術與應用,2009(2):22-26.

    [6]王剛,毛劍飛,田青,等.基于ARM11的無線視頻監(jiān)控系統(tǒng)[J].計算機系統(tǒng)應用,2011,20(8):18-22.

    猜你喜歡
    開發(fā)板服務器端攝像頭
    浙江首試公路非現(xiàn)場執(zhí)法新型攝像頭
    攝像頭連接器可提供360°視角圖像
    淺析異步通信層的架構(gòu)在ASP.NET 程序中的應用
    成功(2018年10期)2018-03-26 02:56:14
    Microchip最新推出兩款PIC32 Curiosity開發(fā)板
    淺析單片機開發(fā)板的設計與制作
    電子制作(2017年22期)2017-02-02 07:10:14
    在Windows中安裝OpenVPN
    奔馳360°攝像頭系統(tǒng)介紹
    Mouser為您呈上開發(fā)關鍵之STMicroelectronics Nucleo開發(fā)板
    Arduino和Atmel發(fā)布Arduino Zero開發(fā)板
    網(wǎng)頁防篡改中分布式文件同步復制系統(tǒng)
    肃北| 宝丰县| 曲靖市| 金塔县| 常宁市| 遂川县| 吉木萨尔县| 永福县| 荆州市| 南华县| 阳原县| 封开县| 泸水县| 平和县| 株洲县| 仁寿县| 石柱| 上饶县| 双桥区| 九龙县| 监利县| 广宁县| 青神县| 康乐县| 尼勒克县| 特克斯县| 汝南县| 搜索| 应用必备| 恩施市| 正宁县| 抚顺县| 特克斯县| 汕尾市| 五华县| 永平县| 曲靖市| 平谷区| 张家港市| 库车县| 长丰县|