《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 自動(dòng)裝載與視頻監(jiān)控遠(yuǎn)程控制系統(tǒng)
自動(dòng)裝載與視頻監(jiān)控遠(yuǎn)程控制系統(tǒng)
2017年微型機(jī)與應(yīng)用第1期
李子昌,李智,管四海
西安電子科技大學(xué) 機(jī)電工程學(xué)院,陜西 西安 710071
摘要: 設(shè)計(jì)了一種嵌入式自動(dòng)裝載與視頻監(jiān)控系統(tǒng),并通過網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)程控制。該系統(tǒng)采用S3C2410處理器,移植Linux操作系統(tǒng),成功運(yùn)行在S3C2410上。視頻監(jiān)控模塊使用的攝像頭是USB接口形式,移植對(duì)應(yīng)的Linux驅(qū)動(dòng)程序,攝像頭才能正常采集數(shù)據(jù)。移植Libjpeg開源庫(kù),對(duì)經(jīng)硬件壓縮的圖像進(jìn)行解壓,通過顯示終端顯示,進(jìn)而實(shí)時(shí)對(duì)現(xiàn)場(chǎng)進(jìn)行監(jiān)控。自動(dòng)裝載模塊的實(shí)現(xiàn),首先設(shè)定期望的貨物擺放路徑,其次利用Framebuffer幀緩沖寫屏技術(shù)在顯示終端上顯示自動(dòng)裝載過程。通過Socket網(wǎng)絡(luò)接口,上位機(jī)可對(duì)該系統(tǒng)進(jìn)行遠(yuǎn)程控制
Abstract:
Key words :

  李子昌,李智,管四海

  (西安電子科技大學(xué) 機(jī)電工程學(xué)院,陜西 西安 710071)

       摘要:設(shè)計(jì)了一種嵌入式自動(dòng)裝載視頻監(jiān)控系統(tǒng),并通過網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)程控制。該系統(tǒng)采用S3C2410處理器,移植Linux操作系統(tǒng),成功運(yùn)行在S3C2410上。視頻監(jiān)控模塊使用的攝像頭是USB接口形式,移植對(duì)應(yīng)的Linux驅(qū)動(dòng)程序,攝像頭才能正常采集數(shù)據(jù)。移植Libjpeg開源庫(kù),對(duì)經(jīng)硬件壓縮的圖像進(jìn)行解壓,通過顯示終端顯示,進(jìn)而實(shí)時(shí)對(duì)現(xiàn)場(chǎng)進(jìn)行監(jiān)控。自動(dòng)裝載模塊的實(shí)現(xiàn),首先設(shè)定期望的貨物擺放路徑,其次利用Framebuffer幀緩沖寫屏技術(shù)在顯示終端上顯示自動(dòng)裝載過程。通過Socket網(wǎng)絡(luò)接口,上位機(jī)可對(duì)該系統(tǒng)進(jìn)行遠(yuǎn)程控制。

  關(guān)鍵詞:S3C2410;Linux;視頻監(jiān)控;自動(dòng)裝載;Libjpeg;Framebuffer;Socket

  中圖分類號(hào):TP13文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674-7720.2017.01.001

  引用格式:李子昌,李智,管四海.自動(dòng)裝載與視頻監(jiān)控遠(yuǎn)程控制系統(tǒng)[J].微型機(jī)與應(yīng)用,2017,36(1):1-3.

  至今為止,多數(shù)傳統(tǒng)工業(yè)領(lǐng)域的貨物裝卸和擺放還是靠人力完成[1],如搬運(yùn)水泥。惡劣的工作環(huán)境和繁重的體力勞動(dòng)給工作人員帶來巨大的勞動(dòng)負(fù)擔(dān),且對(duì)工人的身體健康有很大的危害。隨著物聯(lián)網(wǎng)技術(shù)的大力發(fā)展,如何利用嵌入式技術(shù),設(shè)計(jì)一套具有實(shí)時(shí)視頻監(jiān)控且能自動(dòng)裝載的系統(tǒng)成為當(dāng)下的關(guān)鍵問題。

  S3C2410處理器體積小巧,可節(jié)省板卡空間;功耗比大多數(shù)芯片要低很多,適合工作在對(duì)電源有特殊要求的環(huán)境中;主頻能夠達(dá)到203 MHz,具有很好的實(shí)時(shí)性能;具有內(nèi)存管理單元,因此可以移植并運(yùn)行操作系統(tǒng),處理更復(fù)雜的任務(wù)[2]。基于以上特點(diǎn),選擇S3C2410作為本系統(tǒng)主控制器。Linux操作系統(tǒng)支持創(chuàng)建多個(gè)用戶、處理多個(gè)任務(wù)[3],所以基于S3C2410+Linux的嵌入式系統(tǒng)成為第一選擇。Linux系統(tǒng)內(nèi)核中圖像采集設(shè)備的接口是Video4Linux,在此接口的基礎(chǔ)上,結(jié)合自己的設(shè)計(jì),開發(fā)出具有相應(yīng)功能的程序。基于Video4Linux開發(fā)視頻采集程序具有接口簡(jiǎn)單、容易實(shí)現(xiàn)、開發(fā)周期短等特點(diǎn)[4],故受到廣泛關(guān)注。Libjpeg是一個(gè)開源庫(kù),用來壓縮或解壓JPEG格式的圖像[5],可以在設(shè)計(jì)的程序中調(diào)用該庫(kù)提供的函數(shù),完成解壓過程,減少開發(fā)人員的工作量。Framebuffer[6]是Linux內(nèi)核中可由用戶調(diào)用的函數(shù)接口,通過這個(gè)接口,可以把圖形設(shè)備當(dāng)成緩沖區(qū)來使用, 圖形設(shè)備的操作與真實(shí)緩沖區(qū)的操作完全相同,可使用戶避免接觸底層繁瑣的操作,使開發(fā)變得簡(jiǎn)單。利用Socket接口,通過網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)程控制。

  綜上所述,本文提出一種基于S3C2410+Linux的嵌入式自動(dòng)裝載系統(tǒng),同時(shí)具有對(duì)現(xiàn)場(chǎng)進(jìn)行視頻監(jiān)控的功能。監(jiān)控和裝載系統(tǒng)的軟件是在Linux系統(tǒng)中開發(fā)的,內(nèi)核的版本是2.6.8.1,移植了相應(yīng)的開源庫(kù)。另外,根文件系統(tǒng)的類型有很多種,該系統(tǒng)采用的是cramfs[7],該類型只能讀,不能寫,對(duì)數(shù)據(jù)有保護(hù)功能。程序的開發(fā)工作主要由移植驅(qū)動(dòng)和開源庫(kù)、實(shí)現(xiàn)具有特定功能的程序等構(gòu)成。視頻監(jiān)控模塊由三部分組成:負(fù)責(zé)采集圖像的zc301p USB接口攝像頭、負(fù)責(zé)圖像處理的主控制器和顯示視頻的顯示終端。自動(dòng)裝載模塊主要由上述的主控制器和LCD顯示設(shè)備組成。自動(dòng)裝載應(yīng)用程序包括擺放路徑規(guī)劃程序和模擬過程的顯示畫面程序,并通過網(wǎng)絡(luò)進(jìn)行遠(yuǎn)程控制。

