基于FPGA實現(xiàn)紅外遙控接收器模塊數(shù)據(jù)傳輸設(shè)計
在這篇文章中,小編將為大家?guī)砘?a href="/tags/FPGA" target="_blank">FPGA的紅外遙控接收器模塊數(shù)據(jù)傳輸設(shè)計實現(xiàn)。如果你對本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。
一、紅外遙控接收器工作原理
紅外遙控接收原理是根據(jù)紅外線傳輸信號的特性來實現(xiàn)的。紅外線是位于可見光與無線電波之間的一種電磁輻射,具有較高的波長和較低的頻率,無法被人眼直接看到。
紅外遙控接收器通常由紅外傳感器和信號處理電路兩部分組成當遙控器發(fā)送信號時,信號會通過紅外LED轉(zhuǎn)換成紅外輻射紅外輻射進入接收器并被紅外傳感器接受。紅外傳感器內(nèi)部有一個特定材料制成的紅外光敏元件,能夠感應到紅外輻射并將其轉(zhuǎn)換為電信號。
轉(zhuǎn)換后的電信號被傳遞到信號處理電路中進行處理。信號處理電路通常包括濾波、解碼和判斷等環(huán)節(jié)。濾波作用是去除掉噪聲信號,確保只有有效的紅外信號被處理。解碼環(huán)節(jié)將收到的信號進行解碼,將其轉(zhuǎn)換為具體的控制命令。判斷環(huán)節(jié)則根據(jù)解碼后的信號判斷是否為合法的遙控信號。
最后,處理完成的信號會被送往控制電路,執(zhí)行相應的操作:比如控制電視機的開關(guān)、音量調(diào)節(jié)等。通過這樣的原理,紅外遙控接收器能夠接收到發(fā)射器發(fā)送的紅外信號,并將其轉(zhuǎn)換為電信號,從而實現(xiàn)遙控操作。
二、基于FPGA的紅外遙控接收器模塊數(shù)據(jù)傳輸實現(xiàn)(含代碼)
(一)紅外數(shù)據(jù)傳輸
所有波形都是對于遙控器來說的:
1、引導碼
引導碼波形如下,遙控器先發(fā)送9ms的信號,然后空閑4.5ms后,引導碼結(jié)束。
這個時候在開發(fā)板上結(jié)束到的電平變化為,9ms的低電平,4.5ms的高電平。也就是說,遙控器發(fā)送信號的時候,接收器上為低電平,遙控器空閑時,接收器上為高電平,這點在處理的時候需要注意。
2、數(shù)據(jù)碼
數(shù)據(jù)碼主要是看,數(shù)據(jù)0和數(shù)據(jù)1是如何表示的。通過下圖可知,數(shù)據(jù)1是560us的信號,加1.69ms的空閑。數(shù)據(jù)0是560us的信號,加560us的空閑。知道了數(shù)據(jù)是如何表示的后,在接收的時候,只需要按照波形接收32bit的數(shù)據(jù)即可。
3、結(jié)束碼
在最后一個數(shù)據(jù)接收完成了,遙控器會發(fā)送560us的信號,然后空閑,表示發(fā)送結(jié)束。
4
4、重復碼
重復碼,是和引導碼對應的,如果發(fā)送的是重復碼的話,引導碼中的空閑4.5ms,會變成2.25ms,然后直接進入結(jié)束嗎。根據(jù)空閑時間的長短,可以判斷是引導碼,還是重復碼。
了解了其發(fā)送的波形變換情況,就可以進行代碼的編寫了。
(二)Verilog代碼實現(xiàn)
1、端口信號確定
端口信號很簡潔,當接到一次紅外數(shù)據(jù)的時候,infrared_end,就會拉高一個周期。
2、狀態(tài)確定
通過上面的分析可知,一共可以分為如下四個狀態(tài)。I_START其中包括引導碼和重復碼,根據(jù)時間可以確定,下一個狀態(tài)該跳轉(zhuǎn)到那。
通過上面的分析可知,一共可以分為如下四個狀態(tài)。I_START其中包括引導碼和重復碼,根據(jù)時間可以確定,下一個狀態(tài)該跳轉(zhuǎn)到那。
3、狀態(tài)機跳轉(zhuǎn)
效果圖如下:
經(jīng)由小編的介紹,不知道你對它是否充滿了興趣?如果你想對它有更多的了解,不妨嘗試度娘更多信息或者在我們的網(wǎng)站里進行搜索哦。