基于ARM-Linux和GPRS技術(shù)的家庭智能控制終端設(shè)計
摘 要:利用GPRS技術(shù),結(jié)合嵌入式系統(tǒng)的ARM-Linux平臺,設(shè)計實現(xiàn)了一種智能家居控制器。通過使用手機短信和互聯(lián)網(wǎng)等方式解決了用戶在異地對家庭智能系統(tǒng)的遠程查詢,控制等問題。同時采用RS485拓撲總線結(jié)構(gòu)解決了家庭設(shè)備布線及控制問題。硬件上介紹了系統(tǒng)構(gòu)成及接口的轉(zhuǎn)換和擴展;軟件上則詳細闡述了GPRS的無線通訊在ARM-Linux下的實現(xiàn)和RS485總線協(xié)議設(shè)計的具體流程。為家庭智能系統(tǒng)實施無線遠程控制提供了一種實際的可行方案。
關(guān)鍵詞:智能家居控制器; GPRS; ARM-Linux; RS485總線
1 引言
隨著網(wǎng)絡(luò)技術(shù)和通信技術(shù)的不斷發(fā)展,人們希望即使在工作或外出時也能通過某種方式及時了解和控制家中的情況,同時伴隨著數(shù)字化家庭的普及,實現(xiàn)智能家居的遠程控制已經(jīng)成為一種趨勢。家庭智能控制系統(tǒng)通過家庭總線技術(shù),把家庭中各種家用電器、家庭保安裝置和各種計量設(shè)備連接到一起組成一個家庭內(nèi)部網(wǎng)絡(luò),由家庭智能控制器進行統(tǒng)一管理[1]。遠程控制就是通過某種通訊方式將智能家庭控制器與外界相連,使人們能夠在本地或異地對家庭系統(tǒng)進行集中的監(jiān)視、控制。本文中介紹的方案,結(jié)合了GPRS(General Packet Radio Service)技術(shù)永遠在線,速度快,接入范圍廣,體積小,功耗低等優(yōu)點[2],采用RS485工業(yè)總線,設(shè)計實現(xiàn)了一種基于嵌入式系統(tǒng)的家庭智能控制器。用戶可以通過短信及互聯(lián)網(wǎng)等方式現(xiàn)遠程無線監(jiān)控,在手機和互聯(lián)網(wǎng)相當(dāng)普及的今天,為用戶提供了更簡單、方便的選擇。同時由于該控制器RS485接口的特殊設(shè)計,外掛節(jié)點可以由原來的32個擴展到64個,解決了家用設(shè)備的布線組網(wǎng)以及控制等問題。
2 系統(tǒng)設(shè)計
從結(jié)構(gòu)上看主要分為用戶,控制器,和RS485總線的家用設(shè)備控制三個部分。用戶通過手機短信或網(wǎng)絡(luò)方式向控制器的GPRS模塊發(fā)送命令,而控制器也通過GPRS模塊向用戶反饋信息或發(fā)出報警通知。從而實現(xiàn)了用戶和控制器無線互聯(lián),實現(xiàn)遠程控制。
3 硬件設(shè)計
硬件部分的結(jié)構(gòu)框圖如圖1所示,控制器是整個系統(tǒng)的核心部分,經(jīng)過串口擴展與GPRS模塊相連;通過電平轉(zhuǎn)換芯片提供RS485總線接口與家用設(shè)備相連接;同時還提供LCD,鍵盤等交互接口。控制器的主控芯片采用三星S3C44B0,使用ARM7TDMI核,工作頻率在66MHz[1]。處理器外接 4MFlash(用于存儲控制器的啟動代碼和系統(tǒng)代碼以及當(dāng)天事件的文本日志)分配到存儲器Bank0空間和4M×16的SDRAM,分配到存儲器的 Bank6空間。
GPRS 模塊外圍電路:GPRS模塊采用西門子公司的MC35模塊,支持?jǐn)?shù)據(jù)、語音、短消息和傳真等多種通信方式可以通過AT命令對其實現(xiàn)控制。串行線通過 MAX3238電平轉(zhuǎn)換后可直接和RS232串口相連。串口擴展:44B0通過外接雙通道的通用異步收發(fā)器ST16C2550為GPRS modem撥號上網(wǎng)提供完整的9線串口。其主要特點是接收p發(fā)送各有16字節(jié)的FIFO(先入先出) 緩沖區(qū),獨立的波特率產(chǎn)生器可提供50bps到4Mbps的收發(fā)時鐘。用戶可方便地通過芯片的狀態(tài)寄存器來進行錯誤定位和對操作狀態(tài)進行判斷。該芯片內(nèi)存空間使用保留的存儲空間bank4。采用總線方式控制。RS485接口設(shè)計:采用TI公司的RS485接口芯片75L BC184,可實現(xiàn)了44B0串行口的TTL電平與RS485電平之間的轉(zhuǎn)換,該芯片的輸入阻抗為RS485標(biāo)準(zhǔn)輸入阻抗的2倍(≥24KΩ),故可以在總線上連接64個節(jié)點(相當(dāng)于原來的兩倍)。且它有一個獨特的設(shè)計,當(dāng)輸入端開路時,其輸出為高電平,這樣可保證接收器輸入端電纜有開路故障時,不影響系統(tǒng)的正常工作。
4 RS485總線協(xié)議設(shè)計
用RS-485總線進行系統(tǒng)通訊需要對其傳輸協(xié)議做規(guī)定,最重要的就是幀結(jié)構(gòu)的設(shè)計。本系統(tǒng)數(shù)據(jù)幀的構(gòu)造包括:起始,地址,類型,數(shù)據(jù)長度,數(shù)據(jù),校驗和及結(jié)束幀七個部分,除數(shù)據(jù)幀為N字節(jié)外(根據(jù)從機傳送的數(shù)據(jù)而定),其余均占1個字節(jié)。類型字定義如表1所示, 類型幀中的“SEN DDATA”幀為數(shù)據(jù)幀,用于存放從機設(shè)備的狀態(tài)信息,其它4種為指令幀,用于存放主機發(fā)送給從機的命令字[3]。
主機發(fā)查詢請求 主機發(fā)讀請求 從機準(zhǔn)備好接收 從機處于忙碌 主/從機發(fā)送數(shù)據(jù)
本系統(tǒng)采用LRC幀校驗的方法。LRC值由傳輸設(shè)備來計算并放到消息幀中,接收設(shè)備在接收消息的過程中計算LRC,并將它和接收到消息中LRC域中的值比較,如果兩值不等,說明有傳輸錯誤。除了幀結(jié)構(gòu)的定義以外,整個系統(tǒng)的通信還需要遵守下面的規(guī)則:(a)主機查詢方式:由主機輪詢各從機,并要求從機提交狀態(tài)信息,從機不能主動發(fā)出請求。(b)當(dāng)主機發(fā)出“ASK”命令后,若從機反饋“BUSY”幀,則主機啟動計時和計數(shù),超時3次,則任務(wù)執(zhí)行失敗。(c)主機接收到從機發(fā)回的“READY”信號后,向從機發(fā)送“GETDATA”指令,進入接收狀態(tài),同時開啟超時控制。若在規(guī)定時間未接收到從機發(fā)回的數(shù)據(jù),則計數(shù)器加1,并繼續(xù)發(fā)出“GETDATA”信號。如果超時3次,則取消這次查詢。(d)從機等待主機發(fā)送指令,并根據(jù)具體指令作相應(yīng)操作。如果接受到的指令幀錯誤,則會直接丟棄該幀。
評論