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

发布者:码梦狂人最新更新时间:2014-03-01 来源: eefocus关键字:C8051F005  高速误码  测试系统 手机看文章 扫描二维码
随时随地手机看文章

  本文根据Vitesse公司的VSC8228芯片特点,利用C8051F005单片机设计出一种价廉的高速误码测试仪。下面将对其软硬件设计,特别是C8051F005与上位机的串口通信以及与VSC8228的SPI通信进行详细探讨。

  1 误码测试系统概述

  Cygnal公司的单片机C8051F005具有高速8051微控制器内核,速度可达25 MIPS,指令为流水线指令结构,70%的指令的执行时间为1个或2个系统时钟周期;可片内JTAG调试和边界扫描,这样可提供全速、非侵人式的在系统调试(不需仿真器);片内有多达60 KB的FlashROM和2 KB RAM,用户无需再外扩存储器;可同时使用的硬件SMBus(I2C兼容)、SPI及UART串口,4个通用16位计数器/定时器。

  VSC8228可提供的一个双通道重发器或重定时器,能应用于光纤信道、千比特以太网、SONET/SDH以及无限带宽等多种领域。设备支持速率从125 Mbps~4.25Gbps。该芯片可以将输入的串行数据在重定时器模式下与本地的参考时钟同步,内置的码型产生器与检测器可以产生与探测27、223、231的伪随机码,40或64位用户定义码型以及光纤信号CRPAT、CJTPAT、CSPAT码型。它含128个寄存器,可通过SPI或者I2C串行总线设置相关寄存器,可以实现误码检测功能。

  误码测试系统可分为两个部分:误码测试部分和人机界面。测试部分由VSC8228芯片来实现。它完成伪随机码型的产生、同步及对比检测,计算出误码个数。人机界面子系统在整个测试系统中作为系统控制核心单元,通过人机界面完成系统作业。以C8051F005单片机作为人机界面硬件的控制部分,对VSC8228芯片的控制、误码率的计算以及测试子系统的各状态的显示都通过PC机的界面来实现。PC界面采用Delphi语言编写。

  误码测试仪的工作流程如下:PC界面通过RS232串口实现与C8051F005的通信,将对VSC8228各寄存器的没置发送给C8051F005单片机,每个控制命令为16位;单片机通过SPI口将上位机发送过来的控制命令转发给VSC8228,完成VSC8228各寄存器的设置。为了实时地显示误码测试仪的工作状态,单片机每秒扫描一次各寄存器,将其值通过RS232串口上传到PC界面。

  由此可见,C8051F005单片机起着VSC8228与上位机通信的桥梁作用,它与上位机的串口通信以及与VSC8228的SPI通信在误码测试仪的实现过程中起着十分重要的作用。下面通过软硬件设计详细分析这两种通信。

  2 误码测试系统的实现

  2.1 硬件设计

  利用C8051F005单片机的串行接口,通过RS232异步通信接口与上位机进行通信。C8051F005通过串行口直接接收PC上位传送来的串行数据,然后把接收的数据存入数据存储器;同样,C8051F005通过串行口直接把数据传送给PC机。系统结构框图如图1所示。

  

 

  C8051F005有一个特别的交叉开关,可将数字I/O资源分配到物理I/O端口引脚。C8051F005通过设置交叉开关来同时使用SMBus(I2C兼容)、SPI及UART串口等。VSC8228也可通过SPI或者I2C串行总线设置相关寄存器,但由于SPI通信的速率比I2C通信快,因此为了实现误码的高速测试,这里选择SPI作为C8051F005与VSC8228的通信协议。

  SPI接口协议要求接口设备按主从方式进行配置,且同一时间内总线上只能有一个主器件。一般情况下,实现SPI接口需要3或4根线。其中:主出从入(MOSI)信号是主器件的输出和从器件的输入,数据传输时最高位在先;主人从出(MISO)信号是从器件的输出和主器件的输入,数据传输时也是最高位在先。当SPI从器件未被选中时,它将MISO引脚置于高阻状态。串行时钟(SCK)信号是用于同步主器件和从器件之间在MOSI和MISO线上的串行数据传输。从选择(NSS)信号是一个输入信号,主器件用它来选择处于从方式的SPI模块,在主方式时用于禁止SPI模块。当处于从方式时,它被拉为低电平以启动一次数据传输,并在传输期间保持低电平。[page]

  

 

  误码测试系统中,以C8051F005作为主器件,VSC8228为从器件,由于NSS为从器件选择使用,将单片机的NSS引脚(P0.5)置高,用P2.4引脚与VSC8228的NSS引脚(PIO3)相连。根据MOSI及MISO上的数据在SCK的哪种极性和相位上有效,单片机上的SPI通信有四种工作模式;但是VSC8228的SPl只有一种工作模式,故在对单片机的SPI控制器进行设置时必须考虑这点。图2是VSC8228的SPI通信时序。在SPI通信时,先传输7位地址,后传输读写控制位OP(OP为0时表示读,OP为1时表示写),最后传输8位数据,故SPI通信的命令字长度为16位。

  2.2 下位机软件设计

  下位机采用中断方式实现与上位机的通信,单片机用SPI与VSC8228误码测试模块的通信。每当串行口接收或发送完一组串行数据时,就产生一个中断请求。串行中断请求在单片机芯片内部自动由硬件置位发生,具有实时性高的特点。图3是单片机的控制程序流程。

  对单片机进行程序初始化,包括看门狗、系统时钟、I/O口、SPI寄存器、UART口等。C8051F005单片机具有看门狗,但是看门狗到一定时间,将重启单片机,为防止这种现象的产生,初始化里禁止了看门狗。SPI的初始化主要是对启动SPI的相关控制寄存器进行配置。UART的初始化主要是对串口的控制字进行设置。I/O口的初始化通过设置交叉开关来启动SPI与UART口,并将有关输出设置为推挽输出。

  

 

  系统时钟初始化模块,由于是选择外部晶振作为时钟源,根据C8051F005的要求,在通过外部振荡器控制寄存器OSCXCN选择了外部晶振后,需等待至少1ms后再查询等待OSCXCN寄存器中的D7位,即XTLVLD位变为1,表明外部晶振正在运行并已工作稳定,然后才能通过内部振荡器控制寄存器OSCICN的D3位,即CLKSL置1来选择外部晶振。

  具体的参考程序如下:

  

