数字化幅度调制电路的实现
扫描二维码
随时随地手机看文章
1 引言
信息通过传输介质在发送端和接收端之间传送。信息的原始形式通常是不适合直接进行传送,需要把它加载到高频载波上来实现信息的传送。把信息加载到高频载波上的过程被称作为调制。
幅度调制是一种相对便宜的调制方式,尤其是全载波双边带幅度调制可以使用简单的解调器电路,因此这种调制方式在商业广播以及民用波段的双向无线移动通信中获得应用。
原始信息信号、载波信号和全载波双边带幅度调制信号之间的关系如下。
原始信息信号:
(1)
载波信号:
(2)
全载波双边带幅度调制信号:
(3)
在上面的关系式中,kam为调幅灵敏度,反映原始信息信号对幅度调制信号的高频幅度的影响程度。
传统的幅度调制电路是一个非线性电路,利用非线性特性实现调制信号中的乘法运算。幅度调制电路有两个输入端,一个输入原始信息信号;另一个输入单一频率的载波信号。不同的广播电台采用不同的载波频率以避免相互干扰。利用LC振荡器产生载波信号具有频率调节方便的优点,但是频率稳定度较低;使用晶体振荡器具有频率稳定度高,但是频率调节不方便。
2 直接数字频率合成
直接数字频率合成(Direct Digital Synthesis,DDS)技术利用数字方法可以产生任意波形的信号,而且所产生的信号同时具有频率稳定度高和频率调整精度高的特点,适合用作载波信号。基于DDS技术产生信号波形的原理图如图1所示。
图1 DDS技术产生信号波形的原理图
DDS信号源的核心是相位累加器,它类似一个计数器。每来一个时钟信号,相位累加器的输出就增加一个步长的相位增加量,相位增加量的大小由频率控制字确定,改变频率控制字就可以改变相位增加的速度,从而改变输出信号的频率。信号波形的数据表里包含待产生信号一个完整周期的幅度—相位数据,该数据可以由需要产生的信号利用采样和量化来获得。从波形数据表中读出相位累加器输出相位信号值对应的幅度数据,通过数字/模拟转换器将该数据转换成所需的模拟信号波形输出。数字/模拟转换器输出的信号是由一系列阶梯近似的模拟信号,由于也是每来一个时钟信号完成一次转换,因此输出信号中的谐波频率是固定的,利用滤波器滤除这些谐波分量就可以获得满意的输出信号波形。
相位累加器的相位累加为循环迭加,这样使得输出信号的相位是连续的。相位累加器进行线性相位累加,累加至满量时产生一次计数溢出,这个溢出率即为输出信号的频率。频率控制字内的相位增加量越大,相位累加器的溢出率越高,输出信号的频率越高。
如果相位累加器的位数为N,频率控制字内的相位增量为K,参考时钟频率为fSYSCLK,则DDS系统输出信号的频率fO为:
(4)
输出信号的频率分辨率Δf0为:
(5)
参考时钟由晶体振荡器提供,具有较高的频率稳定度。DDS系统的工作类似于数字分频电路,输出信号的频率稳定度等同于参考时钟的频率稳定度,即可以达到晶振的频率稳定度。
3 AD9854芯片介绍
AD9854把DDS技术和高速数字/模拟转换器结合在一起,形成一个全数字化、可编程的频率合成器。在一个精确的时钟源的控制下,它可以产生一个频谱较纯、频率―相位―幅度可编程的正弦信号。
AD9854的DDS核具有48位的相位累加器,当系统时钟为300MHz时,输出信号的频率分辨率仍可达1mHz。如果一个正弦波信号周期包括30个采样点,它的输出信号频率可达10MHz,满足幅度调制广播载波频率535~1605kHz的要求。AD9854还包含一个4×到20×时钟倍频电路,因此该电路允许使用较低的外部时钟频率来获得较高的系统时钟频率,降低了对外部时钟在工作频率方面的要求。
在信号幅度控制方面,AD9854具有12位数字乘法器,提供12位的输出幅度调整率。该乘法器位于波形数据表与数字/模拟转换器之间,它的一个输入来自波形数据表的数字载波,另一个输入来芯片外部的数据。当外部输入的数据来源于原始信息信号时,利用这个乘法器就可以实现如式(3)所示的幅度调制信号。
AD9854工作参数,例如输出幅度调制信号的载波频率以及幅度,可以通过向它的寄存器写入数据来实现。寄存器的访问具有8位并行和SPI兼容的串行两种方式。向寄存器写入数据并不能使AD9854的工作发生变化,芯片只有在接收到数据刷新信号才能实现工作状态的改变。刷新信号可以由AD9854内部电路产生,也可以由外部提供。本设计采用外部提供,保证数据刷新与对原始信息信号采样的同步。
4 AD9854芯片串行数据接口的实现
AD9854的工作控制可通过向其内部寄存器写入数据来实现,工作状态可由从其内部寄存器读出数据来获得。工作在串行方式时,芯片的大多数控制管脚处于非激活状态,仅使用少数控制管脚,本设计就采用串行方式控制AD9854的工作。串行方式的2线信号传输方式信息传输包括2部分,第一部分提供控制指令,包括读/写信息和寄存器地址;第二部分提供具体的工作数据,其关系如图2所示。
图2 串行传输关系图
利用串行方式完成一次原始信息数据输入来控制载波的振幅包括1个字节的控制指令和2个字节的数据,共计24位。串行传输数据和时钟的时序图如图3所示。串行时钟周期的最小值为100ns,按这样的传输速率,完成24位串行数据的传送只需要2.4us。对语音信号采样率的现行标准为8kHz,即采样周期为125us,在一个语音信号的采样周期内完全有能力完成向AD9854芯片的原始信息数据传输。
图3 串行传输时序图
AD9854的控制芯片还需要去控制将待传输的语音信号转换为数字信号的模拟/数字转换器的工作。由于可编程逻辑器件具有并行工作的特点,使得其对模拟/数字转换器的控制工作和向AD9854的数据传输可以采用流水线的方法进行。设计中采用ALTERA公司的FPGA器件EP1C3,这种FPGA器件的端口电压支持3.3V,这与AD9854芯片相同;同时它具有104个用户可使用的输入/输出管脚,足够整个系统使用;再有就是它的内部也具有基于锁相环的时钟倍频电路,降低了对外部时钟在工作频率方面的要求。
采用有限状态机(FSM)的时序电路模型,使用VHDL实现的AD9854芯片数据接口代码格式如下:
IF (start_ad9854 = '0') THEN --启动信号有效,状态清0
current_state <= 0;
ELSIF (start_ad9854 = '1') THEN --启动信号无效,状态机工作
IF (clk_ad9854'EVENT AND clk_ad9854 = '1') THEN --AD9854串行2线数据传输模块时钟有效
CASE current_state IS --根据有限状态机状态进行分支处理
······
WHEN 24 => --当前状态24
current_state <= 25; --下一个状态25
cs <= '0'; sclk <= '0'; sdio <= amplitude(11); updata <= '0';
--模拟/数字转换结果位11数据
WHEN 25 => --当前状态25
current_state <= 26; --下一个状态26
cs <= '0'; sclk <= '1'; sdio <= amplitude(11); updata <= '0';
--串行时钟有效,位11数据写入
······
WHEN 50 => --当前状态50
current_state <= 50; --下一个状态50
cs <= '1'; sclk <= '0'; sdio <= '0'; updata <= '0';
······
图4 AD9854芯片数据接口仿真波形图
图4是实现向AD9854芯片传送模拟/数字转换结果的仿真波形图。模块时钟clk_ad9854频率选取1MHz。每个数据传送循环由启动信号start_ad9854为低电平开始,这使得当前状态为0。当启动信号变为高电平,在模块时钟的控制下依次产生所需的各个状态。在每个状态下,分别产生串行数据传送选择信号cs、串行时钟信号sclk、串行数据信号sdio和刷新信号updata。当前数据传送完成以后,状态机在最后一个状态自跳转,如代码举例中的状态50,等待下一个数据传送循环开始时的启动信号start_ad9854低电平。
5 结束语
本文作者创新点:实现了一个全数字化的幅度调制电路,并包括载波信号的产生。利用调幅收音机在整个频段内对电路的工作进行了检测,获得满意的结果。相对于模拟幅度调制电路,数字幅度调制电路具有抗干扰能力强、一致性好以及容易实现设计自动化等优点。
ALTERA公司的FPGA器件不仅提供实现逻辑电路的资源,同时也提供了大量的嵌入式存储模块。采用FPGA器件可以很方便地实现相位累加器和波形数据表,工作速率也满足要求。如果用它来实现DDS信号源,当前的主要困难为必须添加数字/模拟转换器,高速数字/模拟转换器不仅价格较高,而且它与FPGA器件之间的高速数据传送对电路板也提出较高的要求。