高速串行总线

2024-10-08

高速串行总线(精选7篇)

高速串行总线 篇1

0 引言

随着数字伺服装置的发展,控制单元与数字伺服装置的数据通信成为一个关键问题,采用高速串行实时通信是发展方向和研究热点。目前国内在该领域的研究和应用尚处于起步阶段,无法与国外主流技术(如SERCOS)抗衡,而国外软硬件产品技术附加值高、价格昂贵,不利于在国内自动化领域中推广使用[1]。高速串行实时通信总线(High-speed Serial Real-time Communication Bus,HSRCBUS)就是为了满足底层设备间通信的高实时性、高可靠性要求,为了掌握自主知识产权而成立的。

1 高速串行实时通信总线概述

现场总线中的“运动控制现场总线”,是连接控制系统操作端进行驱动或是输入控制信号的设备(如I/O或传动装置等)的网络。运动控制现场总线注重多台伺服器间的精确同步控制和高速性,具有代表性的有SERCOS、MECHATROLINK等[2]。我们开发的HSRCBUS也属于运动控制现场总线。

HSRCBUS采用主从站环形网络拓扑结构,非常适合工业加工现场的分布式控制。主从站之间采用光纤作为通信介质,因此控制器和驱动器之间传送光信号,从而有效地排除了传输过程中的噪声干扰。控制器与光纤环之间的连接件称为主站,主站指挥和控制一个环上的所有通信。驱动器与光纤环之间的连接件称为从站[3]。主站通过光纤通道将数据和控制信号发往各个从站,各个从站将反馈数据发回主站,送到控制器处理。其中,一个通信环路中可以有多个从站连接伺服驱动器、变频器或步进电机驱动器进而控制电机,可以有一个从站做为专门的I/O从站连接输入控制信息设备。图1为HSRCBUS基本结构示意图。每个站点都是环路上的一个节点,数据在环路上按照图示的流向单向传输。为避免环路上的数据冲突,各站点分时占有数据发送权。表1为HSRCBUS和MECHATROLINK-Ⅱ通信规格对比[2]。

2 硬件设计

2.1 主站设计

主站直接与控制器相连,指挥和控制环路上的所有通信。硬件部分主要实现与控制器的连接以及主站通信协议的运行。主站硬件主要由电源、主站协议电路、光收发器、面板控制电路等组成。其中主站电路的协议芯片选用某公司的Cyclone系列的FPGA,光收发器选用某公司的单模收发器RTXM135。基于FPGA的主站硬件结构,如图2所示。

FPGA做为核心器件,用于实现HSRCBUS物理层和数据链路层协议,FPGA一组I/O端口定义为标准ISA接口,并通过ISA接口实现与控制器的数据交换,另外一对I/O端口与光电转换模块相连,通过光收发器让来自控制器的数据或控制信号和从站的反馈信号完成通信。面板控制电路,基于单片机实现对数控机床操作面板的按键功能的定义和控制。显示屏供电电路,通过高压包升压,向数控机床操作平台的液晶显示屏提供工作电压。

2.2 从站设计

伺服从站设计

由于HSRCBUS采用主从结构,而从站又可用于连接伺服器和外部I/O设备,因此对于从站硬件设计也分为两个部分,首先介绍伺服从站设计,下一小节介绍I/O从站设计。伺服从站与伺服器直接相连,并加入环路实现对伺服电机的控制。伺服从站硬件主要由电源、从站协议电路、光收发器、D/A转换电路等组成。其中D/A采用某公司的16位串行D/A转换器DAC714。基于FPGA的伺服从站硬件结构,如图3所示。

FPGA中运行伺服从站协议,其一组I/O端口与D/A转换器和差分收发器相连,并通过SCSI接口连接伺服控制器,其一对I/O与光电转换模块相连,实现伺服电机与主站控制器之间的数据交换。

2.3 I/O从站设计

I/O从站与开关、继电器和传感器等直接相连,并加入环路实现对外部信号的响应和处理。I/O从站硬件主要由电源、从站协议电路、光收发器、I/O接口电路等组成。基于FPGA的I/O从站硬件结构,如图4所示。

FPGA中运行I/O从站协议,其一组I/O端口通过直接IO接口与开关等器件相连,另一组I/O端口通过扩展IO接口与继电器、传感器等器件相连,其一对I/O与光电转换模块相连,实现外部控制信号与主站控制器之间的数据交换。

3 通信协议设计

HSRCBUS协议包含4层,分别是:物理层、数据链路层、网络层和应用层,其中物理层、数据链路层和网络层在FPGA中实现,应用层由应用软件实现。在协议设计上采用分层的自顶向下的模块化设计思想和主从协议分离设计思想,先根据整体要实现的功能,划分各个功能模块,定义各个模块的接口,确定各个模块的关系,然后把每一层封装成一个大模块,供上一层模块调用。HSRCBUS协议模块化结构,如图5所示。

按照HSRCBUS协议结构,在物理层,主要封装成I N模块和O U T模块,这两者共同完成HSRCBUS协议中物理层的工作。前者负责数据接收及相关模块的工作,后者负责数据发送及其相关模块的工作;在数据链路层,用一个INOUT模块来封装,它调用了物理层的IN模块和OUT模块,再加上链路层的其他功能如计数器模块等

根据主从协议分离思想,在网路层,HSRCBUS协议分为主站部分、伺服从站部分和IO从站部分,他们分别固化在各自的协议芯片中,其中主站协议控制整个系统的工作流程,即通信环路的启动、测试、同步、数据传输等命令均由主站发出。相对于从站,主站拥有总线控制权。从站协议之间关系对等,相对于主站他们的区别在于每个从站分配的ID不同。各个从站定义了一个7位地址寄存器用于存放ID号。

4 总线驱动程序开发

HSRCBUS协议在硬件平台调试成功后,可以编写运行于控制器中的控制程序和驱动程序[4]。程序是在内核为2.4.18的Linux操作系统下用C语言编写。整个HSRCBUS驱动程序包括3大部分,它们的任务是正确初始化FPGA,建立通信链路。

5 总线在HL—B0408数控系统中的应用

HL-B0408数控系统是学院数控研发团队开发的一款高性能,高精度的数控系统,为了检测高速串行通信系统的稳定性和可靠性,我们将HSRCBUS应用在HL-B0408数控系统中。其通信周期为1ms,在一个周期内能够完成控制器对所有伺服装置的速度指令更新,以及各个伺服装置往控制器的位置值反馈。有效通信速度为5.33Mbps。HSRCBUS应用在数控系统中,加工代码连续24小时稳定运行,总线数据帧抖动为1ns。总线的有效性、稳定性和实时性得到某公司资深工程师认可。基于HSRCBUS的数控系统运行情况,如图6所示。