C8051F005使用4个特殊功能寄存器来实现对SPI的控制和访问。这4个寄存器分别是控制寄存器(SPI0CN)、数据寄存器(SPI0DAT)、配置寄存器(SPIOCFG)和时钟频率寄存器(SPI0CKR)。当以C8051F005为主器件时,应将主允许标志(MSTEN,SPI0CN.1)置1,同时将SPI使能SPIEN(SPI0CN.0)置1。通过CKPHA(SPI0CFG.7)和CKPOL(SPI0CFG.6)可选择SPI相位与极性,从而实现SPI通信的四种模式,但因为VSC8228只支持一种方式,所以将它们同时置为0,则空闲时SCK为低,此时的系统将在上升沿发送数据,下降沿接收数据(时序图见图2)。由于在MCU中,SCK的频率可从系统时钟分频得到,因此该频率可由下式给出:

  

 

  其中fsysclk是系统时钟频率,SPI0CKR是SPI0CKR寄存器中的8位值。

  为了防止上次测试对本次的影响,在程序的初始化之后,对VSC8228写入重肩命令,这样每次运行程序都将VSC8228的寄存器恢复为默认值。界面发送的数据为16位,其中8位地址,8位数据,而且每个数据是一个字符。为让单片机识别控制命令已发完,最后一个16位数据设为FFFF。另外,每16位数据之间加入了100 ms的延时,这样Spcomm控件就会把每16位数据当成1帧,单片机也能够正确地接收所有数据。

  单片机用中断的方法来接收界面传过来的数据。每接到一个数据,即一个字符,就执行中断子程序,将接收到的数据的最低位存人数组。串口中断子程序流程如图4所示。当接收到16个,就接收完1帧,转入执行主程序去对收到的16位进行处理。处理过程就是将收到的16个数据(存放在数组中),通过移位跟“或”运算,综合成16位的数据。然后,通过移位运算,取高8位作为地址,低8位作为数据。对于接收的16位数据,如果不是FFFF,则将提取出来的8位数据,发送给提取出来的8位地址对应的寄存器;如果接收的16位数据为FFFF,表示所有的控制命令已经发完,这时VSC8228的全部寄存器设置完毕,VSC8228的码型产生模块以及检测模块开始工作。此时,单片机每秒扫描一次所有寄存器的值,并将其值通过串口传给界面,界面对串口传送过来的数据进行处理。

  

 

  本设计中,SPI的数据传输过程如下:

  ① 关闭中断允许。

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

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

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

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

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

  

 

  

 

  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的全部寄存器,并将数据传送给界面,因此,界面首先要一帧一帧地识别出来,然后对于某些地址的数据进行特定的操作。

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

  关键代码如下:

  

 

  

 

  3 误码测试性能

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

  结 语

  设计的误码仪支持的测试码型有27、223、231的伪随机码,40或64位用户定义码型以及光纤信号CRPAT、CJT-PAT、CSPAT码型等,一次可测误码高达43亿个,可测码速高达4.25 Gbps在EPON光收发模块中实现了误码测试,效果较好,而且功耗低,有较高的实用价值。

