基于A(yíng)RM-Linux平臺及GPRS技術(shù)的家庭智能控制系統
軟件部分的設計主要是基于ARM-Linux,與其他嵌入式操作系統相比,Linux 操作系統具有完整的TCP/IP 協(xié)議,良好的穩定性和實(shí)時(shí)性,很好的滿(mǎn)足了家庭智能控制系統對系統可靠性的要求;此外,Linux易于移植裁減、內核小、效率高、源代碼開(kāi)放并有眾多的開(kāi)發(fā)者,為系統的開(kāi)發(fā)提供了良好的技術(shù)支持。
系統開(kāi)發(fā)首先要建立交叉編譯環(huán)境,然后引導bootloader,移植操作系統,裝載文件系統,開(kāi)發(fā)圖形界面,最后編寫(xiě)應用程序。Bootloader 主要實(shí)現系統的快速引導,將Linux 內核加載到內存,并進(jìn)行內核初始化。Linux2.6 內核具有強大的進(jìn)程、中斷、內存和設備管理,支持各種文件系統。
系統主程序流程如圖4 所示,主程序由一系列用來(lái)實(shí)現相應功能的子程序組成,主要包括ZigBee 無(wú)線(xiàn)通信程序、各智能模塊控制程序、GPRS 無(wú)線(xiàn)通信程序、圖像采集壓縮程序、和以太網(wǎng)通訊程序等。限于篇幅,這里主要闡述GPRS 無(wú)線(xiàn)通信的實(shí)現。
圖4 系統主程序流程。
GPRS 模塊程序設計主要用AT 指令編寫(xiě),結合一些主要函數來(lái)實(shí)現GPRS 模塊各項功能,包括GPRS模塊初始化、GPRS 網(wǎng)絡(luò )參數配置、AT 命令的收發(fā)、短信收發(fā)、撥打電話(huà)和發(fā)送彩信等。
3.1 GPRS 模塊的初始化
系統啟動(dòng)之后,通過(guò)調用gprs_init()函數實(shí)現基本的初始化工作,包括串口初始化,MC55 的狀態(tài)設置等。通過(guò)調用char gprs_getkey()函數獲取鍵盤(pán)輸入值。
3.2 AT 命令的接受和發(fā)送
GPRS 模塊通過(guò)UART1 與S3C2440 進(jìn)行通訊,S3C2440 通過(guò)串口發(fā)送AT 命令到GPRS 模塊并讀取GPRS 模塊的輸入。S3C2440 通過(guò)調用int send_gprs_cmd(int fd,char*send_buf)函數發(fā)送AT 命令到GPRS 模塊中,并通過(guò)int read_gprs_datas(intfd,char*rcv_buf)函數讀取GPRS 模塊的數據。如果通信成功返回GPRS_OK,否則返回GPRS_ERR.
3.3 短信的收發(fā)及彩信的發(fā)送
GPRS 模塊向戶(hù)主手機發(fā)送的短信是設定好的,模塊初始化時(shí)短信的內容、服務(wù)中心號碼及目標手機號碼都已設置完畢,出現緊急情況時(shí),系統只需調用AT 指令即可完成短信的收發(fā)。AT+CMGS=n,發(fā)送長(cháng)度為n的一條短信;命令發(fā)出后,GPRS 模塊回送">",處理器收到提示符即將短信內容發(fā)給GPRS 模塊,發(fā)送成功返回" OK ", 否則返回" ERR ".接收短信由AT+CMCR=Index>CR>指令來(lái)實(shí)現,然后處理器再根據收到的短信指令去控制各家庭智能模塊。
彩信的功能主要是當家庭出現緊急情況時(shí),將攝像頭的截圖以彩信形式發(fā)送到用戶(hù)手機。其功能函數如下:
intmms_send(char*fro,char*to,char*subj,char*cont,char*img, long len)
參數fro 為模塊SIM 卡號碼;to 為戶(hù)主手機號碼;subj 為彩信標題;cont 為彩信的文字信息;img 為圖片的地址指針;len 為圖片字節數。發(fā)送成功返回MMS_OK,否則返回MMS_ERR.
4 結語(yǔ)
本文介紹了一種基于ARM 與GPRS的家庭智能控制系統,給出了詳細的系統架構方案,從軟、硬件兩方面闡述了設計思路和實(shí)現方法。系統采用GPRS 技術(shù)實(shí)現了家庭智能系統的遠程控制;采用ZigBee 技術(shù)組建家庭無(wú)線(xiàn)網(wǎng)絡(luò ),很好的解決了主控制器與各家庭控制模塊之間的通信問(wèn)題,避免了繁瑣的布線(xiàn);有很好的實(shí)際運用價(jià)值,是未來(lái)家庭智能系統發(fā)展的一個(gè)趨勢。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論