新闻中心

EEPW首页>测试测量>设计应用> 高速误码测试系统中的C8051F005运用

高速误码测试系统中的C8051F005运用

作者: 时间:2009-03-17 来源:网络 收藏

  ① 关闭中断允许。

  ② MCU将VSC8228的NSS拉低(即置P2.4=0),以选中从器件VSC8228。

  ③ 将待发送的数据写入数据寄存器(SPI0DAT),即写发送缓冲器。如果SPI移位寄存器为空,发送缓冲器中的数据字节被传送到移位寄存器,数据传输开始。

  ④ 在SCK上提供串行时钟,同时在MOSI线上串行移出数据。传输结束后,SPIF(SPI0CN.7)标志被置1。

  ⑤ 传输结束,将NSS拉高,打开中断允许。

  以下是SPI写VSC8228测试程序的关键代码:

高速误码测试系统中的C8051F005运用

  2.3 上位机软件设计

   上位机主要实现以下功能:显示当前日期和时间;根据检测需要设置检测参数(产生码型、检测码型、速率、输出去重、摆动输入均衡、探测门限等);运行时间及BER的计算,控制按钮及LED显示检测状态。状态灯可以显示的状态有“无信号”、“同步态”、“失同步态”与“等待态”等。它是在WindowsXP环境下采用Delphi语言编写的。首先在Delphi里加载串行通信功能的SPCOMM控件,它使用非常方便。由于Delphi采用事件驱动模式,程序员只需要对Delphi组件的属性、事件进行编程,然后再由这些组件对相应的事件进行响应。这样就使得各个事件彼此完全独立,减少事件间的耦合性,可以大大提高程序的稳定性和可靠性,同时简化程序的编码过程。
   SPCOMM应用的核心在于主线程、读线程和写线程之间的消息传递机制,而通信数据相关信息的传递也是以消息传递的方式进行的。在使用SPCOMM进行串口通信编程时,需特别注意以下两个问题:首先,SPCOMM是通过ReadIntervalTimeout属性的设置来确定所接收到的数据是否属于同一帧数据的,其默认值是100 ms。也就是说,只要任何两个字节到达的时间间隔小于100 ms,都被认为是属于同一帧数据。另外,SPCOMM的默认属性设置是支持软件流控制的,用于流控制的字符是13H(XoffChar)和11H(XonChar),当单片机以二进制方式发送数据时,必须禁用SPCOMM对于软件流控制的支持,即Inx_XonXoff-Flow属性设为False,否则,在数据帧中出现的13H、11H会被SPCOMM作为控制字符而加以忽略。

   由于单片机的SPI口对VSC8228进行控制时须向每个寄存器发控制字,所以界面就要求发送1个地址加1个字节数据的形式,这样就有16位;同时为单片机能够方便地分清每个帧(1字节地址加1字节数据),每次发送1帧就延时100 ms。单片机每秒扫描1次VSC8228的全部寄存器,并将数据传送给界面,因此,界面首先要一帧一帧地识别出来,然后对于某些地址的数据进行特定的操作。

   误码率是误码个数与码总个数的比值。码总个数是检测时间和速率的乘积。对不同的速率有不同的总数。由此,得出误码率。

   关键代码如下:

高速误码测试系统中的C8051F005运用

  3性能

   本设计经实验测试,上位机与下位机的串口通信以及MCU与模块的通信都能正确传输。为适应高速测试,目前SPI的传输速率(指SCK频率)为2 MHz。根据本方案设计误码检测仪已运用于EPON光收发模块的连续码测试。与台湾宜捷威科技的FMTS-3000以及安立的MP1630的测试比较结果看,本仪其误码数量级与上述两种设备基本一致,但是不能支持突发误码的测试。对突发误码测试的支持是项目组下一步研究的目标。


  结 语

   VSC8228芯片支持速率多样,它内置PBRS及其他码型的产生及探测模块。笔者利用该特点设计出一种基于单片机的廉价高速误码仪,探讨了利用Delphi里的SPCOMM控件来实现PC机与之间串行通信的方法,以及与VSC8228的SPI通信过程。设计的误码仪支持的测试码型有27、223、231的伪随机码,40或64位用户定义码型以及光纤信号CRPAT、CJT-PAT、CSPAT码型等,一次可测误码高达43亿个,可测码速高达4.25 Gbps在EPON光收发模块中实现了误码测试,效果较好,而且功耗低,有较高的实用价值。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