6 结论

本文提出的高速串行实时通信总线(HSRCBUS)成功应用于HL-B0408数控系统中,它满足高实时性、高稳定性的性能要求,总线结构具有简便性和灵活性特点,成本合理。通过提高时钟和通信周期带宽的利用率,进一步提升有效传输速率,HSRCBUS有着广阔的应用前景和推广空间,为实现在高速串行实时通信领域掌握自主知识产权奠定了基础。

参考文献

[1]焦莹.数控系统高速串行通讯协议及其验证平台的建模与设计[D].广州:华南理工大学,2008.

[2]MECHATROLINK Members Association.MECHATROLINK介绍[EB/OL].http://www.mechatrolink.org.

[3]陈卫福,杨建武.开放式数控系统及SERCOS接口应用技术[M].北京:机械工业出版社,2003:16-17.

[4]郇极,尹旭峰.数字伺服通信协议SERCOS驱动程序设计及其应用[M].北京:北京航空航天大学出版社,2005:102-103.

高速串行总线 篇2

关键词:有限状态机,串行通信总线协议,数控系统

1 引言

随着数字伺服装置的发展,如何实现控制单元与数字伺服装置之间的数据通信成为一个关键问题[1],高速串行通信总线(FSCB,Fast Serial Communication Bus)的通信协议正是为了解决底层设备间通信的高实时性、高可靠性要求,为了掌握自主知识产权而成立的。FSCB通信协议和现有的通用的串行通信协议比较,在某些应用场合具有不可比拟的优势,尤其是在CNC控制器的应用中,用于CNC控制器主机单元和各个功能模块单元之间的通信接口[2]。

有限状态机(Finite State Machine,FSM)是描述和验证网络协议的重要方法之一,是分析协议状态转换的有力工具,本文重点介绍有限状态机在FSCB协议中的应用,尤其是具有相对独立功能的物理层和数据链路层的收发模块。

2 有限状态机

状态机(State Machine)可以说是一个广义时序电路,触发器、计数器、移位寄存器等都算是它的特殊功能的一种。一个状态机由输入激励(转移条件)、当前状态、转移路径(下一状态)和约束条件等几个部分组成。实际时序电路的状态数是有限的,因此又叫做有限状态机(FSM,Finite State Machine)[3]。

由于协议规范的描述通常是复杂和晦涩难懂的,于是产生了用形式化的数学方法来描述协议规范,有限状态机是其中的一种。有限状态机通常用有向图来表示。有向图的节点代表了协议机(发送方或接收方)在每一时刻的状态,有向图的方向弧表示在一定的条件下协议机由一个状态转移到另一个状态。已知协议机的完整描述和信道的特性,把协议机的所有可能状态和相应的转换条件都列出,就可以画出有限状态机的有向图。

FSCB协议规定了有限个状态,并结合输入激励、输出响应等构成了完整的状态机模型,有限状态机大大增强了协议的直观性,尤其是对具有相对独立功能的协议子部分,可以较快的理清协议的流程。同时,有向图还可作为绘制程序流程图的依据。

3 有限状态机在高速串行通信总线协议中的应用

3.1 协议整体模块划分

在IC设计中,目前比较流行的设计方法是自顶向下的设计模式,即先根据整体要实现的功能进行功能划分,划分各个功能模块,定义各个模块的接口,及各个模块的关系。并采用分层的思想,把每一层封装成一个大模块,供上一层调用。FSCB协议的FPGA实现中,也是采用自顶向下的设计模式,采用分层设计的思想来实现。在分层模块设计上,基本上按照FSCB的协议结构,物理层,数据链路层,网络层的脉络。上层模块调用下层模块并加上该层所要实现的功能。在物理层,主要封装成两个模块Inmodule和Outmodule,这两者共同完成FSCB协议中所设计的物理层的工作。前者负责数据接收及相关模块的工作,后者负责数据发送及其相关模块的工作;在数据链路层,用一个Inoutmodule模块来封装,它调用了Inmodule和Outmodule再加上链路层的其他功能;在网路层,主站用Main Protocol,从站用Vice Protocol来封装,它们都调用了数据链路层的Inoutmodule模块,然后再加上网络控制功能[4]。

根据上述FSM的特点,要设计出一个能够实现FSCB协议的FSM,需要找出FSCB协议规定的所有状态,以及各状态之间变化的规则。下面以FSM在物理层的Inmodule、Outmodule模块以及数据链路层的Inoutmodule模块的应用加以说明。

3.2 协议物理层模块

FSCB协议物理层的核心模块是Outmodule,其外围接口如图1所示和模块Inmodule,其外围接口如图2所示。

本模块里包含Idle、SendSync、SendTyte、SendData、Send Ack Y、SendAckN状态,采用有限状态机机制设计,主要功能是检测senddata、sendack_y、sendack_n管脚的跳变。如果senddata有跳变,则调用相关编码模块对outputa[27..0]编码,最后调用并串转换模块按位从data_out端口发送出去。如果sendack_y有跳变,则在会在data_out发送一串特殊的数据帧,sendack_n类似。data_out中发出的数据帧格式如下:

为了节省资源,提高传输效率,握手帧设计得很短,格式如下:

接收模块Inmodule接收到类型位时,只需要判断类型位就可以知道是数据帧,还是接收正确的握手帧,还是接收出错的握手帧。

引脚说明:

outporta[27..0]:输入引脚,要发送的28位数据。

Senddata:输入引脚,发送数据信号,当给它一个跳变时,outport中数据将进行CRC、4b/5b编码,然后从data_out中串行发送。

Sendack_y:输入引脚,发送接收数据正确的握手信号。当给它一个跳变时(正负跳变都可,这样定义主要是为了方便VHDL编程),将有一串特殊的表示数据接收正确的握手帧从data_out中串行发送。

Sendack_n:输入引脚,发送接收数据出错的握手信号。当给它一个跳变时,将有一串特殊的表示数据接收错误的握手帧从data_out中串行发送。

Sendingdata:输出引脚,当正在发送data时,该管脚为高电平,否则为低电平。

Sendingack:输出引脚,当正在发送握手信号时,该管脚为高电平,否则为低电平。

data_out:输出引脚,串行数据输出。

clk:输入引脚,时钟信号。

reset:输入引脚,复位信号,高电平复位。

下面介绍Inmodule模块,它跟Outmodule一起组成物理层的核心模块,共同完成FSCB协议中所规定的物理层的功能。