关键字:C8051F005  高速误码  测试系统 引用地址:C8051F005在高速误码测试系统中的运用

上一篇:16*16点阵LED屏单片机学习板
下一篇:基于DS18B20和AT89C2051的家用温度测量器设计研究

推荐阅读最新更新时间:2024-03-16 13:36

编码式光幕立靶测试系统的研究
1 引言 在轻武器的生产和研制的弹丸质量评定中,要求测试弹丸速度以及测量弹丸在靶面上的散布情况,即射击密集度。射击密集度是低伸武器射击性能的一项重要指标,它与武器效能有关。传统测量射击密度是在预定的弹道上竖立硬纸靶.射击一定次数后,人工测量纸靶上留下的弹孔。该方法操作简单,但测量结果不够客观,测量精度不高。目前射击实验大多采用无形靶,包括声靶,光电靶以及基于无线电测量等。激光光幕靶是光电靶中的一种,它主要由激光系统和计算机系统组成。激光系统由激光二极管和激光束构成网格,网格的间距根据武器弹丸大小进行调整。当弹丸将激光束切断时,相应的二极管产生一个脉冲,经转换为数字信号传输到计算机。以光电转换为原理的光纤编码立靶测试系统具有测量
[工业控制]
编码式光幕立靶<font color='red'>测试系统</font>的研究
机器视觉测试系统构成、工作原理及种类分析
1.引言 现代工业自动化生产中涉及到各种各样的检验、生产监视和零件识别应用,如汽车零配件批量加工的尺寸检查和自动装配的完整性检查、电子装配线的元件自动定位、IC上的字符识别等。通常这种带有高度重复性和智能性的工作是由肉眼来完成的,但在某些特殊情况下,如对微小尺寸的精确快速测量、形状匹配以及颜色辨识等,依靠肉眼根本无法连续稳定地进行,其它物理量传感器也难以胜任。人们开始考虑用CCD照相机抓取图像后送入计算机或专用的图像处理模块,通过数字化处理,根据像素分布和亮度、颜色等信息来进行尺寸、形状、颜色等的判别。这种方法是把计算机处理的快速性、可重复性与肉眼视觉的高度智能化和抽象能力相结合,由此产生了机器视觉测试技术的概念。 视觉测试技
[测试测量]
机器视觉<font color='red'>测试系统</font>构成、工作原理及种类分析
以软件为核心的测试系统设计
如今,伴随着新技术的不断涌现和各行业新需求的不断增加,更多差异化产品投放市场的步伐也在不断加快,这些产品不但集成了更多功能,而且还必须缩减开发周期,以便在与同类产品的竞争中获得优势。与此同时,各企业也都面临着更加严峻的成本控制要求,并且对于测试速度的要求也变得更高。这些都需要快速开发高效、灵活的测试系统。 以软件为核心的模块化系统架构,是针对上述测试挑战的一种创新型解决方案。测试工程师可以利用简单易用,结构清晰的软件工具和灵活的模块化硬件,来创建完全用户定义的测试系统。作为在测试测量领域具有三十多年经验的专业公司,NI公司为世界各地用户构建自动化系统,提供了高效的平台和工具。设计涉及电子产品、半导体、汽车、国防与航空航天等行业,
[测试测量]
以软件为核心的<font color='red'>测试系统</font>设计
PCB测试系统方案设计
结合NI PXI与PCI硬件,使用NI TestStand和LabVIEW软件来开发一个用于测试印刷电路板和太阳能逆变器的标准测试系统。 "通过使用全部来自National Instruments的开发工具,我们开发了一套个完整的解决方案,涵盖从印刷电路板测试到最终产品包装站的全部测试需要。" 用于快速增长的太阳能市场的逆变器 丹佛斯太阳能逆变器开发和制造并网逆变器,将太阳能电池板产生的直流电转换成交流电。我们也有用于监测太阳能能源系统的产品,以实现最优的能量输出和投资回报率。 我们的业务集中在快速增长的欧洲太阳能市场。由于业务迅速增长,我们的目标是设计生产流程,以满足日益增加的生产量要求。我们所要关注的关键领域之一,就是
[测试测量]
基于SPCE061A单片机的髋作用力测试仪设计
  摘要:介绍了基于SPCE061A单片机的髋作用力测试仪的系统结构及部分软件编写流程,着重分析了测试仪的测力方法以及使用光电编码器进行测速和鉴相的原理。测试仪以SPCE061A单片机为控制核心,配有串行通信口,具备上位机实时监控、数据保存和复现、测试数据离线分析等功能。实验证明,该测试仪具有测量准确、稳定性高及操控界面友好等优点。 1 引言   随着体育训练科学化水平的不断提高,人体专项力量训练的必要性日益受到重视。通过对大量实际运动测试数据的总体分析发现,所有从事跑、跳运动项目和以跑、跳为基础运动项目的运动员,其向后蹬伸力量均明显小于向下或向前蹬伸力量。而向后蹬伸力量恰恰是跑、跳运动产生动力所必需的专项力量。因此,设计开发
