Lon總線在智能家庭圖像采集節(jié)點應(yīng)用方案
作者采用神經(jīng)元芯片Neuron 3150并配合W77E58單片機系列開發(fā)了低成本的圖像采集節(jié)點,并能通過上位機向用戶發(fā)送手機短信,有效地彌補了現(xiàn)在的智能住宅的不足。
1 系統(tǒng)結(jié)構(gòu)
本系統(tǒng)是智能家庭系統(tǒng)中的子系統(tǒng),主要實現(xiàn)的是:當有人進入該區(qū)域時則立即進行圖像采集,通過各個模塊進行處理后經(jīng)LON總線送入上位機并通知用戶,該系統(tǒng)屬于家庭安全防范中的一部分。由于本文的需要,只設(shè)置了1個節(jié)點(也可以有多個節(jié)點)。設(shè)計中采用通用的LonWorks節(jié)點模塊,以神經(jīng)元芯片Neuron3150作為主控制端,W77E58單片機作為受控端進行圖像采集處理。其系統(tǒng)總體框圖如圖1所示。
圖1 系統(tǒng)總體框圖
2 硬件設(shè)計
2.1 ZM460圖像采集模塊
ZM460圖像壓縮模塊采用JPEG壓縮技術(shù),是一種內(nèi)置JPEG壓縮功能的數(shù)字輸出嵌入式攝像設(shè)備,圖像具有多種分辨率,輸出完整的JPEG文件并結(jié)合最適應(yīng)的網(wǎng)絡(luò)協(xié)議,將圖像通過RS232/485串口輸出圖像。由于該智能節(jié)點實時性要求不是很高,故本文采用W77E58單片機來控制。
2.2 W77E58單片機芯片
W77E58單片機芯片是一個快速并與8051單片機兼容的微控制器,它的內(nèi)核經(jīng)過重新設(shè)計,提高了時鐘的速度和存儲器訪問周期速度,W77E58的指令執(zhí)行速度是標準8051單片機的1.5~3倍。在相同的吞吐量及低頻時鐘情況下,電源消耗也比8051單片機低。W77E58內(nèi)含32 KB Flash EPROM,工作電壓為4.5V~5.5V,具有1 KB片上外部存儲器,當用戶應(yīng)用時使用片上SRAM,可節(jié)省更多IO口。FIFO存儲器用作對ZM460圖像采集模塊所采集的圖像數(shù)據(jù)進行緩存,調(diào)節(jié)W77E58單片機與ZM460圖像采集模塊之間速度的差異,從而采集到完整圖像。ZM460模塊與W77E58單片機之間采用的是RS232接口。
2.3 Neuron 3150芯片
Neuron 3150芯片是LON總線的核心,內(nèi)部包括3個微處理器:MAC處理器、網(wǎng)絡(luò)處理器、應(yīng)用處理器。Neuron 3150芯片[2]的IO8、IO10通過雙排針I(yè)O口分別與W77E58單片機的串行通信口RXD、TXD連接。因為神經(jīng)元Neuron 3150芯片只支持半雙工異步通信,所以應(yīng)用程序處理器在處理其他事件時將不能夠再顧及串行輸入,有可能發(fā)生丟失串口字符的現(xiàn)象。為解決該問題,可以使用硬件握手協(xié)議,Neuron 3150芯片的IO0和IO1作為RST、CTS信號,分別與W77E58單片機的P2.4和P2.5引腳相連,為了增強驅(qū)動能力,中間再加1個反相器。如圖2所示。
圖2主從處理器的連接框圖
2.4 Neuron 3150芯片收發(fā)器
收發(fā)器是智能節(jié)點與LON網(wǎng)之間的接口,是通信電路的核心。雙絞線收發(fā)器是最通用的收發(fā)器類型。本設(shè)計采用變壓器耦合型收發(fā)器FTT-10A。神經(jīng)元芯片收發(fā)器的電路圖如圖3所示。另外,還有晶振電路、復位電路和Service電路等。晶振電路為Neuron 3150芯片提供工作時鐘。復位電路用于在智能節(jié)點上電時產(chǎn)生復位操作。
圖3 Neuron芯片收發(fā)器連接圖
2.5 Neuron芯片與PC機的連接
Neuron芯片與PC機通過雙絞線連接。主機是1臺PC機,通過PCLTA可以自由地在Lon Works上進行網(wǎng)絡(luò)通信。PCLTA(PC Lon Talk Adapter)是一個網(wǎng)絡(luò)適配器,在驅(qū)動程序的作用下,主機通過PCLTA上網(wǎng),充當上位機的角色,它是Lon Works網(wǎng)絡(luò)的一個特殊節(jié)點,其作用是:與神經(jīng)元芯片進行通信及與外界進行通信(包括手機)。
3 軟件設(shè)計
單片機與Neuron 3150芯片之間的通信流程圖如圖4所示。
圖4 單片機與 3150芯片通信流程圖
3.1 Neuron 3150芯片程序
在Neuron 3150芯片中,使用的IO口稱為串口(Serial)輸入/輸出對象。管腳IO8、IO10分別設(shè)置為異步串行數(shù)據(jù)的輸入線和輸出線。該IO對象類型是用于使用異步串行數(shù)據(jù)格式傳輸數(shù)據(jù)的場合,如RS-232通信。傳輸格式是:1個開始位、1個數(shù)據(jù)位、1個停止位。輸入串行IO對象將等待被接收的數(shù)據(jù)幀開始直到接收了202個以上字符所要時間才結(jié)束。限于篇幅,只給出下面接收程序:
//接收程序:
IO_0 output bit CTS;
IO_1 input bit RTS;
IO_10 input serial RXD;
Network output int fkmingling[b];
When (io_change(RTS)to 0)
{
Unsigned int num;
Unsigned long sum,getsum;
IO_out(CTS,1);
Num=io_in(RXD,inputbuf,7); //串口接收
}
3.2 上位機系統(tǒng)設(shè)計
上位機采用VB編寫接口程序,通過設(shè)置控件Link調(diào)用ASP內(nèi)的發(fā)送短信的文件,并獲取Lon Works網(wǎng)絡(luò)的節(jié)點的變量信息。用ASP+ADO進行收發(fā)短信設(shè)計,也可以使遠程主機通過在瀏覽器中輸入服務(wù)器的IP地址來監(jiān)視Lon Works 設(shè)備信息。在發(fā)送短信之前先填好要發(fā)送的手機號和內(nèi)容。發(fā)送短信ASP的主要代碼(部分)如下:
%
′要發(fā)送的手機號碼、要發(fā)送的信息內(nèi)容預先設(shè)置好
SendNumber=request("SenderNumber")
Message=request("message")
if Sendnumber="" or message="" then errmsg="li>
各項均不能為空!"
′短消息的長度不能超過140個字符
if len(message)>140 then errmsg=errmsg+"li>短信
內(nèi)容超長,請查檢!"
′更新信息發(fā)送數(shù)據(jù)表
conn.execute("insert into senddata(mobile,message)
values("+sendnumber+"," +message+ ")")
response.redirect("http: //自己的IP地址
/mt/SendServ-let?dstmobile="+cstr(sendnumber)+"feemobile="+cstr(sendnumber)+"msg="+server.URLEncode(trim(message))+"sv code=Zrr034spnum=33343457cp_id=wise
6733333000cp_pass=wtiaw6ip=211.1.607.105")
response.write "您的消息已經(jīng)成功發(fā)出,謝謝!"
%>
此代碼由神經(jīng)元芯片將指令傳送到VB程序后由PC機自動發(fā)出。
本文所設(shè)計的基于Lon Works技術(shù)的圖像采集系統(tǒng)是智能家庭的一部分,其創(chuàng)新點是:利用LON網(wǎng)絡(luò),把圖像采集與Neuron芯片集于一體,并通過PC機能向手機發(fā)送短信告知。管理者可以從任何有網(wǎng)絡(luò)的地方來監(jiān)視自己的家庭情況,即使主人不在也可以通過該裝置以短信的方式向主人發(fā)出來訪者信息,極大地提高了家庭的安全性。
評論