1. 引言
信号在传输性能不是很好的信道中传输时,如井下传输系统,如果采用常用的NRZ码传输,会导致信号波形产生较严重畸变,从而导致传输信息错误。而曼彻斯特码作为一种重要的串行数据传输编码方式,由于它消除了NRZ码的直流成分,大幅度减小了传输中波形畸变,因而具有更好的时钟恢复和抗干扰性能[1] ,已经在很多场合,如航空电子总线[2] 、地震勘探[3] 、油井测量[4] [5] 、列车运行控制系统[6] 等获得广泛应用。经过几十年的发展,曼彻斯特编/解码电路的实现方案主要包括三种:专用编/解码芯片[7] 方案、基于微处理器(单片机、DSP)的软件方案[8] [9] 和基于可编程逻辑器件(CPLD、FPGA)的硬件方案[10] -[12] 。专用芯片方案存在可编程能力不足、电路集成度低、实现成本高等缺点,新的应用设计已经很少使用;基于微处理器的软件方案,其编/解码处理速度受处理器时钟限制,通常只能应用于通信速率较低(小于1 Mbps)的场合;近年来,随着可编程逻辑器件的飞速发展,基于可编程逻辑器件的硬件方案逐渐成为曼彻斯特编/解码电路的主流实现方案。
经典的曼彻斯特码译码电路通常采用时钟恢复的方式,利用数字锁相环从接收信号恢复编码时钟,再使用恢复的时钟对接收信号进行同步采集和译码处理[13] ,这种译码电路结构复杂,需要消耗较多的电路逻辑单元,提高了电路开发和使用成本。为了降低开发与使用成本,本文设计了一种新型的基于数字积分的译码电路,它利用高频时钟对较低编码速率的信号波形进行积分运算,从而不需要严格的时钟同步即能实现正确解码处理。该译码电路结构简单,消耗电路资源少,且具有较好的抗噪声能力。
2. 码型结构
本文介绍的曼彻斯特码译码电路是针对Intersil公司的曼彻斯特编/解码器芯片HD-6409的码型结构[14] 设计的,但译码算法亦适用于其它曼彻斯特码型。
HD-6409曼彻斯特编/解码器码型如图1所示,每一个传输帧包含3个bit宽度的同步头和16 bit有效数据,同步头由1.5 bit的高电平和1.5 bit的低电平构成。数据0用01b(一个零相位周期方波)表示,1则用10b(一个π相位周期方波)表示。
3. 译码算法
在曼彻斯特编码中,每个数据位的中点都存在跳变,因此在无噪声的情况下,曼彻斯特编码每一位

Figure 1. Manchester code structure
图1. 曼彻斯特码码型结构
高电平持续的时间与低电平持续的时间是相等的。我们用远高于(16倍以上)码速率的时钟对输入信号波形进行采样,假设每个比特周期得到N个采样点,第n个采样值为
,其中高电平记为1,低电平记为-1;由于曼彻斯特码高、低电平宽度相等,N个样本中高、低电平样本约各占一半,则整个比特周期的数字积分约为0,即:
(1)
根据传输数据位的不同,前半个周期的积分值为:+
或
。当半比特周期时刻电平跳变为下降沿时,前半周期的积分值为
,当前传输比特位为1;当半比特周期时刻电平跳变为上升沿时,前半个周期的积分值为
,当前传输比特位为0。即:
(2)
因而,对于无噪声的理想曼彻斯特编码数据,在有效传输周期内,可以使用数字积分,通过数据电平跳变上升沿或下降沿发生时刻的积分值来对曼彻斯特码进行译码。
而实际的传输过程不可避免的存在噪声,同时发送端与接收端的时钟也不能保证完全同步。因此,接收端接收到的曼彻斯特码在一个bit周期内的数字积分可能不为0,在上升或下降沿时刻,积分结果也
不会精确等于
或
。
为了解决上述问题,我们在设计中加入一个误差因子dev,将每个bit的判决条件修改为:
(3)
较大的误差因子可能造成误判,而误差因子太小则可能发生漏判。通常dev的值可设置为N/4。此外,为了避免由于时钟不同步造成误差累计,在有效数据判决后,将数字积分器的值强制置为理想值,即:
(4)
误差因子的加入不但提高了译码器的抗噪声性能,亦使得译码器可以不需要严格的时钟恢复即可完成译码。在误差因子dev = N/4的情况下,数据率误差最高可为25%,一般10%内可保证无错误译码。
完整的译码流程如图2所示。电路启动后,译码电路连续检测输入信号:
1) 当检测到同步字后,开始解码周期并进行数字积分;
2) 当检测到数据上升沿或下降沿时,对积分值进行判定,若符合判定门限则输出数据并重置积分值,否则继续积分并等待下一次跳变沿;
3) 当接收完一个完整的数据帧后,译码器重新开始检测同步字,等待接收下一帧数据。
4. 译码器结构
为保证译码质量,译码器的时钟速率需要大于数据率的16倍以上,本译码器采用96 MHz工作时钟,最高支持6 MHz的数据率。依据前节给出的译码算法,我们设计出曼彻斯特码译码器结构如图3所示。
数字积分器是译码器电路最核心的功能单元,它通过累加输入信号高、低电平实现对输入信号波形的积分。数字积分器电路结构如图4所示。
控制模块是译码电路的重要组成单元,由状态控制、同步头判定和超时判定组成。同步头判定用于搜索协议中所规定的同步头,在搜索到同步头之后,使能比特判决;超时判决在一段时间未检测到数据上升或下降沿时禁止使能判决,并重置计数器,启动下一次接收。由于数据帧有效期内可能出现的最长

