极品馒头泬19p,国产精品亚洲一区二区三区,狠狠色噜噜狠狠狠7777奇米,国产精品视频一区二区三区无码,国产欧美日韩久久久久

【E2281】FPGA上基于Verilog的紅外遙控格力空調(diào)以及藍牙通信

2021-11-18 11:48:52      索煒達電子      1128     

項目編號:E2281

文件大?。?6K

源碼說明:帶中文注釋

開發(fā)環(huán)境:Verilog

簡要概述

紅外

基于FPGA編寫Verilog語言的紅外發(fā)送程序是本小小小項目的一個重要組成部分,我們通過FPGA的signaltap解析了格力空調(diào)遙控器的紅外編碼,然后模仿地發(fā)出了編碼,編寫了控制空調(diào)開關(guān)以及調(diào)節(jié)設(shè)定溫度的功能,其實其他的功能也可以在我們程序的基礎(chǔ)上酌情增加,十分簡單,下面簡要描述一下實現(xiàn)過程。具體狀態(tài)機編寫什么的就不詳述了,可以參考代碼。


爬編碼

通過查閱資料,我們知道了(格力YB-02遙控器)的編碼的大概構(gòu)成:


1.一個9000us的高電平+4500us的低電平作為起始碼。


2.用高低電平的交錯來表示邏輯1與0,其中高電平的時間長度一定,如果后面跟著短的低電平,就是表示邏輯0,長的低電平就是表示邏輯1。


3.碼一共由兩段組成,兩段都是32位(二進制)。


4.在第一段32位的后面有一個3位的連接碼,即第一段為35位,第二段32位。


5.在第一段的35位和第二段的第一位之間,有一段過渡碼,為一般的高電平持續(xù)時間(與邏輯0、1相同),再接40000us的低電平。


其中,高電平和低電平分別持續(xù)多少us,這個可能不同的遙控器有所區(qū)別,最好自己爬一下遙控器的編碼,把signaltap的clk稍微調(diào)的頻率高一些來看(我們用的是38kHz),準(zhǔn)確度會更高一些。


具體的空調(diào)編碼這里就不講了,很多的博文都有,需要的可以自行搜索,保險起見建議自己用signaltap爬一下波形(其實示波器也可以看邏輯電平,只是電平的長度不太準(zhǔn)確)。


調(diào)制

說到38kHz就不得不說很重要的事情了,那就是調(diào)制。

查閱資料可以得知,發(fā)送的紅外信號是用38kHz的方波信號調(diào)制得到的。


那么我們該如何理解這個調(diào)制呢?(如果沒有學(xué)習(xí)過信號課程的話)


說的通俗一些,也就是把高電平拉開來看,不是一個連續(xù)的高電平,而是一個一個的分立的方波,方波的頻率是38kHz,實現(xiàn)方波信號調(diào)制在FPGA上很簡單,直接把需要輸出的邏輯信號和方波調(diào)制信號用一個與門過一下就ok了。


我們知道了調(diào)制信號是38kHz的方波信號,但是我們還不知道信號的具體占空比。之后我們可以再用signaltap爬一波遙控器信號的再放大一些的信號,從操作上來講,就是設(shè)置clk的頻率再高一些,其實50MHz的晶振就挺不錯的,我們測得的高低電平比例大約是1:10,僅供參考。


注意:這里爬占空比用的紅外接收是比較有講究的,需要最高接收頻率足夠高,至少要比38KHz高才行,否則看起來就是一個連續(xù)的高電平而已,顯示不了方波調(diào)制信號。


FPGA藍牙通信

其實這個FPGA的小小小項目是兩個部分組成的,通過UART協(xié)議的藍牙通信也是一個部分,這塊主要也就是大家對于協(xié)議的理解問題,網(wǎng)上有現(xiàn)成資源,可以自行查找。

目錄│文件列表:

 └ IRsend_FPGA

    │ assignment_defaults.qdf

    │ BT.dpf

    │ BT.qsf

    │ BT.qws

    │ BTCA.qpf

    │ BTCA_tmp_archive.qarlog

    │ BT_assignment_defaults.qdf

    │ freq.v

    │ HumidityControl.v

    │ IRsend_FPGA

    │ IRtest.v

    │ IRtest.v.bak

    │ out_directory_tmp.txt.tmp

    │ Rx.v

    │ Rx.v.bak

    │ stp1.stp

    │ stp1_auto_stripped.stp

    │ stp2.stp

    │ stp2_auto_stripped.stp

    │ tiaozhi.v

    │ TOP.v

    │ TOP.v.bak

    │ Translater.v

    │ Translater.v.bak

    │ UART_baudrate_generator.v

    └ _config.yml

TAG藍牙通信
  • 2 次
  • 1 分