该模块里面包含Idle、ReceiveSync、ReceiveTyte、Receive Data、ReceiveAckY、ReceiveAckN状态,也采用状态机的方法设计,这些状态跟发送模块是对应的,由于异步模式下缺乏发送端的相位信息,难以保证采样点位于数据的中间位置,即通信“眼图”的中部,该处的数据有足够的保持时间,是最佳判决点,因此该模块主要功能是时刻对data_in端采用5倍频的过采样方法,将介质上传输的数据进行0、1判决,生成接收端数据。当接收到同步信号后,接着对接收到的帧类型进行判断,以确定是数据帧,还是握手帧,如果是接收正确的握手帧,则ack_y的状态会跳变,如果是接收出错的握手帧,则ack_n的状态会发生跳变。如果是数据帧,则对接收到后面的数据调用CRC解码模块进行CRC解码,如果出错,则data_err的状态会发生跳变,如果CRC校验正确,则把调用串并转换模块进行串并转换后的并行数据进行4B/5B解码,然后再inporta端口输出,同时data_ok的状态发生跳变。

3.3 协议数据链路层模块

在数据链路层,封装起来的表示整个数据链路层的模块是Inoutmodule,其外围接口图3所示。

该模块除了把Inmodule、Outmodule封装起来外,还要实现差错控制功能,比如,握手机制的实现,出错重发机制,超时重发机制,经过这些控制后,使得在网络层看来,整个链路是透明的,且是不出错的。

发送的帧的类型有:数据帧、握手帧(接收正确的握手帧和接收错误的握手帧),所以在该模块中必须要解决好它们的互斥和优先级的问题。在本模块中是用状态机的机制来实现的:给数据帧、接收正确握手帧、接收错误握手帧分别给个标志位:sign_data、sign_ack_y、sign_ack_n。当有数据帧要发送时,sign_data置1。当发送完数据帧时,sign_data复位为0,握手帧也一样,模块的状态为:idle、SendingAck_y、SendingAck_n、Sending Data,它们的状态跳转关系如图4所示。

把两个这样的模块连起来,仿真结果如图5所示。从仿真结果可以得出,应用状态机机制设计的Inmodule、Outmodule模块以及Inoutmodule模块的功能全部实现。仿真结果达到预期设计目标。

4 高速串行通信总线在HL—B0408数控系统中的应用

HL-B0408数控系统是本实验室数控团队开发的一款高性能,高精度的数控系统,是基于RTLinux的标准化开放式通用CNC软件系统和基于PC104/FPGA为核心的硬件系统组成。为了检测FSCB协议的有效性,我们将FSCB应用在HL—B0408数控系统中。先进行了单独的FSCB环行网络测试,然后将FSCB应用在数控中。无论是单纯的协议测试还是运行加工代码测试,均在均在两节点通信距离小于20米、以10Mbps的位速率进行通信的条件下,每个测试帧长度均为25字节,在GB/T 13926.4-923级严酷环境下,重复进行协议的通信实时性和可靠性测试,位出错率小于1×10-8,前帧出错率小于1.15×10-7,后帧出错率小于1.15×10-8(等效于在1ms插补周期下、1个子节点时连续运行24小时不出错)。位出错率和帧出错率的测试样本数足够,保证了测试的真实性。结果表明,该协议及总线能够稳定运行,总线的可靠性及可用性得到证明。

5 结束语

高速串行通信总线(FSCB)已经向国家知识产权局申请发明专利,其通信协议按照模块化划分,其中基于有限状态机的Inmodule和Outmodul模块已经经过实际的大量测试,可以做为软IP核在以后的设计中直接使用。FSCB应用到传统CNC系统HL-B0408中,并进行调试,稳定的测试结果表明,FSCB协议是可行的,基于FSCB设计出来的环形通信总线是能实现预先设定的通信指标的。该总线底层通信的成功测试,为下一步的总线接口设计打下了坚实的基础。

参考文献

[1]郇极.CNC系统数字伺服接口协议SERCOS[J].制造业自动化,1997(2):33-35.

[2]陈卫福,杨建武.开放式数控系统及SERCOS接口应用技术[M].北京:机械工业出版社,2003.

[3]李霞,王永章,梁宏斌等.有限状态机在开放式数控系统中的应用[J].计算机集成制造系统,2005(3):428-432.

高速串行总线 篇3

1 故障现象

某数控机床开机发生软件报警, 经检查是伺服串行总线报警。一般来说, 出现此报警是由于连接数控机床 (CNC) 和伺服FSSB的环节发生故障, 引起连接轴控制卡的FSSB、光缆和伺服放大器出现问题, 如果请设备生产厂家来修理, 不仅周期长, 而且费用大。

2 分析和判断故障的位置

2.1 使用伺服放大器上的LED判断

使用伺服放大器上的7段LED可以确认故障的位置, FANUC系统FSSB的连接如图1所示:

如果虚线所示的A部分出现了故障, 伺服放大器上的LED显示则如图2所示。根据显示情况, 分析如下:

(1) 检查那些LED显示为“L”或“–”的到那些LED显示为“U”的伺服放大器之间的连接光缆, 判断图1中A部分的连接光缆有接触不良。

(2) 检查那些LED显示为“L”或“–”的到那些LED显示为“U”的伺服放大器两侧的任何一个放大器, 判断图1中放大器2或3中必有一个出现了故障。

(3) 如果图1中虚线所示的B部分出现了故障, 伺服放大器上LED的显示如图3所示。

这种情况, 一般是检查连接到CNC的光缆, 根据经验多是图1中B部分的连接光缆出现接触不良。应进一步检查CNC中的轴控制卡与插槽找出故障。

还遇到的一种情况是, 放大器上的7段LED显示为B部分出现了故障, 由于当时没有轴控制卡, 在更换了CNC光缆和第1个伺服放大器后报警依然出现, 在购买了轴控制卡并把新卡换上后报警消除, 由此可见故障出现在轴控制卡上。

2.2 根据CNC 画面上的显示判断

如果发生了926报警, 信息就会显示在CNC画面的底部, 如图4所示, 根据该信息也可以确认故障的位置。

MODE信息的12~15位显示了报警驱动部分的号码, 离CNC最近的单元 (如伺服放大器) 被系统认定驱动号码位为“0”。例如, 对于一个2轴放大器, 第1轴放大器号码被认定为“0”, 第2轴放大器号码被认定为“1”。MODE信息的详情如图5所示。

结合使用STATUS信息位, 故障就能够被定位。STATUS信息详情如图6所示, 根据STATUS的信息样式, 判断如下。

(1) 图6中如果STATUS信息的样式为A, 则可能出现下列3种情况:

①MODE信息中的第12位到第15位对应的从属部分, 以及前级的从属部分的连接光缆可能不良;或者光缆两侧的从属部分 (伺服放大器) 可能出现故障;②伺服放大器的电源电压下降, 或者放大器的电源出现故障;③CNC侧的轴控制卡可能出现故障。

