基于FPGA控制的温度检测无线发射接收系统

[09-12 18:32:15]   来源:http://www.88dzw.com  EDA/PLD   阅读:8754

文章摘要:读取温度寄存器时首先是选中器件,地址信号应该与硬件设置地址一致。第二段是选择温度寄存器,温度寄存器指针地址P1-P0写入”0-0”,表示下次操作的默认寄存器为器件的温度寄存器。重新起始后再次选中器件并读取温度寄存器的十六位的温度数据,并将十六位的数据的有效数据前十一位提取出,即可得到有效的温度数据。将温度数据与预设的温度比较后得出升温或降温信号,连接到无线发射模块的KEYl、KEY2上发射到接收端。接收端接收到信号后再经过放大后便可驱动步进电机等。2 时序的实现方法FPGA与其它逻辑语言的运行有很大区别,最大的区别就是FPGA是硬件语言,而不是类似于c语言的程序。VHDL下载后生成的是逻辑硬件

基于FPGA控制的温度检测无线发射接收系统,标签:eda技术,eda技术实用教程,http://www.88dzw.com


  读取温度寄存器时首先是选中器件,地址信号应该与硬件设置地址一致。第二段是选择温度寄存器,温度寄存器指针地址P1-P0写入”0-0”,表示下次操作的默认寄存器为器件的温度寄存器。重新起始后再次选中器件并读取温度寄存器的十六位的温度数据,并将十六位的数据的有效数据前十一位提取出,即可得到有效的温度数据。将温度数据与预设的温度比较后得出升温或降温信号,连接到无线发射模块的KEYl、KEY2上发射到接收端。接收端接收到信号后再经过放大后便可驱动步进电机等。

  2 时序的实现方法

  FPGA与其它逻辑语言的运行有很大区别,最大的区别就是FPGA是硬件语言,而不是类似于c语言的程序。VHDL下载后生成的是逻辑硬件电路,不是控制器控制执行的逻辑语句。VHDL语言每个进程之间是并行运行的,但是进程内部的语句却又是顺序执行的。而且每个信号的传输都是在所在进程结束的时候进行的。这点很重要,比如你对一个信号前后两次赋值,哪怕你中间有很多运算最终的结果还是最后一次赋值的结果,前一次赋值将是无效的,且会在报告中弹出一个警告。每个process的运行是靠敏感信号触发的,敏感信号放在process后面的括号中。所以对于VHDL语言来说循环语句不是很必要的,因为每次敏感信号变化该进程将从程序的第一句开始重新运行一次。意味着一个进程本来就是一个循环,只有变化的部分的信号才能得到改变。这一点与普通逻辑语言有很大的区别。

  对于时序的实现有很多方法,可以用case语句实现,也可以用if语句实现。但是最有效和合乎逻辑的方法是用状态机实现。以下是状态机的模型。


  状态机逻辑清晰,在每个对应的状态下将每个信号应该进行的操作放在对应的状态机程序中,严格控制各个信号的时序要求则可精确地实现高速控制。而且比单片机具有更高的速度。

  3 无线收发模块

  3.1 无线收发硬件原理

  如图4所示,无线发射模块PT2262将来自10-13管脚的按键信号编码后在17管脚上输出。PT2262的17管脚的信号由同步码、地址码、数据码组成。17管脚输出信号经过R315A芯片AM调制后输出到天线上。每组数码连续发射四次,只有两次得到的数码一样以后才把相应数据位输出高电平。为了保护高频设备,本设计采用间歇发射的方式,即每3s发射一下信号,然后停止1s。目的是为了保护高频设备,避免其一直处于一种工作状态而降低其寿命。


  接收电路如图5所示,接收端将天线接收到信号经过两级三极管放大以后再经过一级同向放大,最后将放大信号经过比较以后,输出到PT2272芯片的14管脚,如果没有受到外部干扰,PT2272的14管脚的信号与PT2262的17管脚的信号是一致的。PT2272内部将接收到的信号解码后得出数据码,并在相对应的输出管脚输出高电平。如果输出的信号有效,那么在2272的17管脚将输出一个高电平有效的信号,表示输出信号是有效的。



  4.2 无线发射信号原理

  发射数据分为三部分,第一部分是地址码,第二部分是数据码,最后一部分是同步码。即在每一段数据后边都有一个定位信息。每个AD码为占32a。地址码和数据码都用宽度不同的脉冲来表示,两个窄脉冲表示”O”;两个宽脉冲表示”1”;一个窄脉冲和一个宽脉冲表示”F-”,也就是地址码的”悬空”。

上一页  [1] [2] [3]  下一页


Tag:EDA/PLDeda技术,eda技术实用教程EDA/PLD
分类导航
最新更新
热门排行