Lon總線在智能家庭圖像采集節(jié)點(diǎn)應(yīng)用
本文通過一個具體的實(shí)例,介紹了Lon Works技術(shù)在智能家庭的具體應(yīng)用。LON總線是美國ECHELON公司1991推出的為集散式監(jiān)控系統(tǒng)提供的實(shí)現(xiàn)手段,并有一系列完整的開發(fā)平臺。
作者采用神經(jīng)元芯片Neuron 3150并配合W77E58單片機(jī)系列開發(fā)了低成本的圖像采集節(jié)點(diǎn),并能通過上位機(jī)向用戶發(fā)送手機(jī)短信,有效地彌補(bǔ)了現(xiàn)在的智能住宅的不足。
1 系統(tǒng)結(jié)構(gòu)
本系統(tǒng)是智能家庭系統(tǒng)中的子系統(tǒng),主要實(shí)現(xiàn)的是:當(dāng)有人進(jìn)入該區(qū)域時則立即進(jìn)行圖像采集,通過各個模塊進(jìn)行處理后經(jīng)LON總線送入上位機(jī)并通知用戶,該系統(tǒng)屬于家庭安全防范中的一部分。由于本文的需要,只設(shè)置了1個節(jié)點(diǎn)(也可以有多個節(jié)點(diǎn))。設(shè)計中采用通用的LonWorks節(jié)點(diǎn)模塊,以神經(jīng)元芯片Neuron3150作為主控制端,W77E58單片機(jī)作為受控端進(jìn)行圖像采集處理。其系統(tǒng)總體框圖如圖1所示。
2 硬件設(shè)計
2.1 ZM460圖像采集模塊
ZM460圖像壓縮模塊采用JPEG壓縮技術(shù),是一種內(nèi)置JPEG壓縮功能的數(shù)字輸出嵌入式攝像設(shè)備,圖像具有多種分辨率,輸出完整的JPEG文件并結(jié)合最適應(yīng)的網(wǎng)絡(luò)協(xié)議,將圖像通過RS232/485串口輸出圖像。由于該智能節(jié)點(diǎn)實(shí)時性要求不是很高,故本文采用W77E58單片機(jī)來控制。
2.2 W77E58單片機(jī)芯片
W77E58單片機(jī)芯片是一個快速并與8051單片機(jī)兼容的微控制器,它的內(nèi)核經(jīng)過重新設(shè)計,提高了時鐘的速度和存儲器訪問周期速度,W77E58的指令執(zhí)行速度是標(biāo)準(zhǔn)8051單片機(jī)的1.5~3倍。在相同的吞吐量及低頻時鐘情況下,電源消耗也比8051單片機(jī)低。W77E58內(nèi)含32 KB Flash EPROM,工作電壓為4.5V~5.5V,具有1 KB片上外部存儲器,當(dāng)用戶應(yīng)用時使用片上SRAM,可節(jié)省更多IO口。FIFO存儲器用作對ZM460圖像采集模塊所采集的圖像數(shù)據(jù)進(jìn)行緩存,調(diào)節(jié)W77E58單片機(jī)與ZM460圖像采集模塊之間速度的差異,從而采集到完整圖像。ZM460模塊與W77E58單片機(jī)之間采用的是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單片機(jī)的串行通信口RXD、TXD連接。因?yàn)樯窠?jīng)元Neuron 3150芯片只支持半雙工異步通信,所以應(yīng)用程序處理器在處理其他事件時將不能夠再顧及串行輸入,有可能發(fā)生丟失串口字符的現(xiàn)象。為解決該問題,可以使用硬件握手協(xié)議,Neuron 3150芯片的IO0和IO1作為RST、CTS信號,分別與W77E58單片機(jī)的P2.4和P2.5引腳相連,為了增強(qiáng)驅(qū)動能力,中間再加1個反相器。如圖2所示。
2.4 Neuron 3150芯片收發(fā)器
收發(fā)器是智能節(jié)點(diǎn)與LON網(wǎng)之間的接口,是通信電路的核心。雙絞線收發(fā)器是最通用的收發(fā)器類型。本設(shè)計采用變壓器耦合型收發(fā)器FTT-10A。神經(jīng)元芯片收發(fā)器的電路圖如圖3所示。另外,還有晶振電路、復(fù)位電路和Service電路等。晶振電路為Neuron 3150芯片提供工作時鐘。復(fù)位電路用于在智能節(jié)點(diǎn)上電時產(chǎn)生復(fù)位操作。
2.5 Neuron芯片與PC機(jī)的連接
Neuron芯片與PC機(jī)通過雙絞線連接。主機(jī)是1臺PC機(jī),通過PCLTA可以自由地在Lon Works上進(jìn)行網(wǎng)絡(luò)通信。PCLTA(PC Lon Talk Adapter)是一個網(wǎng)絡(luò)適配器,在驅(qū)動程序的作用下,主機(jī)通過PCLTA上網(wǎng),充當(dāng)上位機(jī)的角色,它是Lon Works網(wǎng)絡(luò)的一個特殊節(jié)點(diǎn),其作用是:與神經(jīng)元芯片進(jìn)行通信及與外界進(jìn)行通信(包括手機(jī))。
3 軟件設(shè)計
單片機(jī)與Neuron 3150芯片之間的通信流程圖如圖4所示。
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 上位機(jī)系統(tǒng)設(shè)計
上位機(jī)采用VB編寫接口程序,通過設(shè)置控件Link調(diào)用ASP內(nèi)的發(fā)送短信的文件,并獲取Lon Works網(wǎng)絡(luò)的節(jié)點(diǎn)的變量信息。用ASP+ADO進(jìn)行收發(fā)短信設(shè)計,也可以使遠(yuǎn)程主機(jī)通過在瀏覽器中輸入服務(wù)器的IP地址來監(jiān)視Lon Works 設(shè)備信息。在發(fā)送短信之前先填好要發(fā)送的手機(jī)號和內(nèi)容。發(fā)送短信ASP的主要代碼(部分)如下:
<%
′要發(fā)送的手機(jī)號碼、要發(fā)送的信息內(nèi)容預(yù)先設(shè)置好
SendNumber=request("SenderNumber")
Message=request("message")
if Sendnumber="" or message="" then errmsg="<li>
各項(xiàng)均不能為空!"
′短消息的長度不能超過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=Zrr034&spnum=33343457&cp_id=wise
6733333000&cp_pass=wtiaw6&ip=211.1.607.105")
response.write "您的消息已經(jīng)成功發(fā)出,謝謝!"
%>
此代碼由神經(jīng)元芯片將指令傳送到VB程序后由PC機(jī)自動發(fā)出。
本文所設(shè)計的基于Lon Works技術(shù)的圖像采集系統(tǒng)是智能家庭的一部分,其創(chuàng)新點(diǎn)是:利用LON網(wǎng)絡(luò),把圖像采集與Neuron芯片集于一體,并通過PC機(jī)能向手機(jī)發(fā)送短信告知。管理者可以從任何有網(wǎng)絡(luò)的地方來監(jiān)視自己的家庭情況,即使主人不在也可以通過該裝置以短信的方式向主人發(fā)出來訪者信息,極大地提高了家庭的安全性。