(2) 图6中如果STATUS信息的样式为B, 则可能出现下列两种情况:

①MODE信息中的第12位到第15位对应的从属部分, 以及前级的从属部分的连接光缆可能不良;或者光缆两侧的从属部分 (伺服放大器) 可能出现故障;②伺服放大器的电源电压下降, 或者放大器的电源出现故障。

(3) 图6中如果STATUS信息的样式为C, 则可能出现下列两种情况:

①MODE信息中的第12位到第15位对应的从属部分可能出现故障;②伺服放大器的电源电压下降, 或者放大器的电源出现故障。

在本例遇到的这台FANUC 0i-c系统数控机床在926报警发生时出现的MODE和STATUS报警信息如下:

该报警的MODE信息是“0”号轴放大器, STATUS信息的样式为A。在排除了光缆和“0”号轴放大器故障的可能性后, 基本可以把故障定位在轴控制卡上, 因为放大器的电源如果出现故障的话, 那么在放大器电源模块上的LED也会出现相应的报警。另外, 在定位这个故障时也可以综合利用如图7所示的主板上的报警信息, 把故障部位进一步确定。

在报警发生时主板上的报警指示为SVALM和SEMG红色灯亮, 其余为绿色, 可见是系统内部的硬件发生了故障。根据以上的分析就可以把故障发生的部位准确定位在轴控制卡上, 在排除了轴控制卡插槽没有接触不良的情况后, 更换轴控制卡就可以消除该报警。注意在更换轴控制卡后, 系统的轴数据一般已经丢失, 所以在更换了轴控制卡后, 还必须利用系统的1815参数重新建立各个轴的机械坐标原点, 否则系统在开机时会出现原点复归要求的报警。

摘要:数控设备是现代制造业的关键设备, 数控系统中FANUC系统是主流。通过对FANUC系统报警中比较典型而又较难诊断的情况进行总结, 可以为类似应用提供参考。

高速串行总线 篇4

单片机的系统扩展包括并行扩展和串行扩展,串行扩展占用I/O口少、电路简单,从而能有效缩小硬件体积、降低功耗,近年来得到了广泛应用。除了早期传统的UART串行口以外,后来陆续出现了I2C、SPI、1-WIRE等标准串行总线和用于单片机的CAN和USB标准串行总线[1],另外还出现了一些专用非标准的三线串行总线。51系列单片机的串行系统扩展通常采用串行同步传输方式,用几个并行I/O口虚拟串行口的时序和运行状态,在单片机上构建模拟的串行口,亦即严格遵循数据传输时序设计数据传输子程序,设计时常用到软件延时方法,一定要精确设计延时时间[2]。三线串行总线器件一般使用时钟信号线、数据I/O线和片选/复位线进行半双工串行数据传输,但不同器件传输时序各不相同,没有统一标准,编程时需要分别对待。

2 三线串行总线时钟芯片DS1302

时钟芯片DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路[3],它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8bit的用于临时性存放数据的RAM寄存器。

2.1 DS1302的结构和引脚功能

DS1302结构如图1所示,引脚功能简介如下:

(1)VCC2:主电源。

(2)VCC1:后备电源,在主电源关闭的情况下保持时钟的连续运行,主电源打开时DS1302由Vcc1或Vcc2两者中的较大者供电。

(3)X1、X2:振荡源,外接32.768KHz晶振。

(4)GND:电源地。

(5)RST:复位/片选线,置高电平启动数据传送,允许地址/命令序列送入移位寄存器,在传送过程中RST置低时终止数据传送,I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。

(6)I/O:串行数据输入输出端(双向)。

(7)SCLK:时钟信号输入端。

2.2 DS1302的读写时序

除了电源和接地,DS1302只有三根线SCLK、I/O和RST和单片机连接。每进行一次读写操作最少需要读写两个字节,第一个字节是控制字,第二个字节是要读、写的数据。读写数据时按从低位到高位的顺序进行。

向DS1302写一个字节数据的时序如图2所示:先将RST置高、SCLK置低,然后单片机将控制字的位0放到I/O线上,当I/O线的数据稳定后,将SCLK置高电平,DS1302检测到SCLK的上升沿后就将I/O线上的数据读取,然后单片机将SCLK置低,再将控制字的位1放到I/O线上,如此反复,将一个字节控制字的8个位传给DS1302。接下来就是传一个字节的数据给DS1302,当传完数据后,单片机将RST置为低电平,操作结束。

从DS1302读一个字节数据的时序如图3所示。读操作开始写控制字的过程和上面的写操作一样,但是单字节读操作在写控制字的最后一个位,SCLK还在高电平时,DS1302就将数据放到I/O线上,单片机将SCLK置为低电平后数据锁存,单机机就可以读取I/O线上的数据。如此反复,将一个字节的数据读入单片机。

读与写操作的不同在于:写操作在SCLK低电平时单片机将数据放到I/O线上,在SCLK置高的上升沿后,将数据写入DS1302;而读操作在SCLK高电平时DS1302把数据放到I/O线上,在SCLK置低的下降沿后,单片机从I/O线上读取数据。

2.3 DS1302的数据读、写子程序

(1)向DS1302写一个字节数据子程序wr1b

(2)从DS1302读一个字节数据子程序rd1b

3. D/A转换芯片TLC5615CP

3.1 TLC5615CP芯片的引脚

D/A转换芯片TLC5615CP是美国TI公司生产的8脚直插式串行10位DAC芯片[4],其引脚分布如图4所示,各引脚功能如下:

(1)DIN:串行二进制数据输入端。

(2)SCLK:串行时钟输入端,用于控制TLC5615CP的时序。

(3):片选端,低电平有效。

(4)DOUT:用于级联的串行数据输出,用于接另一个TLC5615CP的DIN引脚。

(5)AGND:模拟地。

(6)REFIN:基准电压输入端。

(7)OUT:DAC模拟电压输出端。

(8)Vcc:电源正极。

3.2 TLC5615CP主要技术参数

(1)工作电压:5V。

(2)分辩率:10位。

(3)转换时间:12.5us。

(4)输出类型:电压。

(5)通道数:1。

(6)外部输入基准电压:推荐2V~(VDD-2)。

(7)最大模拟输出电压:2×基准电压。

3.3 TLC5615CP的内部寄存器

(1)16位移位寄存器:存放串行输入的16位二进制数据,16位二进制数据的结构,如表1所示。

其中:最高4位虚拟数据任意且不用传送,最低2位填充数据任意但需要传送,所以,进行D/A转换时实际传送的数据为12位,高位在前。

