红外
基于FPGA编写Verilog语言的红外发送程序是本小小小项目的一个重要组成部分,我们通过FPGA的signaltap解析了格力空调遥控器的红外编码,然后模仿地发出了编码,编写了控制空调开关以及调节设定温度的功能,其实其他的功能也可以在我们程序的基础上酌情增加,十分简单,下面简要描述一下实现过程。具体状态机编写什么的就不详述了,可以参考代码。
爬编码
通过查阅资料,我们知道了(格力YB-02遥控器)的编码的大概构成:
1.一个9000us的高电平+4500us的低电平作为起始码。
2.用高低电平的交错来表示逻辑1与0,其中高电平的时间长度一定,如果后面跟着短的低电平,就是表示逻辑0,长的低电平就是表示逻辑1。
3.码一共由两段组成,两段都是32位(二进制)。
4.在第一段32位的后面有一个3位的连接码,即第一段为35位,第二段32位。
5.在第一段的35位和第二段的第一位之间,有一段过渡码,为一般的高电平持续时间(与逻辑0、1相同),再接40000us的低电平。
其中,高电平和低电平分别持续多少us,这个可能不同的遥控器有所区别,最好自己爬一下遥控器的编码,把signaltap的clk稍微调的频率高一些来看(我们用的是38kHz),准确度会更高一些。
具体的空调编码这里就不讲了,很多的博文都有,需要的可以自行搜索,保险起见建议自己用signaltap爬一下波形(其实示波器也可以看逻辑电平&