基于GPRS的嵌入式智能家居終端的設計與實(shí)現
5.1RS485總線(xiàn)控制
基于上一部分RS485的總線(xiàn)協(xié)議,主從控制主要分為:輪詢(xún)、查詢(xún)、控制三部分。(1)輪詢(xún):主機定時(shí)對各從機進(jìn)行查詢(xún),如果發(fā)現報警信息,保存后及時(shí)觸發(fā)報警并反饋給用戶(hù)。如果出現超時(shí)或幀錯誤等狀態(tài)時(shí)主機放棄此次查詢(xún),并將該事件存儲在主機中。(2)查詢(xún):查詢(xún)的工作流程和輪詢(xún)大致相同,但是只對指定的從機和指定狀態(tài)進(jìn)行查詢(xún)。(3)控制:把控制指令發(fā)到指定從機,并要求從機反饋執行結果。
5.2GPRS的無(wú)線(xiàn)數據傳輸
5.2.1接收和發(fā)送SMS短信
(1)編碼轉換:要發(fā)送中文短信就需要使用PDU模式的16-bit編碼。在Linux系統中默認用 GB2312保存中文字符。發(fā)送短信前,要先進(jìn)行編碼轉換,要將GB2312轉換為Unicode編碼,再將Unicode編碼轉換為PDU的16- bit編碼。這里使用Linux中的iconv()函數,該函數可以實(shí)現Linux支持的任意的兩種編碼之間的轉換。實(shí)現的方法:首先用 iconv_open(),打開(kāi)一個(gè)轉換句柄,指定兩種轉換前的編碼和轉換后的編碼。然后用icnov()作轉換。最后用iconv_close()關(guān)閉句柄,釋放資源。完成轉換后,即可以正確的發(fā)送。(2)發(fā)送:向MC35模塊發(fā)送一條AT指令,得到OK響應,則表示控制器與GPRS模塊通訊正常,通過(guò) “AT+CSCA=“***”及AT+CSCA=0命令設置設置短信中心號碼及短信格式(PDU)。然后發(fā)送AT+CMGS=電話(huà)號碼,得到提示符號 “>”,此時(shí)可以向MC35模塊發(fā)送編輯好的PDU編碼并以“CTRL+Z”結束。得到響應OK,則發(fā)送成功;如果收到ERROR則表示發(fā)送失敗,重新初始化MC35模塊,發(fā)送信息[4]。(3)接收:當收到短信時(shí),發(fā)送”“AT+CMGR=X”從SIM卡讀取短消息并調用短信處理程序作相應轉換。
5.2.2GPRS聯(lián)網(wǎng)在Linux下的實(shí)現
GPRS聯(lián)網(wǎng)是Linux的PPP協(xié)議實(shí)現的。因此在編譯內核時(shí)需要增加Linux內核的PPP支持[5]。然后根據程序中提供的配置信息,包括移動(dòng)的APN*/為“CMNET”,通訊協(xié)議IP,撥號號碼“*99***1#”,串口設備號/dev/ttyS2,波特率9600,用戶(hù)名,密碼等信息配置PPP協(xié)議需要的5個(gè)腳本和配置文件:ppp-on、ppp-off、options.gprs、 dialer.gprs、pap-secrets。完成設置后,運行ppp-on,就可以進(jìn)行GPRS撥號;運行ppp-off斷開(kāi)連接。
GPRS聯(lián)網(wǎng)流程(控制器作為客戶(hù)端):(a)當用戶(hù)希望通過(guò)網(wǎng)絡(luò )訪(fǎng)問(wèn)GPRS模塊時(shí)可以通過(guò)短信方式向主機GPRS模塊發(fā)送聯(lián)網(wǎng)命令,包括用戶(hù)的 IP地址和相關(guān)配置信息。(b)主機根據用戶(hù)短信獲得GPRS上網(wǎng)連接的配置信息,并生成對應的撥號腳本文和配置文件。調用ppp-on腳本進(jìn)行PPP撥號。(c)判斷PPPD是否撥號成功,標志是能否生成ppp0網(wǎng)絡(luò )設備。(d)在數據傳輸過(guò)程中通過(guò)看門(mén)狗實(shí)時(shí)觀(guān)測網(wǎng)絡(luò )連接狀態(tài),網(wǎng)絡(luò )掉線(xiàn)時(shí),主機保存當前數據狀態(tài),重新啟動(dòng)GPRS模塊并恢復連接。(e)結束本次任務(wù)時(shí),用戶(hù)在網(wǎng)上發(fā)送命令,讓控制器調用ppp-off,斷開(kāi)連接。
5.3系統軟件流程
軟件流程如圖2所示,系統上電啟動(dòng)后,首先對包括串口,LCD,鍵盤(pán),GPRS模塊以及網(wǎng)絡(luò )配置文件等做相應的初始化。并檢測GPRS模塊和主機是否通訊正常。然后開(kāi)始對從機進(jìn)行輪詢(xún),發(fā)現警情時(shí),讀取并存儲報警信息,啟動(dòng)報警器并將相應的報警信息通過(guò)撥號和短信的方式通知用戶(hù)。當收到用戶(hù)命令時(shí),先判斷用戶(hù)的控制方式,再做出做出回應。本文引用地址:http://dyxdggzs.com/article/162617.htm
軟件流程
6總結與展望
本文介紹了一種基于A(yíng)RM-Linux和 GPRS技術(shù)的家庭智能控制終端,并通過(guò)RS485總線(xiàn)解決了家用設備的布線(xiàn)及控制器對設備的控制問(wèn)題。文中給出了詳細的系統架構方案。從軟、硬件兩方面給出了詳細的設計思路和實(shí)現方法。整套方案對家庭智能控制器系統實(shí)現中存在的主要問(wèn)題提出詳細的解決方案,并且在實(shí)踐中證明了其可實(shí)施性。此外,由于該控制器具備GPRS控制器的基本功能,只需在應用程序部分做相應修改,可用作其它無(wú)線(xiàn)遠程控制設備,具有通用性和可擴展性。
評論