(2)10位DAC寄存器:串行输入的12位二进制数据进入16位移位寄存器后,将其中10位有效数据送入DAC寄存器锁存,供DAC电路进行转换。

3.4 TLC5615工作时序

TLC5615的工作时序如图5所示,当为低电平时,在每一个SCLK时钟的上升沿将DIN输入的一位数据移入16位移寄存器(高位在前),在下降沿将该位数据送DOUT输出给另一个TLC5615CP的DIN引脚(如果有的话),12位数据移完后,在的上升沿将16位移位寄存器的10位有效数据锁存于10位DAC寄存器,供DAC电路进行转换(转换时间为12.5us)。注意,的上升和下降沿都必须发生在SCLK为低电平期间。

3.5 D/A转换子程序dac

把10位有效数据加任意2位填充位送TLC5615CP进行D/A转换。

4 A/D转换芯片TLC549CP

4.1 TLC549CP芯片的引脚

A/D转换芯片TLC549CP是美国TI公司(德州仪器公司)生产的8脚直插式串行8位ADC芯片[5],其引脚分布如图6所示,各引脚功能如下:

(1)REF+:基准电压正极。

(2)ANALOG IN:模拟量输入端。

(3)REF-:基准电压负极。

(4)GND:电源地。

(5):片选端,低电平有效。

(6)DOUT:数字量串行输出端。

(7)SCLK:串行时钟输入端,用于控制TLC549CP的时序。

(8)VCC:电源正极。

4.2 TLC549CP的主要技术参数

(1)工作电压VCC:3~6V。

(2)分辩率:8位。

(3)转换时间:17us。

(4)通道数:1。

(5)外部输入基准电压:REF+:2.5V~VCC+0.1,REF-:-0.1~2.5V。

(6)量程:0V~VCC,但输入≥REF+时转换为0FFH,输入≤REF-时转换为00H。

4.3 TLC549CP的工作时序

TLC549的工作时序如图7所示,先初始化:置高、SCLK置低;此后当变为低电平后等待1.4us以上,前次转换结果的最高有效位MSB自DOUT端输出,接着要求自SCLK端输入8个时钟信号,前7个时钟信号的下降沿输出前次转换结果的第6-0位并在第4个信号的下降沿后,片内采样/保持电路对输入模拟量开始采样,第8个时钟信号的下降沿使片内采样/保持电路进入保持状态并启动A/D转换,转换时间为36个系统时钟周期,最大为17us,在这段时间内,要求保持高电平或者SCLK保持低电平。

4.4 A/D转换子程序adc

摘要:在单片机的串行总线扩展中,时钟芯片DS1302、D/A转换芯片TLC5615CP、A/D转换芯片TLC549CP等是常用的三线串行总线器件,它们都使用时钟信号线、数据I/O线和片选/复位线进行半双工同步串行数据传输,但数据传输时序各不相同,在单片机上它们的虚拟串行接口需分别独立设计,设计时要严格遵循器件的数据传输时序。

关键词:单片机,串行总线,虚拟接口,DS1302,TLC5615CP,TLC549CP

参考文献

[1]欧伟明,等.单片机原理与应用系统设计[M].北京:电子工业出版社,2009.

[2]张江印.51系列单片机软件延时的计算方法[J].电脑编程技巧与维护,2011,8:82-84.

[3]姚德法,张洪林.串行时钟芯片DS1302的原理与使用[J].信息技术与信息化,2006,(13)1:45-49.

[4]http://focus.ti.com.cn/cn/lit/ds/symlink/tlc549.pdf.

高速串行总线 篇5

中央空调机组大致分为3种形式:冷水机组、风管送风式空调 (热泵) 机组、多联空调 (热泵) 机组。其中, 多联中央空调机组以安装方便、性价比高和可靠性高等优点获得了中央空调市场60%以上的份额。多联中央空调机组系统庞大, 一般由3台~4台室外机组及多达几十台室内机组组成。这种系统需要电脑实时监控, 其功能复杂、控制量多, 单只单片机控制芯片根本无法完成设定的控制要求。基于这种情况, 通常需要多个单片机互相协作才能完成任务。单片机串行总线通信协议接口因硬件设计简单、控制方便、成本低廉等优点正适用于这种场合。本文针对单片机串行总线通信协议的特点, 在多联中央空调机组控制器的设计方面进行简要讨论。

1串行总线通信协议

常用的单片机串行总线通信协议一般有SPI、I2C和UART 3种。SPI (Serial Peripheral Interface, 串行外设接口) 是一种允许一个主设备启动一个从设备的同步通信的协议;I2C (Inter-Integrated Circuit Bus, IC之间总线) 是一种双向两线串行总线, 用于连接微控制器及其外围设备, 能方便地实现芯片间的数据传输与控制的双向、两线串行、多主控接口标准;UART (Universal Asynchronous Receiver Transmitter, 通用异步收发器) 总线是异步串口, 因此比前两种同步串口的结构要复杂很多, 一般由波特率产生器、UART接收器、UART发送器组成, 硬件上由两根线用于发送和接收。

比较这3种单片机串行总线通信协议可知:SPI实现要简单一些, UART需要固定的波特率, 就是说两位数据的间隔要相等, 而SPI则不需要, 因为它是有时钟的协议;SPI接口和UART相比, 多了一条同步时钟线, 对通信双方的时序要求不严格, 不同设备之间可以很容易结合, 而且通信速度非常快, 一般在产品内部元件之间的高速数据通信上使用, 如大容量存储器等;I2C的速度比SPI慢一点, 协议比SPI复杂一点, 但是连线也比标准的SPI要少。

2多联中央空调机组通信控制电路的设计

本设计在室外主控制板上设置了两只单片机。系统需完成以下通信任务:①室外主控板与几十台室内机组控制板的通信;②室外机组主控板之间的通信;③室外机组主控板与监控电脑之间的通信;④室外机组主控板两只单片机之间的通信。其中, 通信任务①、②、③采用UART异步通信总线, 各机组间电气连接采用RS-485串行接口;通信任务④采用了I2C串行总线通信方式。

另外, 室外机组主控板选用了两片FUSITON公司的95F108AMS芯片。95F108AMS具有强大的通信功能包括两路UART总线异步串口以及一路I2C总线。下面以室外机组主控板两只单片机之间的通信为例, 设计出的控制电路见图1, 并定义主单片机DEVICE1为主机MASTER, 单片机DEVICE2为从机SLAVER。图1中SCL和SDA线为漏极开路结构, 所以闲置时必须为高电平, 因此连接到I2C总线的所有器件需要一个连接上拉电阻器的漏极开路或开路集电极输出。鉴于“I2C总线协议”中的规定:在供电电压大于2 V, 灌电流为3 mA时, 输出低电平不高于0.4 V。在本电路中供电电压为5 V±5%, 因而上拉电阻Rp的最小值为 (5.05-0.4) /0.003=1.6 kΩ。在快速模式中SDA、SCL信号从低到高的过渡时间应该不大于300 ns, 95F108端口输出电容为15 pF, 因而上拉电阻Rp的最大值为300/ (0.7×15×3) =9.52 kΩ。在本电路中, 上拉电阻Rp取值为5 kΩ。

