




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、物聯(lián)網(wǎng)智能家居系統(tǒng)畢業(yè)論文7/?X r天津電子信息職業(yè)技術學院畢業(yè)論文題目物聯(lián)網(wǎng)智屋家居系統(tǒng)姓名專業(yè)班級指導教師完成時間天津電子信息職業(yè)技術學院制摘 要:隨著經(jīng)濟的髙速增長。建立一個低成本、高效率的智能家居系統(tǒng)已成為當今世 界的一個熱點話題。目前越來越多的智能家居產(chǎn)品出現(xiàn)在市場上,其中以基于電話網(wǎng)的智 能安防系統(tǒng)居多。目前在我國,使用家庭電話的用戶越來越少,而且電話線路受地域的影 響嚴重容易損壞,所以這類產(chǎn)品局限性很大。隨著電信GSH網(wǎng)絡覆蓋范爾的無縫化、廣闊 化以及手機的日益普及為基于GSM網(wǎng)絡的智能家居系統(tǒng)提供了巨大的應用空間。本文設計了一種基于GSM網(wǎng)絡的智能家居系統(tǒng)。本系統(tǒng)采用cort
2、exAS為 系統(tǒng)控制核心,對家庭中出現(xiàn)的意外情況使用各種傳感器進行采集,然后通過 GSM模塊把釆集到的信息發(fā)送給管理人員,管理員根據(jù)收到的信息發(fā)送相關指 令給GSM模塊來控制現(xiàn)場執(zhí)行機構,完成意外情況的排除。關鍵詞:智能家居GSM傳感器遠程控制目錄一、緒論1(_)智能家居概述1(二)智能家居網(wǎng)絡構成21、家居網(wǎng)絡控制平臺22、智能家居子系統(tǒng)23、智能家居網(wǎng)絡的信號傳輸介質(zhì)34、遠程控制技術概括45、智能家居控制系統(tǒng)的國內(nèi)外發(fā)展現(xiàn)狀5二、系統(tǒng)需求分析及方案6(_)應用程序功能需求分析6(二)開發(fā)環(huán)境需求分析61、硬件環(huán)境62、軟件環(huán)境7三、硬件模塊及其驅動設計實現(xiàn)7(_) 主控模塊7(二)通信模
3、塊71、TC35模塊簡介72、TC35 模塊與 cortexA8 連接方式73、傳感器模塊8四、系統(tǒng)軟件部分36(-)主程序及大致流程361、溫度監(jiān)測線程372、視頻監(jiān)測線程383報警流程39(二)短消息程序設計401、AT指令介紹402、PDU編碼規(guī)貝IJ423、短信模式設置424、短信的發(fā)送方法43五、測試及結論43(_)測試原則43(二)測試方案43(三)結論44參考文獻44緒論21世紀是信息化的時代,物聯(lián)網(wǎng)新技術推動了人類文明的進步。隨著人們 生活水平的提高以及科技的高速發(fā)展,智能化家居已成為一種必然趨勢而深入 千家萬戶。智能化家居是利用電力自動化、計算機、網(wǎng)絡通信、信息、結構化 布線
4、、無線等技術將多種設備應用和綜合功能組成一個強大的完善的系統(tǒng)。它 以住房為平臺,同時兼?zhèn)渚W(wǎng)絡家電、家電設備自動化、建筑、通信、遠程醫(yī) 療、家庭辦公、娛樂等功能,集結構、服務、系統(tǒng)、管理為一體的舒適、節(jié) 能、安全、便利、高效、娛樂、環(huán)保的居住環(huán)境。本文介紹的智能化家居控制系統(tǒng)可以使得人們通過手機在任何時候、任意 地點對家中的任意電器(例如:熱水器、空調(diào)、電飯煲、燈光等)進行遠程控 制。你可以在下班途中,預先將家中的空調(diào)打開、電飯煲煮好香噴噴的米飯、 讓熱水器提前燒好熱水,而這一切的實現(xiàn)都僅僅是靠一條短信完成。本系統(tǒng)采用cortexAS作為主控器件,遠程控制是基于GSM網(wǎng)絡短消息通 信方式,AT指
5、令作為系統(tǒng)控制命令,cortexAS通過對收到的信息進行解碼來 識別控制信號,用戶只需向TC35模塊發(fā)送相應指令即可實現(xiàn)遠程控制操作。 溫度傳感器完成現(xiàn)場信息的采集,cortexAS對數(shù)據(jù)進行及時的處理,實現(xiàn)實時 測控;短消息發(fā)送部分采用基于GSM模塊TC35和IT公司的電平轉換芯片 MAX232等器件構成的移動終端的硬件電路,完成短消息收發(fā)功能。(一)智能家居概述進入21世紀,科學技術與生產(chǎn)力加速了社會的發(fā)展創(chuàng)造能力,隨之而來 的也是人類對于物質(zhì)水平的大力需求,而居住的環(huán)境要求也成為了人們關注的 領域,所以“智能化”這一概念也促使科技工作者們將其引入智能家居民應用 方面的小區(qū)住宅以及小區(qū)建筑
6、技術之中。由于計算機控制系統(tǒng)發(fā)展迅速,以及 電子信息行業(yè)的發(fā)展成長快速,也大力促進了智能家居控制系統(tǒng)的產(chǎn)生。因為 固定電話和互聯(lián)網(wǎng)技術基本上是傳統(tǒng)智能家居控制系統(tǒng)的技術核心,所以安裝 固定電話以及互聯(lián)網(wǎng)成為了達到家庭用戶傳統(tǒng)智能家居控制系統(tǒng)的產(chǎn)生的根本 硬件技術、以及硬件要求。但是隨著電子技術、智能通信技術以及網(wǎng)絡技術發(fā) 展日新月異的今天,基于GSH網(wǎng)絡通訊體統(tǒng)的低成本無限制智能家居控制系統(tǒng) 成為廣大居民以及中國居民享受新一代智能家居控制系統(tǒng)的變革捷徑。智能家居系統(tǒng)成為一種新興的綜合技術學科。智能家居系統(tǒng)也可被定義為 一個控制過程,或者控制系統(tǒng),利用現(xiàn)在被大多數(shù)科技人員已掌握的計算機技 術、網(wǎng)
7、絡布線技術、網(wǎng)絡通信系統(tǒng)將其糅合,使之成為融合在家居控制中的多 個子系統(tǒng),并使其智能的結合在一起。目前相比較其他時分多址技術手段而言,更加完美、成熟、應用更廣泛的 一種普及率很高的系統(tǒng)是 GSM (Global System for Mobile communication)系 統(tǒng)。在我國,已建成的基本覆蓋全國的GSH數(shù)字蜂窩移動技術信息網(wǎng),早已成 為我國公眾移動生活密不可分的一種技術之一。在GSM短信服務的基礎上,智 能家居控制系統(tǒng)是在移動網(wǎng)絡通訊技術的短信應用功能的技術運用。由于GSM網(wǎng)絡通訊系統(tǒng)在全國范圍實現(xiàn)了聯(lián)網(wǎng)以及漫游能力,所以它的網(wǎng) 絡功能很強大,用戶無需另外搭建網(wǎng)絡,因此,在GS
8、H網(wǎng)絡覆蓋率達到全國范 圉的情況下,為客戶省下了昂貴的網(wǎng)絡搭建費用以及維護網(wǎng)絡費用。同時,它 對用戶數(shù)量的限制也十分少,也為客戶克服了一般智能家居控制系統(tǒng)中系統(tǒng)成 本高、維護艱難、并且網(wǎng)絡覆蓋范圉小以及用戶組數(shù)量少的缺點。相比傳統(tǒng)網(wǎng) 絡智能家居控制系統(tǒng)在網(wǎng)絡通信覆蓋率上具有較大的優(yōu)勢,加之GSH本身就具 有數(shù)據(jù)的輸送功能,這也促成了 GSM應用在廣大生活中得到迅速普及?;?GSM的無線通訊智能系統(tǒng)還具有雙線傳送數(shù)據(jù)的功能、性能穩(wěn)定。為客戶在遠 程操控以及用戶控制設備提供了強大技術平臺。遠程操控系統(tǒng)應用廣泛,遍及中國經(jīng)濟生活發(fā)展的各大領域。而且LI前人 們正在使用中的操控系統(tǒng)從成本、性能、穩(wěn)定
9、性、便捷性以及維護的難易方面 基本都不能使人們最大程度的滿意。所以,GSM網(wǎng)絡通信技術的提出大大的提 升了智能家居控制系統(tǒng)的完善程度。(二) 智能家居網(wǎng)絡構成1、家居網(wǎng)絡控制平臺智能家居主控制平臺是智能家居控制系統(tǒng)的“心臟”部分,等效的可以說 是智能家居的核心。對方可以通過手機短信的方式接受用戶命令并實時操作, 或者對對用戶手機發(fā)送控制電器運轉情況,對家庭總線和各個網(wǎng)絡子系統(tǒng)實施 連接,完成智能家居控制系統(tǒng)平臺的鏈接構成。2、智能家居子系統(tǒng)智能家居系統(tǒng)的連接一般均為家電網(wǎng)絡中的耗電類型的家電電器。例如冰 箱、空調(diào)、電磁爐、熱水器、電飯煲、電燈等家用電器。這些消耗電類型的家 庭電器可以在現(xiàn)場立即
10、布線互聯(lián)構成智能家居系統(tǒng),與主控家居智能平臺相連 接,再進行現(xiàn)場網(wǎng)絡綜合布線連接智能家居子系統(tǒng),就可以山用戶利用協(xié)議中 的操作指令短信操作家庭中電器設備了。3、智能家居網(wǎng)絡的信號傳輸介質(zhì)智能家居網(wǎng)絡通訊形式多彩多樣,可以采用不同的傳輸介質(zhì)傳輸網(wǎng)絡通訊 信號,大體上有電力線、電話線、雙絞線、無線方式。(1)電力線基于電力線為傳輸介質(zhì)的通信網(wǎng)絡可以說是最方便的,因為現(xiàn)在家庭基本 都已鋪設供電源的電源線而且家中的電源線已經(jīng)延伸到家庭生活的每個角落。 而且,現(xiàn)在大部分家用電器設備都離不開電源。所以利用家中的電力線完成智 能家居控制系統(tǒng)網(wǎng)絡方案方便而且經(jīng)濟便宜。在國際上,首個實現(xiàn)家庭電器智 能化的方案便
11、是通過電力線作為信息傳輸載體的而達成的。電話線利用電話線作為網(wǎng)絡信息傳輸載體起步雖然相較于電力線稍微晚一些,但 是因為它具有布局簡單、使用方便、安全性能好和易于大規(guī)模推廣等優(yōu)點,而 且近期電話線的傳輸速率也完成了大幅度提升,所以它的應用和發(fā)展非???, 在美國已有成熟的產(chǎn)品。其中包括:3C0M、Advanced MicroDevices、 AT&T、Compaq、Hewlett. Packard、Intel、IBM 和 Lucent Technologies 等發(fā) 起成立了 “電話線家居網(wǎng)絡協(xié)會”,至今己有100多個成員。(3) 雙絞線/同軸電纜U前最通用的傳輸介質(zhì)是用雙絞線/同軸電纜??墒窃诨?/p>
12、于雙絞線/同軸 電纜實際操作中最大的困難是需要另外鋪設2 / 4根專用的傳輸線。但是它擁 有通信可靠性和總線接口相對簡單等優(yōu)點,其仍然可以受到廣泛用戶的大批量 應用。(4) 無線方式無線方式通過射頻載波或者紅外線等形式傳輸用戶信息,“藍牙技術”是 最近發(fā)展最火熱的無線通信方式。音頻和視頻信號、計算機網(wǎng)絡信號、控制信 號均可以利用藍牙技術傳輸家庭用戶信號。而且用無線方式傳輸信息時無需架 設任何線路且實現(xiàn)極其方便靈活,非常適合在家庭網(wǎng)絡中應用。由于無線方式簡單方便,易于架設,所以本論文便是使用的GSH無線技術 平臺操作的智能家居平臺系統(tǒng)。4、遠程控制技術概括本論文研究立于一個對于家居電器進行遠程控
13、制,以便于實現(xiàn)家居智能 化的系統(tǒng)。遠程控制指的是遠端的家居控制者通過通信系統(tǒng)對現(xiàn)場的家居電器 系統(tǒng)進行控制,其U的在于解除地域和環(huán)境對控制的限制,實現(xiàn)高集中的遠程 控制,最終實現(xiàn)主產(chǎn)資料和社會資源與通訊資源的優(yōu)化配置。現(xiàn)代遠程控制技 術是訃算機技術、通信技術、網(wǎng)絡技術的集合,也是信息技術和控制技術的結 合。從用戶角度來講,需要的是一種方便、安全、可靠的一種傳輸方式。可以 利用公共數(shù)據(jù)網(wǎng)或者通過架設專線來實現(xiàn)有線傳輸,然而在大多數(shù)情況下,傳 輸距離、架線環(huán)境等條件限制了有線傳輸6無線傳輸也有很多途徑,如架設 微波線路、(超)短波電臺等都是通過自建的無線發(fā)射接收系統(tǒng)。然而無線傳輸 架設成本高、頻率
14、資源的限制、容易受到地形地貌的影響、系統(tǒng)的架設和維護 工作繁重,在業(yè)務量小、用戶數(shù)量大、位置分散等應用場合中也受到很大限 制??谇?,經(jīng)過三代發(fā)展的移動通信,移動通信體制中的時分多址技術中最完 善、最成熟、應用最廣的一種移動通信系統(tǒng)就是GSM系統(tǒng)匕在數(shù)據(jù)采集、遠距 離監(jiān)控、GPS定位、繳費通知、無線報警等領域GMS都有著廣泛的應用。在全國 范圉內(nèi)GSM網(wǎng)絡實現(xiàn)了聯(lián)網(wǎng)和漫游,用戶無需另外組網(wǎng),GMS具有很強的網(wǎng)絡能 力,網(wǎng)絡覆蓋范圉廣闊,用戶不必再花費節(jié)昂貴的建網(wǎng)費用和維護費用比 傳統(tǒng)的集群系統(tǒng)在無線網(wǎng)絡覆蓋上具有無法比擬的優(yōu)勢,加上GSM的SMS本身具 備的數(shù)據(jù)傳送功能,都使得這些應用得到迅速的
15、普及G GSM短信息系統(tǒng)性能穩(wěn) 定還可進行雙向數(shù)據(jù)傳輸,為監(jiān)控設備和遠程數(shù)據(jù)傳送通信提供了一個可靠、 安全的支持平臺。短消息發(fā)送一般采用其專用控制信道(DCCH)來發(fā)送,短信息的服務端可以 實時的了解到對方是否接收到短信息,一旦信息傳送失敗,短信中心實時得知 被叫用戶沒有回復信息,網(wǎng)絡管理端則會繼續(xù)發(fā)送消息,以保證被叫方能收到 短信息。所以,在GSM網(wǎng)絡的一些主要的電信業(yè)務當中,此類短消息業(yè)務的信 息傳遞是實時安全的。每個短消息的信息量都是140個八位組(7比特編碼, 160個字符)不會超過140個字節(jié),絕對可以滿足單方面監(jiān)測用戶指標的信息 量。綜上所述,智能家居控制系統(tǒng)選用GSM的短消息控制
16、方式,來實現(xiàn)智能家 居設備的遠程控制是可行的。5、智能家居控制系統(tǒng)的國內(nèi)外發(fā)展現(xiàn)狀U前,我國每年竣工的建筑面積達到20億平米,智能家居/建筑的產(chǎn)值至少 在1-2萬億元以上。智能家居的發(fā)展分為三個階段:首先是家庭電子化(Home Electronics)階段,這個時期主要是面向單個 的電器,家庭電器之間并沒有形成網(wǎng)絡,亦沒有大的聯(lián)系。其次是住宅自動化(Home Automation)階段,這個時期是面向功能的階 段,一部分的家庭電器之間形成了簡單的網(wǎng)絡,主要是為了實現(xiàn)某個特定單一 的功能,例如單一的自動抄表功能。最后是家居智能化(歐洲稱為Smart Home,美國稱為Wise House)階 段
17、,這個時期是面向系統(tǒng)設訃的階段,系統(tǒng)通過家庭分布總線把住宅內(nèi)各種與 信息相關的通信設備、家用電器、報警裝置并到網(wǎng)絡節(jié)點中進行集中的監(jiān)控、 管理,保持家電與環(huán)境的協(xié)調(diào),提供生活、工作、學習以及娛樂的各種優(yōu)質(zhì)服 務,營造一種溫馨舒適的家庭氛圉。智能家居控制系統(tǒng)提供高效、舒適的家居環(huán)境,確保住戶的生命財產(chǎn)安 全;集中或遠程監(jiān)控家居環(huán)境的溫度、濕度以及風速等,空氣中成分也可檢 驗,為空氣質(zhì)量的提高提供依據(jù);電視機、CD等娛樂設施也不再需要人們近距 離調(diào)節(jié);周用環(huán)境以及太陽光的強弱變化都可以合理利用,使能耗降低,資源 合理利用,保護環(huán)境;提供現(xiàn)代化的通信、信息服務凹。在智能家居系統(tǒng)研發(fā)中,美國和歐洲一些
18、發(fā)達國家一直處于領先地位。近 年來,一大批國外知名企業(yè)先后擠身于智能家居的研發(fā)中尤其以美國微軟公司 及摩托羅拉公司等為首血。摩托羅拉公司開發(fā)的“居所之門”、IBH公司開發(fā) 的“家庭主任”、微軟公司開發(fā)的“夢幻之家”等均已日趨成熟:叫 在亞洲, 日本韓國新等一些經(jīng)濟發(fā)達國家的主要企業(yè)也進軍智能化家居系統(tǒng)的開發(fā),對 家居市場更是躍躍欲試。經(jīng)過哥本哈根會議,我國更加明確了節(jié)能減排,綠色建筑的H標,這就使 住宅智能化凸顯出了其合理規(guī)劃,最大限度的節(jié)約能源的優(yōu)勢。如果我國大力 推廣綠色建筑,僅在鋪設智能化系統(tǒng)上所需的新設備的生產(chǎn)上就有2000億到 3000億人民幣的新市場。而中國智能家居網(wǎng)絡”必在“智能
19、化住宅”的框架 下形成一個新型IT產(chǎn)業(yè),而這一切必將對未來兒十年我國房地產(chǎn)的健康有效 發(fā)展起著深遠的影響。山于智能家居系統(tǒng)還缺乏統(tǒng)一明確的國際標準,許多公司開發(fā)出的產(chǎn)品都 是基于自己組的網(wǎng)絡和信息交換協(xié)議,很多產(chǎn)品是針對特定的組網(wǎng)環(huán)境開發(fā) 的,部分核心技術沒有對外公布,技術復雜,直接導致了使用范圍的局限性。 再者,缺乏對應的第三方產(chǎn)品,各個接入設備之間不能兼容、互操作性差、不 利于產(chǎn)品的擴充,因而進一步局限了產(chǎn)品的發(fā)展。再加上,有的系統(tǒng)成本過 高,嚴重影響了產(chǎn)品的普及。因此設訃一個符合國家國情和規(guī)范的集遠程控制 和本地控制為一體的智能家居控制系統(tǒng)是非常具有現(xiàn)實意義的,且勢在必行。作為智能家居的
20、核心系統(tǒng)的智能家居的控制系統(tǒng),它的設計功能的完善必 將推動住宅智能化的發(fā)展。而系統(tǒng)功能的集成化、用戶使用的傻瓜化以及市場 的平民化將是智能家居控制器的發(fā)展趨勢,系統(tǒng)也將逐步邁向綠色化。最終, 我想全人類的夢想是智能家居控制系統(tǒng)將囊括所有的家事雜物,讓我們真正的 享受舒適溫馨的家庭生活。二、系統(tǒng)需求分析及方案物聯(lián)網(wǎng)智能家居要將各成體系、互不相連的子系統(tǒng)協(xié)調(diào)起來,就必須有一 個兼容性強的中央家居處理平臺,接受并處理控制設施發(fā)出的信息,然后傳送 信號給你希望控制的家電或者其他家居子系統(tǒng)。(一)應用程序功能需求分析本設計采用模塊化設計,整個系統(tǒng)山通信模塊、視頻釆集模塊、傳感器模 塊、Led模塊組成。c
21、ortexAS通過對傳感器模塊傳送來的信息進行判斷,如果 信息異常,則利用蜂鳴器以及LED實現(xiàn)報警,并通過GSH模塊向用戶發(fā)送報警 信息。同時用戶也可以根據(jù)需要,發(fā)送短信給GSH模塊來控制相應的家電。實 現(xiàn)對現(xiàn)場圖像實時監(jiān)控及工作位置實時控制。(二)開發(fā)環(huán)境需求分析1、硬件環(huán)境(1) 硬件配置原則具有可靠性,可用性和安全性,在滿足軟件需求的條件下,具有完善的技 術支持,能夠滿足個人學習和設計需要。(2) 運行本軟件所需的硬件資源CPU: 800M及以上;內(nèi)存容量:內(nèi)存達128M以上。本系統(tǒng)采用cortexAS為中央處理平臺。2、軟件環(huán)境(1) 系統(tǒng)軟件配置規(guī)則能夠在指定的運行環(huán)境下,滿足該軟件
22、的可靠性、安全性和可用性的要 求。(2) 系統(tǒng)軟件的配置方案配置有持續(xù)工作能力、高穩(wěn)定性、高度可集成的開放式標準的操作系統(tǒng),Windows NT、Windows2000 UNIX, Linux 等。熟悉 C卄高級程序設計語 言。本系統(tǒng)采用Linux為操作系統(tǒng)。三、硬件模塊及其驅動設計實現(xiàn)start;r = platform_get_resource(devices, I0RES0URCE_MEM, 1):if (r = NULL) goto out_class_destroy;GPG3.DAT=r-start;return 0;out_clas s_de stroy:device_destro
23、y(myclass, dev);class_destroy(myclass);out_cdevdel:cdev_.de 1 (&cdev);out_unreg_chrdev:unregister_chrdev_region(dev, count);return -EINVAL;int led_ioctl(struct inode 水inode, struct file *filp, unsigned int cmd, unsigned long arg)unsigned int m=0x0:int tmp;if(cmd=CMDINIT)if (dtomic_sub_and_test (1, &
24、num)gpg3con = ioremap(GPG3_CON, 4): if(NULL 二二 gpg3con)return 一ENOMEM;gpg3dat = ioremap(GPG3_DAT, 4): if(NULL 二二 gpg3dat)return -ENOMEM: tmp=ioread32(gpg3con); tmp=Oxffff);iowrite32(OxllllItmp, gpg3con); tmp=ioread32(gpg3dat);tmp=tmp&(Oxf): iowrite32(0x0 tmp, gpg3dat);atomic_inc(&num);return 0;elsem
25、=cmd & Oxf;tmp=ioread32(gpg3dat);tmp=tmp&(、Oxf);iowrite32(m, gpg3dat);return 0;led應用程序設汁void led_init(void);函數(shù)功能:打開led設備并int led_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg)函數(shù)功能:LED報警輸入?yún)?shù):cmd參數(shù)表示那個燈亮void led_exit(void):函數(shù)功能:關閉led設備(2)蜂鳴器圖pwm電路圖采用platform框架自動獲取設備
26、號,生成設備節(jié)點。由于這個蜂鳴器 是無源的,所以要想使其產(chǎn)生聲音必須給他提供一個有一定頻率的高低電平。 所以這里我們釆用S5PC100的PWM定時器來使蜂鳴器發(fā)出聲音。static int pwm_probe(struct platform_device devices)struct resource *r;int ret;dev_t dev = MKDEV(pwm_major, pwm_minor);if(pwm_major)ret = register_chrdev_region(dev, count, devname);elseret = alloc_chrdev_region(&dev
27、, pwm_minor, count, devname);pwm_major = MAJOR(dev);if(ret)return ret;cdev_init(&cdev, &fops);ret二cdev_add(&cdev, dev, 1);if(ret)goto out_unreg_chrdev;atomic_set(&num, 0);myclass = class_create(THIS_MODULE, devname);if (IS_ERR(myclass)goto out_cdevdel:device_create(myclass, NULL, dev, NULL,devname,p
28、wm_minor);r = platform_get_resource(devices, I0RES0URCE_MEM, 0):if (r = NULL) goto out_class_destroy;GPD_C0N1=r- s t ar t;r = platform_get_resource(devices, I0RES0URCE_MEM, 1):if (r = NULL) goto out_c1ass_destroy;TCFG0=r-start;r = platform_get_resource(devices, I0RES0URCE_MEM, 2):if (r = NULL) goto
29、out_c1ass_destroy;TCFGl=r-start;r = platform_get_resource(devices, I0RES0URCE_MEM, 3):if (r = NULL) goto out_class_destroy;TCNTBl=r-start;r = platform_get_resource(devices, I0RES0URCE_MEM, 4): if (r = NULL) goto out_c1ass_destroy:TCMPBl=r-start;r = platform_get_resource(devices, I0RES0URCE_MEM, 5):i
30、f (r = NULL) goto out_class_destroy:TCON=r-start;return 0;out_class_destroy:device_destroy(myclass, dev);class_destroy(myclass);out_cdevdel:cdev_.de 1 (&cdev);out_unreg_chrdev:unregister_chrdev_region(dev, count);return -EINVAL;int pwm_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
31、unsigned long arg)int tmp;辻(cmd 二二 CMDINIT)if (atomic_sub_and_test (1, &num)gpdconl = ioremap(GPD_CON1, 4);if(NULL = gpdconl)return -ENOMEM; tcfgO = ioremap(TCFGO, 4); if(NULL 二二 tcfgO)return -ENOMEM;tcfgl = ioremap(TCFG1, 4): 辻(NULL 二二 tcfgl)return 一ENOMEM;tcntbl = ioremap(TCNTB1, 4): if(NULL 二二 tc
32、ntbl)return -ENOMEM: tcmpbl = ioremap(TCMPB1, 4): if(NULL = tcmpbl)return -ENOMEM;gtcon = ioremap(TCON, 4);if(NULL = gtcon)return -ENOMEM; tmp=ioread32(gpdconl); tmp=tmp&(0xf4): tmp=tmp (0x24); iowrite32(tmp, gpdconl); tmp=ioread32(tcfgO); tmp=tmp&、Oxff;tmp=tmp Oxfe;iowrite32(tmp, tcfgO); tmp=ioread
33、32(tcfgl); tmp二tmp&(0xf4);tmp=tmp (0xl4); iowrite32(tmp, tcfgl); iowrite32 (300, tcntbl); iowrite32(150, tcmpbl); tmp=ioread32(gtcon);tmp=tmp 0x0e8; tmp=tmp&x (0x018); iowrite32(tmp, gtcon);atomic_inc(&num); return 0;else 辻(cmd二二CMDGO)tmp=ioread32(gtcon); tmp=tmp (0x0dadapter,I2C_FUNC_SMBUS_BYTE_DAT
34、A |I2C_FUNC_SMBUS_W0RD_DATA)return 一EIO;data = kzalloc(sizeof(struct lm75_data), GFP_KERNEL);辻(!data)return -ENOMEM:i2c_set_clientdata(client, data);mutex_init(&dat3-update_lock);set_mask = 0;clr_mask = (1 0) j (1 6) I (1 5);status = lm75_read_value(client, LM75_REG_C0NF); if (status orig_conf = sta
35、tus;new = status & clr_mask;new 二 set_mask;if (status != new)lm75_write_value(client, LM75_REG_C0NF, new);dev_dbg(&client-dev, Config %02xnzz, new);devn = MKDEV(lm75_major, lm75_minor);if(lm75_major)status = register_chrdev_region(devn, count, devname);elsestatus = alloc_chrdev_region(&devn, lm75_mi
36、nor, count,devname);lm75_major = MAJOR(devn);if(status)return status;cdev_init(&cdev, &lm75_fops);status=cdev_add(&cdev, devn, 1);if(status)goto out_unreg_chrdev;myclass = class_create(THIS_MODULE, devname):if (IS_ERR(myclass)goto out_cdevdel;device_create(myclass, NULL, devn, NULL,devname,lm75_mino
37、r);goto out;out_cdevdel:cdev_.de 1 (&cdev);out_unreg_chrdev:unregister_chrdev_region(devn, count);exit_free:kfree(data);out:return status;static int lm75_read_value(struct i2c_client 水client, u8 reg)int value;辻(reg = LM75_REG_C0NF)return i2c_smbus_read_byte_data(client, reg);value = i2c_smbus_read_w
38、ord_data(client, reg);return (value 0) value : swabl6(value);static int lm75_write_value(struct i2c_client client, u8 reg, ul6 value)if (reg 二二 LM75_REG_C0NF)return i2c_smbus_write_byte_data(client, reg, value); return i2c_smbus_write_word_data(c1ient, reg,swab16(value);static int _init sensors_lm75
39、_init(void)return i2c_add_driver(&1m75_driver);static void _exit sensors_lm75_exit(void)i2c_del_driver(&lm75_driver);山于lm75讀出的是TEMP寄存器(16位)的值但是lm75TEMP寄存器是高9 位有效,精度是。在驅動中不宜使用浮點數(shù)運算,所以讀出的值在應用層轉 換。read (fd, buf, sizeof (buf):函數(shù)功能:從buf中讀取溫度值fd = open (/dev/lm750, 0_RDWR);read (fd, buf, sizeof (buf);nFdt
40、oi (buf);n=m&0xff80;if(n&0x8000)n二n7;n=n-l;n= n;n二n&Oxfe;n 二一 n;)elsen=n7;tmp=n*;(4)視屏模塊圖V4L2流程V4L2采用流水線的方式,操作更簡單直觀,基本遵循打開視頻設備、設置 格式、處理數(shù)據(jù)、關閉設備,更多的具體操作通過ioctl函數(shù)來實現(xiàn)。打開視頻設備在Linux中,設備被看做一個文件。使用open函數(shù)打開視頻設備。打開設備有兩種方式:1、用非阻塞模式打開int Fd;Fd 二 open(7dev/video2, 0_RDWR | 0_N0NBL0CK, 0):2用阻塞模式打開:Fd = open(7dev/
41、video2, 0_RDWR, 0);應用程序能夠使用阻塞模式或非阻塞模式打開視頻設備,如果使用非阻塞 模式調(diào)用視頻設備,即使尚未捕獲到信息,驅動依舊會把緩存(DQBUFF)里的 東西返回給應用程序。設定屬性及釆集方式打開視頻設備后,可以設置該視頻設備的屬性,例如裁剪、縮放等。這一 步是可選的。在Linux編程中,一般使用ioctl函數(shù)來對設備的I/O通道進行 管理:int ioctl (int _fd, unsigned long int _request, ./*args*/) 在進行V4L2開發(fā)中,常用的命令標志符如下(some are optional): VIDIOC_REQBUFS
42、: 分配內(nèi)存VIDIOC_QUERYBUF:把VIDIOC_REQBUFS中分配的數(shù)據(jù)緩存轉換成物理地址VIDIOC_QUERYCAP:查詢驅動功能VIDIOC_ENUM_FMT :得到視頻設備支持的視頻格式VIDIOC_S_FMT:設置視頻設備的頻捕獲格式VIDIOC_G_FMT:得到視頻設備的頻捕獲格式VIDIOC_TRY_FMT:視頻設備支持的顯示格式VIDIOC_QBUF:從緩存中讀取數(shù)據(jù)VIDIOC_DQBUF:數(shù)據(jù)重新進入緩存隊列VIDIOC.STREAMON:開始視頻獲取VIDIOC.STREAMOFF:結束視頻獲取VIDIOC_QUERYSTD:檢查當前視頻設備支持的標準,例如
43、PAL或NTSC。 在亞洲,一般使用PAL (720X576)制式的攝像頭,而歐洲一般使用NTSC(720X480),使用 VIDIOC_QUERYSTD 來檢測:v412_std_id std;do ret = ioctl(fd, VIDIOC_QUERYSTD, &std): whi.le (ret 二二-1 & errno = EAGAIN);switch (std) case V4L2_STD_NTSC:if (ioctl(Fd, VIDIOC_S_FMT, & fmmt) = -1) return -1;v412_format結構定義: struet v412_formatenum
44、v412_buf_type type;unionstruct v412_pix_formatpix;struct v412_windowwin;struct v412_vbi_formatvbi;u8raw_data200; fmt;struct v412_pix_formatu32width;u32height;u32pixelformat;enum v412 fieldfield;u32bytesperline;u32sizeimage;enum v412_colorspacecolorspace;u32priv;分配內(nèi)存然后為從攝像頭捕獲的圖像分配內(nèi)存:struct v412_reque
45、stbuffers req;辻(ioctl(Fd, VIDIOC_REQBUFS, &req) = -1) return T;v412_requestbuffers 結定義:struct v412_requestbuffersu32count;enum v412_buf_type type;enum v412_memory memory:u32reserved2;得到視頻緩存的內(nèi)存空間使用VIDIOCREQBUFS命令,來得到count個緩存,然后通過使用 VIDIOC.QUERYBUF命令來得到分配的緩存的地址,再用mmap函數(shù)把地址映射為 應用程序中的絕對地址,最后把得到的緩存放入緩存隊列
46、以便循環(huán)利用。typedef struct VideoBuffer void *start;size_t length; VideoBuffer;VideoBuffer*buffers = calloc( , sizeof(*buffers);struct v412_buffer buf;for (numBufs = 0; numBufs ; numBufs+) memset ( &buf, 0, sizeof (buf);=V4L2_BUF_TYPE_VIDE0_CAPTURE:二 V4L2_MEM0RY_MMAP:=numBuf s:if (ioctl(fd, VIDIOC_QUERYBUF, &buf)二二-1) return T;buff
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度全國旅游合同集合:旅游企業(yè)信用體系建設合作協(xié)議
- 2025年度高端企業(yè)人才招聘與培訓人力資源合作協(xié)議
- 二零二五年度特色餐飲店廚師團隊協(xié)作合同
- 二零二五年度民宿租賃合同(含民宿特色旅游線路)
- 二零二五年度離婚后撫養(yǎng)權交接協(xié)議范本
- 二零二五年度住宅小區(qū)鋁合金門窗批量定制安裝合同
- 第二章運輸需求分析與預測(06)課件
- 2025屆高三化學二輪《多視角分析工藝流程試題》
- 2025年湖北貨運從業(yè)資格證模擬考試0題b2答案
- 萬達城住宅臨時用電施工方案
- 水下拋石施工方案
- 《法官檢察官》課件
- 四年級全一冊《勞動與技術》第一單元活動4《規(guī)范使用家用電器》課件
- 《優(yōu)衣庫公司基層員工培訓現(xiàn)狀及問題研究(9400字)》
- 2024年度網(wǎng)易游戲開發(fā)與發(fā)行合同6篇
- 高考語文復習:分析小說人物心理 課件
- 溫州市第五屆職業(yè)技能大賽砌筑工項目比賽技術文件
- 2023-2024學年廣東省廣州市天河區(qū)七年級(上)期末英語試卷
- 外墻安全隱患排查與整改方案
- 2024落實意識形態(tài)責任清單及風險點臺賬
- 購油聯(lián)營協(xié)議合同模板
評論
0/150
提交評論