TA的每日心情 | 开心 2019-11-20 15:05 |
|---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
: i4 @4 r4 Y: W9 `& d# Y! V5 _
1 l# q2 T' f6 R- g: {# Q. O" v" [( C; m v' X
1 引言0 y8 h5 G5 G7 l# j; ~. e6 I6 H3 @5 l
X6 t2 @# h1 S. Y6 N& X
在许多实际运用的场合中,数字信号传输具有数据量大,传输速度高,采用串行传输等特点。这就要求数据收发双方采用合理的编解码方式及高速器件。数字信号传输一般分并行传输、串行传输两种。并行传输具有数据源和数据目的地物理连接方便,误码率低,传输速率高。但是并行传输方式要求各条线路同步,因此需要传输定时和控制信号,而其各路信号在经过转发与放大处理后,将引起不同的延迟与畸变,难以实现并行同步。若采用更复杂的技术、设备与线路,其成本会显著上升。而高速远程数据传输一般采用串行同步传输。传统建立准确的时钟信号的方法是采用锁相环技术。但锁相环有若干个明显缺陷,一是其同步建立时间及调整精度即使采用变阶的方法也很难兼顾;二是锁相环需要一个高精度高频率的本地时钟。 本文所讨论的两种串行同步传输方法,无需高频率时钟信号,就可完全数字化。采用ALTEra公司的ACEXlK系列器件完成电路设计,且外围电路简单,成本低,效果好。
! m( @ C" F& h/ O7 T: g- C& e2 N3 ]- t5 j# `) b- a
2主要器件介绍
* s: A1 w1 e9 o: t9 U) ?' W% ?$ X( J( N$ v# i4 a
编码和解码采用ACEXlK系列器件EPlK100QC208-2。ACEXlK器件是Altera公司针对通信、音频处理及类似场合应用而设计的。该系列器件具有如下特性:0 w! c$ X+ Z+ n/ d$ r( |
7 J# b; \4 z. o; |. w/ ~% q
高性能。采用查找表(LUT)和嵌入式阵列块(EAB)相结合的结构,适用于实现复杂逻辑功能和存储器功能,例如通信中应用的DSP、多通道数据处理、数据传递和微控制等;
& z# M* x$ f, {7 {. n5 R$ A
+ ?: X9 v$ U; ]# [6 g6 G7 d高密度。典型门数为1万到10万门,有多达49 152位的RAM(每个EAB有4 096位RAM)。) y1 g- D+ {6 P) `6 C
9 b4 z8 v& h9 h& J- {3 l/ K3 ~
系统性能。器件内核采用2.5 V电压,功耗低,其多电压引脚驱动2.5 V、3.3 V、5.0 V的器件,也可被这些电压所驱动,双向I/O引脚执行速度可达250 MHz;8 p! [. g+ g; F0 p' b( B6 v, ?
/ h2 G& `& t3 F: [, H
灵活的内部互联。具有快速连续式延时可预测的快速通道互连。
5 l! o7 N; } j. v& Z X( a8 p
W) J+ P4 c5 t% a) l6 Y1 k3实现方法
4 }& | E2 f9 Y: r+ u2 b$ x$ W
本文所述方法应用于数字音频数据实时传输。原始数字音频每一帧视频数据为并行8位,速率达2 Mb/s,串行传输速度为16 Mb/s。( j0 s0 D, L; x' H
4 Y. x2 c( D/ ^8 C
3.1新的曼彻斯编码方法 这种方法是在接收端利用状态转移图的方法得到同步时钟信号。具体方法如下:
2 r$ A. f$ Z6 I/ {
M- \/ i: U# Z) e1 Q(1)帧同步信号的产生1 d2 d. s; N* f3 T) ^( ^% T
; r/ L% `9 }/ F6 ^" W5 o8 e+ _% |发送方系统提供64 MHz时钟,将其4分频得到16 MHz时钟作为系统时钟,64 MHz时钟仅用于最后的消除信号毛刺。帧同步共16位,其中前12位为"0",后3位为"1",最后1位为"0"。仿真时序如图1所示。
% C3 a6 H' @; e+ g+ \; |7 v# d3 m0 P8 A; g7 m( s7 ]
0 C6 L$ [) q8 k: e5 e; ^8 L(2)编码方法
" w4 r/ G5 r* d; L- h( j' i ]1 I7 f' |% X
数据发送采用曼彻斯特编码,编码规则为:0→01(零相位的一个周期的方波);1→10(π相位的一个周期的方波)。7 b1 N% W. o) V& K: i y
/ O r4 n3 u9 R# _7 W从以上规则可知输出信号将在每一位码元中间产生跳变,因此可采用具有游程短,位定时信息丰富的曼彻斯特编码电路。编码时,当输入信号为"0"时,输出为时钟的"非";当输入信号为"1"时,输出与时钟一致。因此,可采用数据选择时钟,其电路如图2所示。! I' s, f5 Q1 u" P' K1 n7 x
8 ?+ f6 q5 \, o# S. M! ]8 _仿真的编码时序如图3所示,当输人数据(data)为"1",输出(out)与时钟(clk)同相(稍有延时);反之,当输入数据为"0",输出与时钟反相(稍有延时)。 7 U K3 e* m0 [/ k5 k
; s3 E+ v" T) L9 C2 N5 H+ L
(3)状态转移图生成同步信号
$ a7 H* s9 n* o3 R6 ]2 J$ B" D7 U; r) t+ _& f
接收方系统提供80 MHz时钟,接收方和发送方的时钟并非来自同一个时钟源。将发送方的信号通过序列码检测器,发送方的帧同步信号有一个维持187.5 ns的脉冲(3个16 MHz时钟),当接收方检测到"11111111111111"时(14个80 MHz时钟,共175 ns),则认为是有效信号,然后向后级发出一个复位信号,接收方的后继模块开始重新工作。由于发送方采用曼彻斯特编码,数据不会出现连续的"1"或连续的"0",游程短,这种检测帧同步信号的方法是有效的,不存在把所要传输的数据当成帧同步的情况。当该复位信号产生后,状态机开始工作,用状态机的状态转移产生同步信号。状态转移图如图4所示。
3 X3 ~. p! R- N2 b; r3 `
. G0 `' T; [6 w* m+ o- X根据曼彻斯特编码规则,每一位两个码元中间电平产生跳变,因此不会出现超过62.5 ns的"1"或者"0",反映在状态转移图上表现为最多出现6个连续的"1"或者"0"。当出现"111111"时,根据状态转移图,它将返回到状态t1,但是下次必然转移到状态f6,因此对同步时钟的输出没有影响。该方法仿真的波形图如图5所示,其中dataout为发送方的输出信号,即接收方的输人信号;clk80m_in为接收方的系统时钟;current_state为状态机的状态,状态0~10分别对应状态转移图4的状态S0,t1~t5,f6~F10;clkout为恢复出来的同步时钟。当出现一个31 ns宽度的电平时将产生一个同步时钟;当出现持续62 ns宽度的脉冲时产生两个同步时钟。采用clkout的上升沿即可准确恢复原信号。- y+ A/ x. @0 k" W+ i' ]3 Q
) v2 U4 w1 u- r9 t( J; p6 x
由于不会连续出现超过6个"1"或"0",累积误差小,采用该方法,对接收方时钟精度要求不高,仿真时将时钟分别调为80.6 MHz和79.4 MHz,在这两种情况下都能准确得到同步时钟并恢复原信号。与锁相环相比,它所需的建立时间要短得多。
8 X, U0 H; Q& E& q8 o% ~# `3 q6 W
; W4 A8 S' E1 ]/ {0 ^3.2另一种编码方法 $ i/ l! x( D+ F5 c% h/ d
& C0 f' z- @( x6 H5 ]' ]( n
另一种比较特殊编码方式含有丰富的时钟信号。接收端将接收到的数据延时即可得到同步时钟。其产生帧同步新的曼彻斯特编码方法一致。% i Y4 u: u" S) |
% G( z4 D I( M- v
(1)编码方法
* }; G+ f+ F8 Y* |3 b6 p* G$ o$ K" i) f. L
发送方系统提供64 MHz时钟,原始信号速率依旧为16 MHz,数据的编码方式:0→1000,1→1110。
: F% H/ E5 i8 |9 E. d: Y: [. d" b4 S+ ~# m5 d, l7 J, r0 r6 R
一个码元对应64 MHz的4位编码。每一个码元开始时第1位为"1",第2和第3位为输入信号信息,第4位是"0",这样便可保证在每一个码元开始时产生上升沿。该上升沿便是一个非常优良的同步时钟,只要将上升沿对准数据的有效位置(编码的第2,3位),即可恢复原信号。
( q0 t1 c' Y3 o: \+ s- W4 o7 r' k0 d r
当输入信号为"1",在延时一个码元宽度(1/16 MHz)后,输出"1110";当输入信号为"0",延时一个码元宽度(1/16 MHz)后输出"1000"。其实质就是一个序列码发生器,根据不同的输入,产生不同的输出序列。编码电路是采用VHDL语言实现,生成模块如图6所示,时序仿真如图7所示。1 a, e+ H y$ z# R1 l
$ `4 ?7 [% M: s# |
(2)接收端同步时钟提取
& r0 E; Q) [6 ]; x9 n
! X! @* u: x2 \0 Y. B3 ]% n接收方检测帧同步的方法与新的曼彻斯特编码方法一样。解码过程是将输入信号通过D触发器延时得到同步时钟,再由同步时钟恢复原信号。D触发器的时钟采用接收方的系统时钟80 MHz,则通过一个D触发器的延时时间T的范围0~12.5 ns,可通过两D触发器延时时间T的范围12.5~25 ns,通过3个触发器延时时间T的范围25.0~37.5 ns,这样就可以将上升沿延时到数据编码的有效位置(编码第2、3位的时间范围是15.625~46.875 ns)。当信号通过D触发器,信号的宽度可能会有变化,这里把通过D触发器的信号作为同步时钟,只关心其上升沿位置,而其宽度的变化不会影响解码过程。4 ]& q1 d5 U( y2 h7 p* G
" h: E/ z5 Z* c8 q
图7中datain为输入的原信号,dataout为编码后的信号,clkout为得到的同步时钟,clk64m为发送方系统时钟,clk80m为接收方系统时钟。当输入第1个码元,还未产生输出信号;输入第2个码元时,第1个码元"1"所对应64 MHz编码"1110"输出;输入第3个码元时,将第2个码元"0"所对应64 MHz编码"1000"输出,依次类推。在接收方,将dataout延时得到clkout,由图可看出每次clkout的上升沿都对准编码的有效部分,这样就可准确的恢复原信号。
7 P2 a; y0 n( b) K1 L
0 u+ W( u( o: W# H8 Z) @* T; Y6 A7 v0 N4 @) x
这种方法虽然编码较为复杂,但优点也是显而易见的,它的同步建立时间极短,解码电路原理和设计都极其简单,不易出错。通过三个D触发器延时时间T范围25.0~37.5ns,而编码第2、3位的时间范围是15.625~46.875 ns。时间上存在较大冗余,只要每一位解调时误差不超过9 ns就能准确恢复原信号,这样的精度要求对于实际系统来说是很容易实现的。 * b4 x2 w3 }/ v3 K/ Y8 x: Y& U
5 j$ D1 ^. I' H8 ^( y4 ]
4结语: U+ g5 n! ?7 \( R, s0 t0 k
" D( q0 r. w/ \+ ^5 j
这两种同步方法与锁相环相比,优点明显,建立时间短,只需要一个帧同步用来检测数据开始,然后就可在一个码元时间内恢复同步时钟,而且对接收方时钟的精度和频率要求不是很高,整个编码和解码可以分别用一个FPGA完成设计,电路设计全数字化,大大降低了PCB设计的成本和难度,且调试方便,缩短了项目周期 |
|