作者采用神經(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ū)域時(shí)則立即進(jìn)行圖像采集,通過各個(gè)模塊進(jìn)行處理后經(jīng)LON總線送入上位機(jī)并通知用戶,該系統(tǒng)屬于家庭安全防范中的一部分。由于本文的需要,只設(shè)置了1個(gè)節(jié)點(diǎn)(也可以有多個(gè)節(jié)點(diǎn))。設(shè)計(jì)中采用通用的LonWorks節(jié)點(diǎn)模塊,以神經(jīng)元芯片Neuron3150作為主控制端,W77E58單片機(jī)作為受控端進(jìn)行圖像采集處理。其系統(tǒng)總體框圖如圖1所示。
圖1 系統(tǒng)總體框圖
2 硬件設(shè)計(jì)
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í)時(shí)性要求不是很高,故本文采用W77E58單片機(jī)來控制。
2.2 W77E58單片機(jī)芯片
W77E58單片機(jī)芯片是一個(gè)快速并與8051單片機(jī)兼容的微控制器,它的內(nèi)核經(jīng)過重新設(shè)計(jì),提高了時(shí)鐘的速度和存儲(chǔ)器訪問周期速度,W77E58的指令執(zhí)行速度是標(biāo)準(zhǔn)8051單片機(jī)的1.5~3倍。在相同的吞吐量及低頻時(shí)鐘情況下,電源消耗也比8051單片機(jī)低。W77E58內(nèi)含32 KB Flash EPROM,工作電壓為4.5V~5.5V,具有1 KB片上外部存儲(chǔ)器,當(dāng)用戶應(yīng)用時(shí)使用片上SRAM,可節(jié)省更多IO口。FIFO存儲(chǔ)器用作對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個(gè)微處理器: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)用程序處理器在處理其他事件時(shí)將不能夠再顧及串行輸入,有可能發(fā)生丟失串口字符的現(xiàn)象。為解決該問題,可以使用硬件握手協(xié)議,Neuron 3150芯片的IO0和IO1作為RST、CTS信號(hào),分別與W77E58單片機(jī)的P2.4和P2.5引腳相連,為了增強(qiáng)驅(qū)動(dòng)能力,中間再加1個(gè)反相器。如圖2所示。
圖2主從處理器的連接框圖
2.4 Neuron 3150芯片收發(fā)器
收發(fā)器是智能節(jié)點(diǎn)與LON網(wǎng)之間的接口,是通信電路的核心。雙絞線收發(fā)器是最通用的收發(fā)器類型。本設(shè)計(jì)采用變壓器耦合型收發(fā)器FTT-10A。神經(jīng)元芯片收發(fā)器的電路圖如圖3所示。另外,還有晶振電路、復(fù)位電路和Service電路等。晶振電路為Neuron 3150芯片提供工作時(shí)鐘。復(fù)位電路用于在智能節(jié)點(diǎn)上電時(shí)產(chǎn)生復(fù)位操作。
圖3 Neuron芯片收發(fā)器連接圖
2.5 Neuron芯片與PC機(jī)的連接
Neuron芯片與PC機(jī)通過雙絞線連接。主機(jī)是1臺(tái)PC機(jī),通過PCLTA可以自由地在Lon Works上進(jìn)行網(wǎng)絡(luò)通信。PCLTA(PC Lon Talk Adapter)是一個(gè)網(wǎng)絡(luò)適配器,在驅(qū)動(dòng)程序的作用下,主機(jī)通過PCLTA上網(wǎng),充當(dāng)上位機(jī)的角色,它是Lon Works網(wǎng)絡(luò)的一個(gè)特殊節(jié)點(diǎn),其作用是:與神經(jīng)元芯片進(jìn)行通信及與外界進(jìn)行通信(包括手機(jī))。
3 軟件設(shè)計(jì)
單片機(jī)與Neuron 3150芯片之間的通信流程圖如圖4所示。
圖4 單片機(jī)與 3150芯片通信流程圖
3.1 Neuron 3150芯片程序
在Neuron 3150芯片中,使用的IO口稱為串口(Serial)輸入/輸出對象。管腳IO8、IO10分別設(shè)置為異步串行數(shù)據(jù)的輸入線和輸出線。該IO對象類型是用于使用異步串行數(shù)據(jù)格式傳輸數(shù)據(jù)的場合,如RS-232通信。傳輸格式是:1個(gè)開始位、1個(gè)數(shù)據(jù)位、1個(gè)停止位。輸入串行IO對象將等待被接收的數(shù)據(jù)幀開始直到接收了202個(gè)以上字符所要時(shí)間才結(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ì)
上位機(jī)采用VB編寫接口程序,通過設(shè)置控件Link調(diào)用ASP內(nèi)的發(fā)送短信的文件,并獲取Lon Works網(wǎng)絡(luò)的節(jié)點(diǎn)的變量信息。用ASP+ADO進(jìn)行收發(fā)短信設(shè)計(jì),也可以使遠(yuǎn)程主機(jī)通過在瀏覽器中輸入服務(wù)器的IP地址來監(jiān)視Lon Works 設(shè)備信息。在發(fā)送短信之前先填好要發(fā)送的手機(jī)號(hào)和內(nèi)容。發(fā)送短信ASP的主要代碼(部分)如下:
<%< p="">%<>