关键词:2M便携式误码测试仪;PMC4351;液晶显示屏;现场可编程门阵列
1 2M便携式误码测试仪系统的结构
便携式2M误码测试仪(以下简称误码仪)集2M误码测试分析、数据存储、数据图形显示三种功能于一体。该仪器是通过采用嵌入式设计技术,把FPGA、成帧器、LCD控制器等核心部件进行系统集成,并利用SOPC、LCD图形显示等现代电子系统设计技术的一种综合设计,具有功能强大、技术含量高、体积小、重量轻等特点,携带和操作十分方便,有很强的实用性和良好的市场前景,代表了当今电子测量仪器的一种发展趋势。2M误码测试仪系统的结构如图1所示。
1.1 人机接口模块
人机接口分显示和键盘两部分。其中显示模块采用可显示汉字和图形的图形点阵式液晶显示屏。汉字显示方便用户使用。图形显示可使用统计图表、曲线等多种显示方式来表达要显示的内容,使显示内容更加生动。由于仪器为手持式的,显示屏的外形要小,所以要求显示像素的尺寸也要小,这样才能有足够的像素点阵。显示屏模块还要带有显示控制器、显示缓冲器和背光电源,以便在现场光线不足时使用。
键盘模块分为两组:组合键和功能键。组合键在不同的层次界面下通过软件来控制,实现不同的功能,并在显示屏上显示。而一部分功能必须由功能键来完成,一个单元的键对应一个功能,如控制光标移动的上、下、左、右键。
1.2 2M测试模块
2M测试模块可以完成数字口的全部测试工作,包括HDB3码的编码和解码、时钟提取、测试图案的产生和检测、各种帧格式信号的产生以及告警信号的产生及检测等。本设计采用的是PCM-Sierra公司的PMC4351。PMC4351集成了先进的成帧器、收发滑动缓存器和一个片内短、长特理线路接口,当将其用作E1接口时,其帧结构符合CCITT G.704、G.706和G.732协议。PMC4351内含有E1成帧器和3个HDLC控制器,可提供2.048Mb/s的E1数据接口,完成E1信号转换,还具AMI、HDB3及B8ZS线路编码,帧标志的产生、零比特的插入和删除、CRC码的产生和校验、链路检测、错误报警及相应的处理功能。PMC4351包括接收线路接口单元(Receive LIU)、抖动消除器(JAT)、背板接口(Backplane interface)、时钟合成适配器(CSAD)、数据接收器(Transmit LIU)、E1成帧器(ETST)、发送线路接口单元(Transmit LIU)、微处理器接口(MPU)和连接测试接入端口组(JTAG)、弹性存储单元(ELST)十个主要部分。其功能框图如图2所示。
1.3 存储模块
存储模块用于记录监测结果,并提供实时时钟,主要器件是非常失性存储器和实时时钟电路,本设计采用Dallas公司的DS1746型模块,内含128K字节的非易失RAM和实时时钟。它有如下主要特征:
●集成了NV SRAM、实时时钟、晶振、电源失效控制电路和锂电池。
●内含的访问时钟寄存器方式与静态RAM完全相同,这些寄存器位于RAM中最高的8个地址。
●完全的非易失性,可在缺少电源的条件下工作10年以上。
●带有电池电压指示标志。
●具有电源失效写保护,允许±10%的VCC电源容差。
1.4 控制模块
控制模块由Altera公司的FPGA(Cyclone EP1C12)、SDRAM、FLASH及外围电路组成。由FPGA内嵌的Nios软核来实现运算控制功能。Nios是Altera公司基于RISC技术的通用嵌入式软核处理器,它主要是利用Altera公司的SOPC Builder应用软件改造系统硬件平台,通过将包括32位高性能处理器在内的多种应用模块嵌入到一个通用的FPGA内,来实现一个完全可重置的处理模块。
2 2M测试模块设计
2.1 电路设计
2M测试模块由PMC4351及其外围电路组成,具体电路见图3。
图中,载有时钟信号的单极信号和参考电压从接收端口引入,并由时钟与数据恢复模块进行B8ZS和HDB3解码,时钟和PCM数据恢复、线路编码混乱监测及信号丢失检测。根据引入的RZ数据脉冲,模块使用数字锁相环进行时钟恢复并重建NRZ数据。当可编程连续比特周期极限内的线路脉冲输入的正负方向上都没有脉冲时,模块则指示为信号丢失。一旦出现一个单独线路脉冲,指示即被清除。当检测到线路信号丢失或出现时,即产生中断。
当RJATEN寄存器比特值为逻辑1时,接收抖动衰减器对发送数据进行抖动削弱处理,
PMON模块提供性能监控记数功能,即统计CRC错误事件、帧同步比特错误事件及线路编码混乱事件等。对于E1模式而言,线路编码混乱被定义为AMI编码信号及HDB3编码信号的双极混乱(BPV)。
E1成帧功能由E1-FRMER模块实现。E1-FRMR模块在引入的还原的PCM数据流中搜索基本帧队列、CRC复帧队列以及信道关联信令(CAS)。E1-FRMR也可根据用户选择对基于帧丢失、CRC复帧丢失和CAS复帧丢失进行检测和指示。帧重组操作可由软件(E1-PRMR帧队列选项寄存器)来进行初始化,也可在出现过多的CRC错误和400ms内未发现CRC我帧队列的情况下初始化。E1-FRMR还可识别帧、CRC复帧和CAS复帧的开始位置。能够提取国际通信比特(从和NFAS复帧NFAS复帧中)、国内通信比特和备用比特(CAS多帧中的时隙16和帧0),并分别存储在E1-FRMR国际通信比特/国内通信比特和备用比特寄存器中,同时,它也可以提取CRC子复帧的国内通信比特SA4-SA8,并存储在可读寄存器中,每个子复帧更新一次。
背板收接口输出包含BRPCM所有时隙2.048Mbit/s的串行数据流,BRFP信号可以指示每256bit帧的第一比特,或是CRC复帧的第一帧的第一比特。所以接收背板信号背板时钟保持同步。
E1转发器产生2046kbit/s数据流、生成帧、CRC复帧及CAS复帧。与传输单信道串行控制器(TPSC)一致,E1-TRAN块提供空闲码置换、数据转换、信令源与CAS数据及数字音频插入的单时隙控制。HDLC转发器(TDPR)和传输信道插入(TXCI)块串的时隙16均支持普通信道信令(CCS),CCS支持AIS和TS16 AIS的传输出及远端警报(RAI)和远端多帧警报信号的传输。
1.1 软件设计
误码仪的软件按照软件工程的要求进行设计。按功能模块的划分可分为以下几个部分:初始化模块、键盘模块、运算处理模块、显示模块、管理控制模块、存储操作模块和打印模块。
系统的初始化模块包括开机自检、硬件参数初始化等;键盘模块对面板上的用户输入进行分析处理,并转到管理控制模块,通过调用相关函数实现并进行处理;算法处理模块对从PMC4351输入的原始数据进行分析,并由状态显示模块显示程序运行时的各种状态;存储操作模块对各次操作结果和分析进行记录,并对记录进行管理;打印模块完成对测试结果的打印。
图3
误码仪的所有与硬件有关的操作都以标准函数形式提供,上层应用程序与硬件不发生任何联系,而是通过标准函数访问。由SOPC Builder应用软件生成的用户逻辑接口来完成对PMC4351的硬件驱动。上层应用程序对用户逻辑的函数调用即可完成对PMC4351的操作。以下给出PMC4351的初始化程序:
pmc4351_address=(unsingned char *)((char *) na_user_logic_my_mem_0);
void pmc_initialz(void)
{ unsigned char value;
Cls_tmplet();
Int_templet();
Pmc4351_address[0x00]=0x91;
Pmc4351_address[0x04]=0x40;
Pmc4351_address[0xf0]=0x0c;
Pmc4351_address[0xd6]=0x00;
Pmc4351_address[0x10]=0x00;
Pmc4351_address[0x1c]=0x03;
Pmc4351_address[0x20]=0x03;
Pmc4351_address[0x80]=0x60;
Pmc4351_address[0x90]=0xc2;
Pmc4351_address[0x50]=0x00;
Pmc4351_address[0x40]=0x39;
Pmc4351_address[0x41]=0x01;
Pmc4351_address[0x30]=0x01;
Pmc4351_address[0x31]=0x00;
Pmc4351_address[0x32]=0x01;
Pmc4351_address[0x06]=0x01;
Pmc4351_address[0xf8]=0x01;
Pmc4351_address[0xf9]=0x00;
Pmc4351_address[0xfa]=0x01;
Pmc4351_address[0xfb]=0x01;
Pmc4351_address[0xfe]=0x00;
Pmc4351_address[0xff]=0x0b;
Pmc4351_address[0x19]=0xff;
Pmc4351_address[0x1a]=0xff;
Pmc4351_address[0x1b]=0x11;
Pmc4351_address[0x15]=0xff;
Pmc4351_address[0x16]=0xff;
Pmc4351_address[0x17]=0x11;
Pmc4351_address[0x02]=0x00;
Pmc4351_address[0xdc]=0x34;
Pmc4351_address[0xf4]=0x01;
Pmc4351_address[0xf4]=0x01;
Value=pmc4351_address[0xf4];
Value=value&0xfe;
Pmc4351_address[0xf4]=value;
Pmc4351_address[0xf5]=0x01;
Pmc4351_address[0xf5]=0x01;
Value=pmc4351_address[0xf5];
Value=value&0xfe;
Pmc4351_address[0xf5]=value;
Pmc4351_address[0xf6]=0x01;
Initial_RLPS_euqa();
}
void initial_RLPS_euqa(void)
{unsigned int addr;
Pmc4351_address[0xfd]=0x00;
For(addr=0;address<=255;addr++)
{ Pmc4351_address[0xd8]=equalizer_val[addr][0];
Pmc4351_address[0xd9]=equalizer_val[addr][1];
Pmc4351_address[0xda]=equalizer_val[addr][2];
Pmc4351_address[0xdb]=equalizer_val[addr][3];
Pmc4351_address[0xfc]=address;
Time_delay(1);}
}
3 结束语
文中主要讨论了PMC4351在便携式2M误码测试仪的硬件和软件设计中的设计思路和设计方案。本设计采用目前非常先进的软硬件协同设计的SOPC技术方案完全是可行的。测试结果表明,该设计的技术指标达到了设计要求,具有非常广阔的应用前景。