一种使用CPLDB件产生 巴克码的实现方法
扫描二维码
随时随地手机看文章
0 引言
通信系统中的同步技术起着相当重要的作用。通信系统能否有效地、可靠地工作,很大程度上依赖于有无良好的同步系统。通信系统中的同步可分为载波同步、位同步、帧同步等几大类。在数字通信中,消息是一串连续的信号码元序列,解调时常须知道每个码元的起止时刻。因此,通常要求接收端必须能产生一个用作定时的脉冲序列,以便与接收的每一个码元的起止时刻一一对齐。在接收端产生与接收码元的重复频率和相位一致的定时脉冲序列的过程称为码元同步或位同步。由于数字通信中的消息数字流总是用若干码元组成一个“字”,又用若干“字”组成一“句”。因此,在接收这些数字流时,同样也必须知道这些“字”、“句”的起止时刻,并在接收端产生与“字”、“句”起止时刻相一致的定时脉冲序列,统称为群同步或帧同步。实现帧同步的方法通常有起止式同步法和集中式插入同步法两种。起止式同步比较简单,一般是在数据码元的开始和结束位置加入特定的起始和停止脉冲来表示数据帧的开始和结束。而集中式插入同步法则要求插入的同步码在接收端进行同步识别时出现伪同步的概率尽可能小,并且要求该码组具有尖锐的自相关函数以便于识别。目前用得比较广泛的是性能良好的巴克(Barker)码。
1 巴克码简介
巴克码主要用于通信系统中的帧同步,其特点是具有尖锐的自相关函数,便于与随机的数字信息相区别,易于识别,出现伪同步的可能性较小。巴克码是一种具有特殊规律的二进制码组,它是一种非周期序列。一个n位的巴克码组为{xl,x2,x3,…,xn},其中xi的取值是+1或一1。目前已发现的所有巴克码组如表1所列。
表1中,“+”表示取值为高电平1,“一”表示取值为低电平0。11位巴克码组的识别器比较容易实现。图1所示是ll位巴克码识别器的原理图。它由ll级移位寄存器组成。依据上面的巴克码组可知,11位的巴克码发生器应在输入时钟信号作用下依次产生“11100010010”的码元序列。
2 系统电路设计
一个巴克码系统通常由巴克码发生器和其译码器组成。图2所示是一个巴克码发生器及其译码器的电路原理图。其中:EN为使能信号,高电平有效;CN为工作方式选择信号,高电平时发送单个的巴克码,低电平时发送连续的巴克码;CLK为时钟输入信号;QOUT为巴克码发生器输出信号;DIN为输入信号;CLR为清除信号;SEQIJENCE—OUT为巴克码译码器的输出信号。
3 基于CPLD的电路设计与实现
3.1 芯片的选择
设计可选用Altera公司的MAX7000系列可编程逻辑器件EPM7128SLC84210。该器件是由简单的PAL、GAL器件发展而来,只是结构更复杂,功能更强大而已。从最初的电路设计思想到MAX+PLUSⅡ的波形仿真,再到CPLD芯片编程结束,所要经过的一般开发流程如图3所示。
3.2 硬件描述语言
首先,应启动MAX+plusⅡ主界面。用户通常可用以下几种方式描述自己的设计思想:原理图输入、硬件描述语言输入(AHDL、VHDL)、波形设计输入、层次设计输入和底层设计输入。本例采用VHDL程序设计。其巴克码发生器的VHDL语言如下:
与此类似,也可写出巴克码译码器的程序。
4 编程与下载
当整个设计完成后,MAX+PLUSⅡ将生成一个烧考文件(barkll.pof)。用户可以根据自己的设计需要对芯片进行编程,并将其构造成自己的专用芯片。对于MAX7000系列芯片,通常可用下载电缆从计算机串口将编程或配置数据传送到CPLD芯片。本例采用JTAG实现单器件的在系统编程,将Bit2Blaster电缆的一端与PC机的RS232串口相连,另一端10芯插头与用户试验板上左侧的10针插座相连,并给试验板加上5伏电源。然后点击快捷钮,并打开MAX+plusII编程窗口,选择菜单命令Op—tions/Hard2Ware Setup,在出现设置编程硬件对话框后,在下拉菜单中选择BitBlaster,接着指定配置时使用的串口(COMl),再选择OK,最后,点击Program即可开始编程下载。
5 结束语
CPLD与中小规模的标准器件相比,其工作速度快,集成度高,功耗低,适应性强。因此,CPLD技术已经越来越受到电子设计人员的欢迎,并已成为设计和实现数字系统的主要方式,在电子系统设计中占据着越来越重要的地位。