750 likes | 996 Views
第 11 章 基于 PSoC 的通信电路的实现 Chapter 10 Realization of Communication Circuit On PSoC. 何宾 2010.10. 基于 PSoC 的通信电路的实现 -- 前言.
E N D
第11章 基于PSoC的通信电路的实现Chapter 10 Realization of Communication Circuit On PSoC 何宾 2010.10
基于PSoC的通信电路的实现--前言 • 本章通过三个实例介绍了PSoC3/5在通信电子线路方面的应用。这三个实例主要包括:压控振荡器VCO的实现、幅度调制AM的实现、频率调制FM解调的实现。这三个实例是PSoC3/5在通信电子线路方面的典型应用,这些实例中也代表了当今最新的应用发展趋势。读者通过本章内容的学习,将进一步掌握PSoC在通信电子线路设计方面的高级应用方法和设计技巧。
压控振荡器VCO的实现 • 压控振荡器(Voltage Controlled Oscillator,VCO)就是通过电压来控制振荡器的工作频率。本节将介绍使用PSoC实现VCO。 • 图11.1给出了基于PSoC的VCO实现结构图。 • 输出频率由下式计算: (1)
压控振荡器VCO的实现 图11.1 基于PSoC的VCO实现结构
压控振荡器VCO的实现--创建和配置工程 • 1.打开软件PSoC Creator,在软件的Start Page界面下,点击Create New Project…创建一个新的工程。 • 2.在New Project窗口,根据目标器件PSoC3/5,选择Empty PSoC3/5 Design模板,并将工程命名 VoltageControlledOscillator。选择工程保存路径,点击“OK”按钮;
压控振荡器VCO的实现--创建和配置工程(添加并配置IDAC模块)压控振荡器VCO的实现--创建和配置工程(添加并配置IDAC模块) 下面给出添加并配置IADC的步骤,主要步骤包括: • 1.拖动IADC器件并将其放置于原理图内(Component Catalog->Analog->DAC-> Current DAC(8-bit)。 • 2.双击原理图内的DAC_1器件打开配置窗口。 • 3.如图11.2,按如下方式,在Configure标签内进行配置:
压控振荡器VCO的实现--创建和配置工程(添加并配置IDAC模块)压控振荡器VCO的实现--创建和配置工程(添加并配置IDAC模块) Name: IDAC Data_Source: CPU or DMA IDAC_Range:0-255uA(1uA/bit) IDAC_Speed:Low Speed Initial_Value:120 其余选项均为默认值。
压控振荡器VCO的实现--创建和配置工程(添加并配置IDAC模块)压控振荡器VCO的实现--创建和配置工程(添加并配置IDAC模块) 图11.2 IDAC配置界面
压控振荡器VCO的实现--创建和配置工程(添加并配置比较器模块)压控振荡器VCO的实现--创建和配置工程(添加并配置比较器模块) 下面给出添加并配置比较器的步骤,主要步骤包括: • 1.拖动比较器并将其放置于原理图内(Component Catalog->Analog->Comparator。 • 2.双击原理图内的CMP器件打开配置窗口。 • 3.如图11.3,按如下方式,在Configure标签内进行配置: Name: CMP 其余选项均为默认值。 其余选项均为默认值。
压控振荡器VCO的实现--创建和配置工程(添加并配置比较器模块)压控振荡器VCO的实现--创建和配置工程(添加并配置比较器模块) 图11.3 比较器配置模式
压控振荡器VCO的实现--创建和配置工程(添加模拟端口)压控振荡器VCO的实现--创建和配置工程(添加模拟端口) 下面给出添加并配置模拟引脚的步骤,主要步骤包括: • 1.拖动模拟端口器件并将其放置于原理图内(Component Catalog->Ports and Pins->Analog Pin)。 • 2.双击原理图内的Pin_1器件打开配置窗口。
压控振荡器VCO的实现--创建和配置工程(添加模拟端口)压控振荡器VCO的实现--创建和配置工程(添加模拟端口) 如图11.4所示,按如下方式进行配置: • Type标签下,参数如下配置: Name: Cint Number of Pins: 1 Analog:选中该选项 Digital Output:选中该选项 HW Connection:选中该选项 其余选项均为默认值 • General标签下,参数如下配置: Drive Mode:Open Drain,Drives Low 其余选项均为默认值
压控振荡器VCO的实现--创建和配置工程(添加模拟端口)压控振荡器VCO的实现--创建和配置工程(添加模拟端口) 图11.4 引脚配置界面
压控振荡器VCO的实现--创建和配置工程(添加时钟输入源)压控振荡器VCO的实现--创建和配置工程(添加时钟输入源) 下面给出添加并配置时钟输入源的步骤,主要步骤包括: • 1.拖动模拟端口器件并将其放置于原理图内(Component Catalog->System->Clock)。 • 2.双击原理图内的Clock_1器件打开配置窗口。 • 3.如图11.5所示,按如下方式进行配置:
压控振荡器VCO的实现--创建和配置工程(添加时钟输入源)压控振荡器VCO的实现--创建和配置工程(添加时钟输入源) 图11.5 时钟源配置界面
压控振荡器VCO的实现--创建和配置工程(添加频率输出端口)压控振荡器VCO的实现--创建和配置工程(添加频率输出端口) 下面给出添加并配置频率输出端口的步骤,主要步骤包括: • 1.拖动两个数字端口器件并将其放入原理图中(Component Catalog->Ports and Pins-> Digital Output Pin)。 • 2.按如下方式配置两个数字端口dPort_LSB和dPort_MSB: Number of Pins:1
压控振荡器VCO的实现--创建和配置工程(添加频率输出端口)压控振荡器VCO的实现--创建和配置工程(添加频率输出端口) • 在TYPE标签栏下,按如下配置参数: Name:Fout Digital Output:选中 HW Connection:选中 其它按照默认参数设置 • 在General标签栏下,按照如下配置参数: Drive Mode: Strong Drive 其它按照默认参数设置
压控振荡器VCO的实现--创建和配置工程(添加模拟电压输入端口)压控振荡器VCO的实现--创建和配置工程(添加模拟电压输入端口) 下面给出添加并配置模拟引脚的步骤,主要步骤包括: • 1.拖动模拟端口器件并将其放置于原理图内(Component Catalog->Ports and Pins->Analog Pin)。 • 2.双击原理图内的Pin_1器件打开配置窗口。 • 3.按如下方式进行配置:
压控振荡器VCO的实现--创建和配置工程(添加模拟电压输入端口)压控振荡器VCO的实现--创建和配置工程(添加模拟电压输入端口) • Type标签下,参数如下配置: Name: Vin Number of Pins: 1 Analog:只选中该选项 其余选项均为默认值 • General标签下,参数如下配置: Drive Mode:High Impedence Analog 其余选项均为默认值
压控振荡器VCO的实现--创建和配置工程(配置引脚)压控振荡器VCO的实现--创建和配置工程(配置引脚) 下面给出配置管脚的步骤,主要步骤包括: • 1.从Workspace Explore,双击PSoCRocks.cydwr文件 • 2.点击pin标签。 • 3.如图11.6,按照如下方式进行配置: Cint连接到P0[5] Vin连接到P0[6] Fout连接到P0[7]
压控振荡器VCO的实现--创建和配置工程(配置引脚)压控振荡器VCO的实现--创建和配置工程(配置引脚) 图11.6 引脚配置
压控振荡器VCO的实现--创建和配置工程(创建函数文件)压控振荡器VCO的实现--创建和配置工程(创建函数文件) 其主程序主要完成以下功能:启动IDAC;设置IDAC电流为100uA;启动比较器。 下面给出创建函数文件的步骤,主要步骤包括: • 1.打开Workspace Explorer窗口中现有的main.c函数文件。 • 2.输入下面的main.c代码。
压控振荡器VCO的实现--编程及调试 • 下面给出添加并配置开发板的步骤,主要步骤包括: • 1.使用USB电缆连接CY8CKIT-001开发板的USB接口到电脑USB的接口; • 2.将0.1uF的电容连接到P0[5]和地之间; • 3.连接VR到P0[6]; • 4.给开发板进行供电; • 5.使用前述方法进行编程。
压控振荡器VCO的实现--编程及调试 • 6.编程结束之后,拔下USB电缆。 • 7.保存并且关闭工程。 • 图11.7 VCO的输出和输入电压的关系 • 8.调整开发板上VR的输出,用示波器观察振荡器的输出频率的变化,图11.7给出了其中的变化。
压控振荡器VCO的实现--编程及调试 图11.7 VCO的输出和输入电压的关系
幅度调制AM的实现 • 幅度调制是模拟通信中常用的一种模拟信号远距离传输的方式,即使用一个载波信号对一个基带信号进行调制,这样,载波信号的幅度就随着基带信号进行变化。如图11.8,给出了基于PSoC实现调幅的原理图结构,该设计使用100kHz的载波信号对500Hz的基带信号进行幅度调制。图11.9给出了AM调制前后的频谱图。
幅度调制AM的实现 图11.8 AM的实现原理图
幅度调制AM的实现 图11.9 调制前后信号频谱图
幅度调制AM的实现--创建和配置工程 • 1.打开软件PSoC Creator,在软件的Start Page界面下,点击Create New Project…创建一个新的工程。 • 2.在New Project窗口,根据目标器件PSoC3/5,选择Empty PSoC3/5 Design模板,并将工程命名Mixer_AmpModulation。选择工程保存路径,点击“OK”按钮;
幅度调制AM的实现--创建和配置工程(添加并配置混频器)幅度调制AM的实现--创建和配置工程(添加并配置混频器) 下面给出添加并配置混频器的步骤,主要步骤包括: • 1.拖动VADC器件并将其放置于原理图内(Component Catalog->Analog->Mixer) • 2.双击原理图内的Mixer_1器件打开配置窗口。 • 图11.10 混频器配置界面 • 3.如图11.10,按如下方式,在Configure标签内进行配置:
幅度调制AM的实现--创建和配置工程(添加并配置混频器)幅度调制AM的实现--创建和配置工程(添加并配置混频器) LO_Freq:LO Freq 100kHz or greater Minimum_Vdda: 2.7V or greater Mixer_Type:Multiply(Up) Mixer Power: High Power
幅度调制AM的实现--创建和配置工程(添加并配置混频器)幅度调制AM的实现--创建和配置工程(添加并配置混频器) 图11.10 混频器配置界面
幅度调制AM的实现--创建和配置工程(添加并配置混频器)幅度调制AM的实现--创建和配置工程(添加并配置混频器) 图11.11 放大器配置界面
幅度调制AM的实现--创建和配置工程(添加并配置参考源)幅度调制AM的实现--创建和配置工程(添加并配置参考源) 下面给出添加并配置参考源的步骤,主要步骤包括: • 1.拖动模拟端口器件并将其放置于原理图内(Component Catalog->Analog->Amplifiers ->Opamp)。 • 2.双击原理图内的Opamp_1器件打开配置窗口。
幅度调制AM的实现--创建和配置工程(添加并配置参考源)幅度调制AM的实现--创建和配置工程(添加并配置参考源) • 3.如图11.11所示,在Basic标签内按如下方式进行配置: Name: Opamp_Buffer Mode: Follower Power: High Power 其余选项均为默认值 该放大器的输出连接到混频器的Vref端。
幅度调制AM的实现--创建和配置工程(添加并配置带通滤波器网络)幅度调制AM的实现--创建和配置工程(添加并配置带通滤波器网络) 下面给出添加并配置参考源的步骤,主要步骤包括: • 1.拖动模拟端口器件并将其放置于原理图内(Component Catalog->Analog->Amplifiers ->Opamp)。 • 2.双击原理图内的Opamp_1器件打开配置窗口。
幅度调制AM的实现--创建和配置工程(添加并配置带通滤波器网络)幅度调制AM的实现--创建和配置工程(添加并配置带通滤波器网络) • 3.如图11.12所示,在Basic标签内按如下方式进行配置: Name: Opamp_Filter Mode: OpAmp Power: High Power 其余选项均为默认值 如图11.13,该放大器和电容电阻构成有源带通滤波器电路。提供了100kHz的带通滤波器,10kHz的通带范围。
幅度调制AM的实现--创建和配置工程(添加并配置带通滤波器网络)幅度调制AM的实现--创建和配置工程(添加并配置带通滤波器网络) 图11.12 放大器配置界面
幅度调制AM的实现--创建和配置工程(添加并配置带通滤波器网络)幅度调制AM的实现--创建和配置工程(添加并配置带通滤波器网络) 图11.13 带通滤波器的结构
幅度调制AM的实现--创建和配置工程(添加并配置载波信号源)幅度调制AM的实现--创建和配置工程(添加并配置载波信号源) 下面给出添加并配置时钟输入源的步骤,主要步骤包括: • 1.拖动模拟端口器件并将其放置于原理图内(Component Catalog->System->Clock)。 • 2.双击原理图内的Clock_1器件打开配置窗口。 • 3.如图11.14所示,按如下方式进行配置:
幅度调制AM的实现--创建和配置工程(添加并配置载波信号源)幅度调制AM的实现--创建和配置工程(添加并配置载波信号源) • 在Configure Clock标签内,按照如下参数设置; Name:Clock_Carrier Frequency:100kHz Tolerance:-5%-5% 其余按默认参数设置; • 在Advanced标签内,按照如下参数设置: Sync with BUS_CLK:不选中;
幅度调制AM的实现--创建和配置工程(添加并配置载波信号源)幅度调制AM的实现--创建和配置工程(添加并配置载波信号源) 图11.14 时钟源配置界面
幅度调制AM的实现--创建和配置工程(添加并配置模拟输入/输出端口)幅度调制AM的实现--创建和配置工程(添加并配置模拟输入/输出端口) • 按照图11.15所示,添加并配置模拟输入/输出端口,并完成所有元件的连接。 图11.15 引脚配置
幅度调制AM的实现--创建和配置工程(添加并配置模拟输入/输出端口)幅度调制AM的实现--创建和配置工程(添加并配置模拟输入/输出端口) 下面给出配置管脚的步骤,主要步骤包括: • 1.从Workspace Explore,双击PSoCRocks.cydwr文件 • 2.点击pin标签。 • 3.如图11.15,按照如下方式进行配置: Pin_InputSignal连接到P0[4] Pin_Offset连接到P3[7] Pin_MixerOut连接到P0[5] Pin_OpampNeg连接到P0[3]; Pin_AM_Out连接到P0[1];
幅度调制AM的实现--创建和配置工程(创建函数文件)幅度调制AM的实现--创建和配置工程(创建函数文件) 其主程序主要完成以下功能:启动混频器和运算放大器。 下面给出创建函数文件的步骤,主要步骤包括: • 1.打开Workspace Explorer窗口中现有的main.c函数文件。 • 2.输入main.c代码。
幅度调制AM的实现--创建和配置工程(编程及调试)幅度调制AM的实现--创建和配置工程(编程及调试) 下面给出添加并配置开发板的步骤,主要步骤包括: • 1.使用USB电缆连接CY8CKIT-001开发板的USB接口到电脑USB的接口; • 2.按照引脚分配完成信号的连接; • 3.按照图11.13,连接完成外部的R1,C1,R2,C2;
幅度调制AM的实现--创建和配置工程(编程及调试)幅度调制AM的实现--创建和配置工程(编程及调试) • 4.给开发板进行供电; • 5.使用前述方法进行编程。 • 6.编程结束之后,拔下USB电缆。 • 7.输入基带信号到P0[4]。 • 8.用示波器观察AM信号,图11.16给出了AM的波形图; • 思考:如何实现AM信号的解调?详见光盘设计说明和详细的设计文档。
幅度调制AM的实现--创建和配置工程(编程及调试)幅度调制AM的实现--创建和配置工程(编程及调试) 图11.16 AM调制信号波形图
频率调制FM解调的实现 • 调频信号FM的解调常用的有斜率检测法(Slope Detection),这是一种传统的模拟解调方法。还有一种方法是使用一个单稳多谐振荡器,从信噪比SNR和总谐波失真THD来说,这是一种最好的方法。该设计使用单稳多谐振荡器的方法实现FM的解调。