在数字通信系统中,发送端按照确定的时间顺序,逐个传输数码脉冲序列中的每个码元。而在接收端必须有准确的抽样判决时刻才能正确判决所发送的码元,因此,接收端必须提供一个确定抽样判决时刻的定时脉冲序列。这个定时脉冲序列的重复频率必须与发送的数码脉冲序列一致,同时在最佳判决时刻(或称为最佳相位时刻)对接收码元进行抽样判决。可以把在接收端产生这样的定时脉冲序列称为码元同步,或称位同步。
实现位同步的方法和载波同步类似,有直接法(自同步法)和插入导频法(外同步法)两种,而直接法又分为滤波法和锁相法。本文介绍的方法就是用直接法中的锁相环实现的。
1 数字锁相位同步提取原理
数字通信系统接收端位同步提取通常采用如图1所示的数字锁相环DPLL(Digital Phase Locked Loop)。DPLL包括3个部件:
(1)数字鉴相器DPD(Digital Phase Ditector)比较接收码元与本地DCO输出的位同步时钟相位,输出反映相位差的数字信号。
(2)数字环路滤波器DLF(Digital Loop Filter)对DPD输出相位误差数字信号滤波,去掉随机噪声的影响,输出较准确的相位误差数字信号。
(3)数控振荡器DCO(Digital Controlled Oscillator)是数字电路构成的振荡器,输出与接收码元相同速率的位同步时钟脉冲CLK,其相位受相位误差数字信号控制可提前或推迟,最后与接收码元相位锁定。
DPD及DCO是构成数字锁相环必不可少的部件,DLF可视需要而加入。3个部件各由多种形式的电路组成不同的数字锁相环。最典型的数字锁相环为超前-滞后型数字锁相环,又称为微分整流型数字锁相环,在码速率不高时可由图2所示单片机系统实现。图中,边缘检测又称为过零检测,它将输入数据信号DK1放大整形后,再将其跳变沿(整形前的过零点)变换为窄脉冲ZCD,送至单片机的外部中断输入端INT1。边缘检测中的延时电路可用几级门实现。微分整流电路与边缘检测电路具有相同功能。
[page]
该数字锁相环未用DLF。单片机内T0定时器及其中断服务程序实现DCO功能。在DK1无跳变沿(无ZCD负脉冲)时,单片机不进入INT1中断服务程序,T0定时为输入码周期Tb。在DK1有跳变沿时,进入INT1中断服务程序,首先读取T0当前值与预期值(Tb/2时常数),通过比较确定DCO相位与DK1数据跳变沿相位关系是超前或滞后,据此调整DCO相位。若DCO相位超前,则设置T0下周定时为Tb+δ,使DCO相位推迟;若DCO相位滞后,则设置T0下周定时为Tb-δ,使DCO相位提前,最后实现DCO相位与DK1数据相位锁定。总之,INT1中断服务程序实现DPD及DCO控制功能,T0定时器及其中断服务程序实现DCO功能。T1定时器及其中断服务程序实现延时即相移,使最后输出的位同步时钟CLK与DK1(或DK2)的相位差为0或180°:当传输系统频带不受限、采用MSK/FSK调制解调方式时,DK1为方波,接收端采用积分/采样/判决进行检测,两者相位差应为0,即CLK与DK1数据边沿对齐;当传输系统频带受限、采用GMSK/GFSK调制解调方式时,DK2(DK1经LPF后的信号)为钟形脉冲,CLK应对准DK2码元中点采样/判决,两者相位差为180°或Tb/2,如图2(d)所示。T1延时由P1.4输入信号MSKC控制。INT1、T0及T1中断服务程序框图如图3所示,主程序完成3个中断源初化及其他初始化后就踏步。
位同步提取数字锁相环由CPU2实现,其P1.4输入的控制信号MSKC来自CPU1,由工作方式决定:在FSK/MSK工作方式时,MSKC=1;在GMSK/GFSK工作方式时,MSKC=0。
[page]
对接收的随机数字信号,可近似认为两相邻码元中出现00、01、10、11的概率相等,其中有数据跳变的占一半。而对无DLF的数字锁相环而言,每发生数据跳变可调整相位一次,因此平均每2Tb s可调整相位一次,故同步建立时间为:
有DLF的数字锁相环,调整相位的速率要比无DLF的低,故同步带比式(5)小。
由式(1)、式(2)、式(5)可知,3个性能指标都取决于DCO周期调整步距δ:δ愈大,同步带愈大,同步建立时间愈短,但相位误差却增大了。所以δ应折中选取,在保证锁相环路能锁定(同步)的前提下,δ尽可能取小些,以减小相位误差。
本设计采用单片机芯片实现数字电路相关器件,简化了相关器件复杂的逻辑电路设计,降低了系统的功耗和成本,提高了系统的可靠性。实现位同步的方法很多,本文讨论的是采用数字锁相环技术来提取位同步信号。在位同步提取中,如何缩小同步建立时间、降低位误差及增大同步保持时间是好的位同步设计的努力方向。
参考文献[1] 湛洪然.单品机原理及实训教程[M].北京:北京师范大学出版社,2008.
[2] 樊昌信.通信原理[M].北京:国防工业出版社,2001.
[3] 张厥盛,郑继禹.锁相环技术[M].西安:西安电子科技大学出版社,1994.
[4] 田智生.基于锁相环的精确自动增益控制电路[J].现代电子技术,2005,28(3):16-17.
[5] 毕成军.基于FPGA的位同步信号提取[J].现代电子技术,2006,20(4):121-123.
关键字:单片机 数字通信系统 位同步提取
引用地址:
基于单片机的数字通信系统位同步提取
推荐阅读最新更新时间:2024-03-16 12:45
51单片机汇编语言(三)
7.2功能说明 用一位数码管循环显示0~9数字,数字变换间隔的时间为1秒。 程序:SMG2.ASM 01: START: MOV DPTR, #TABLE ; 存表 02: MOV R0, #0 ; 设定初始值 03: LOOP : MOV A, R0 04: MOVC A, @A+DPTR ; 取表代码 05: MOV P0, A ; 送P0输出 06: ACALL DLY1S
[单片机]
基于ATmega16单片机 程控滤波器程序源代码
#include avr/io.h #include avr/signal.h #include avr/interrupt.h #include util/delay.h #define uint unsigned int #define uchar unsigned char static uchar interrupt ,count; static uchar b; uint a; SIGNAL(SIG_OVERFLOW1)/*溢出中断*/ { TCNT1H=0X7F; TCNT1L=0XFC; interrupt++; if(interrupt==a) { interrupt=0;
[单片机]
MSP430单片机比较器A模块
首先,整个比较器A的工作必需由CAON位置为1时才能工作的,此位属CACTL1控制寄存器。单片机上电时此位是为0的,也就是说比较器是不工作的。 以下大概讲述几个部分电路的功能和一些相关信息。 模拟输入电路: 外部模拟引脚信号CA0,CA1(正负端)可以分别由P2CA0,P2CA1位控制开或关。经过软件的设置可以分别与内部的几个基准电压进行比较(0.5VCC,0.25VCC,三极管门值电压)或外部其中的电压进行比较。 应用的硬件比较可以分为以下三种组合: 两个外部引脚输入信号进行比较 其中一个外部引脚信号与内部的0.5VCC或0.25VCC比较 其中一个外部引脚信号与内部基准电压比较 参考电压发生器 参考电压电路是可以由CARS
[单片机]
异种单片机共享片外存储器及其与微机通信的方法
摘要: 介绍了通用单片机(MCU)AT89C51与信号处理单片机(DSP)TMS320C32通过共享片外随机存储器实现板间通信的方法,并给出了总线隔离硬件电路与软件控制流程。文中还简要分析了AT89C51与微生机盎然进行串行通信的软硬件设计,通过扩展AT89C51间接实现了TMS320C32与通用单片机或微机之间的通信。
关键词: 单片机 DSP 数字信号处理器 共享存储器 串口通信
TMS320系列数据信号处理单片机(DSP)在测控、仪器仪表、图象处理、计算机视觉与声信号处理等领域得到了越来越广泛的应用。DSP获取原始采集数据和输出处理结果一般有两种途径:一是通过串行口,另一是通过数据
[工业控制]
单片机重定向printf到SWO口
一. IAR SWO IAR在编译选项里自带了printf via SWO的功能,首先来说说怎么把信息输出到SWO口, 一句话搞定。ITM_SendChar(ch); ITM这个东西其实严格来说是Cortex-M提供的一个特性,而不是STM32。 利用这个函数把信息输出到SWO口 IAR里按照下面图来设置 Target 使用 SWO 的条件 硬件条件:你得把芯片的SWO脚接到调试口上,按JTAG接线的话,这个默认已经接上了. 代码条件:你得把Printf的输出函数,替换成SWO输出函数,其实这个函数在CMSIS库里已经提供了,就在core_cm4.h里面,如下: static __INLINE uint32_t
[单片机]
利用VB实现PC机与多单片机通讯
摘要:在Windows98下利用VB的串行通讯控件可实现PC机与多单片机之间的通讯。采用定时器控制大大加快了自动化进程,克服了往多“握手”协议造成的通讯速度缓慢的缺点。本文以PS1016单片机为例,详细介绍了PC机与单片机之间的串行通讯、数据的发送和接收。
关键词:通讯 属性 事件
前言
在采用以PC机为控制中心的数据采集自动化控制系统中,通常需要单片机采集数据,然后用异步串行通讯方式传给PC机,PC对单片机进行定时控制,需要多个单片机协同工作。如果系统不很复杂,可通过定时器控件控制收发过程,在必要的地方自动接收装置,使定时控制和通讯过程完美地结合起来。这样,可以免去“握手”协议的繁琐过程,简化编程,提高速度。VB具有面向对
[单片机]
基于51单片机实现模拟IIC总线时序
最近用到测量光线的模块BH1750FVI时需要用到IIC总线操作, 于是就又费功夫学习了下, 基本上算是了解了, 所以呢, 就用51的IO口, 模拟出了总线时序, 并能正确操纵需要用IIC总线访问地一系列模块. 本来想写篇文章简单介绍下我对IIC总线的理解的, 但, 发现没工夫, 所以, 放在以后有时候再来弄吧. 今天我还是只给出一个范例程序, 它能在我的51单片机机系统上工作得很好. iic.h 列出了所有IIC总线的操作函数. 下面给出源代码: //iic.h - 实现相关的头文件 //女孩不哭 2013-01-18 #ifndef __IIC_H__ #define __IIC_H__ void iic_start(
[单片机]
采用单片机C8051F310实现光伏电池MPPT控制器的设计
1 引 言 能源是人类社会存在和发展的重要物质基础,随着社会的发展,能源日渐减少,并伴随着环境问题日益突出,使得越来越多的国家把目光投向可再生能源。太阳能作为重要能源之一,以其永不枯竭,无污染等优点,正得到迅速的发展。但是太阳能电池在其工作过程中,由于受环境(主要包括日照强度,温度)的影响,其输出具有明显的非线性特性,造成电池与负载之间的不匹配,从而不能使太阳能最大效率地转化为电能输出。为了实现光伏发电系统的功率输出最大化,就需要对光伏电池的最大功率点进行跟踪控制,即MPPT(MaximumPower Point Tracking)控制。 在光伏控制技术上,MPPT控制方法有很多种,目前市场上常用的是使用CVT(恒定电压跟踪)
[单片机]