微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于SOPC的调制解调器设计

基于SOPC的调制解调器设计

时间:06-05 来源:互联网 点击:

为解决“最后一公里”的接入问题,上世纪末出现了数字用户线环路DSL(Digital Subscriber Loop)宽带技术。DSL在2公里内不失为好的双绞线数据传输方案,但当随着距离的增加,DSL的数据传输能力会急剧下降,其原因在于:作为DSL核心的离散多音DMT(Discrete Multitone)技术,子通道内采用了与幅度有关的QAM调制,随着传输距离的加大,线路对信号的衰减使幅度的区分变得越来越困难。可见,DSL为实现高速率数据传输,降低了对有效传输距离的要求,所以对要求远距离传输的场合,就不得不采用其他技术方案了。SOPC(System On Programmable Chip)技术是以FPGA为载体的系统芯片设计技术,由于具有软硬件可裁减、现场可编程和开发周期短等特点,使该技术在通信领域及嵌入式系统设计中有着广泛的应用。考虑到传统的连续相位移频键控(2CPFSK)调制具有抗噪声性能好、相位连续、包络恒定、旁瓣收敛快等优点,故SOPC技术和2CPFSK调制方式的结合,就为远距离调制解调器的实现提供了可能。本文所介绍的即是基于SOPC技术,采用2CPFSK的调制解调器系统设计。

1 系统简介

本设计采用ALTERA公司的CYCLONEII芯片实现,使用以太网控制器DM9000A作为调制解调器与主机间的数据接口。主机发送数据由FPGA实现调制后,由线路驱动器放大经混合电路送上双绞线;同时由双绞线传来的接收信号经放大、滤波、解调等处理后,数据封装成以太网数据包送至主机。系统整体框图如图1所示。

图1中,存储器模块包含有SDRAM、SRAM、Flash,进行各种程序的存储及堆栈保存等。LED显示当前系统工作状态,如正常工作显示、数据发送进行中显示、数据接收进行中显示等;按键用来实现系统的硬复位功能;发送方向上,FPGA读出DM9000A接收缓冲区数据、将调制后的数字已调信号送往D/A器件;接收方向上,FPGA将A/D输出的数字待解调信号解调后送至DM9000A的发送缓冲区;线路驱动器对输入的模拟差分信号放大,以适应长距离传输线的衰减;接收方向滤波模块滤除通带外信号,以降低干扰;混合电路将发射回路和接收回路连接在同一对双绞线上,并抑制发射和接收之间的相互干扰。

2 DM9000A简介

DM9000A是一低功耗、高集成的以太网控制器,可实现以太网媒体介质访问层(MAC)和物理层(PHY)的功能,包括MAC数据帧的组装/拆分与收发、地址识别、CRC编码/校验、MLT-3编码、接收噪声抑制、输出脉冲成形、超时重传、链路完整性测试、信号极性检测与纠正等。DM9000A最高可实现100Mb/s的传输速率,能够充分满足远距离调制解调器的传输速率需求。

2.1 DM9000A数据帧发送过程

DM9000A中3KB的发送缓冲区TX_SRAM可以同时存储两帧数据,按照先后顺序命名为帧I、帧II。DM9000A初始化后,发送缓存区的起始地址为00H,当前数据帧为帧I。数据发送过程如下:

(1)在待发数据前加入各6B的目的和源MAC地址,组成数据帧。

(2)利用写操作寄存器MWCMD(REG_F8)向TX_SRAM中写入发送数据帧。

(3)利用写操作寄存器MWCMD(REG_F8)将数据帧长度写入寄存器FCH和FDH。

(4)通过发送控制寄存器TCR(REG_02)设置发送请求TXREQ,向DM9000A发出发送数据指令。

发出发送数据指令后,DM9000A即开始发送帧I,在发送帧I的同时,帧Ⅱ的数据即可写入发送缓存区。在帧I发送完后,将帧Ⅱ的数据长度写入寄存器FCH和FDH,最后将发送控制寄存器TCR(REG_02)设置发送请求TXREQ,即可开始帧Ⅱ的发送。依此类推,可实现帧I、帧Ⅱ,帧I、帧Ⅱ……的连续发送。

2.2 DM9000A数据帧接收过程

DM9000A中的接收缓存区RX_SRAM是一个13KB的环形结构,初始化后的起始地址为0C00H,缓冲区内每帧数据都有4B长的首部。第一个字节用来检测接收缓存区中是否有数据,如果这个字节为01H,表明接收到了数据;如果为00H,则说明没有数据。但是,如果第一个字节既不是01H,也不是00H,DM9000A就必须做一次软复位来从这种异常状态中恢复。第二个字节存储了以太网帧状态,由此可判断所接收帧是否正确。第三和第四字节存储了以太网帧长度,后续字节为有效数据。数据接收过程如下:

(1) 查看中断状态寄存器ISR,如果接收到新数据,ISR的PR位将被置为0。

(2) 如果检测到PR=0,则清除PR。

(3) FPGA开始读接收缓存区数据。

如果第一字节是01H,则说明有数据,若是00H说明无数据,否则复位;根据获取的长度信息,判断是否读完一帧,如果读完,接着读下一帧,直到遇到首字节是00H的帧,说明接收数据已读完。FPGA可以重新查看中断状态寄存器,等待新的有效数据帧。

3 系统硬件设计

系统硬件设计包括ENET接口设计、调制解调单

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top