[医疗电子]
基于SPCE061A单片机的髋作用力测试仪设计
R&S TS-RRM测试系统激活首个TD-LTE工作项目
归功于罗德与施瓦茨测试平台从RF、RRM和信令测试用例方面针对LTE Band 38(第38号LTE频带)都已经达到了TPAC标准(即测试平台通过标准),TD-LTE的终端认证工作得以立即启动。 作为LTE、GSM/EDGE和WCDMA/HSPA测试设备开发的领导者,罗德与施瓦茨公司自豪地向外界宣布:R&S TS-RRM平台是迄今唯一一个获得GCF(全球认证论坛)认证的面向TD-LTE无线资源管理测试用例的平台。 更喜人的是,该一致性测试系统,是迄今唯一一个被批准可同时用于第38号和40号TDD频带的 RRM测试系统,它已经在GCF上注册为第96号测试平台。 除了针对上述所说的两个TDD频带,在前几个月,TS-RRM平台还通
[测试测量]
基于GP32的直流电机控制器测试系统
1.系统的整体设计 本系统用于测试 直流电机控制器 的功能和性能。测试内容主要包括测试控制器的电流 值、速度值和PWM 输出的波形变化等。测试系统采集到这些值后,通过串口发送给PC 方显示,能够方便用户监看、分析。本系统可以实现测试直流串励电机控制器和直流他励电机控制器的性能和功能。 本测试系统硬件系统部分由主控芯片 MC68HC908GP32 最小系统电路、电源转换电路、 SCI 通信电路、光电隔离控制电路、A/D转换电路和继电器驱动电路等部分组成。该系统能对多种模拟量进行采集,通过信号转换电路转换为0-5V 的电压信号,再将电压信号送入A/D 转换电路,实现数据的采集。为了节约I/O 口,本系统的A/D 转换芯片采用2 片TL
[单片机]
基于GP32的直流电机控制器<font color='red'>测试系统</font>
虚拟仪器在位移测试系统中的应用
位移测试技术在工业生产中有着广泛的应用。位移检测是机械量检测的基础,将机械量转化成位移量来检测是机电一体化技术的重要组成部分之一。对位移的检测不仅为提高产品质量和生产安全提供了重要数据,同时也为其他参数的检测提供了基础。在液压试验台中,传统的静态电液测量控制方式无法满足现在液压系统在性能、操作、在线监测和故障诊断方面的有求,所以在线监测以及分析系统的开发显得尤其重要。为了保证系统的稳定、准确以及低事故运行,本文开发了位移测试系统,能够实时显示其位移波形兵,还能够对其进行信号处理。 1 虚拟仪器及LabVIEW介绍 虚拟仪器(简称VI)由硬件设备与接口、设备驱动软件和虚拟仪器面板组成。通过底层设备驱动软件与真实的仪器系统进行通
[测试测量]
虚拟仪器在位移<font color='red'>测试系统</font>中的应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved