當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]1 系統(tǒng)流程架構(gòu)本系統(tǒng)的操作系統(tǒng)平臺為Linux, 內(nèi)核版本為2.6,目標(biāo)板上包括視頻采集、GPRS 模塊和控制器S3C2440.控制器主要是負責(zé)向客戶顯示及后端服務(wù)提供圖像數(shù)據(jù)。視頻

1 系統(tǒng)流程架構(gòu)

本系統(tǒng)的操作系統(tǒng)平臺為Linux, 內(nèi)核版本為2.6,目標(biāo)板上包括視頻采集、GPRS 模塊和控制器S3C2440.控制器主要是負責(zé)向客戶顯示及后端服務(wù)提供圖像數(shù)據(jù)。視頻服務(wù)器的啟動方式是由后臺或觸發(fā)啟動。當(dāng)用戶觸發(fā)事件時自動啟動采集程序或者由用戶遠程啟動,再進行圖像數(shù)據(jù)的抓取。

2 系統(tǒng)設(shè)計

2.1 Linux 下設(shè)備驅(qū)動

Linux 是免費的操作系統(tǒng),其源代碼是公開的,我們能夠根據(jù)實驗的需求進行必要的研究和修改。在Linux 操作系統(tǒng)中,設(shè)備都是以文件形式的存在,對設(shè)備的操作就是對文件的操作,使用戶可以調(diào)用通用的文件操作函數(shù)來進行訪問和操作設(shè)備。

設(shè)備驅(qū)動程序是Linux 內(nèi)核與外部設(shè)備關(guān)聯(lián)的接口,它們都根據(jù)用戶操作一系列的標(biāo)準函數(shù)調(diào)用來執(zhí)行,通過調(diào)用獨立的驅(qū)動程序來調(diào)用實際硬件的設(shè)備進行特定操作。編程接口能夠使驅(qū)動程序獨立運行于內(nèi)核的其他部分,就如“嵌入”到內(nèi)核中一樣。這種模塊化設(shè)計特點使得Linux 驅(qū)動程序的編寫方法簡單并且高效。操作簡單的同時也有風(fēng)險,因為設(shè)備驅(qū)動程序是運行在內(nèi)核中,如果驅(qū)動程序編寫出現(xiàn)問題,很有可能會使整個Linux 系統(tǒng)運行出現(xiàn)問題。

驅(qū)動程序運行與一般應(yīng)用程序也有不同地方,驅(qū)動程序運行只能調(diào)用自己相應(yīng)函數(shù)和內(nèi)核中的標(biāo)準函數(shù),而一般應(yīng)用程序只能調(diào)用外部數(shù)據(jù)庫等應(yīng)用函數(shù)。內(nèi)核模塊源文件中也不能包括一般的庫文件,只能使用內(nèi)核中規(guī)定的內(nèi)核函數(shù),否則就會出現(xiàn)問題。這也是驅(qū)動程序的寫法與應(yīng)用程序的寫法不同之處。當(dāng)然另一個不同之處是內(nèi)核與一般應(yīng)用程序處理錯誤的方式不同:

應(yīng)用程序中的錯誤是不會對系統(tǒng)產(chǎn)生故障,并可使用調(diào)試器來進行源代碼的跟蹤,從而發(fā)現(xiàn)問題所在,但內(nèi)核錯誤有可能會影響整個系統(tǒng),即使不影響系統(tǒng)也會出現(xiàn)殺死當(dāng)前進程的問題,而且也不能使用調(diào)試來發(fā)現(xiàn)問題根源。

2.2紅外中斷觸發(fā)設(shè)計

本監(jiān)控系統(tǒng)實現(xiàn)了紅外熱釋電傳感器驅(qū)動,使用字符設(shè)備驅(qū)動。由于S3C2440有117路的I/O線。其I/O線分成8組端口,分別是 GPA,GPB,GPC,GPD,GPE,GPF,GPG,GPH.當(dāng)有人進入時或離開被感應(yīng)區(qū)域時,都會使熱釋電紅外傳感器的電平發(fā)生變化,從而引起中斷。熱釋電紅外傳感器感應(yīng)到有人進入時就會自動啟動正在睡眠的視頻采集設(shè)備,對目標(biāo)進行數(shù)據(jù)采集。同時熱釋電紅外傳感器的驅(qū)動程序需要調(diào)用中斷方式來通知內(nèi)核,讓內(nèi)核通知視頻采集器已進入工作狀態(tài),從而便于設(shè)備管理。