3控制软件的设计

I2C总线是由数据线SDA和时钟SCL构成的串行总线, 可发送和接收数据。I2C总线上并接的每一器件既是主控器 (或被控器) , 又是发送器 (或接收器) , 这取决于它所要完成的功能。CPU发出的控制信号分为地址码和控制量两部分, 地址码用来选址, 即接通需要控制的器件, 控制量决定需要通信的内容。各器件虽然挂在同一条总线上, 却彼此独立, 互不相关。

I2C总线在传送数据过程中共有3种类型信号:启动信号、停止信号和应答信号。启动信号:SCL为高电平时, SDA由高电平向低电平跳变, 开始传送数据。停止信号:SCL为高电平时, SDA由低电平向高电平跳变, 结束传送数据。应答信号:接收数据的IC在接收到8 bit数据后, 向发送数据的IC发出特定的低电平脉冲, 表示已收到数据。CPU向受控器件发出一个信号后, 等待受控器件发出一个应答信号, CPU接收到应答信号后, 根据实际情况作出是否继续传递信号的判断。若未收到应答信号, 可判断为受控器件出现故障。

I2C规程运用主/从双向通信, 器件发送数据到总线上则定义为发送器, 器件接收数据则定义为接收器, 主器件和从器件都可以工作于接收和发送状态。本设计中总线必须由主单片机 (MASTER) 控制, 主单片机产生串行时钟 (SCL) 控制总线的传输方向, 并产生启动和停止信号。SDA线上的数据状态仅在SCL为低电平期间才能改变, SCL为高电平的期间, SDA状态的改变被用来表示启动和停止信号, 参见图2。其中, MSB为8 bit数据的最高有效位, LSB为8 bit数据的最低有效位。

当SCL为高电平, SDA从高电平变为低电平, 即发出了一个开始命令, 启动I2C通信。每个SCL时钟传输一个数据位, 传输一个字节至少需要9个数据位。一个写周期包括8个数据位和一个应答位 (ACK) 或者非应答位 (NACK) 。当数据在I2C总线上传输时, 在SCL的上升沿写入从机, 在SCL的下降沿从机输出。在SCL时钟周期为高电平时, SDA线的数据不可以改变。数据传送完毕, 由主机发出停止信号, SDA在SCL高电平期间由低电平跳变为高电平。当总线空闲时, SDA和SCL都为高电平。

设定室外机组主控板两片单片机中一只为主控 (MASTER) 芯片, 另一只为从控 (SLAVER) 芯片, 正常通信前主机及从机程序均要先经过初始化的过程。

本设计中主单片机与从单片机的数据交换均通过I2C总线中断服务程序自动进行。将I2C总线设定为允许数据传输完成中断, 每发送/接收完一组数据则自动进入中断服务程序进行数据处理。为保证通信的可靠性, 单片机接收的每一祯数据都要进行校验, 经校验正确后的数据才有效。主单片机通信数据的处理流程框图见图3。从单片机通信中断服务程序处理框图见图4。

由于采用半双工通信, 发送和接收共用同一物理信道, 在任意时刻只允许一片单片机处于发送状态。因此要求应答的单片机必须在侦听到总线上呼叫信号已经发送完毕, 并且没有其他单片机发出应答信号的情况下才能应答。在本设计中, 这些都是由单片机I2C总线电路自动完成, 设计者只需做好I2C总线控制寄存器相关标志的设置。

4结束语

利用单片机串行总线通信协议对多联中央空调机组的通信控制电路进行设计, 能方便用户对系统的灵活控制, 提高工作效率。另外, 还可以利用单片机串行总线通信协议对多联中央空调机组进行产品功能升级, 比如可设计集中控制器对多组室外机组进行集中控制 (方便用户控制多台室内机组) 或者利用RS485-232转换器将空调控制系统与电脑相连, 利用电脑控制界面对多联中央空调机组系统运行情况进行集中监控。

摘要:讨论了串行总线通信协议在多联中央空调机组上的一种应用, 简要介绍了串行总线通信协议的几种方式及各自的特点, 并主要讨论了基于I2C总线的双机通信硬件电路、通信软件的设计。

关键词:串行总线通信协议,通信硬件电路,软件,多联中央空调机组

参考文献

[1]周立功.LPC 900系列Flash单片机应用技术[M].北京:北京航空航天大学出版社, 2003.

[2]邬宽明.单片机外围器件实用手册:数据传输接口器件分册[M].北京:北京航空航天大学出版社, 2005.

[3]何立民.单片机应用技术选编[M].北京:北京航空航天大学出版社, 2000.

高速串行总线 篇6

关键词:Anybus串行网关,Profibus现场总线,HOLLIASMACS系统

0 引言

Profibus-DP主要应用于生产自动化领域,通过集中式的控制器对分布式的仪器仪表和执行器进行数据采集与控制,满足工厂分布式I/O与现场设备之间所需要的高速数据通信;Profibus-PA主要应用于过程自动化领域,适用于安全性要求比较高及总线供电的场合;Profibus-FMS一般应用于车间级通信网络。

Anybus是HMS公司的产品,包括3个主要产品系列:嵌入式产品、网关产品和PC接口卡。Anybus串行网关可将任何具有串口的自动化设备接入现场总线和工业以太网系统,同时支持RS-232、RS-422和RS-485串口,无须对硬件进行任何修改。网关作为串行协议和工业网络之间的一种智能转换设备,具有灵活性和可配置性。

1 HOLLIAS MACS系统网络拓扑结构

1.1 HOLLIAS MACS系统网络

HOLLIAS MACS系统由上下2个网络层次组成(见图1):监控网络(SNET)和控制网络(CNET)。监控网络主要用于工程师站、操作员站和现场控制站的通信连接;控制网络存在于各个现场控制站内部,主要用于主控单元和智能I/O单元的通信连接,由DP主站(DPU)、DP从站(I/O模块、远程I/O、第三方DP设备、PA仪表等)组成。

1.2 控制网络

控制网络是整个控制系统的基础,它是总线型网络拓扑结构,控制器模块、I/O模块均带有双通道DP收发器,通过机笼背板串行连接,根据I/O模块的数量可以扩展多个I/O机笼,机笼带有冗余的DP接入口,供第三方DP设备接入。控制器作为Profibus-DP主站,I/O模块、第三方DP设备(PLC、变频器、智能马达控制器、DP/PA连接器等)作为Profibus-DP从站。

