基于S3C2440家庭網(wǎng)關(guān)設計方案(一)
在信息、通訊不斷發(fā)展的今天,隨著(zhù)人類(lèi)社會(huì )的進(jìn)步和科學(xué)技術(shù)的迅猛發(fā)展,及國內消費者生活水平的不斷提高,人們更加注重生活質(zhì)量,對生活的舒適度有了更高的要求。而家電的性能對人們生活的舒適度有著(zhù)直接的影響。家電遠程控制系統使人們可異地控制家庭內部設備,拓展了人們的生活空間,為人們管理家庭設備提供了方便的手段。但由于很多普通家電卻不具備智能控制所需的條件,為了實(shí)現對普通家電的智能控制,需要設計一個(gè)中間設備--家庭網(wǎng)關(guān)。
本系統應用現階段流行的ARM9 系列微處理器芯片和嵌入式Linux 操作系統進(jìn)行了家庭網(wǎng)關(guān)的軟硬件設計,利用人們隨身攜帶的手機與家庭網(wǎng)關(guān)進(jìn)行短信通信,并在家庭網(wǎng)關(guān)的控制下,實(shí)現對家電的遠程控制。
1 家庭網(wǎng)關(guān)整體結構
遠程家電控制系統一般可以劃分為外部網(wǎng),家庭網(wǎng)關(guān)和內部網(wǎng)三個(gè)部分。而家庭網(wǎng)關(guān)是家庭內部網(wǎng)與外部網(wǎng)的連接樞紐,也是整個(gè)系統的核心設備,整個(gè)系統構成圖如圖 1 所示。用戶(hù)使用手機發(fā)送家電控制短信到家庭網(wǎng)關(guān),經(jīng)過(guò)家庭網(wǎng)關(guān)的處理將其轉換為遙控器紅外指令,發(fā)送給各個(gè)分控節點(diǎn)驅動(dòng)紅外發(fā)射器發(fā)送紅外指令對該設備進(jìn)行控制,從而實(shí)現手機遠程控制家電的功能。
圖1 系統構成圖
2 家庭網(wǎng)關(guān)的實(shí)現
家庭網(wǎng)關(guān)中央處理器的選擇有多種方案,但考慮到家庭網(wǎng)關(guān)的功能、成本以及以后的升級,本課題決定采用三星公司的S3C2440A 處理器作為家庭網(wǎng)關(guān)的中央處理單元。S3C2440 主要面向手持設備以及高性?xún)r(jià)比、低功耗的應用,S3C2440A 提供一組完整的系統外圍設備,從而大大減少了整個(gè)系統的成本,省去了為系統配置額外器件的開(kāi)銷(xiāo),通過(guò)外擴存儲器(SDRAM/Flash)、觸摸屏、短信接收模塊、遙控器自學(xué)習模塊、Zigbee 模塊來(lái)構建家庭網(wǎng)關(guān)的硬件平臺,其系統結構如圖 2 所示。家庭網(wǎng)關(guān)所具有的功能包括:
遙控器紅外指令的對碼學(xué)習、短信的接收及處理、家庭內部網(wǎng)的主節點(diǎn)。
圖2 家庭網(wǎng)關(guān)系統結構圖
2.1 遙控器自學(xué)習模塊
家庭中的家電普遍采用紅外遙控設備,要控制家電就要知道所對應的紅外遙控碼。遙控器紅外脈沖碼一般由引導碼、地址碼、數據碼、數據碼反碼和結果碼組成。由于各個(gè)公司生產(chǎn)的紅外編/解碼芯片采用的編/解碼方式和脈寬周期不同,導致了市場(chǎng)上的各類(lèi)遙控器的功能互不兼容。為了能擁有各種遙控器的遙控功能,首先必須要正確地原樣接收并存儲遙控器的紅外脈沖碼,為此設計了紅外遙控接收模塊,接收遙控器的紅外指令并保存在SQlite 數據庫。
2.1.1 硬件設計
一般紅外遙控接收電路要包括紅外接收二極管(光敏二極管)、前置放大電路、濾波器、檢波解調電路等處理電路。但是隨著(zhù)技術(shù)發(fā)展,紅外接收專(zhuān)用集成電路逐漸被紅外接收頭所代替,紅外接收頭是一種三端集成器件,它將紅外接收二極管、前置放大電路以及解調電路等集成在同一芯片上。本設計采用紅外一體化接收頭TL538,它具有寬電壓適應、功耗低、成本低、高接收靈敏度以及優(yōu)良的抗干擾特性,是通用接收紅外信號并解調的元件,不需要任何外接元件,就可以完成從紅外線(xiàn)接收到輸出TTL 電平的數字信號,目前廣泛的應用于家用電器及玩具等各種紅外遙控和紅外接收裝置中。
紅外一體化接收頭接收到的紅外脈沖信號解調成合適電平的數字脈沖基帶信號,直接送到S3C2440A 的GF2 引腳進(jìn)行采集,紅外接收電路原理圖如圖3 所示。
圖3 紅外信號接收電路原理圖
2.1.2 軟件實(shí)現
系統軟件實(shí)現紅外脈沖信號的接收和存儲,GF2是個(gè)復用端口,要把它設置為外部中斷功能,中斷設置模式為雙沿中斷,實(shí)現紅外脈沖信號的接收。程序流程圖如圖 4 所示。
圖4 紅外接收程序流程圖
設計采用定時(shí)器對信號高低電平計時(shí)的方法來(lái)采集數據,TL538 在無(wú)紅外信號時(shí)一直處于高電平,當紅外信號到來(lái)時(shí),有一個(gè)下降沿,觸發(fā)外部中斷,系統啟動(dòng)內部定時(shí)器,當再次觸發(fā)外部中斷時(shí),讀取計數器的值,然后依次讀取計數器的值。由于一條紅外指令的長(cháng)度不會(huì )超過(guò)220ms,如果采集到編碼信號的長(cháng)度大于220ms,就認為編碼采集已經(jīng)結束,觸發(fā)定時(shí)器溢出中斷,關(guān)閉定時(shí)器,計算計時(shí)器每?jì)蓚€(gè)計數的差值(紅外脈沖信號的脈寬值),這樣紅外脈沖信號就被原封不動(dòng)的全部記憶。
為了方便調用遙控器的紅外脈沖信號,要將其接收到紅外碼保存,而保存數據就需要一個(gè)嵌入式的數據庫,在目前Linux 下常用的數據庫產(chǎn)品中,Oracel、BIMDB 等功能強大,但系統寵大,需付費使用,適用于大型商業(yè)型數據庫。而MysQL 在保持中等體積的情況下,提供了較為適用的功能己成為中小規模數據庫應用的首選,但商業(yè)應用也需付費,而且對于嵌入式系統來(lái)說(shuō)空間占用仍然太大。小型數據庫msQL 適用于嵌入式系統,但只有30 天的使用期限,并非完全開(kāi)源。而在開(kāi)源的數據庫中,PostgreSQL 功能完善,但體積較大。而B(niǎo)erkeley DB 則是開(kāi)發(fā)難度比較大。
評論