【正文】
put 里要求邏輯,分支和轉(zhuǎn)移的時(shí)間,在 get 里他們也被作為延時(shí).這個(gè)子程序的流程圖可以看到如下:長(zhǎng)春理工大學(xué)本科畢業(yè)設(shè)計(jì) 17 開始 b i t c n t = s b + 8P O R T D . 0 = 0t x b y t e 的最高有效位為零延遲到 u s ( h a l f b a u d n u m )T x b y t e 右移一位 b i t c n t 遞減 b i t c n t = 1 ?返回Y e s延遲到 u s ( b a u d n u m )P O R T D . 0 = ?t x b y t e 的最高有效位為 1延遲到 u s ( b a u d n u m )Y e sN OY e sY e sN o長(zhǎng)春理工大學(xué)本科畢業(yè)設(shè)計(jì) 18 圖 4—2 get 子程序流程圖 程序設(shè)計(jì)為了測(cè)試我們的軟件 UART 和我們的硬件安裝程序,我們寫 3 個(gè)程序,一個(gè)是用來測(cè)試從發(fā)送端發(fā)送和接收文本數(shù)據(jù)的系統(tǒng)能力。這個(gè)程序被稱為測(cè)試程序,它包括發(fā)送子程序和接收子程序。另外兩個(gè)程序,用來測(cè)試我們發(fā)送和接收音頻系統(tǒng)的能力。該程序傳輸音頻被稱為音頻發(fā)送程序,它包括發(fā)送子程序。收到音頻的程序被稱為語音接收程序,它包括接受子程序。簡(jiǎn)要說明該程序。 測(cè)試程序正如所說的該程序采用了發(fā)送和接收子程序,其方法很簡(jiǎn)單的。首先我們正確的設(shè)置 PORTD 引腳的數(shù)據(jù)流向。我們簡(jiǎn)要說明了 1 停止位的使用,然后,我們發(fā)送 ASCII 0x12 以清除 HyperTerm 窗口。最后,我們進(jìn)入一個(gè)執(zhí)行接收子程序的無限循環(huán),然后將收到的字節(jié) Rxbyte 傳輸給傳輸字節(jié) Txbyte ,然后執(zhí)行一個(gè)發(fā)送子程序。 實(shí)質(zhì)上無論什么回聲都是被軟件 UART 收到的。我們的測(cè)試程序是用此程序安裝 2 個(gè) ATMega32。我們將一個(gè) Mega32 的軟件 UART 的接收引腳連接(通過 RS232 )到運(yùn)行 HyperTerm 會(huì)議的計(jì)算機(jī),傳輸引腳連接到激光發(fā)射器電路。然后我們將連接第二個(gè) Mega32 的 UART 軟件的接收引腳接到光電二極管電路,軟件 UART 的傳輸引腳連接(通過 RS232 )到運(yùn)行 HyperTerm會(huì)議的計(jì)算機(jī)。用戶在第一個(gè) HyperTerm 會(huì)議輸入的信息,可以在第二個(gè)HyperTerm 會(huì)議看到出現(xiàn)。 音頻發(fā)送程序該音頻發(fā)送程序負(fù)責(zé)兩件事。首先是在一個(gè)期望的頻率上采樣麥克風(fēng)電路的輸出電壓,二是在串行數(shù)據(jù)鏈路上發(fā)送 8 位結(jié)果。這一過程中采用 Mega32 的兩種功能:定時(shí)器/計(jì)數(shù)器 0 和模擬數(shù)字轉(zhuǎn)換器( ADC ) 。定時(shí)器/計(jì)數(shù)器 0基本上用來(通過使用溢出中斷)控制 ADC 轉(zhuǎn)換麥克風(fēng)電壓的頻率。兩個(gè)中斷都參與了這一過程:定時(shí)器/計(jì)數(shù)器 0 溢出中斷和 ADC 轉(zhuǎn)換完成中斷。定時(shí)器/計(jì)數(shù)器 0 時(shí)鐘分頻器被設(shè)置為 256 個(gè),它有效地產(chǎn)生一個(gè)時(shí)鐘周期的:s?162561?該增值是 25621 。因此,每定時(shí)器/計(jì)數(shù)器 0 溢出: s?3612??長(zhǎng)春理工大學(xué)本科畢業(yè)設(shè)計(jì) 19 另外一個(gè)任務(wù)則是( task1 ) 有效執(zhí)行定時(shí)器/計(jì)數(shù)器 0 的每一個(gè) t1 溢出。這項(xiàng)任務(wù)命令 ADC 在 ADCSR 寄存器中由置位 6( ADSC )開始單程轉(zhuǎn)換(即采取樣本)。如果我們想要約 3kHz 的采樣頻率,就要讓 task1 執(zhí)行定時(shí)器/計(jì)數(shù)器 0 的每次溢出,然后設(shè)置 T1 至 1 。當(dāng) ADC 完成轉(zhuǎn)換,ADC 轉(zhuǎn)換便完全中斷。在中斷服務(wù)例程中,為了這個(gè)中斷我們傳送 8 位麥克風(fēng)的電壓結(jié)果(在ADCH )給傳輸字節(jié) Txbyte ,然后執(zhí)行在串行數(shù)據(jù)鏈路上一個(gè)發(fā)送子程序來傳送 8 位電壓。因?yàn)楸辉O(shè)置給 ADC 的參考電壓 ARE 是 5V 的,所以 ADC 所產(chǎn)生的 8位電壓值介于 0 和 5V 之間。分別完成定時(shí)器/計(jì)數(shù)器 0 的初始化、ADC 寄存器,并說明 1 停止位的使用后,我們進(jìn)入了無限的 while 循環(huán)。 語音接收程序該音頻接收程序也非常簡(jiǎn)單,不需要使用任何定時(shí)器或模數(shù)轉(zhuǎn)換器。其唯一的責(zé)任是從串行數(shù)據(jù)鏈路上接收 8 位電壓值并且每次通過一個(gè)端口破壞掉掉DAC 電路上的 8 位信息。由于這個(gè)語音接收程序只需要接收子程序。初始化后我們就進(jìn)入一個(gè)不斷執(zhí)行接收子程序的無限 whlie 循環(huán)。接受子程序執(zhí)行前會(huì)等待開始位的傳輸。接受子程序執(zhí)行后,下一個(gè) 程序指令前,我們通過 PORTB 破壞掉 DAC 電路上收到的字節(jié) Rxbyte。 音頻設(shè)置設(shè)置音頻傳輸需要使用兩個(gè) ATMega32 芯片。其中一個(gè)芯片由發(fā)射機(jī)代碼音頻程序編程, ADC 輸入引腳( )連接到麥克風(fēng)電路,并且通過軟件異步傳輸引腳( )連接到激光發(fā)射器電路。接收器通過軟件 UART 的接收引腳( )連接到光電二極管電路并且通過輸出端口( PORTB )連接到數(shù)模轉(zhuǎn)換器電路。長(zhǎng)春理工大學(xué)本科畢業(yè)設(shè)計(jì) 20 結(jié) 論該語音傳送裝置是基于激光通信技術(shù)設(shè)計(jì)的。該裝置可以以 kbps 的速度發(fā)送任意數(shù)據(jù)。最后,如果采樣率是 3 千赫,那么 kbps 的速度就足夠快的把電壓值傳送給我們,所以最終,波特率限制并沒有降低音頻傳送的質(zhì)量。另一方面,令我們感到有些意外的是 3kHz 語音的 8 位音頻采樣是那么差(即使之前我們就預(yù)測(cè)到它不會(huì)很好 )。即便是在一些自由低通濾波條件下的音頻質(zhì)量還是很差。在最后的系統(tǒng)測(cè)試中,產(chǎn)生了一些干擾,干擾并非來自我們系統(tǒng)本身,也不是來自其他裝置,干擾其實(shí)來自于人。當(dāng)我們測(cè)試我們的系統(tǒng)看它是否能夠跨室操作時(shí),然而一旦有人穿過激光束時(shí)傳輸便中斷。中斷只是個(gè)瞬間,不會(huì)持久影響。顯然,如果我們把這種激光通信系統(tǒng)放在不會(huì)收到干擾的地方,它的應(yīng)用性很高。有人穿過激光束還會(huì)帶來了另一個(gè)問題:安全。因此我們要盡力向?qū)嶒?yàn)室中的每個(gè)人強(qiáng)調(diào)其危險(xiǎn)性,以確保沒有人為了研究激光束時(shí)發(fā)生意外。激光的光束如果直接照射到眼睛,對(duì)眼睛是非常有害,所以我們必須非常小心。語音傳送裝置應(yīng)以廣泛應(yīng)用,提高音質(zhì)為發(fā)展方向,連同以上所出現(xiàn)的問題都是應(yīng)該繼續(xù)研究和思考的。長(zhǎng)春理工大學(xué)本科畢業(yè)設(shè)計(jì) 21 參考文獻(xiàn)[1] 高速嵌入式單片機(jī)原理與應(yīng)用(修訂版).北京:. [2] 黃世耀. 激光的基本原理、類型及其應(yīng)用[J]. 中國(guó)科技信息 , 2022,(01).[3] 張繼東,鄭寶玉. 語音壓縮編碼標(biāo)準(zhǔn)[J]. 通信技術(shù) , 2022,(05).[4] 極低速率語音編碼的新發(fā)展與應(yīng)用;郭莉。郭麗紅。王炳錫。解放軍信息工程大學(xué)信息科學(xué)系.[5] 謝嘉奎主編;《電子線路》 ;高等教育出版社.[6] 王俊生 ,田波,[J ].電子器件 2022 (03) 28 (1). [7] 楊洋,等. 1. 06μm 激光的大氣傳輸特性[J ] . 紅外與激光工程,1999 ,28 (1) :15~18. [8] The others use:Jameco [9] The well written Mega 32 datasheet [10] STK500 datasheet [11] Atmel App Note 305 Half Duplex Compact Software UART: .[12] LM139/LM239/LM339/LM2901/LM3302 Low Power Low Offset Voltage Quad Comparators,.長(zhǎng)春理工大學(xué)本科畢業(yè)設(shè)計(jì) 22 致 謝在本文即將結(jié)束之際,我要由衷的感謝在我畢業(yè)設(shè)計(jì)階段,乃至大學(xué)四年學(xué)習(xí)生活中幫助過我的老師與同學(xué)。本論文是在我的導(dǎo)師劉智老師的悉心指導(dǎo)下完成的。在本文的工作期間,導(dǎo)師對(duì)我的嚴(yán)格要求和熱誠(chéng)關(guān)懷使我無論在知識(shí)的學(xué)習(xí)上還是在認(rèn)識(shí)的視野上都收獲良多。導(dǎo)師強(qiáng)烈的事業(yè)心、循循善誘的教誨和對(duì)生活的真誠(chéng)感悟令我終生難忘,成為我人生成長(zhǎng)中永遠(yuǎn)的財(cái)富。在此,向我的導(dǎo)師劉智老師致以最崇高的敬意和最衷心的感謝!同時(shí),我也要感謝在大學(xué)四年里教過和指導(dǎo)過我的老師們,他們平時(shí)的精心指導(dǎo),讓我學(xué)會(huì)了很多知識(shí),才能使我在這次的畢業(yè)設(shè)計(jì)中發(fā)揮自己的才能,順利的完成我的軟,硬件設(shè)計(jì)以及論文的撰寫。在論文的完成過程中,我的同學(xué)們也同樣給了我莫大幫助與支持,與他們一起探討和互相學(xué)習(xí)給予我在論文工作中的許多啟示!無論是在學(xué)習(xí)上還是在生活中,他們都給了我很多的幫助和啟迪。在此一并表示由衷的感謝!由于本人知識(shí)水平有限,本設(shè)計(jì)難免會(huì)出現(xiàn)不妥之處,懇請(qǐng)各位老師同學(xué)批評(píng)指正,我會(huì)在以后的工作和學(xué)習(xí)中完善自己