基于FS_S5PC100和Android平臺的智能模擬系統的設計與實現_PC0S

來源:班主任總結 發布時間:2019-08-17 04:56:23 點擊:

  摘要:基于FS_S5PC100硬件平臺和Android框架,設計與實現了一個智能家居系統。首先,在Android框架下設計與實現了智能家居系統的JNI程序、底層Linux驅動程序和基于Java的用戶界面程序,然后在板級資源基礎上模擬實現了智能家居系統中的室內光源控制、異常報警、溫度采集和控制、電壓采集和控制等七個功能模塊。最后經測試,系統運行穩定,操作方便,可擴展性強,對日后開發相似智能系統具有一定的借鑒價值。
  關鍵詞:Android;JNI;Linux;智能家居
  中圖分類號:TP3681 文獻標識碼:A文章編號:2095-2163(2013)02-0065-03
  0引言
  智能家居是以住宅為平臺,兼備新式建筑、網絡通信、信息家電、設備自動化等諸類優勢,群集系統、結構、服務、管理于一體而打造的以高效、舒適、安全、便利、環保為主旨特征的高科技時代先進居住環境。該類型家居不僅具有傳統意義上的居住功能,更為人們提供了舒適安享的家庭生活空間,而且通過把智能高科技帶進家庭,由此使全方位的信息交換成為可能[1]。目前,隨著基于3G和WIFI功能的各類智能產品逐步進入人們的生活,基于Android的智能家居系統也必將引領未來的家具潮流。
  本文在FS_S5PC100硬件平臺上,利用Android框架,模擬實現了智能家居系統。系統功能主要有,通過LED燈模擬控制室內光源,通過蜂鳴器模擬報警功能,通過按鍵模擬室內人員移動方向,通過RTC時鐘實現采集并控制時鐘,通過溫度傳感器、電位器等模擬室內相應的數據采集模塊。測試結果表明,該系統可擴展性強、操作方便,為實際制作基于Android的智能家居系統提供了有益的理論參考。
  1需求分析
  11任務描述
  通過本系統,可以對家庭的各項數據進行采集、進而對家用電器實行遠程控制;當室內出現異常狀況時,用戶能夠及時得到通知并通過網絡實施操作以降低損失。在使用上,本系統應該適合大眾消費群體,用戶利用手機界面上的相應按鈕能夠快速達到精通,并可以對系統進行全面觀察和監控,執行相應動作。
  系統中,Android是一個源碼開放、且為移動電話而專門設計的操作系統。在深入了解Java編程、Hal架構編程、Linux驅動編程基礎上,將Android與傳感器技術相結合,加以技術開發,設計得到了基于Android的智能家居系統,系統層次架構如表1所示。
  12任務目標
  本模擬系統以FS_S5PC100開發板為硬件平臺,利用Android系統實現了前端數據采集和后臺控制兩部分,即實現了遠程控制和本地監控兩大功能,具體包括七個功能模塊,這七個模塊分別是:
  (1)LED模塊:模擬控制光源。
  (2)蜂鳴器模塊:模擬報警功能。
  (3)按鍵檢測模塊:模擬室內人員移動方向。
  (4)RTC實時時鐘模塊:采集并控制時鐘。
  (5)溫度傳感器模塊:采集溫度數據。
  (6)ADC電位器模塊:采集電壓信息。
  (7)方向傳感器模塊:模擬三個軸方向信息。第2期王冬星,等:基于FS_S5PC100和Android平臺的智能模擬系統的設計與實現智能計算機與應用第3卷
  2HAL框架的設計與實現
  硬件抽象層通過open(),read(),write(), ioctl(),poll()等函數調用的方式,與底層設備驅動程序進行交互,而這些函數調用是底層設備驅動程序預先定制的。對于目前的HAL,可做如下認定:Android給出了HAL層結構框架,可通過多個接口訪問硬件,從而在調用方式上達到了統一[2]。
  以LED模塊操作為例,其在HAL架構的各層接口,包括應用層和驅動層,具體如圖1所示。
  HAL層實現了四個模塊:LED、蜂鳴器、按鍵檢測和RTC。在此,重點說明LED模塊,其它模塊實現方法與其類似,具體可參見LED模塊即可。
  2.1LED模塊
  LED模塊主要模擬實現智能家居的光源情況,用戶可以根據室內光照的明暗程度對光源進行控制,在整合Android各個框架的基礎上,實現對硬件設備LED的控制。具體的設計和實現如下。
  2.1.1驅動設計與實現
  GPG3(0-3)控制LED亮滅,電路中,當GPG3(0-3)各位均輸出高電平時LED亮,反之則滅。對GPG3CON進行設置,將對應的4位設定成輸出位;對GPG3DAT給以賦值,控制各LED亮滅。在ioctl()中增加一個arg參數,通過傳遞參數對4個LED燈進行選擇,并在ioctl前就對arg參數加以判斷,確定其是否合法。在驅動程序中應用的宏和全局變量如表2、表3所示。
  2.1.2HAL層設計與實現
  HAL層中應用宏,如表4所示。
  該層實現了可供JNI層調用的接口,實現代碼如下:
  在這些函數實現中,利用底層驅動提供的接口,即ioctl,控制寄存器完成控制LED燈的亮滅操作。
  該層調用了led_device_open函數和led_device_close函數。其中的led_device_close函數可用來釋放led_device_open函數中申請的結構體指針,并關閉文件設備fd。
  實例化后的led_control_device_t地址返回給JNI層,其后JNI層就可以直接調用led_on等方法,還可以操作處理stub的函數,進而控制函數。JNI層使用的全局變量如表5所示。
  22蜂鳴器模塊
  蜂鳴器模塊主要模擬現實家居的報警功能,用戶可以根據室內物體移動等情況決定是否開啟報警系統,其驅動實現、HAL層實現和JNI層實現類似LED模塊。   23按鍵檢測模塊
  按鍵檢測模塊主要模擬現實家居中人員的移動方向,用戶可以根據室內人員的方向來判定。
  在FS_S5PC100平臺上,6個按鍵分別對應EINT1-7。其在核心板上對應為:GPH0_1-GPH0_7。根據接收中斷的不同,賦給全局變量key的值也就不同,以此代表不同的中斷,并將key傳給用戶界面。
  2.4RTC實時時鐘模塊
  RTC實時時鐘模塊主要對現實家居中時鐘的數據采集和進行相應設置。
  3Sensor架構程序設計與實現
  Android的傳感器系統,為開發者提供了統一的程序框架來實現系統中的多個傳感器功能。試舉一例,在本系統中利用磁場傳感器來模擬AD轉換,并實現了溫度傳感器數據采集。
  作為直接與驅動程序相聯系的接口,Sensor_Hal_Stub實現了所有傳感器的基本操作程序接口,同時又結合了傳感器系統的特點,將所有傳感器整合到統一框架中,實現了多個傳感器的訪問控制[3]。
  4系統測試
  經測試,系統運行穩定,基本實現了需求分析中的既定任務目標。例如,點擊LED控制室內光源的測試,相應控件提示點亮信息,并將結果反饋給用戶,告知與其關聯硬件LED燈點亮。模擬控制室內光源測試效果如圖2所示。
  5結束語
  本文以FS_S5PC100為平臺,基于Android框架,模擬實現了一個智能家居系統。經測試,實驗室中的系統實現了既定的任務目標,但還有許多不足和有待改進之處,如界面設計不夠友好,互動性功能不完備等,這些均需要在下一步的研究工作中進行完善和提高[4]。
  參考文獻:
  [1]賀翔,孟小華.嵌入式智能家居終端人機界面設計與實現[J].計算機工程與設計,2010,31(10):2166-2168.
  [2]楊豐盛. Android技術內幕[M].北京:機械工業出版社,2011:3-100.
  [3]鄧凡平.深入理解Android[M]. 北京:機械工業出版社,2011:1-41.
  [4]王藝璇.基于Android平臺的移動圖書館客戶端設計與實現[J]. 智能計算機與應用,2011,1(4):28-30,33.

