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