第三方DP设备的接入,同I/O模块接入主控制器类似。首先把第三方DP设备GSD文件(由第三方DP设备厂家提供)拷贝到工程师站(见图2),然后配置通信双方的通信地址、通信区大小、通信数据类型、通信速率等参数即可实现。

2 Anybus串行网关

使用配套的软件“ABC Config Tool”配置工具可以实现两种协议之间的数据采集和控制,具体配置要根据所连接的串行设备协议和数据映射关系进行组态和调试,配置的流程如图3所示。

3 通信实例

石西油田作业区石南31转油站DPC2804-JX型天然气发动机-压缩机组,其PLC控制系统由Rockwell公司的MicroLogix1500 PLC、采集模块、PanelView触摸屏及一系列优质低压电器组成;Floboss 103作为单回路流量计量,通常配合孔板使用,能够准确可靠地进行天然气流量计算、数据归档和远程通信。它们均采用RS-485通信链路、Modbus RTU通信协议进行数据上传。DCS系统控制器为和利时FM801模块,作为DP主站,通过Anybus串行网关(作为DP从站)实现Modbus RTU与Profibus-DP两种通信协议之间数据采集和控制,如图4所示。

以压缩机PLC为例:

(1)硬件连接:在控制柜中安装Anybus串行网关,建立Anybus串行网关与压缩机PLC、DCS系统Profibus-DP控制网络的物理电路连接,以及Anybus串行网关供电连接。

(2)作好压缩机PLC通信数据的记录,建立PLC通信数据格式表、检查通信地址、波特率等工作。

(3)Anybus串行网关上电,检查指示灯是否正常。首先配置Anybus串行网关读写压缩机通信数据格式,测试正常,然后进行Anybus串行网关Profibus-DP总线配置。

(4)DCS系统备份:拷贝HMS_1803.gsd文件到工程师站相应的目录下,进行Conmaker和FacView工程组态,编译和调试正常,进行程序的下装。

(5)调试:检查DCS系统各模块指示灯是否正常,Anybus串行网关指示灯是否正常,工程师站监控数据是否正常。以上检查均正常后进行下一步,如果不正常,检查原因,并下装系统备份程序。

(6)测试:和现场压缩机数据比对,正常后,投入运行。

(7)注意事项:RS-485通信链路必须采用专用的屏蔽双绞线传输,通信距离不能超过3000m,否则,需要加中继器,进行信号的放大和处理,同时考虑最远端从设备的收发端加终端电阻;对于Anybus串行网关与压缩机PLC、DCS系统Profibus-DP控制网络的物理电路连接,先连接压缩机PLC,配置正常后,再接入DCS系统ProfibusDP控制网络层;DCS系统控制算法组态程序下装到控制器要进行相应的风险辨识(属于全部下装还是增量下装),全部下装会造成控制器复位,所有变量重置为初始值,严重影响现场生产装置的正常运行,而增量下装属于无扰动下装,不会造成控制器复位,对现场生产无影响。

4 结语

Anybus将现场总线抽象成3个组成部分:数据交互、配置、控制。将各种各样的现场总线通过Anybus将其进行封装,提供给应用程序一个统一的接口,降低了项目开发的风险,加快了项目开发的速度。Profibus现场总线具有高速、稳定、传输精度高、开放性好、现场布线少,易于维护等特点,受到用户的青睐。为了满足现场安全生产的需要,石西油田油气处理系统中的设备、装置都自带稳定可靠的PLC子系统,通过Anybus串行网关实现通信协议之间的转换,在DCS系统中实现数据采集和控制,满足安全生产的需要。第三方的设备或装置的数据从和利时DCS系统控制网络层接入。

参考文献

高速串行总线 篇7

1 系统硬件设计

本文研究的是一种基于TLK2711的高速串行传输方案, 在实现高速实时数据传输的基础上进行数据信号处理。系统中的关键组成部分包括PCI Express总线接口模块、FPGA数据处理控制模块、DDR3 SDRAM存储模块以及TLK2711高速串/并转换接口模块, 系统框图如图1所示。系统的工作原理:发送端PC通过PCI Express总线接口与发送板进行数据通信, 将PC模拟的卫星成像数据源通过缓存DDR3 SDRAM由TLK2711高速串/并转接口发送给数据信号处理器;经过数据信号处理器处理的数据再通过TLK2711高速串/并转接口发送给接收板, 接收板通过缓存DDR3 SDRAM由PCI Express总线接口上传给接收端PC, 最后在接收端PC中进行数据校验和相应处理。

2 系统逻辑设计

2.1 总体逻辑设计

作为系统的控制核心, FPGA起着前端TLK2711发送/接收控制、数据链路多路转换控制、DDR3 SDRAM控制器、PCI Express总线DMA传输控制的作用。发送端的PC将数据源在发送板总线主控DMA控制器的控制下, 通过PCIE-8x通道将数据传入FPGA存储到片外的DDR3 SDRAM, FPGA通过内部逻辑对DDR3 SDRAM中缓存的数据进行必要的时序控制和相关处理, 处理过后的并行数据流在FPGA内部进行重组, 形成满足TLK2711数据格式要求的16 bit数据流。这个过程主要是同步字符、帧头、帧尾以及控制信号的添加等。TLK2711根据参考时钟对输入的并行数据进行8B/10B编码, 然后以20倍的参考时钟频率将数据以高速差分串行输出的方式通过铜缆传送给数据信号处理器。

经过数据信号处理器处理过的数据以串行差分方式通过铜缆传送给接收板的TLK2711, TLK2711在参考时钟下完成高速串行输入数据的串/并转换, 转换后的20 bit并行数据经过内部同步到恢复时钟, 然后利用8B/10B解码格式将20 bit并行数据解码为原始的16 bit并行数据输出到FPGA进行数据处理, FPGA通过内部逻辑对高速数据进行必要的时序控制和相关处理。这个过程主要是去除帧头、帧尾、同步字符, 同时检测控制信号并对数据进行处理。处理过后的数据缓存到片外的DDR3 SDRAM, 在总线主控DMA控制器的控制下, 通过PCIE-8x通道将缓存的数据写入计算机硬盘。FPGA内部逻辑示意图如图2所示。

2.2 TLK2711传输协议

TLK2711高速串行协议是一种基于点对点的单工协议, 它以16 bit为一个基本的传输单位, 数据被分成了高8位和低8位, 因此每个控制字符都定义成了2 B (分别由D码和K码组成) , 编码方式由2个控制信号TKMSB/RKMSB和TKLSB/RKLSB决定。协议的工作过程如图3所示。

