您的位置:通用技术>>可编程逻辑>>FPGA>>设计应用>>正文

基于FPGA的数据无阻塞交换设计

推荐给好友
打印
加入收藏
更新于2008-08-07 12:31:03


  CPLD_1只能接DTE,每个DTE的6条握手线(2发4收)对应2个8位寄存器、1个发送寄存器、1个接收寄存器。RST/DTR对应发送寄存器的前2位,CTS\DSR\DCD\JI对应接收寄存器的前4位。当有同步信号Syn时(8 kHz),每个发送寄存器串行移位输出数据,4个发送寄存器每隔一帧循环地发送数据,则组成1个每帧为128时隙、128×8位、8.192 Mb/s数据流(STi),送入握手线交换矩阵。DTE0到DTE3依次占用了数据帧中的第0到第3时隙,剩余都空闲。接收数据流过程相反。由握手线交换矩阵送过来固定帧格式的数据流(STo)进入CPLD,通过同步信号Syn提取第0到第3时隙的前4位,放入相应接收寄存器中,再依次对应到各DTE的握手线信号(CTS\DSR\DCD\RI)。这也就是信道(DCE)端口送来的握手信号,从而实现了交换。每个DTE占用的时隙是固定的,每帧中1个DTE占用1个时隙。如DTE0占用第0时隙,以此类推。如图2所示。

  CPLD_2只能接DCE,每个DCE的6条握手线(4发2收)也对应2个8位寄存器。CTS\DSR\DCD\RI对应发送寄存器的前4位,RST/DTR对应接收寄存器的前2位。当有同步信号Syn时(8 kHz),每个发送寄存器串行移位输出数据,4个发送寄存器每隔一帧循环地发送数据,则组成1个数据流(STi),送入握手线交换矩阵。DCE0到DCE3依次占用了数据帧中的第0到第3时隙,剩余都空闲。接收数据流过程相反。由握手线交换矩阵送过来固定帧格式的数据流(STo)进入CPLD,通过同步信号Syn提取第0到第3时隙的前4位,放入相应接收寄存器中,再依次对应到各DCE的握手线信号(RTS\DTR)。这也就是终端(DTE)端口送来的握手信号,从而实现了交换。每个DCE占用的时隙是固定的,每帧中1个DCE占用1个时隙。如DCE0占用第0时隙,以此类推。如图3所示。

  CPLD_3是CPLD_1和CPLD_2功能的合并。可根据用户的需要,在FPGA的控制下,在CPLD内部通过数据线和握手线的交叉变换可以把DTE变换成DCE,交叉方法类似于通用的RS232数据交叉线的做法。这样做主要为了把DTE当作DCE用。当该DTE端口与其他DTE端口进行交换时,要把它变成DCE端口用;当该DTE端口与DCE端口进行交换时,不进行改变仍然作为DTE端口用。在确定是DTE或是DCE后,可依据CPLD_1和CPLD_2的方法,送人握手线交换矩阵。

  2 软件实现

  软件实现采用C语言进行模块化设计,主要包括主程序单元、切换单元、查询单元、中断单元、主动上报单元和看门狗。主程序包括数据交换矩阵的初始化配置和各个功能模块的判断选择。切换单元控制FPGA和时隙芯片进行各个端口的切换连接、拆除连接、冲突检测以及强拆连接。中断单元是与监控通信的接口,负责接收监控传来的命令;发送要主动上报的信息。查询单元可以查询各个信道的状态,信道是否有请求(查询信道振铃信号RI是否有效)。主动上报单元是指歼机上报、定时上报,来指示数据交换矩阵是否工作正常。

  3 结束语

  通过上面设计,可以做成一个单独的模块。DTE接口可以接数字电话、数字传真等数据终端;DCE接口可以接GSM等数据信道;DTE/DCE接口可以根据用户的需求来配置,比如用于计算机扩展的多串口与DTE或DCE的通信。该技术具有硬件平台通用性好、应用范围广以及功能扩展容易等优点。

文章出处:作者:白海斌,邵淼青