基于語音報警的雙向遙控車門開關(guān)系統(tǒng)設(shè)計
系統(tǒng)軟件設(shè)計
通信協(xié)議
雙向RKE主要由上位機和下位機組成,要實現(xiàn)上鎖/開鎖功能及安全報警功能,就必須完成上位機和下位機之間的無線數(shù)據(jù)通信。整個系統(tǒng)的各個部分都是服務(wù)于無線數(shù)據(jù)傳輸這個目的。所以,在整個系統(tǒng)的軟件設(shè)計中,無線數(shù)據(jù)的傳輸為最主要部分。無線傳輸以數(shù)據(jù)幀的方式進(jìn)行,數(shù)據(jù)幀的格式如表1所示。
前導(dǎo)碼主要是用于防止有用數(shù)據(jù)被干擾;車子ID主要用來標(biāo)志特定車子的信息,以便正確的辨認(rèn),如果ID不匹配,數(shù)據(jù)幀就會被忽略;信息碼是用來表示用戶的操作,這些操作包括上鎖、開鎖、顯示警報等。當(dāng)用戶發(fā)送相應(yīng)命令時,就分別執(zhí)行上鎖、開鎖,而當(dāng)用戶超出收發(fā)范圍時,主收發(fā)器能夠自動的發(fā)送警告信息;校驗和則用于檢驗接收的數(shù)據(jù)是否正確,當(dāng)不正確時,需重發(fā)數(shù)據(jù)幀。
系統(tǒng)軟件流程設(shè)計
由于整個RKE系統(tǒng)為一雙向進(jìn)行的系統(tǒng),數(shù)據(jù)終端和主收發(fā)器之間的通信是雙工的,所以在實際系統(tǒng)運行時,數(shù)據(jù)的傳輸方向也是不斷變化的。為此,要實現(xiàn)雙方協(xié)調(diào)通信,就必須設(shè)計出一個比較適合的收發(fā)次序。其上位機收發(fā)流程圖如圖4所示。系統(tǒng)上電后,上位機處于待機狀態(tài)。當(dāng)檢測到上位機發(fā)射一個按鍵命令時,就表示用戶要進(jìn)行某種特定的操作,同時將操作信息送到揚聲器,通過聲音的方式向用戶告知要進(jìn)行的操作,此時上位機就打開發(fā)射器,發(fā)送相應(yīng)的信息碼 (如開鎖、上鎖等),而其它時候上位機都處于接收狀態(tài),如果沒有接收到下位機發(fā)送過來的地址碼,上位機此時就可以判斷用戶此時處于發(fā)送接收范圍之外,于是通過P1.7讀入放音地址將要預(yù)先存儲在上位機中的報警信息,由揚聲器發(fā)出語音信號向用戶告警。如果上位機沒有收到下位機發(fā)送回來的ACK(正確回應(yīng)信號),此時上位機會要求用戶再次按鍵,知道收到ACK命令,此時下位機才執(zhí)行相應(yīng)操作。
而下位機在系統(tǒng)上電后,首先進(jìn)行初始化,然后就打開接收機以判斷是否有用戶在按鍵發(fā)布命令,如果沒有檢測到按鍵命令,下位機就打開發(fā)射機,不斷的發(fā)送地址碼給上位機,以確定雙方是否在通信范圍之內(nèi),用以提示用戶。而當(dāng)檢測到按鍵命令時,下位機首先將上位機發(fā)送過來的操作信息碼進(jìn)行校驗,如果檢驗不正確,就要求用戶重新按鍵;如果檢驗正確,就發(fā)送ACK命令,以確認(rèn)用戶的操作是有效的。通過這種方式,可以有效的實現(xiàn)上位機和下位機的雙向通信,這樣雙向RKE系統(tǒng)就可以穩(wěn)定的工作,其下位機收發(fā)流程圖如圖5所示。
結(jié)語
采用射頻芯片nRF401、AT89C52 MCU及語音芯片ISD4004構(gòu)成的雙向RKE系統(tǒng),可以更直觀的讓用戶通過語音的一種方式來表達(dá)所執(zhí)行的命令,使系統(tǒng)變得方便實用。同時,系統(tǒng)中所選用的芯片都是功耗較低的,這對于用電池供電的上位機來講非常重要。此外,所選用的芯片的尺寸都非常的小,MCU與nRF401以及ISD4004之間的接口都非常的簡單,不需要太多的外圍電路,這在某種程度上有利于系統(tǒng)的集成,方便用戶的隨身攜帶。在此系統(tǒng)基礎(chǔ)上,如果在車門里再加一個壓力傳感器,這樣就可以極大的防止車子遭到人為的破壞,更一步的提高車子的安全性。此外該系統(tǒng)還可應(yīng)用在其它的場合,如數(shù)字語音通信、無線遙控防盜門、智能無線抄表等等領(lǐng)域,可以得到極大的推廣。
評論