亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: 參賽-門禁系統(tǒng)完整設(shè)計項目(原理圖+PCB源文件+Arduino源代碼等) [打印本頁]

作者: yayayunyun    時間: 2021-12-22 10:49
標(biāo)題: 參賽-門禁系統(tǒng)完整設(shè)計項目(原理圖+PCB源文件+Arduino源代碼等)
基于ATmega328(ATmega328數(shù)據(jù)手冊)單片機設(shè)計,具有通話、振鈴、摘機、通話、開鎖功能,還要有鍵盤和顯示電路。
門禁系統(tǒng)設(shè)計思路:
· 系統(tǒng)用到AD、UART、PWM、SPI,考慮成品的體積,采用arduino nano
· 語音采樣使用駐極體麥克風(fēng),經(jīng)200倍前置放大,再進行8位AD采樣,采樣率8kHz,可達到電話音質(zhì),滿足需求
· 門禁系統(tǒng)通信的特點是多對一,距離10~100m,通信速率要滿足語音通信、控制信號傳輸,因此采用485通信,通信速率512Kbps
· 語音播放使用8位PWM,功放芯片采用常見的LM386
· 顯示屏采用Nokia5110,SPI通信
· 鍵盤采用10位ADC鍵盤,16個按鍵
· 開鎖電路使用繼電器實現(xiàn)

程序設(shè)計
整個系統(tǒng)包括了以下幾個程序文件:
EG_V0_3: 主程序,包括了功能定義、ADC初始化、定時器初始化、鍵盤輸入處理、顯示界面、數(shù)據(jù)通信處理、中斷采樣
ADC_KEY:按鍵識別,主要是建立10位ADC值和每個按鍵的映射關(guān)系,參考了馬潮老師的狀態(tài)機程序
CRC8:CRC校驗程序,為了保證通信的正確性,必須使用數(shù)據(jù)校驗,crc8非常有效,不過實際測試,沒有crc校驗的情況下好像數(shù)據(jù)幾乎沒有傳輸錯誤??
Nokia5110:顯示屏驅(qū)動程序,直接使用論壇里的代碼,具體哪個帖子忘了。。
rs485:包括485初始化、定時器1初始化、485通信協(xié)議、通信處理等
ringtone:實現(xiàn)呼叫、接聽、振鈴功能

程序設(shè)計思路
本系統(tǒng)的核心就是語言采樣播放+485通信協(xié)議,由于處理的數(shù)據(jù)量比較大,所以很多地方?jīng)]有用到arduino提供的方法,比如analogread、analogwrite、serial等
語音采樣與播放:
人說話的頻率為300HZ~3KHZ,根據(jù)采樣定理,采樣頻率應(yīng)該大于6KHZ,在這里取7.8KHZ(atmega直接分頻可得到),為了減少開發(fā)難度,沒有使用音頻壓縮。Timer2開啟溢出中斷,中斷頻率7.8KHZ,語音采樣、鍵盤值采樣、PWM更新都放在這里,同時使用Timer2的OCR2B作為PWM輸出。ADC工作在自動連續(xù)轉(zhuǎn)換模式下,ADC工作頻率為76.9KHZ,測試過更高的頻率,200KHZ以上的采樣速度,誤差非常大,容易導(dǎo)致按鍵誤判和語音噪音。

485通信:
采用了兩片485芯片,一片工作在接收,一片工作在發(fā)送,語音采樣的數(shù)據(jù)量為8bit*8KHZ=64Kbps,由于需要同時傳輸?shù)刂贰⒄Z音數(shù)據(jù)、控制命令、校驗碼,一次傳輸數(shù)據(jù)量為3~6字節(jié),因此波特率至少為192Kbps,保險起見,本系統(tǒng)采用了512KHZ。
由于需要傳輸多種數(shù)據(jù),所以必須要使用一種通信協(xié)議,基于485的通信協(xié)議為:
1、主機以廣播的方式向所有從機發(fā)送一個地址數(shù)據(jù),尋找此地址的從機,該從機收到后發(fā)送應(yīng)答命令,之后建立通信,從機與從機不能進行通信
2、從機不能主動發(fā)起對話,只能等待主機發(fā)送數(shù)據(jù)
3、一個幀結(jié)構(gòu)如下:
  (1)[FUNCTION_VOICE,語音數(shù)據(jù),CRC校驗],3個字節(jié)
  (2)[FUNCTION_COMMAND,COMMAND_XXX,CRC校驗],3~6個字節(jié)
           其中COMMAND_XXX包括開門、通話、地址校驗等命令,具體請看代碼
每發(fā)完一幀必須空閑一段時間,作為一個幀的結(jié)束標(biāo)志,因此采用Timer1作為定時器,每接收到一個字符就重新計時,如果計時超過設(shè)定的空閑時間,則認為當(dāng)前已接收到一幀,立即對該幀進行處理。需要注意的是,單片機需要一定的時間進行協(xié)議的解析和數(shù)據(jù)處理,如果空閑時間太短,則當(dāng)期幀數(shù)據(jù)還沒處理完就來了下一幀數(shù)據(jù),肯定會出現(xiàn)混亂,如果空閑時間太長,又會降低通信速率,因此需要取一個合適的空閑值,經(jīng)過測試,協(xié)議解析的時間為72us,因此數(shù)據(jù)接收+空閑時間應(yīng)該大于72us,才能保證通信正常。

ADC鍵盤:
10位ad對16個按鍵進行采樣,因此電壓與每個按鍵具有線性比例關(guān)系,1024/(16+1)=60.2,實際值是59,再通過映射關(guān)系將0-1024值轉(zhuǎn)換成按鍵值,公式:
key=key_table[(16-(val)/59)/4][(16-(val)/59)%4];
16個按鍵中,y代表yes,n代表n
a-d代表四個功能:通話,開門,設(shè)定地址,預(yù)留




附件內(nèi)容預(yù)覽:


Arduino代碼: 門禁系統(tǒng)源碼及程序設(shè)計分析.zip (16.99 KB, 下載次數(shù): 22)
原理圖PCB: 門禁系統(tǒng)硬件設(shè)計.zip (501.13 KB, 下載次數(shù): 23)





歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1