Page 33 - 网络电信2020年7月刊下
P. 33

图 2 转换模块实物图                                         表 1 传输距离与波特率的关系













                                                                     二、FPGA 实现
                2.SSI时序                                              串行数据接收、容错处理、数据解码、D/A输出控制是由
                同步串行接口(SSI)电路是一种常用的工业用通信接口。                      ALTERA  Cyclone  FPGA实现的。按照功能把FPGA内部划分为SSI
            ARM、TI、NS等众多公司都支持这种接口。在这种接口协议下,                      数据接收和四通道D/A输出控制两个模块。其中四通道D/A控制
            数据帧长度可自定义,在时钟的严格同步下实现数据块的传                           是并行同步输出的,FPGA内部功能模块结构如图5所示。
            输,可实现大批量数据的传输。SSI具有传输速度快,连线简
                           [7]
            单、抗干扰能力强 ,广泛应用于各种传感器上。                                图 5 FPGA 内部功能模块结构图
                SSI接口信号分为时钟和数据两种,上位机或远端设备向该
            模块发送同步时钟脉冲,同时根据同步时钟脉冲,逐位依次输
            出多通道D/A数据和控制命令。
                                                 [8]
                同步串行接口(SSI)输出时钟与数据时序 如图3所示。
              图 3 同步串口(SSI)时序图










                1)“CLK+”“DATA+”在空闲时应为高电平,可以有效降
            低干扰;
                2)当“CLK”信号第一次从高电平跳至低电平时,开始发                          FPGA程序设计是用VHDL实现的,程序分为两大模块“SSI_
            送D/A控制字节,从LSB开始,按位依次送出;                              RCV”和“Four_Channel_DA”,如图5所示。其中“SSI_RCV”
                3)在第一个脉冲上升沿到来时,模块开始从LSB开始,按                      模块内部包含SSI数据接收和控制字的存储、通信中断或故障处
            位依次接收;                                               理。“Four_Channel_DA”模块包括内部四通道D/A芯片控制信
                4)随着一个个时钟脉冲下降沿的到来,D/A控制命令就逐                      号发送以及D/A转换启动控制命令等。
            位传出;                                                     1)SSI数据接收
                5)时钟序列结束后,“CLK+”“DATA+”跳回初始状态                        当SSI的CLK信号出现下降沿时,外部开始按节拍逐位依次
            (高电平),数据传输结束。                                        发送控制命令。接收模块在每个CLK的上升沿按节拍依次接收并
                6)空闲时间到后,开始下一帧数据的发送。利用同步串行                       锁存控制命令。
            接口(SSI)顺序传输多组数据块,实现大批量数据的传输。顺                            由于需要传输四路D/A的控制命令,传输方式可以采用分
                         [9]
            序传输数据时序 如图4所示。                                       时复用的方式或者整帧传输的方式。若采用分时复用的通信方
              图 4 连续传输数据时 SSI 时序图                                式,要求4个通道分时传输,需要增加额外的通信内容来区分D/
                                                                 A通道,这样就降低了通信效率。为了提高通信效率,模块采
                                                                 用整帧传输方式,即将4个D/A通道的控制字合为一整帧发送。
                                                                 D/A转换电路选用的是BB的DAC7731,16位分辨率,四通道需要
                                                                 64bit控制命令。上位机或远端设备向模块发送64bit的控制
                同步串行接口(SSI)时钟和数据信号采用差分形式传输,                      命令,FPGA收到控制命令后,将四通道控制字存储在FPGA内部
            电平与RS-422兼容    [10] ,数据传输速率与同步时钟频率有关,利               64bit的Buffer中,控制命令接收完成后,向“Four_Channel_
            用SSI接口传输数字信号最高波特率是1.5Mbps,波特率越高,                     DA”模块发送D/A控制命令启动信号。
            传输距离越短,传输距离与波特率的关系               [11] 如表1所示。当采用          由于FPGA具有并行处理,4个通道D/A输出控制可以实现并
            光缆传输SSI接口信号时,传输距离可以更远。                               行处理,即每个通道各自读取各自的控制字,并行完成D/A输

                                                       网络电信 二零二零年七月                                            67
   28   29   30   31   32   33   34   35   36   37   38