中国·芯片交易在线
首页 | 供应信息 | 求购信息 | 库存查询 | 新闻中心 | 展会资讯 | IC厂商 | 技术资料 | 自由区域
   新闻首页 |  行业动态 | 新品发布 | 政策法规 | 科技成果 | 模拟技术 | 嵌入系统 | 传感控制 | 存储设计  
当前位置:IC72首页>> IC新闻中心>> 模拟技术 >>电子行业新闻正文

射频定时发送器基本功能模块的设计

时间:2008/5/23 9:15:00  作者:  来源:ic72  浏览人数:1345
 
 

      引言

      射频定时发送器是射频控制模块中的一个重要组成部分,用于产生需要定时发送的射频控制信号:AD_ON(模数转换信号)、DA_ON(数模转换信号)、APC(自动功率控制信号)、AGC(自动增益控制信号)和AFC(自动频率控制信号),再通过选择两个SPI接口RF_SPI和AD_SPI把控制信号定时地传送到射频发送模块。射频定时发送器需要完成的四种基本功能分别是:定时发送、竞争发送、数据采样时钟分频,以及APC_burst模式,如图1所示,本文将详细阐述这些基本功能模块的设计原理。

ic72新闻中心

      图1 射频定时发送器功能结构图

      定时发送模块

      射频定时发送器的主要功能就是定时传输射频控制信息,为了满足此功能,需要在模块中设计两个FIFO:DATA FIFO用于存储射频控制信息;TIME FIFO用于存储时间信息。模块中设定当系统帧计数器与TIME FIFO中存储的某一时间相同时,就把与这个时间对应的射频控制信息发送出去。因此还需设计一个模块,判断当帧计数器的值等于FIFO_time(FIFO中存储的时间)时,产生使能信号(read_en, fifo_read_en, time_int)发送信息,工作流程如图2所示。

ic72新闻中心

       图2 定时发送射频控制信息设计流程图

      FIFO

      该模块中将设计两个FIFO,它们将需要发送的射频控制信息及其发送时间缓存起来,设计用FIFO进行存储的目的是将这两种信息一一对应起来,避免发送的时候出错。

      define data_fifo

      module  data_fifo (rst_,clk,we_i,rd_i, addwr_i,addrd_i,fifo_data_i,fifo_data_o);

      1) 首先定义该模块的信号线:输入信号为rst_ (复位信号)、clk(标准时钟)、 we_i(写信号)、 rd_i(读信号)、addwr_i[4:0](写FIFO地址)、 addrd_i[4:0](读FIFO地址)和fifo_data_i[11:0](写入FIFO的值);输出信号为fifo_data_o[11:0](FIFO输出值)。

      2) 再定义一个宽度为12位、深度为32的FIFO:reg   [11:0]  register_fifo[0:31];

      3) 设计写FIFO的情况:以clk为参考时钟,首先判断复位信号,当复位信号为低时,对FIFO进行复位:if(!rst_) register_fifo[0......31] <= 12’b0;当rst_不为低且we_i为高时,则对FIFO进行写操作:if(we_i == 1’b1)  register_fifo[addwr_i] <= fifo_data_i;

      4) 设计读FIFO的情况:同样以clk为参考时钟,先判断复位信号,当复位信号为低时,对fifo_data_o进行复位:if(!rst_) fifo_data_o<= 12’b0;当rst_不为低且rd_i为高时,则对FIFO进行读操作:if(rd_i == 1’b1) fifo_data_o <= regsiter_fifo[addrd_i];

      使能信号及中断产生模块

      FIFO读/写使能信号是由外部模块驱动的,因此需要设计一个模块用于产生控制FIFO的读/写信号,并且该模块还需产生时间中断信号用于使能发送器。

      define transfer time

      module time_count(rst_,clk,fifo _time,framc,read_en,fifo_read _en,time_int);

      1) 首先定义该模块的信号线:输入信号为rst_、clk、 fifo_time[15:0](FIFO中存储的时间信息)、framc(帧计数器值);输出信号为read_en(FIFO地址累加使能信号)、fifo_read_en(读FIFO值使能信号)、time_int(时间中断信号);再定义一个reg [1:0] time_int_delay,用于存储time_int在上一个时钟的信息,如time_int_delay[0] <= time_int; time_int_delay[1] <= time_int_delay[0];

      2) 定义fifo_read_en信号在time_int被拉高后延迟一个clk拉高,再延迟一个clk拉低,即assign fifo_read_en = time_int |(time_int_delay[0]);定义read_en信号在time_int被拉高后延迟两个clk后拉高,再延迟一个clk拉低,即assgin read_en = time_int_delay[0] |(time_int_delay[1])。这样做的目的是控制在当前clk的上升沿到来时取出FIFO中当前地址的值,然后在下一个clk的上升沿立即计算出下一次取值的地址,这样就能保证在每一次取值之前其所在的位置已经计算完成,避免了取值出错的情况。

      3) 最后定义如何产生time_int信号。time_int产生的条件是:当fifo_time中存储的时间信息等于framc时,time_int被拉高,即被使能,if(fifo_time== framc )   time_int <= 1b1;

      FIFO读写操作的仿真结果如图3所示,对FIFO的读/写操作分别由we_i和rd_i(fifo_read_en)控制,而计算读FIFO的地址由read_en控制,这样就能保证在每次取FIFO值之前其所在地址已经被计算完成。

ic72新闻中心

      图3 FIFO读/写操作仿真图

      竞争发送模块

      芯片在空闲情况下,可能会有空闲状态的射频控制信息(idle_data)需要发送,当芯片唤醒后则应优先发送该信息。但当芯片唤醒后产生的射频控制信息fifo_data与idle_data在同一时刻发送时,就会出现竞争发送的情况。因此,在设计该模块时限定当idle_en(空闲使能信号)与pllon(pll时钟使能信号)同时拉高时,发送idle_data中的相应比特来取代fifo_data中的相应比特,如图4所示。

ic72新闻中心

       图4 射频定时发送器在空闲情况下的工作流程

      transfer idle_data and fifo_data:

      module idle_time(fifo_ data,pllon,idle_en,idle_data,rfctrl_o);

 
【相关文章】
·射频定时发送器基本功能模块的设计
 
 
IC新闻搜索
 
热点新闻
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于ARM9内核Processor对外部NAND FLASH的控制实现
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9