为处理“最终一公里”的接入问题,上世纪末呈现了数字用户线环路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接口规划、调制解调单元的规划和硬件结构的生成三部分。硬件结构的生成首要运用QuartusII7.1的体系规划工具软件SOPC Builder 来完结。图2为FPGA内所完结的各功用模块示意图。
3.1 ENET接口规划
本体系用到的根据DM9000A的ENET接口并非SOPC Builder所供给的规范组件,故有必要进行自定义组件规划。经查阅参考文献[1]中图2.1(和处理器接口的信号衔接图)可知:只需针对与处理器有关的管脚(SD0~15、CMD、INT、IOR#、IOW#、CS#、PWRST#)规划相应接口模块即可。图3为根据DM9000A的ENET接口规划示意图,图右侧标明接口与DM9000A管脚对应联系;NIOSII侧的写入数据IDATA只要在写入信号IWR_N有用时才会把数据传至DM9000A侧。根据图3所示的信号端口映射及逻辑联系,写出Verilog或VHDL文件,运用SOPC Builder中的Interface to User Logic导入即可创立根据DM9000A的ENET接口。
3.2 调制与解调单元的规划
调制和解调单元的规划选用根据SOPC的DSP完结计划,根据不同的运用方针,其完结计划有两种挑选:纯硬件计划和软硬件结合计划。纯硬件计划是指依照Matlab→DSP Builder→QuartusⅡ的流程直接完结。而软硬结合的计划是指运用前一种计划为NIOSⅡ处理器规划自定义指令的硬件加速器接口模块,生成能够完结DSP功用的NIOSⅡ处理器,最终DSP功用的完结则经过软件来完结。考虑到调制解调器的传输速率要求,假如用软硬结合的计划,200MIPS的处理速度或许满意不了要求,故选用纯硬件计划。本规划中调制单元包含了调制器和缓冲器1。为确保接连性发送,DM9000A接纳缓冲区的数据要先经缓冲器1缓存后再进行调制。调制单元的电路模型图如图4所示。
在图4中,调制器每调制完一字节的数据,要读入的下一字节地址Next_add会主动加1,将该地址送至缓冲器1的读出地址输入端Rd_add,即可开端下一字节的调制;当调制器从Next_add判别出现已读完一帧数据后,给出中止信号,此中止信号由DSP Builder的Interface库的AVALON_MM Slave 组件(选中Output IRQ,地址类型设为Write)供给的存储映射功用经由三态桥送至NIOSⅡ。处理器接到此信号后,向缓冲器1发送写使能信号,并传送要写入的数据,开端写入进程。缓冲器1选用Storage Library 库中的Dual-port RAM完结,双口RAM可随时输出缓存内部的剩下数据量,可完结读出、写入操作的灵敏操控。
本规划选用2CPFSK调制方法,图5为用DSP Builder树立的调制器电路模型。图中,8位并行数据由输入端口DataIn输入,经并串转化后逐位送往多路器的数据输入端sel[0:0]。FWORD1和FWORD2是频率字设置端口,当数据输入端sel输入不同的值时,多路器会根据设置的频率字输出对应的相位值。将输出相位值的累加成果送入BusConversion1,抽取出相位值的高14位,将此相位信号经过查找表SinLUT后,在数据输出端即可得到2CPFSK已调信号。图中并串转化器的load输入端用来操控字节数据的输入,每逢一字节调制结束,load端口会输入数据载入信号进行下一字节数据的调制。
相同,解调单元包含解调器和缓冲器2两部分。解调单元的规划与调制单元相似,所不同的是: AVALON_MM Slave 组件将地址类型设置为Read。
3.3 硬件结构的生成
3.3.1 用SOPC Builder生成软核
SOPC Builder供给了丰厚多样的组件库,用户能够按需求自定义体系,一起可运用SOPC Builder的用户逻辑接口生成体系未供给的外部器材接口。本规划中参加了如下组件:cpu_0、三态桥、Flash操控器、SRAM操控器、SDRAM操控器、jtag_uart、led_pio、anjian_pio以及自定义组件ENET接口。值得留意的是:软核的生成进程有必要在电路模型文件转化为RTL级的VHDL代码时生成的QuartusⅡ工程下进行,这样SOPC Builder在生成软核时会主动检测到调制解调单元的AVALON_MM Slave组件,会在三态桥下生成相应的信号线,把调制解调单元同NIOSII衔接起来,其间包含数据线、地址线、读/写指令线和中止信号线等。
3.3.2 调制解调单元Sysmbol的生成
在Simulink中完结仿真验证后,就需求把规划转到硬件上加以完结,这是DSP Builder规划流程中最为要害的一步,转化后能够获得针对特定FPGA芯片的VHDL代码。Symbol的生成进程:对模型的剖析、设置Signalcompiler、把MDL模型文件转化成VHDL、归纳、适配。上述进程完结后,把调制、解调模型的VHDL文件在QuartusⅡ下各自生成相应的Symbol。该Symbol会主动加载到工程库中,能够如工程库中自带组件相同调用。
3.3.3 在QuartusⅡ下进行原理图修改
在BDF文件的修改状况下,参加NIOSⅡ软核、调制单元、解调单元;根据需求,DM9000A和SDRAM还需独自的时钟信号,可运用Mega Wizard Plug-Manager创立一个ALTPLL,即可为DM9000A和SDRAM供给适宜的时钟信号。原理图文件修改后,即可进行全编译,生成POF和SOF二进制格局的门级网表文件。
4 体系软件规划
体系主程序首要进行DM9000A的初始化,然后进行中止检测,根据优先级次序顺次呼应。首要的中止呼应程序有DM9000A接纳缓冲区已有数据包时的发送中止呼应程序和接纳单元缓冲器2中已存有待发送数据时的接纳中止呼应。
4.1 发送中止呼应程序的规划
当DM9000A的RX_SRAM接纳到数据包后,会给出中止信号告诉处理器读取数据包。此刻,中止状况寄存器(ISR)的PR位会给出收到数据包的信号。在发送呼应程序规划中,以ISR寄存器的PR位为0为中止触发条件,完结将RX_SRAM的相应数据写入缓冲器1和调制的进程,详细程序流程图如图6所示。
4.2 接纳中止呼应程序规划
当接纳缓冲器2已存入数据到达必定数量时,缓冲器2会经过AVALON_MM Slave 组件发生中止信号,可把此信号作为接纳中止程序触发信号。中止信号发生后,呼应程序首要完结两项作业:(1)将缓冲器2的数据按帧参加意图和源MAC地址后写入DM9000A的发送缓冲区TX_SRAM; (2)将DM9000A发送缓冲区的数据帧发送给主机。但应留意,当ISR寄存器的PT位为0时,标明数据帧发送结束,要及时铲除该标志位以便发送新的数据帧。接纳中止呼应程序的信号流程图如图7所示。
试验标明,根据SOPC的调制解调器规划计划,在两相距近8km的主机之间,可靠地完结了双绞线数据传输,较DSL而言,其通讯间隔有大幅进步。该规划计划为体系规划带来了较大的灵敏性和实用性,在实践运用中,可针对不同的环境条件以及需求侧重点的不同,替换调制解调模块,然后灵敏地完结各种调制方法。本规划具有全体计划改动量小、开发周期短、资源运用率高级长处。