首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
测试测量
» C8051F005在高速误码测试系统中的运用
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
C8051F005在高速误码测试系统中的运用
发短消息
加为好友
porereading
当前离线
UID
863084
帖子
7183
精华
0
积分
3592
阅读权限
90
在线时间
209 小时
注册时间
2011-11-30
最后登录
2019-8-28
论坛元老
UID
863084
1
#
打印
字体大小:
t
T
porereading
发表于 2012-12-11 14:58
|
只看该作者
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模块。当处于从方式时,它被拉为低电平以启动一次数据传输,并在传输期间保持低电平。
误码测试系统中,以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来选择外部晶振。
具体的参考程序如下:
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议