注:文章内容为本人学习笔记,若有错误欢迎指正或补充。
1,ADC转换(电压表)
在FPGA中使用ADC模块主要的端口有6个,3路输入,3路输出。
输入有:时钟,复位,输入的数据。
输出有:AD转换所需要时钟(使用不同的芯片所需要的频率不同)
AD转换后的数据,
AD转换后的数据符号。
在ADC转换的数据采集前,ADC的数据采集先端口不接入信号,然后对ADC芯片采集到的数据取平均值,得到中值为,然后再对接入信号后采集到的数据与中值比大小,大则数据符号为正,反则反之。注在FPGA中数据不会保留小数部分,所以在获取数据时需要合理放大倍数。
2,红外遥控
红外遥控的编码协议为NEC,NEC协议用PPM脉冲位置调制进行编码。
当遥控端按下按键时,会发送一针数据,这一阵数据由引导码,地址码,地址反码,数据码,数据反码,结束位的顺序组成。
遥控段发送数据帧格式
引导码:由9ms的高脉冲加4.5ms的低电平组成。
地址码:由8位二进制数据组成,低位在前,高位在后。
地址反码:地址码取反,校验用。
数据码:也是由8位二进制数据组成,低位在前,高位在后。
数据反码:数据码的反码,校验用。
结束位:为560us的高脉冲,在每帧数据的最后。(在数据的最后,不是帧的最后面)
在NEC协议中逻辑1是由560us的高脉冲和1.69ms的低电平组成,一共2.25ms。
逻辑0是由560us的高脉冲和560us的低电平组成,一共1.12ms。
当红外遥控按住按键不放时,在发送一帧数据后还会一直发送重复码,直至按键送开。
重复码也是一帧数据,由9ms的高脉冲和2.25ms的低电平组成,最后还有个结束位。
每帧数据与下一帧数据之间的间隔为110ms。
接收端接收到的数据与发送端格式不同
引导码:9ms的低电平加4.5ms的高电平。
逻辑1:560us的低电平加1.69ms的高电平。
逻辑0:560ms的低电平加560ms的高电平。
重复码:9ms的低电平,2.25ms的高电平。
结束位:560ms的低电平。