S3C2440 通過GPIO 引腳的函數(shù)和宏來進行配置和控制;函數(shù)S3C2440 _ GPIO _ CFGPIN 對復(fù)用GPIO 引腳配置;函數(shù)SET_ IRQ _ TYPE 對外部中斷觸發(fā)器進行設(shè)置。本監(jiān)控系統(tǒng)使用了宏IRQT _ BOTHEDGE 對中斷進行配置。在內(nèi)核頭文件中定義中斷號,每個外部中斷都分配不同的中斷號來進行控制。當(dāng)內(nèi)核接收到中斷響應(yīng),就會使用異步通知辦法。為了解決文件的異步通信,用戶程序必須做到兩點:第一必須給進程指定“屬主”;第二為了運行異步通知,用戶程序必須在設(shè)備中設(shè)置FASYNC 標(biāo)志。根據(jù)內(nèi)核驅(qū)動程序?qū)懛ǎ?qū)動程序必須要定義自己的fasync 方法。當(dāng)程序執(zhí)行到F_SETFL 時就啟動FASYNC,內(nèi)核就會調(diào)用驅(qū)動程序fasync.內(nèi)核空間使用異步信號來向用戶發(fā)送信號,相應(yīng)信號函數(shù)是:

Void kill_fasync(struct fasync_struct **fa,intsig,init band)

信號函數(shù)的功能是當(dāng)紅外傳感器輸出電平由高到低或由低到高的變化時觸發(fā)中斷響應(yīng),同時外部設(shè)備得到一個通過處理函數(shù)產(chǎn)生的電平變化,從而驅(qū)動程序中定義read 方法。

2.3 視頻采集驅(qū)動

在初始化的流程中初始化了攝像頭的一些默認的值,根據(jù)紅外傳感器傳過來的拍照命令,啟動拍照程序,開始拍照,圖片數(shù)據(jù)保存為JPEG 格式存儲,同時發(fā)送到手機終端While(1)

{

If(paizhao)

{

_pal=0 ;

sendPaiZhao() ;

readJPEG() ;

keepData() ;

sendData() ;

}

}

2.4 圖像數(shù)據(jù)的JPEG 壓縮編碼

通常情況下,沒有壓縮的JPEG圖像數(shù)據(jù)占用存儲空間比較大,非常耗費存儲空間,也不利于網(wǎng)絡(luò)數(shù)據(jù)傳輸,因此對圖像數(shù)據(jù)進行壓縮很有必要。對于圖像的壓縮方法,Linux系統(tǒng)下的Libjpeg庫中已經(jīng)有實現(xiàn)。Libjpeg是Linux下的一個標(biāo)準的庫,能夠直接調(diào)用它來實現(xiàn)圖片壓縮。這個庫的主要功能是將圖片以一定的壓縮比率壓縮成JPEG文件格式的圖片。由于Linux是開源的,這個庫也是開放的。不僅可以在一般的Linux操作系統(tǒng)下工作,也可以在嵌入式Linux下進行工作。這樣就減少了很多底層的工作,也有利于避免重復(fù)性的開發(fā)工作。

在使用這個庫之前,首先需要安裝和編譯這個庫。對于嵌入式Linux,libjpeg庫已經(jīng)包括在嵌入式Linux源代碼包中,在配置相關(guān)庫文件選項時把這個庫加入,再編譯一下內(nèi)核就可以使用libjpeg庫。

圖像壓縮封裝調(diào)用image類的compress函數(shù),如下所示:

Int image compress(image *newone,int quality)這個函數(shù)的功能是按照指定的quality 比率將圖片壓縮成JPEG 格式。函數(shù)中的兩個參數(shù)分別是指向新的image 類數(shù)據(jù)的指針( 即壓縮后的圖像數(shù)據(jù)),另一個參數(shù)是指定壓縮比率,一般范圍為0~100.當(dāng)數(shù)字越大,壓縮得到的圖片質(zhì)量就越高,也就越清晰,但同時壓縮后的數(shù)據(jù)文件容量越大。所以壓縮比不是越大越好,需要根據(jù)實驗的現(xiàn)實需求來確定,以滿足實驗功能要求且存儲成本和傳輸成本最低為標(biāo)準。