1視頻監(jiān)控模塊設(shè)計(jì)

  視頻監(jiān)控應(yīng)用程序包含圖像數(shù)據(jù)的采集過程設(shè)計(jì)、圖像解壓縮函數(shù)的調(diào)用和LCD圖像顯示等。圖像數(shù)據(jù)采集過程調(diào)用了Video4Linux接口[4],將攝像頭的數(shù)據(jù)讀取到內(nèi)存中。

  初始化設(shè)備后,進(jìn)行視頻圖像的截取。一種視頻截取方式是將read()函數(shù)包含在自己的程序中,這樣程序就可以將緩沖區(qū)數(shù)據(jù)提取出來;第二種方式是采用內(nèi)存映射的方法讀取數(shù)據(jù),設(shè)計(jì)的程序要包含mmap()函數(shù),在程序中實(shí)現(xiàn)映射功能。內(nèi)存映射的方式有一個(gè)很大的優(yōu)點(diǎn),就是內(nèi)存共享,可大大提高訪問速度。這樣對(duì)文件的訪問不必再調(diào)用read()、write()等,各個(gè)進(jìn)程能及時(shí)看到共享內(nèi)存中數(shù)據(jù)的更新,進(jìn)而提高實(shí)時(shí)性。故此系統(tǒng)采用通過mmap()內(nèi)存映射的方法。

  1.1用Libjpeg解壓jpeg數(shù)據(jù)

  本系統(tǒng)使用的Libjpeg庫(kù)是libjpegv6b,但libjpeg-v6b只支持文件格式的輸入。由于本系統(tǒng)采用的攝像頭是zc301p,此攝像頭所采集的數(shù)據(jù)是經(jīng)硬件壓縮的jpeg數(shù)據(jù)流,采集的數(shù)據(jù)直接保存在內(nèi)存中。然而Libjpeg庫(kù)并不支持這樣的輸入。此問題的解決方法是:修改Libjpeg庫(kù)的源碼,使其能夠解壓內(nèi)存中的jpeg數(shù)據(jù)流。

  1.2視頻顯示模塊

  顯示模塊采用LCD顯示屏,每個(gè)像素用16位顏色表示,格式為RGB565,但通過Libjpeg庫(kù)函數(shù)解壓數(shù)據(jù),得到的圖像為GB888格式,即24位數(shù)據(jù),所以需要進(jìn)行格式轉(zhuǎn)化。

  本系統(tǒng)采用的硬件設(shè)備攝像頭采集的單幅圖片最大分辨率為640×480,所以內(nèi)存映射時(shí),映射的兩個(gè)尺寸參數(shù)必須是這兩個(gè)最大值。Libjpeg解壓出來的圖片與輸入圖片分辨率同樣大。由于顯示器的分辨率是480×272,當(dāng)輸入是640×480時(shí),超出了顯示屏的尺寸,圖像顯示不完全,結(jié)果如圖1。

