G24视频信号调制发射机
视频信号调制发射机
目录
摘要和关键词……………………………………………………………………. ………3 一、方案分析与论证………………………………………………………….. ………. ….3 1、图像调制方式 2、功率放大器的选择 3、锁相环频率合成器的选择3.1、压控3. 2、3.3、单片机及其显示电路 4、系统最终方案及整体框架图二、系统硬件设计与实现 1、视频调幅电路的设计2、功率放大电路设计3、锁相环电路的设计3.1 3. 2、三、系统软件设计及编程3.1、系统设计程序理念3.2、系统主程序流程图四、系统调试结果及其分析 4.1 调制电路及功率放大电路的调试4.2、静动态工作点测试4.3、锁相环的调试五、总结………………………………………………………………六、参考文献七、附录…………………………………………………………………………………
…………………………………………………………………………………………………………………VCO …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………MC145152-2…. …………………………………….. …....................3
.. ….............4 ……………………………………………….. …….4
. ….4 .4 …………………………………………………..4 ………………………………………………….5
……………………………………………………………5
.5
. …………………………………………………………….6
.6
..7 ………………………………….7
……………………………………………………………8
. ……………….. …8 .8
……………………………. …….. …….. …...............9
…. …….. ………………………………….9
. ………………………………9 .......................................................................................9
. …….. ………. ……....9 . …….. ………. …….. ………………9 .9-22
1
锁相环…………………………………………………………………、压控震荡锁相电路的设计……………………………………………………………………………………………………………………………………
摘要:从DVD 接出来的视频信号经过调制电路、多级调谐放大器、锁相环
电路构成视频发射机用一根专用发射天线射出视频信号,通过馈线向空中发射调频电磁信号,供电视等带有调频视频接收功能的设备接收。并由AT89C52复位开关对锁相环邻频调制器输出的电视频道进行递增或递减的切换,,对电视频道的本振频率(比欲设频道的图像载频高38MHz )进行数字编码,根据编码规则所获得的信息进行C 语言的程序设计显示屏上。
关键词:视频信号、天线、一. 方案分析与论证1. 调制部分的选择
方案一:采用电容三点式振荡器(考毕兹振荡器)采用电容三点式振荡器(考毕兹振荡器)产生正弦波信号,该电路的设计结构简单,振荡的波形接近正弦波,且稳定性好,并且能够产生较高的振荡频率,振荡波形也可达到较好。荡。
方案二:在方案一的基础上加上锁相环为克服方案一的缺点,载波频率更稳定,并增加传输图像的功能,且则,其具有频率可调的优点,且匹配了同样频率可调节的接收模块。其调制芯片用μPC1507和TA7673AP 方案选择:对两种方案进行比较,故采用方案二。
2. 功率放大器的选择方案一: 以谐振回路为负载的谐振放大器 常以晶体管等放大器件与大器可以对外来的不同信号频率进行调谐。 方案二: 集中选频放大器 该放大器的放大和选频两种功能分开处理的,放大作用由多级非谐振宽带放大器来承担,它的选择性滤波器常用 , 使接收的载波频率显示在SMC1602J 、锁相环、SMC1602液晶显示屏
只适宜产生固定频率的振
方案二稳定性优于方案一,且具有附加功能,
LC 并联谐振回路或耦合谐振回路构成,谐振放
LC 带通滤波器、晶体滤波器、陶瓷滤波
2
液晶AT89C52 电路的缺点是频率调节不便,集成电路。
器和声表面通滤波器等。
方案选择:虽然集中选频放大器电路简单,性能可靠,但由于该设计是小型
的设计,考虑到成本的等问题该设计方便选择了谐振放大器。
3. 锁相环部分的选择 3.1 VCO压控振荡器的选择
压控振荡器的类型有LC 压控振荡器、RC 压控振荡器和晶体压控振荡器。对压控振荡器的技术要求主要有:频率稳定度好,控制灵敏度高,调频范围宽,频偏与控制电压成线性关系并宜于集成等。晶体压控振荡器的频率稳定度高,但调频范围窄,压控振荡器的频率稳定度低而调频范围宽,之间。
方案选择:LC 压控振荡器 3.2锁相环
方案: MC145152 是 MOTOROLA 公司生产的大规模集成电路,它是一块采
用并行码输入方式设定,由 16 根并行输入数据编程的双模频率合成器。在145152-1的基础上做了改进,提高了干扰性能,在降低功耗的同时,改善了能谱度和锁存性能
方案选择:,MC145152-2 3.3 显示的选择
1.1显示模块的选择方
方案一:采用LED 显
采用LED 显示,LED 数码管显示速度较快,亮度较亮,显示清晰,价格便
宜,控制也较简单,但是一般的LED 工作电流在毫安级,而且显示的内容很少,无法做到题目的低功耗。
方案二: 采用低功耗的SMC1602J 显示
采用低功耗的SMC1602J 显示,液晶拥有较低的功耗。角显示稳定补闪烁等优点,可视面积大,画面效果好,分辨率高,抗干搅能力强等特点。
方案选择:综上,我们采用方案二。
LC 压控振荡器居二者 CMOS-LSI 无辐射的危险,RC 3
锁相环平面
4系统各模块的最终方案
(1)调制部分用μPC1507或TA7673AP 芯片。 (2)锁相环部分用MC145152-2芯片。 (3)功率放大部分用单调谐放大电路。 (4)单片机控制用AT89C51芯片。 (5)显示模块用SMC1602A 芯片。
整体框架图
二 系统硬件设计与实现
本题要求输出端能观测到单一频率的视频信号的已调制波不失真能正确显示
本机输出的载波频率, 本设计由单片机控制、显示部分、调制电路附加锁相环、调谐放大电路. 系统中的控制器件通过AT89C52复位开关对双锁相环邻频调制器输出的电视频道进行递增或递减的切换,双锁相环邻频调制器设计与制作的基在MC145152AP 双锁相环邻频调制器、MC12022锁相分频的环节上,对电视频道的本振频率(比欲设频道的图像载频高38MHz )进行数字编码,根据编码规则所获得的信息进行C 语言的程序设计, 经过proteus 的电路仿真,后将程序烧录在AT89C52单片机芯片内,制作成的电路通过两个复位开关进行电视频道的切换,并将有关数据显示在LCD 液晶显示屏上。
1. 视频调幅电路的设计. (μPC1507/TA7673集成块)
4
仿真测试通过
图像信号从插座CK2输入,再经电位器RP2调整为合适的电压后,由电容C8耦合至μPC1507的第16脚进行图像信号的箝位与白电平限幅处理,后与内置的副载波振荡器或外置的图像载波信号实现幅度调制,电视图像信号从集成块15脚输出,再经带通滤波器滤波后,输出所欲发射频道的电视信号(图像信号被载频为f 0MHz 所调幅, 伴音信号被载频为fs MHz 所调频) 。功率放大部分见图3所示,三极管VT1是缓冲放大兼带通滤波,T2调谐回路谐振频率为(fs+ f0)/2(MHz ),带宽为8 MHz,让本频道的电视信号通过,其余信号被抑制掉,达到带通滤波的目的。三极管VT2、VT3、VT4组成参差调谐放大,输出功率大于120mW, 电视信号从插座CK2输出接入到天线发射出去。 2. 功率放大电路设计
参数计算以三极管VT2构成的单调谐放大电路为例,如下图所示
1、静态工作点的设置三极管VT3选9018,取U e 取0.7I c 取14mA ,则R 17=Ue /Ie ≈U e /Ic =0.7V/14mA=50Ω因手上没有50Ω则用47Ω代替。基极偏置电阻R 10,R 11的确定: I R10=(Ec-UBQ )/I1=[12-(0.7+0.7)]/1.4≈ 7.58(KΩ) 7.5K Ω,R 11= UBQ /(I2)=UBQ /(I1-I BQ )=(0.7+0.7)/0.≈1.2 (KΩ ) 取1K Ω
12、 LC回路的计算以工作在第5频道(84-92)MHz,单调谐放大器Y 参数等效电路,将所有的参数都折算到LC 两端,负载LC 谐振在中心频率为88MHz ,取:C 21e =10pF,C25=Ce - (n21C 01+n2C i2)=7.5pF , 谐振时 f 0=所2π
LC e
L=1/[(88×2π) 2
。
.
10] =0.0327µH 电压増益K uo =|Uo /Ui |=n1n 2y fe Q e /ω5
⨯1⨯25⨯10
-3
⨯8
=
7
2π⨯88⨯106⨯10⨯10
-12
≈25.33
3. 锁相环电路设计 3.1 VCO压控振荡
C e
5
取以
压控振荡器信号经双模P /(P +1)分频器分频,再经A 、N 计数器分频器后形成f V 信号,f V =fvco /(P.N +A )。f R 信号和f V 信号在鉴相器中鉴相,输出的误差信号(TR 、TV )经有源(TLC2252C )低通滤波器形成直流信号,直流信号再去控制压控振荡器(VT3)的频率。
3.2 MC145152-2锁相电路的设计
MC12022 低功耗双模预置分频器电路具有÷64/ 65、÷128/ 129 由八级ECL D 型主从触发器构成。前三级触发器为同步时钟输入控制制端MC 的控制下实现÷4/ 5 功能, 第四级和第五级触发器、第六级和第七级触发器分别实现÷4 功能, 第八级触发器在分频比选择端SW 控制下通或÷2 功能, 从而实现整个电路对时钟除64、65、128 和129 分频芯片参数的设f VCO 取比(1ch ~5ch,49.75~85.25MHz )的图像载频高5ch (图像载频为85.25MHz ,振荡频率为123.25MHz )为例:RA 2~比即为128,晶振取4MHzfR =4MHz/128=31.25KHz, 当锁相同步时(P.N+A) .fV =(P.N+A). fR(P.N+A)=fvco/fV =fvco /fR=123.25/0.03125= 经计算得 N9~N0,A5~A0输入码状态(即各脚的高低电平)为[1**********]03. 单片机控制及显示
6
四种分频功能, , 在模数控, 实现信号直,MC145152-238MHz , 以RA 0为010,分频,f V =fR
;
图1
单片机控制电路如图1所示,SW3为复位开关,当按下复位开关SW3时,电路复位,单片机处于起始工作状态(1CH );按下复位开关SW1或SW2,双锁相环邻频调制器输出的电视频道分别作步进递增或递减的变换。P1、P2口输出欲设频道本振频率相应的数字编码信息至CK1插座上, CK1插MC145152AP 相应端口相连,迫使双锁相环邻频调制器根据人们的意愿进行电视频道的切换,并在LCD 液晶显示屏上显示当前所设置的频道数和本振频率。
三. 系统软件设计及编程
1、程序流程图
7
四. 调试与测试
4.1 调制电路及功率放大电路的调试
用一台DVD 由它输出视频信号,引入CK1中, 由于MC12202的芯片暂时买不到所以在调试的过程中锁相环用频率测试仪来锁定频率, 用示波器观察UPC507的8脚的波形看是否有信号输入, 视频信号经过UPC507调制完后由15脚输出, 这是再用示波器观察其波形, 视频输出后由VT2调谐放大电路进行放大, 这是先测晶体管的静态工作点. 刚开始是VT2的B 极和C 极的电压不正常, 经检发现因为有些电阻没有, 就用相近的电阻来代替, 不过这样子的话晶体管的静态工作点不是很正常, 所以最后我们选择用两个电阻串起来, 这样的话就静态工作就正常了. 然后在用示波器观察R13和R15之间相连的波形, 这时候是正弦波. 再用此方法来测量VT3,VT 的波形和静态工作点。乳沟都正常后在射频输出端接上75的假负载,测其上电压应大于3V(有效值), 输出功率 P0=V2/75=32 /75=120(MW)然后在射频输出端接上75拉杆天线进行试发射,应能收到电视信号,此时可能图像有扭曲现象,这属正常现象,因为信号太强,超过电视机自动增益控制范围。此时, 若要减少输出信号,可通过调节输出端至天线外接的衰减器, 直至图像信号不扭曲为止。
静态工作点的调试
4.2锁相环的调试
根据所需频率,计算选取合适的电感L 。芯片上电,观察3脚波形。
如果波形不太好,调整电感的大小,或者在变容二极管上加上12V 的偏置电平。 波形不好可能是谐振Q 值太低,至少Q 值100以上。偏置电压,低波形也不太好,一般偏置电压加到12V 波形不太好就应该考虑调整LC 谐振的问题了。锁相环锁环锁定的频率范围是有限的,也就是滤波器输出电压的变化范围是有限的。环路滤波器的输出电平均方根值变化范围为△V ,在△V 的范围内,压控振荡器的频率变化范围为f1~f2,需要的频率f0在f1、f2之间都是能够锁定的。为了得到实际的f1~f2变化范围。锁相环锁环锁定的频率范围是有限的,也就是滤波器输出电压的变化范围是有限的。环路滤波器的输出电平均方根值变化范围为△V ,在△V 的范围内,压控振荡器的频率变化范围为f1~f2,需要的频率f0在f1、f2之间都是能够锁定的。为了得到实际的f1~f2变化范围。 :
8
技巧如下:
假设我们要锁定64MHz 。根据计算求出合适的N 、A ,设置好MC145152,让它锁定64MHz 。
断开压控振荡器与分频器的连接,即让分频器的输入信号外接。 用函数发生器产生63MHz 信号(低于设定频率),幅度不能太大,1Vpp 左右,输入分频器,然后经过鉴相器MC145152,再经过环路滤波器,来控制压控振荡器,观察压控振荡器的输出,记下振荡频率最低值f1,最高值f2。 取f0在f1、f2之间,根据f0重新计算N 、A ,设置好MC145152. 将压控振荡器接入电路,用示波器观察,可以看到频率锁定在f0,上下变化很小,只有最后一位数字变化,完成锁定。
软件系统调试
1. 当系统正常时,初始状态LCD 显示CH1—87.75MHz ;按下复位开关SW1或SW2,频道及频率做相应的增减变化。
2. 若运行系统时LCD 液晶屏显示不正常,则主要检查LCD 显示子程序是否有误;如果编码输出有误,检查查表程序是否出错;在复位按键按下时若无变化,则问题可能出现在中断子程序,检查是否中断初始化或子程序执行有误。 五. 总结
我们设计的视频发射机在以往的基础在增加了双锁相环,这样就可以只有的调节载波频率并将其锁定,我们的发射机除了可以发射视频信号外还可以发射音频信号。当然该设计也存在许多不足的地方,还需老师们指导。
六参考文献
1). 单片机原理与控制技术 (第二版) 张志良 主编 2). 单片机机开发技术与实训 黄庆华 张永格 主编
3). 高频电路原理与分析 (第二版) 曾兴雯 刘乃安 陈键 编著 4). 电子线路设计·实验·测试(第二版) 谢自美 主编 6). 电子线路设计应用手册 张友汉 主编 7). 案例学单片机C 语言开发. 李玉峰 主编.
9
附录一
调制及放大电路原理图
μPC1507/TA7673集成块内部电路及外围元件
10
表1 参考译码器地址码与分频值
MC12022AP 芯片,其功能如表2所示。
表2 MC12022 功能表
模分频器选用
显示程序设计代码
/****************************************** **单片机头文件及变量定义
******************************************/ #include #include #include
#define uint unsigned int #define uchar unsigned char unsigned char count; sbit EX00=P3^2; sbit EX11= 0xb3; sbit RS = P3^5; sbit RW = P3^6; sbit EN = P3^7; unsigned char *s;
uint flag=0,flag1=0,OUT0,OUT1,NUM; uint i,j,temp,M,N;
sbit key1=P2^3; sbit key2=P2^4;
/*------------------------------------------------ **功能:函数声明.
-------------------------------------------------*/ void bianma(void); void intlcd(void); void xianshi(void);
/*****************************************
**功能:外部中断INT0、INT1初始化 *****************************************/ void EX1_Init() {
EA = 1; IT1 = 0; EX0 = 1;
EX1 = 1; }
/*****************************************
**功能:外部中断INT0入口子程序 *****************************************/ void EX0_Int() interrupt 0 {
EX0 = 0; //关中断 for(;!EX00;); //等待放开 EX0 = 1; //开中断 if(flag)flag--; if(count)count--; xianshi(); }
/*****************************************
**功能:外部中断INT1入口子程序 *****************************************/ void EX1_Int() interrupt 2 {
EX1 = 0; //关中断 count++;
if(flag
for(;!EX11;); //等待放开 EX1 = 1; //开中断 xianshi(); }
/***************************************** ** 函数名称: delay
** 入口参数:n (unsigned int型) ** 出口参数:无
** 功能描述: 短暂延时,使用11.0592晶体,约0.01MS *****************************************/ void delay(unsigned int n) {
unsigned int cc; while(n-->0) {
for(cc=10;cc>0;cc--); } }
/**************************************** **读lcd 状态指令**
****************************************/ void recom( ) {
EN=0; RS=0; RW=1; EN=1; }
/**************************************** **测试是否忙**
****************************************/ void busytest() {
P0=0xff; RS=0; RW=1; EN=1;
while((P0&0x80)==0x80) {
EN=0; EN=1; }; EN=0; }
/***************************************** ** 函数名称: Wrcom
** 入口参数:wdata (unsigned char 型) ** 出口参数:无
** 功能描述: 写命令到LCD
*****************************************/ void wrcom(unsigned char n) {
RS=0; RW=0; P0=n; EN=1; _nop_(); EN=0; }
/***************************************** **写lcd 指令判断是否忙***
*****************************************/ void wrcomn (unsigned char n) {
busytest(); wrcom(n); }
/***************************************** **清屏**
*****************************************/ void clrscr() {
wrcomn(0x01); }
/***************************************** **初始化lcd**
*****************************************/ void initlcd() { delay(150); wrcom(0x38); delay(50); wrcom(0x38); delay(50); wrcom(0x38); wrcomn(0x38); wrcomn(0x08); /*关显示 不显示光标*/ wrcomn(0x01); /*清屏*/ wrcomn(0x06); /*光标模式*/ wrcomn(0x0c); /*开显示*/ }
/**************************************** ** 函数名称: setpos_xy
** 入口参数:x (unsigned char 型),y (unsigned ** 出口参数:无
** 功能描述: 设置光标位置, x 是列号,y 是行号****************************************/ void setpos(unsigned char x,unsigned char y) { busytest(); x&=0x0f; y&=0x03; if(y==0x00)
wrcomn(x|0x80); else if(y==0x01)
wrcomn((x+0x40)|0x80); }
/**************************************** ** 函数名称: WriteDataLcd
** 入口参数:wdata (unsigned char 型)
char 型)
** 出口参数:无
** 功能描述: 写数据到LCD
****************************************/ void WriteDataLcd(unsigned char n) {
busytest(); RS=1; RW=0; P0=n; EN=1; _nop_(); EN=0; }
/************************************** ** 函数名称: WriteStrDataLcd
** 入口参数:wdata (unsigned char 型) ** 出口参数:无
** 功能描述: 写字符串数据到LCD
*************************************/
void WriteStrDataLcd(unsigned char *s,unsigned int length) { int x,y; int YMAX,XMAX[2]; if(length>16) { YMAX=2; XMAX[0]=16; XMAX[1]=length-16; } else { YMAX=1; XMAX[0]=length; XMAX[1]=0; } for(y=0;y
/************************************ ** 函数名称: delayms()
** 入口参数:ms (unsigned char 型) ** 出口参数:无 ** 功能描述: 延时
************************************/ void delayms(uchar ms) { uchar i; while(ms--)
{ for(i=0;i
/************************************ ** 函数名称: Bianma()
** 入口参数:flag (unsigned char 型) ** 出口参数:P1/P2
** 功能:控制码及显示码表
************************************/ void xianshi(void) { switch(flag)
{ case 1: WriteStrDataLcd(" CH1-- 87.75MHz",16);P2=0x0a;P1=0xf8;break; case 2: WriteStrDataLcd(" CH2-- 95.75MHz",16);P2=0x17;P1=0xf8;break; case 3: WriteStrDataLcd(" CH3-- 103.25MHz",16);P2=0x0c;P1=0xf8;break; case 4: WriteStrDataLcd(" CH4-- 115.75MHz",16);P2=0x0e;P1=0x78;break; case 5: WriteStrDataLcd(" CH5-- 123.25MHz",16);P2=0x0f;P1=0x68;break; case 6: WriteStrDataLcd(" CH6-- 206.25MHz",16);P2=0x19;P1=0xc8;break; case 7: WriteStrDataLcd(" CH7-- 214.25MHz",16);P2=0x1a;P1=0xc8;break; case 8: WriteStrDataLcd(" CH8-- 222.25MHz",16);P2=0x19;P1=0x48;break; case 9: WriteStrDataLcd(" CH9-- 230.25MHz",16);P2=0x1b;P1=0xc8;break; case 10: WriteStrDataLcd(" CH10--238.25MHz",16);P2=0x1d;P1=0xc8;break; case 11: WriteStrDataLcd(" CH11--246.25MHz",16);P2=0x1e;P1=0xc8;break; case 12: WriteStrDataLcd(" CH12--254.25MHz",16);P2=0x1f;P1=0xc8;break; } }
/*********************************** ** 函数名称: main()
** 入口参数:void (unsigned char 型) ** 出口参数:无
** 功能描述: 执行主程序
***********************************/ void main(void)
{ EX1_Init(); //调用初始化 initlcd(); flag=1; while(1){xianshi();} } 元件清单
)、信号输出、放大单元
(1
(2)锁相环部分
(3)显示部分
21