2.5 短消息的收發(fā)

嵌入式監(jiān)控系統(tǒng)通過使用串口與GPRS連接,通過使用GPRS模塊來進行短消息的收發(fā)。SMS短信的收發(fā)有兩種模式,即文本模式和PDU模式。文本模式只能發(fā)送變通的ASCII字符,短信內(nèi)容簡單,其最大不足之處是不能收發(fā)其他字符。PDU模式將發(fā)送的信息按照一定的格式進行新的編碼,一般是十六進制數(shù)的PDU序列為主,把所有中文或者圖像進行編碼后再予以發(fā)送(如圖2-1)。

編程過程如下:

1)打開串口

打開串口設(shè)備文件需要使用標(biāo)準的I/O操作函數(shù)。

Fd=open(“/dev/ttyS0”,O_RDWR|O_NDELAY|O_NOCTTY) ;

2) 設(shè)置串口屬性

串口有一些規(guī)定的屬性必須進行設(shè)置,否則就不能正常運行,一般要設(shè)置波特率、控制模式標(biāo)志、本地模式標(biāo)志、輸入/ 輸出模式標(biāo)志、控制字符等相關(guān)串口屬性。[!--empirenews.page--]

3) 清空發(fā)送/ 接收緩沖區(qū)

為了避免以前的數(shù)據(jù)的干擾,必須對緩沖區(qū)的數(shù)據(jù)進行清空之后才能把數(shù)據(jù)讀入緩沖區(qū),這樣做的目的是為了避免不必要的數(shù)據(jù)干擾。

4) 從串口讀寫數(shù)據(jù)

串口的數(shù)據(jù)讀/寫使用的是標(biāo)準的讀/寫函數(shù)(read()和write())。

5)關(guān)閉串口

關(guān)閉串口為下次再使用串口提供方便。關(guān)閉串口的函數(shù)是close()函數(shù)。

2.6彩信的發(fā)送

Linux系統(tǒng)中的視頻子系統(tǒng)為Video4Linux,他為應(yīng)用程序提供了一個完整、統(tǒng)一的API函數(shù),視頻應(yīng)用程序只要調(diào)用這些API就能完成對視頻捕捉設(shè)備的操作。設(shè)備的節(jié)點文件在#mknod/dev/videoc810

1)打開設(shè)備

用open()函數(shù)來打開設(shè)備。

fVideo=open(“dev/video”,O_RDWR);

2)獲得設(shè)備參數(shù)

Ioctl(fVideo,VIDIOCGCAP,&vcap);

3)設(shè)置圖像采集參數(shù)

Ioctl(fVideo,VIDIOCGPICT,&vcap);

4)圖像采集

Ioctl(fVideo,VIDIOCMCAPTURE,&mem);

5)等待采集結(jié)束,由于采集需要一段時間,所以應(yīng)用程序需要有一個相應(yīng)的等待期

Ioctl(fVideo,VIDIOCSYNC,&mem,frame);

6)將采集的圖像數(shù)據(jù)寫入文件

Write_jpeg(buf++mb.offsets[0],mem);

7)清空內(nèi)存映射

Munmap(but,mb.size);

8)關(guān)閉設(shè)備

Close(fVideo);

得到圖像數(shù)據(jù)后,再把數(shù)據(jù)進行MMS的封裝,首先是加上MMS頭部分的數(shù)據(jù)封裝,再對SMIL部分封裝,這里主要是指定顯示MMS的相關(guān)信息,最后對每個輸入的多媒體信息進行編碼。最后通過GPRS模塊把信息發(fā)送出去。

3系統(tǒng)功能的測試結(jié)果

本文測試基于jpeg格式標(biāo)準的視頻數(shù)據(jù)的采集、傳輸以及顯示。由攝像頭完成視頻數(shù)據(jù)的采集,通過由GPRS封裝后把圖像數(shù)據(jù)傳輸?shù)绞謾C。紅外感應(yīng)到有人進入時,攝像頭取下的圖像照片,并再通過GPRS模塊把圖像發(fā)到用戶的手機上,從而完成了有效的監(jiān)控動作。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