001.jpg

  Libjpeg支持縮放解壓,可供選擇的縮放比例有1/2、1/4、1/8三種。選擇1/2的縮放比例,分辨率為320×240,有花屏和明顯的掃描痕跡,顯示效果如圖2。

  

002.jpg

  以上兩種情況盡管顯示出來的部分比較清楚,但總體效果不好。選擇1/4的縮放比例,分辨率為160×120,畫面比較清晰流暢,沒有花屏,也無掃描痕跡,顯示的效果比較理想,如圖3所示。

  

003.jpg

  選擇1/8的縮放比例,畫面清晰流暢,但畫面太小,不利于實(shí)時(shí)監(jiān)控,顯示效果如圖4。

004.jpg

  綜合三種縮放比例的分析和實(shí)驗(yàn)結(jié)果比較可知,1/4縮放比例是最佳選擇。

2自動(dòng)裝載的設(shè)計(jì)與實(shí)現(xiàn)

  自動(dòng)裝載的實(shí)現(xiàn)基于Framebuffer技術(shù)。Linux內(nèi)核fb_ops定義了Framebuffer設(shè)備的操作[6]。

  本系統(tǒng)使用的開發(fā)板型號(hào)是FS2410,處理器是S3C2410。

  由于顯示終端顯示的是RGB565格式,因此可通過對(duì)每個(gè)像素點(diǎn)直接賦值使framebuffer顯示顏色。

  下面利用仿真函數(shù)對(duì)framebuffer的控制來模擬實(shí)際水泥的自動(dòng)裝載過程。將顯示終端界面看作水泥擺放區(qū)域,用一塊白色矩形代表單袋水泥。從傳送帶落下的水泥每次都落在同一位置,因此選取顯示屏上一個(gè)固定區(qū)域作為水泥的落地點(diǎn)。在此選LCD左上角,周期性地使這塊區(qū)域變成白色即可。將顯示屏看成一個(gè)二維坐標(biāo)系,落地點(diǎn)為(0,0),按照路徑先沿行移動(dòng)、后沿列移動(dòng)的順序擺放,考慮到現(xiàn)實(shí)中的速度問題,每移動(dòng)一步,延遲1 s。此過程可建模成一個(gè)循環(huán)嵌套的過程,設(shè)定好每個(gè)具體位置應(yīng)該移動(dòng)的步數(shù),實(shí)現(xiàn)有序執(zhí)行。根據(jù)顯示屏的分辨率480×272,設(shè)定每袋水泥占的區(qū)域大小為60×80,行間隔16,列間隔10,即每行為7袋,每列為3袋,一層共21袋。設(shè)置不同的背景顏色代表不同的層,而每層的擺放方法是相同的,以便查看。在本系統(tǒng)中,共設(shè)計(jì)3層。第一層用藍(lán)色背景表示,裝載效果如圖5。

 

005.jpg

  第二層用紅色背景表示,裝載效果如圖6。

006.jpg

  第三層用綠色背景表示,裝載效果如圖7。

  

007.jpg

  另外,定義一個(gè)變量記錄裝載的數(shù)量,以供上位機(jī)調(diào)用。