推薦訪問:不厭其煩 不厭其煩 不厭其煩 不厭其煩
上一篇:夸張浮世繪春畫_浦東浮世繪的文學重構
下一篇:最后一頁

Copyright @ 2013 - 2018 韓美范文網- 精品教育范文網 All Rights Reserved

韓美范文網- 精品教育范文網 版權所有 湘ICP備11019447號-73

大胖彩票 久治县 | 金平 | 翁源县 | 名山县 | 遂平县 | 永顺县 | 方城县 | 凉城县 | 朝阳区 | 堆龙德庆县 | 乐至县 | 临泉县 | 纳雍县 | 瓦房店市 | 泰安市 | 紫阳县 | 平遥县 | 霍邱县 | 灵璧县 | 嘉鱼县 | 荥阳市 | 浦县 | 瑞金市 | 封开县 | 贺州市 | 海晏县 | 安仁县 | 读书 | 明水县 | 玉门市 | 衡阳市 | 台中县 | 临安市 | 乐昌市 | 乌什县 | 武冈市 | 湘潭市 | 商丘市 | 象州县 | 清新县 | 定陶县 | 江西省 | 鱼台县 | 上饶县 | 阜新 | 吉隆县 | 湖州市 | 海兴县 | 潜山县 | 新竹市 | 于都县 | 定日县 | 伊吾县 | 寿阳县 | 调兵山市 | 宁河县 | 宁城县 | 乡宁县 | 延寿县 | 富平县 | 无棣县 | 安多县 | 宝山区 | 罗平县 | 巴林左旗 | 芮城县 | 雷波县 | 杨浦区 | 武平县 | 五莲县 | 万载县 | 漯河市 | 新昌县 | 临城县 | 农安县 | 巍山 | 襄汾县 | 贵州省 | 化德县 | 德庆县 | 建平县 | 曲松县 | 大石桥市 | 建昌县 | 潜山县 | 九江县 | 枝江市 | 翁源县 | 灵川县 | 临桂县 | 浠水县 | 南康市 | 通州区 | 扶绥县 | 赤峰市 | 剑川县 | 彰武县 | 苍溪县 | 浦江县 | 尼玛县 | 阿勒泰市 | 攀枝花市 | 武冈市 | 盐亭县 | 马关县 | 威远县 | 嘉禾县 | 宁陵县 | 西乌珠穆沁旗 | 喀喇沁旗 | 台江县 | 永新县 | 蒲城县 | 江阴市 | 安岳县 | 额尔古纳市 | 清水县 | 郎溪县 | 海南省 | 南川市 | 镇原县 | 新源县 | 阜新 | 青川县 | 京山县 | 密山市 | 伊金霍洛旗 | 古交市 | 剑川县 | 宜丰县 | 磴口县 | 丘北县 | 鄂托克旗 | 南陵县 | 红河县 | 廊坊市 | 闽侯县 | 赫章县 | 武山县 | 临汾市 | 侯马市 | 惠水县 | 神池县 | 库车县 | 来凤县 | 尉氏县 | 富裕县 | 孟村 | 高密市 | 兴国县 | 治多县 | 莱阳市 | 嘉义市 | 虹口区 | 乐至县 | 台中市 | 逊克县 | 惠东县 | 西和县 | 榆林市 | 汉阴县 | 伊通 | 南汇区 | 营山县 | 荥经县 | 建德市 | 万全县 | 沾益县 | 深州市 | 新丰县 | 齐齐哈尔市 | 乳源 | 米泉市 | 长泰县 | 古蔺县 | 盐亭县 | 泾川县 | 塔城市 | 泊头市 | 城步 | 花垣县 | 安溪县 | 泌阳县 | 靖安县 | 育儿 | 六安市 | 乳源 | 武乡县 | 西峡县 | 湄潭县 | 乌拉特前旗 | 曲靖市 | 康乐县 | 灵石县 | 徐闻县 | 德格县 | 肇庆市 | 原阳县 | 襄樊市 | 肥西县 | 阿坝 | 郓城县 | 永春县 | 定边县 | 柘荣县 | 贺州市 | 土默特左旗 | 丹寨县 | 扎囊县 | 山阴县 | 黄梅县 | 周口市 | 新建县 | 东海县 | 肥城市 | 永春县 | 禄劝 | 长沙市 | 米脂县 | 邵东县 | 故城县 | 梅州市 | 浠水县 | 定襄县 | 连平县 | 略阳县 | 吴江市 | 临泉县 | 如东县 | 镶黄旗 | 广昌县 | 衡山县 | 平度市 | 云和县 | 樟树市 | 密云县 | 平塘县 | 西华县 | 文登市 | 定西市 | 南昌县 | 尼木县 | 汝州市 | 香港 | 柘城县 | 滦平县 | 衡山县 | 商水县 | 郓城县 | 云霄县 | 峡江县 |