張再涵 郭志強 張幼涵
中圖分類號:TP2文獻標識碼:A文章編號:1671-7597(2009)0920006-02
一、引言
隨著電子技術的普及,家庭用防盜設備的應用逐漸增多,而針對家庭用的防盜報警設備由于過去使用專用防盜器,導致有效檢測面積覆蓋率低、價格昂貴、安裝困難、功耗大等問題,本系統(tǒng)采用新的設計思路,摒棄舊的傳感器,使用價格低廉的紅外激光發(fā)射管和對應波長光電接收管以及簡易的波形采樣整形濾波電路,構(gòu)成了防盜系統(tǒng)的傳感部分;而從功耗和成本上考慮,采用PICnW級單片機PIC16F676作為后端數(shù)據(jù)采集,以及數(shù)據(jù)處理和報警等控制器。計算機采集部分,采用計算機串口接收數(shù)據(jù),軟件方面,采用Microsoft Visual Basic6.0編制。
整機結(jié)構(gòu)如下圖1:
以圖1所示,只是采用一路報警信號作為表示功能,在實際應用中,可以采用CD4555等類似的擴展芯片實現(xiàn)信號通道擴展,擴展電路如下。
二、PIC單片機簡介
PIC單片機,microchip公司的產(chǎn)品。采用哈佛架構(gòu)的RISC單片機,其指令集也很精簡。同時,其產(chǎn)品線比較廣泛,從最基本的8位單片機到12位、14位甚至16位高端一應俱全,一般我們將其產(chǎn)品劃分為低、中、高三個級別。
PIC集成的外設極為豐富。片內(nèi)集成USART、I2C、AD、PWM等模塊。有的還有LCD驅(qū)動模塊、USB驅(qū)動模塊甚至以太網(wǎng)模塊。應用起來極為簡便,同時也可以減少外圍電路。由于PIC的IO輸出承載力很強,可達20mA以上,加上PWM,使其在各個方面都很有作為。
程序運行之后,先進行系統(tǒng)初始化,由于本系統(tǒng)采用外部時鐘喚醒,在初始化期間,應將系統(tǒng)的時鐘源定義在TIMERA上。
檢測部分,以一路檢測信號為說明,當TXD發(fā)送出一系列定時脈沖波后,RXD會在一段時間后檢測到這個序列波,為了防止誤報現(xiàn)象的發(fā)生,發(fā)送的光波序列,采用準曼徹斯特編碼方式,即以上升沿為二進制數(shù)字1,下降沿為二進制數(shù)字0,當產(chǎn)生連續(xù)的1或0時,系統(tǒng)提前產(chǎn)生一個偽下降,為了保證系統(tǒng)可靠,其通訊時間將擴大一倍,即以2位的通訊時間來傳輸1位有效數(shù)據(jù)。
按鍵部分采用外部中斷模式,使用內(nèi)部上拉電平,當按鍵按下后,系統(tǒng)采樣到一個下降沿,產(chǎn)生中斷,啟動部分功能,本系統(tǒng)將按鍵功能定義為系統(tǒng)初始化功能,即按鍵按下后,系統(tǒng)復位,進行系統(tǒng)初始化。
當信號采集部分通訊出現(xiàn)中斷,軟件將進行判別,當滿足一定條件后,系統(tǒng)認為光線被固定物體遮擋住,蜂鳴器長響報警,為提高報警效果,產(chǎn)品上還增加了LM386等功率防大電路驅(qū)動喇叭,增大了報警范圍;同時通過串行通訊發(fā)送到計算機遠端,由計算機軟件判斷是否是滿足報警故障,是否通過連接的手機或移動通信模塊,上報到指定電話或直接撥打電話。
以下為單片機程序代碼,由于篇幅限制,只能提供描述原理性質(zhì)的偽代碼以供大家參考。
文件名:wartest.c
#i nclude
//定義芯片工作時的配置位
__CONFIG(HS & WDTEN & PWRTEN & BOREN & DP & LVPDIS & DUNPROT & WRTDIS & DEBUGEN & PROTECT);
//聲明函數(shù)類型
//定義變量
unsigned char num1,num2;
bit flag1,flag2 ;
... ...
//函數(shù)
/*******************************
函數(shù)名:main
入口:無
出口:無
功能:主函數(shù)
*******************************/
void main(void)
{
initport1();
initport2();
inittime();
while(1)
{
testport();
if(testport1_1==1)
{
sendmess();
}
}
}
/*******************************
函數(shù)名:initport1
入口:無
出口:無
功能:初始化端口1
*******************************/
void initport1(void)
{
......
}
/*******************************
函數(shù)名:initport2
入口:無
出口:無
功能:初始化端口2
*******************************/
void initport2(void)
{
......
}
/*******************************
函數(shù)名:testport
入口:無
出口:無
功能:測試端口信號
*******************************/
void testport(void)
{
......
}
/*******************************
函數(shù)名:sendmess
入口:無
出口:無
功能:發(fā)送報警信息
*******************************/
void sendmess(void)
{
......
}
說明:以上程序僅為了指示程序功能用。
三、結(jié)束語
本系統(tǒng)經(jīng)過試驗驗證,采集成功率達到95%以上,同時由于其成本低廉,已經(jīng)進行了小批量投產(chǎn)試運行,效果良好。
參考文獻:
[1]PIC16F685/687/689/690數(shù)據(jù)手冊,microchip公司數(shù)據(jù)手冊.
[2]武鋒,PIC單片機C語言開發(fā)入門,北京航空航天大學出版社.
[3]Di Jasio(加西奧等),PIC微控制器技術及應用,電子工業(yè)出版.