基于ARM-Linux平臺及GPRS技術的家庭智能控制系統
軟件部分的設計主要是基于ARM-Linux,與其他嵌入式操作系統相比,Linux 操作系統具有完整的TCP/IP 協議,良好的穩定性和實時性,很好的滿足了家庭智能控制系統對系統可靠性的要求;此外,Linux易于移植裁減、內核小、效率高、源代碼開放并有眾多的開發者,為系統的開發提供了良好的技術支持。
系統開發首先要建立交叉編譯環境,然后引導bootloader,移植操作系統,裝載文件系統,開發圖形界面,最后編寫應用程序。Bootloader 主要實現系統的快速引導,將Linux 內核加載到內存,并進行內核初始化。Linux2.6 內核具有強大的進程、中斷、內存和設備管理,支持各種文件系統。
系統主程序流程如圖4 所示,主程序由一系列用來實現相應功能的子程序組成,主要包括ZigBee 無線通信程序、各智能模塊控制程序、GPRS 無線通信程序、圖像采集壓縮程序、和以太網通訊程序等。限于篇幅,這里主要闡述GPRS 無線通信的實現。

圖4 系統主程序流程。
GPRS 模塊程序設計主要用AT 指令編寫,結合一些主要函數來實現GPRS 模塊各項功能,包括GPRS模塊初始化、GPRS 網絡參數配置、AT 命令的收發、短信收發、撥打電話和發送彩信等。
3.1 GPRS 模塊的初始化
系統啟動之后,通過調用gprs_init()函數實現基本的初始化工作,包括串口初始化,MC55 的狀態設置等。通過調用char gprs_getkey()函數獲取鍵盤輸入值。
3.2 AT 命令的接受和發送
GPRS 模塊通過UART1 與S3C2440 進行通訊,S3C2440 通過串口發送AT 命令到GPRS 模塊并讀取GPRS 模塊的輸入。S3C2440 通過調用int send_gprs_cmd(int fd,char*send_buf)函數發送AT 命令到GPRS 模塊中,并通過int read_gprs_datas(intfd,char*rcv_buf)函數讀取GPRS 模塊的數據。如果通信成功返回GPRS_OK,否則返回GPRS_ERR.
3.3 短信的收發及彩信的發送
GPRS 模塊向戶主手機發送的短信是設定好的,模塊初始化時短信的內容、服務中心號碼及目標手機號碼都已設置完畢,出現緊急情況時,系統只需調用AT 指令即可完成短信的收發。AT+CMGS=n,發送長度為n的一條短信;命令發出后,GPRS 模塊回送">",處理器收到提示符即將短信內容發給GPRS 模塊,發送成功返回" OK ", 否則返回" ERR ".接收短信由AT+CMCR=Index>CR>指令來實現,然后處理器再根據收到的短信指令去控制各家庭智能模塊。
彩信的功能主要是當家庭出現緊急情況時,將攝像頭的截圖以彩信形式發送到用戶手機。其功能函數如下:
intmms_send(char*fro,char*to,char*subj,char*cont,char*img, long len)
參數fro 為模塊SIM 卡號碼;to 為戶主手機號碼;subj 為彩信標題;cont 為彩信的文字信息;img 為圖片的地址指針;len 為圖片字節數。發送成功返回MMS_OK,否則返回MMS_ERR.
4 結語
本文介紹了一種基于ARM 與GPRS的家庭智能控制系統,給出了詳細的系統架構方案,從軟、硬件兩方面闡述了設計思路和實現方法。系統采用GPRS 技術實現了家庭智能系統的遠程控制;采用ZigBee 技術組建家庭無線網絡,很好的解決了主控制器與各家庭控制模塊之間的通信問題,避免了繁瑣的布線;有很好的實際運用價值,是未來家庭智能系統發展的一個趨勢。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)











評論