<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于S3C2440家庭網(wǎng)關(guān)設(shè)計(jì)方案(二)

          基于S3C2440家庭網(wǎng)關(guān)設(shè)計(jì)方案(二)

          作者: 時間:2012-11-16 來源:網(wǎng)絡(luò) 收藏
          SQlite 則在體積與功能之間做到了較好的平衡,是“理想的嵌入式數(shù)據(jù)庫”。此系統(tǒng)創(chuàng)建文件名為dc_main.

            db 的sqlite3 數(shù)據(jù)庫文件,并在以創(chuàng)建的dc_main.db中創(chuàng)建一張數(shù)據(jù)表study 用來存儲各個房間各遙控器的紅外指令,SQL 命令為:

            create table study(

            id integer primary key autoincrement,--id 號,自動產(chǎn)生

            room varchar(10), --房間名稱

            appliance varchar(10), --電器名稱

            key varchar(10), --按鍵名稱

            command varchar(500)); --紅外脈沖信號

            為了用戶方便與系統(tǒng)進(jìn)行交互,采用QT4 設(shè)計(jì)遙控器自學(xué)習(xí)界面,Qt 是Trolltech 公司開發(fā)的一個多平臺的C++圖形用戶界面應(yīng)用程序框架。包括直觀的API 和豐富C++ 類庫、用于GUI 開發(fā)和國際化的集成工具,支持使用JavaTM 和C++ 語言進(jìn)行開發(fā)。該圖形系統(tǒng)最大的優(yōu)點(diǎn)是采用面向?qū)ο笤O(shè)計(jì),移植性好,基于X Window 的Qt 桌面應(yīng)用程序可以非常方便的移植到嵌入式系統(tǒng)上。在對硬件和容量都有限制的嵌入式環(huán)境上,Qt 可以直接在Framebuffer 上顯示圖形。

            Qt 的這種特性在一定程度上提高了嵌入式GUI 程序的執(zhí)行效率,這對硬件和容量都有限制的嵌入式環(huán)境非常重要。同時Qt4 為數(shù)據(jù)庫訪問提供的QtSQL 模塊實(shí)現(xiàn)了數(shù)據(jù)庫與Qt 應(yīng)用程序的無縫集成。

            此系統(tǒng)用Qt4 和SQLite3 技術(shù)實(shí)現(xiàn)了遙控器自學(xué)習(xí)系統(tǒng)的前臺界面及數(shù)據(jù)的存儲,遙控器自學(xué)習(xí)界面如圖 5 所示。

            基于S3C2440家庭網(wǎng)關(guān)設(shè)計(jì)方案(二)

            圖 5 遙控器自學(xué)習(xí)界面

            為了存儲時能將按鍵與其紅外指令對應(yīng),在遙控器自學(xué)習(xí)前臺界面要輸入房間、電器、按鍵的名稱,因此設(shè)計(jì)了鍵盤進(jìn)行內(nèi)容輸入,用戶在界面輸入房間、電器、按鍵,之后對著紅外一體化接收頭按下遙控器的對應(yīng)按鍵接收紅外指令,按確認(rèn)后,將房間、電器、按鍵信息以及所對應(yīng)的遙控器紅外指令存入sqlite3 數(shù)據(jù)庫。

            2.2 短信接收模塊

            短信接收模塊實(shí)現(xiàn)的功能包括接收短信,以及根據(jù)短信內(nèi)容調(diào)取數(shù)據(jù)庫中的紅外指令發(fā)送給Zigbee 模塊。

            2.2.1 硬件設(shè)計(jì)

            短信接收模塊采用GR64 模塊,通過串口連接到中央處理器,GR64 模塊是一款帶有GSM/GPRS 全套語音和數(shù)據(jù)功能的工業(yè)級無線調(diào)制解調(diào)模塊。集射頻電路和基帶處理器于一體,提供豐富的外設(shè)及接口,其硬件原理圖如圖 6 所示。

            基于S3C2440家庭網(wǎng)關(guān)設(shè)計(jì)方案(二)

            圖6 GR64 原理圖

          2.2.2 軟件實(shí)現(xiàn)

            短信接收軟件提供短信的接收以及處理,GR64模塊支持兩種模式收發(fā)短信:Text 模式、 PDU 模式。

            Text 模式是純文本方式,不支持中文,可使用不同的字符集,主要用于歐美地區(qū);PDU 模式被所有手機(jī)及工業(yè)級模塊支持,可以使用任何字符集,目前最為常用。采用PDU 模式接收數(shù)據(jù),以便能夠正確的顯示漢字。

            用戶根據(jù)遙控器對碼學(xué)習(xí)的格式編寫控制家電的短消息,其格式為:房間,電器,按鍵例如:客廳,空調(diào),打開發(fā)送至,使用AT 命令接收短消息,AT 命令集具有標(biāo)準(zhǔn)的硬件接口(串口)并且可以通過一組AT 命令完成對GR64 的配置和控制,接收短信用到的AT 命令為:

            AT+CMGF=0 設(shè)置短信格式為PDU 格式

            AT+CMGL=1 讀取未讀短消息

            短信處理子程序流程圖如圖 7 所示。

            基于S3C2440家庭網(wǎng)關(guān)設(shè)計(jì)方案(二)

            圖7 短信處理子程序流程圖

            家庭網(wǎng)關(guān)接收到的手機(jī)短信是unicode 碼值,要將其轉(zhuǎn)換為GB2312 編碼顯示為漢字,之后進(jìn)行身份驗(yàn)證(手機(jī)號碼驗(yàn)證),通過之后將短信內(nèi)容提取出來作為條件查詢數(shù)據(jù)庫,調(diào)取數(shù)據(jù)庫中所對應(yīng)的遙控器紅外指令,發(fā)送至Zigbee 模塊。

            2.3 Zigbee 模塊

            Zigbee 模塊作為家庭內(nèi)部網(wǎng)的主節(jié)點(diǎn)能夠?qū)崿F(xiàn)的功能包括接收遙控器紅外指令,以及通過Zigbee 網(wǎng)絡(luò)將此紅外指令發(fā)送給各個分控節(jié)點(diǎn)。
          2.3.1 硬件設(shè)計(jì)

            硬件部分的設(shè)計(jì)如圖 8 所示。采用無線SoC 單片機(jī)CC2430 構(gòu)建Zigbee 模塊,具有超低功耗、高靈敏度、出眾的抗噪聲及抗干擾能力,并且包括的許多強(qiáng)大的外設(shè)資源。通過串口與中央處理器相連。

            基于S3C2440家庭網(wǎng)關(guān)設(shè)計(jì)方案(二)

            圖8 Zigbee 模塊原理圖

            2.3.2 軟件實(shí)現(xiàn)

            通過軟件實(shí)現(xiàn)紅外指令的接收及發(fā)送,程序流程圖如圖 9 所示。

            基于S3C2440家庭網(wǎng)關(guān)設(shè)計(jì)方案(二)

            圖9 Zigbee 模塊程序流程圖

            Zigbee 模塊首先使用串口接收紅外指令,然后通過射頻通信,將紅外指令發(fā)送到各個分控節(jié)點(diǎn)。

            3 結(jié)語

            隨著Intemet 技術(shù)的發(fā)展以及32 位微處理器時代的來臨,信息家電、信息家庭的概念已開始深入人心。

            提出以ARM9 的32 位微處理器A 作為家庭網(wǎng)關(guān)的中央處理器,軟件上以嵌入式Linux 為平臺,實(shí)現(xiàn)了短信接收、遙控器自學(xué)習(xí)、紅外指令發(fā)送等功能。該家庭網(wǎng)關(guān)成本較低,易于升級,便于推廣應(yīng)用。



          關(guān)鍵詞: S3C2440 家庭網(wǎng)關(guān)

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();