3遠(yuǎn)程控制

  利用socket在ARM開發(fā)板和上位機(jī)之間實(shí)現(xiàn)網(wǎng)絡(luò)通信。將上位機(jī)和ARM開發(fā)板用交叉網(wǎng)線連接起來,利用socket編程,建立一個(gè)socket,采用服務(wù)器/客戶機(jī)的訪問模式,開發(fā)板作為服務(wù)器端,上位機(jī)作為客戶機(jī)端。實(shí)現(xiàn)通信后,利用上位機(jī)通過網(wǎng)絡(luò)來直接控制開發(fā)板的工作,實(shí)現(xiàn)遠(yuǎn)程控制。

  在雙方的通信過程中,約定好一套通信協(xié)議。由于本文只實(shí)現(xiàn)了模擬裝載和實(shí)時(shí)監(jiān)控兩個(gè)功能,因此在遠(yuǎn)程控制時(shí),只設(shè)定兩個(gè)命令即可。約定好A命令表示模擬裝載,B命令為觀看監(jiān)控錄像。通過這兩個(gè)命令,可以在上位機(jī)很好地遠(yuǎn)程控制下位機(jī)。

  4結(jié)論

  本文提出的嵌入式自動(dòng)裝載與視頻監(jiān)控系統(tǒng),以S3C2410處理器作為主控制器,運(yùn)行Linux系統(tǒng),具有實(shí)現(xiàn)簡(jiǎn)單、可擴(kuò)展性強(qiáng)等特點(diǎn)。通過嵌入式視頻監(jiān)控系統(tǒng)可以查看裝載現(xiàn)場(chǎng)的狀況,對(duì)于突發(fā)事件,能及時(shí)做出反應(yīng),保障裝載工作安全進(jìn)行。自動(dòng)裝載系統(tǒng)的設(shè)計(jì)為日后實(shí)際系統(tǒng)搭建打下了基礎(chǔ),對(duì)以后的工作具有重大意義。

參考文獻(xiàn)

  [1] 張慶平, 蘇國(guó)民. 特大型礦井全自動(dòng)裝卸系統(tǒng)的實(shí)現(xiàn)[J]. 工礦自動(dòng)化, 2002(6):41 42.

  [2] 彭鐵鋼, 劉國(guó)繁, 曹少坤,等. 基于ARM的嵌入式視頻監(jiān)控系統(tǒng)設(shè)計(jì)[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2010, 31(6):1191 1194.

  [3] 許青林, 解爭(zhēng)龍. 基于ARM的Linux系統(tǒng)移植研究與實(shí)現(xiàn)[J]. 物聯(lián)網(wǎng)技術(shù), 2013(1):37 38.

  [4] 王元偉, 劉國(guó)秀. 基于V4L的視頻采集系統(tǒng)的設(shè)計(jì)[J]. 鐵路計(jì)算機(jī)應(yīng)用, 2010, 19(7):30 34.

  [5] HONG J, SODSONG W, CHUNG S, et al. Design, implementation and evaluation of a taskparallel JPEG decoder for the Libjpegturbo library[J]. Oral Diseases, 2012, 12(12):117 120.

  [6] 雷鴻, 熊文龍, 楊單. 基于Fram ebuffer的LCD驅(qū)動(dòng)程序的實(shí)現(xiàn)[J]. 武漢理工大學(xué)學(xué)報(bào):交通科學(xué)與工程版, 2006, 30(1):106 109.

  [7] 盧劍翔, 劉成安, 胡和智,等. 基于s3c2410的CramFS根文件系統(tǒng)的移植[J]. 微計(jì)算機(jī)信息, 2006, 22(32):133 135.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 欧美一区二区在线观看 | a级特黄毛片免费观看 | 99在线观看视频免费精品9 | 欧美一级黄色片在线观看 | 夜夜爽一区二区三区精品 | 香港经典a毛片免费观看爽爽影院 | 亚洲aⅴ男人的天堂在线观看 | 天天操夜夜摸 | 三级视频黄色 | 天天夜夜爽 | 可以免费看的黄色片 | 九色福利视频 | 国产dvd毛片在线视频 | 可以看的黄色网址 | 亚洲日韩欧美视频 | 日韩精品在线观看视频 | 久久97精品久久久久久久不卡 | 久久网精品视频 | 亚洲综合日韩在线亚洲欧美专区 | 国产一区亚洲二区三区 | 91污污视频 | 欧美日韩a级a | 亚洲欧美不卡中文字幕 | 男女日日 | 欧美日日夜夜 | 欧美三区在线观看 | 欧美日韩在线视频 | 日韩午夜免费 | 国产一二三区在线观看 | 欧美aaaa在线观看视频免费 | 中文字幕在线观看免费视频 | 色妇视频 | 成人影院高清在线观看免费网站 | 草草影院地址 | www激情五月| 在线成人播放 | www.亚洲欧美| 免费日批视频 | www精品视频 | aaaaaaa毛片| 日韩经典中文字幕 |