系统上电或复位后, 收发双方处于失步状态 (在发送端复位后要保证接收端已处于接收状态) , 发送端首先发送同步字符且时间长度不小于1 ms, 1 ms结束后认为系统完成同步过程, 发送端开始数据帧的发送。在每一帧数据发送结束后和下一帧数据开始发送前, 发送端要发送同步字符来保持数据传输链路的同步状态。在同步状态建立后, 接收端不断检测输出控制信号RKLSB和RKMSB, 根据RKLSB和RKMSB的状态判断数据类型, 舍去帧头、帧尾和同步字符, 锁存真正需要的数据。接收端在数据帧传输过程中如果失步, 则依靠数据帧间的同步字符重新建立起收发间的同步关系, 同步关系建立后立刻转入正常数据接收状态。根据协议工作过程, 定义TLK2711芯片用作发送通路时的6个状态分别是:空闲、建立同步、发送帧头、发送数据、发送帧尾、发送同步字符, 其发送通路的状态转换如图4所示。

2.3 带宽动态分配

系统采用6片TLK2711并行工作, 接收端要根据发送端的速率适时调整接收端TLK2711的工作数量, 以实现带宽的动态分配。当接收端的6片TLK2711同时接收数据时, FPGA需要在一个时钟周期内将96 bit并行数据转换为与PCI Express总线位宽匹配的64 bit并行数据, 然后才能进行相应处理。考虑到调用FPGA内部的RAM IP核或者FIFO IP核无法实现该位宽转换, 因此设计了一个输入位宽可变的RAM来处理数据位宽, 从而实现接收端TLK2711工作数量可调。

首先FPGA在接收板TLK2711的恢复时钟下将重构的并行数据锁存一个周期, 然后根据伴随着数据流的输入控制信号判断是否有有效数据到来, 当接收到有效数据后, 将数据写入异步FIFO进行不同时钟域的数据处理。当一个信号从一个时钟域传递到另外一个时钟域时经常会出现亚稳态问题, 解决这一问题可以使用一个异步FIFO使得另外一个时钟域的信号足够稳定。将接收端TLK2711从串行数据流中提取的恢复时钟作为FIFO的写时钟, 将PCIE总线250 MHz分频产生一个同相的125 MHz时钟作为FIFO的读时钟。当FIFO半满信号有效时, 读写控制逻辑开始将FIFO中的数据读出来作为位宽可调的RAM的输入, 从而实现位宽转换。该RAM的接口如图5所示, 其中adjust为通道选择信号, wr为异步FIFO的读使能。

考虑到RAM的读写时钟以及输入/输出数据位宽, 可以发现RAM的写数据速度远小于其读取数据的速度, 故系统采用乒乓操作对接收板TLK2711的数据进行处理。FIFO读出的数据首先写进ram0, ram0写满之后开始向ram1写数据, 同时将ram0写入的数据读取出来。由于ram的写数据速度远小于其读取数据的速度, 所以当ram0中的数据读取完时ram1还未写满, 此时ram0停止读取数据并且处于等待状态直至ram1中写满数据。当ram1中写满数据时开始写ram0, 同时紧接着读取ram1中的数据。同理, 当ram1中的数据读取完时ram0还未写满, 所以此时ram1同样停止读取数据并且处于等待状态, 直至ram0中满数据。当ram0写满数据时, 立即开始写ram1读取ram0中的数据, 如此循环。该乒乓操作示意图如图6所示。

按照设计思路将模块功能在Xilinx公司的FPGA设计平台ISE 14.2上进行代码编译综合、功能仿真和时序仿真等, 通过JTAG口将程序下载到FPGA中进行实际运行, 然后利用ISE 14.2自带的逻辑分析仪采集所要观察的数据信号并进行在线调试。图7为使用ISE 14.2中Chipscope采集的对单通道TLK2711接收到的数据进行不同时钟域处理和乒乓操作的时序图。从图中可以看出整个工作情况与以上描述一致, 证明该模块从代码设计和时序约束到功能实现全部通过, 数据传输速率在TLK2711芯片内可以达到194.74 MB/s。

2.4 设计中应注意的问题

高速数据传输系统要求有高稳定性和高精度的时钟源, 抖动和频偏是衡量时钟源的两个重要指标。TLK2711内部对输入参考时钟进行20倍频, 同时TLK2711的时钟稳定度要求小于±10 ppm, 在设计时不能使用FPGA内部的MMCM模块倍频生成参考时钟。因为经过MMCM模块倍频的时钟容易引起比较大的抖动, 导致TLK2711接收锁相环无法稳定地锁定发送时钟从而产生误码。考虑到时序的设计要求, 系统选用125 MHz的有源晶振作为TLK2711的时钟源, 并将其输出时钟接至FPGA的全局时钟引脚, 同时使用IBUFG+BUFG对该全局时钟进行处理后作为6路TLK2711的输入参考时钟。为了保证高速差分信号的传输质量, 差分线对的两根线应尽可能靠近并且远离其他信号, 在进行PCB布线时, TLK2711的16 bit并行总线与伴随时钟也要进行等长处理, 以保证输入数据的同步和一致性[3,4,5]。

对于高速串化解串器TLK2711, 当它只用作发送通路时, 应将LCKREFN引脚置低, 这样接收通道的RXD[0:15]、RXCLK、RKLSB、RKMSB等引脚都会处于高阻抗状态;当只用作接收通路时, 发送端不用的TXD[0:15]、TKLSB、TKMSB等引脚应当拉高或拉低使其处于一个稳定的状态。

基于TLK2711的高速串行传输系统的设计大大降低了高速数据传输过程中的互联复杂程度, 同时保证了信号传输的实时性和准确性。基于此设计的6通道串行传输系统工作稳定可靠, 各项指标达到设计要求。本系统创新点在于采用输入位宽可调的RAM对接收端进行带宽动态分配, 对于解决高速多通道TLK2711的串行传输系统设计有较高的参考价值。

参考文献

[1]任建岳.空间光学遥感器专题文章导读[J].光学精密工程, 2008, 16 (10) :1852-1852.

[2]曹小涛, 徐抒岩, 赵运隆.空间相机连续调焦地面仿真测试系统设计[J].液晶与显示, 2011, 26 (3) :409-412.

[3]张达, 徐抒岩.高速CCD图像数据光纤传输系统[J].光学精密工程, 2009, 17 (3) :670-675.

[4]Texas Instruments.TLK2711 1.6 to 2.7 Gb/s transceiver datasheet[Z].2001.

上一篇:新生特点下一篇:乡镇农机安全