Figure 2. Flowchart of Manchester decoding
图2. 曼彻斯特译码流程图

Figure 3. Circuit architecture of decoder
图3. 译码器电路结构

Figure 4. Circuit architecture of digital integrator
图4. 数字积分器电路结构
低电平为2倍码元宽度,因此设置超时门限为2T(T为串行传输数据一个比特所持续时间)。
输入参数包括误差因子、比特宽度及传输数据率,通常由FPGA外接处理器根据应用需要进行设置。
表1列出了译码器特殊事件列表。例如,当数据由高电平变为低电平,且积分值大于1.5N时,表示检测到了有效的同步头。当低电平时间超过1.5N时,表示输入端中断或是数据接收完毕,此时控制模块将累加器清零,并重新开始检测同步头。
5. 仿真验证
译码器电路设计采用Verilog HDL编程,使用Quartus II软件工具开发,并选用Altera公司的CYCLONE III系列[15] FPGA芯片:EP3C5E144I7实现。经过编译、综合,所设计的曼彻斯特译码器电路一共消耗了231个逻辑单元,109个寄存器。
对译码器进行功能仿真,将仿真结果与理论波形进行对比分析,用以验证设计的正确性。仿真使用的编码信号数据率为208.3 kbps,接收端与发送端无速率误差时译码电路仿真波形如图5所示。
仿真波形中,decoder_cnt为数字积分器输出。可以看出:1) 当接收电平为上升沿且积分值约为−N/2时,译码值为0;2) 当接收电平为下降沿且积分值约为N/2时,译码值为1。仿真结果与算法描述一致。当接收到完整的传输帧后,译码器输出有效数据。
为验证译码器的抗噪声性能,对发送端与接收端速率不同步的情况进行了仿真。图6给出了接收端

Table 1. Special event list of digital integrator
表1. 数字积分电路特殊事件列表

Figure 5. Simulating waveform of docoder (free of rate error)
图5. 译码器仿真波形(无速率误差)

Figure 6. Simulating waveform of docoder (10% rate error)
图6. 译码器仿真波形(速率误差 = 10%)
与发送端速率误差10%,并对输入数据加入适量抖动(噪声)的仿真结果。
比较图5与图6,10%速率误差译码结果与理想情况完全一致,说明该译码器电路具有较强的抗噪声能力。
6. 总结
本文设计的基于数字积分的曼彻斯特码译码电路,能够通过工程例化,基于FPGA实现曼彻斯特译码功能模块,完成曼彻斯特解码器电路硬件软化设计。使用FPGA开发工具对译码器电路进行功能仿真,并与理论波形进行了比较,验证了设计的正确性。本文设计的译码器电路已在自行开发的数据采集模块中得到工程应用,实验与联调测试表明,译码器电路功能正确,性能达到设计要求,并已通过用户验收。
本文的创新之处在于,提出的曼彻斯特码新型译码算法不需要严格的时钟同步,抗噪声性能良好,工程实现时仅消耗少量的硬件逻辑资源,功耗和可靠性得到有效改善,适用于多种不同的通信场合。
致 谢
本研究得到国家高技术研究发展计划(863计划)项目资助,课题编号:2012AA120801。