高速通讯总线

2024-08-02

高速通讯总线(精选四篇)

高速通讯总线 篇1

车主反映, 事故发生后, 发动机是能够起动的, 现在碰撞外观修好了, 发动机倒不能起动了, 于是产生维修纠纷。因此车主把车转到我维修厂进行鉴定维修。

接车后, 技术人员对故障现象进行验证, 发现故障现象正如驾驶员所述, 发动机起动2s后自动熄火, 并且防盗报警灯无显示。于是技术人员用诊断仪对电控系统进行检测。在发动机控制系统能读到2个故障码, 分别是:18056表示动力系统数据总线通讯失败, 17978表示发动机控制单元被防盗控制单元闭锁。发动机控制系统显示的故障信息如图1所示。

由于怀疑防盗系统故障, 对仪表和网关控制系统也进行了检测, 在中央仪表控制单元和网关控制器内存有01312号故障码, 表示动力系统数据总线有故障或有缺陷。仪表控制单元和网关控制器读到的故障信息如图2所示。

由于发动机不能起动, 因此也无法对动态数据流进行分析。接下来, 技术人员查阅帕萨特B5 1.8T轿车相关资料, 发现该车是采用CAN-Bus总线与多路信息传输系统控制的车辆, 整车有2套总线网络系统, 一套动力系统总线, 一套舒适系统总线。动力系统总线连接发动机控制单元、仪表控制单元、ABS控制单元、电子转向器控制单元、安全气囊控制单元和自动变速器控制单元, 采用总线型接法 (如图3所示) , 经常在200~300k Bps速率下工作, 为高速网。舒适系统总线连接中央控制器、电控坐椅控制、自动空调控制器以及音响控制器等, 常在70~80k Bps速率下工作, 为低速网。

目前在3个控制器内存有与网络有关的3个故障码, 分别在发动机控制单元有18056和17978号故障码, 表明动力系统数据总线通讯失败和发动机控制单元被防盗控制单元闭锁。在仪表与网关控制器内存有同样的01312号故障码, 表示动力系统数据总线有故障或缺陷 (即数据通讯质量不好) 。根据所有电控单元存储的故障码分析, 该故障应属于CAN总线系统链路故障。而帕萨特B51.8T轿车的防盗控制器便安装在仪表总成内, 若仪表控制单元与发动机电控单元因链路中断而不能通讯, 就会发生“发动机控制单元被防盗控制单元闭锁”的故障, 发动机也不能起动。因此应当重点检查仪表控制单元到发动机控制单元的网络通讯链路。

发动机控制单元安装在挡风玻璃下面, 与仪表总成很近。拆下仪表台外壳, 沿仪表总成连接线束向下查找, 发现高位网线在发动机舱与驾驶舱的连接防火墙线孔处, 表皮有磨损并与车身搭铁。用胶带缠绕修复磨损的高速网线表皮, 重新在线孔处安装一个橡胶圈, 清除所有控制器内存储的故障代码, 所有故障码都不再出现。故障排除, 发动机也能够正常起动了。

高速通讯总线 篇2

摘要:本文主要介绍支持USB2.0高速传输的EZ-USB FX2单片机CY7C68013,并详细说明用此芯片实现高速数据采集系统和相应的Windows驱动程序及底层固件程序的开发过程。

关键词:CY7C68013  USB2.0  数据采集  固件

1    引言

现代工业生产和科学研究对数据采集的要求日益提高,在瞬态信号测量、图像处理等一些高速、高精度的测量中,需要进行高速数据采集。现在通用的高速数据采集卡一般多是PCI卡或ISA卡,存在以下缺点:安装麻烦、价格昂贵;受计算机插槽数量、地址、中断资源限制,可扩展性差;在一些电磁干扰性强的测试现场,无法专门对其做电磁屏蔽,导致采集的数据失真。

通用串行总线USB是1995年康柏、微软、IBM、DEC等公司为解决传统总线不足而推广的一种新型的通信标准。该总线接口具有安装方便、高带宽、易于扩展等优点,已逐渐成为现代数据传输的发展趋势。基于USB的高速数据采集卡充分利用USB总线的上述优点,有效解决了传统高速数据采集卡的缺陷。

2    硬件设计

2.1支持USB2.0高速传输的CY7C68013

Cypress Semiconductor公司的EZ-USB FX2是世界上第一款集成USB2.0的微处理器,它集成了USB2.0收发器、SIE(串行接口引擎)、增强的8051微控制器和可编程的外围接口。FX2这种独创性结构可使数据传输率达到56Mbytes/s,即USB2.0允许的最大带宽。在FX2中,智能SIE可以硬件处理许多USB1.1和USB2.0协议,从而减少了开发时间和确保了USB的兼容性。GPIF(General Programmable Interface)和主/从端点FIFO(8位或16位数据总线)为ATA、UTOPIA、EPP、PCMCIA和DSP等提供了简单和无缝连接接口。

CY7C68013的GPIF引擎具有自动传输数据结构的特性,这种特性使得外围设备和主机通过CY7C68013可以无缝的、高速的.传输数据。为了实现高速的数据传输,CY7C68013CPU不会直接参与数据的传输,而是直接利用GPIF的自动传输数据模式。图1和图2说明了主机IN和OUT数据传输过程。

2.1.1 端点缓冲区

FX2包含3个64字节端点缓冲区和4K可配置成不同方式的缓冲,其中3

个64字节的缓冲区为EP0、EP1IN和EP1OUT。EP0作为控制端点用,它是一个双向端点,既可为IN也可为OUT。当需要控制传输数据时,FX2固件读写EP0缓冲区,但是8个

SETUP字节数据不会出现在这64字节EP0端点缓冲区中。EP1IN和EP1OUT使用独立的64字节缓冲区,FX2固件可配置这些端点为BULK、INTERRUPT或ISOCHRONOUS传输方式,这两个端点和EP0

一样只能被固件访问。这一点与大端点缓冲区EP2、EP4、EP6和EP8不同,这四个端点缓冲区主要用来和片上或片外进行高带宽数据传输而无需固件的参与。EP2、EP4、EP6和EP8是高带宽、大缓冲区。它们可被配置成不同的方式来适应带宽的需求。

2.1.2 接口信号

在利用GPIF进行高速数据传输系统设计时,GPIF waveforms的编辑是非常重要的,它控制着整个数据传输过程的读写时序。此时CPU的作用已经非常小了,它只起着下载代码到内部RAM以及在固件中如何触发GPIF waveforms的作用。FX2专门为GPIF提供了外围接口信号,如8位或16位的数据线、控制信号、Ready信号以及地址线。

IFCLK(双向时钟信号):IFCLK是一个参考时钟,可以配置成输入或输出。当配置为输出时,IFCLK被FX2驱动为

30MHz或48MHz;当配置为输入时,时钟范围为5-48MHz。

GPIFADR[8:0](输出):GPIF使用GPIFADR信号为外部设备提供地址线,在总线上地址值是自增的。

FD[15:0](双向):这是USB主机通过FX2和外部设备进行数据传输的数据线,它可配置成8位或16位。当16位时,FD[7:0]代表端点FIFO

中的第一个字节,FD[15:8]代表第二个字节。

CTL[5:0](输出):FX2为外部设备提供了几个控制信号,如读写选通、使能等。

RDY[5:0](输入):FX2提供了几个状态检测信号,它可以检测外部设备的状态,如FIFO的空、满、半满等。

GSTATE[2:0](输出):这是调试信号,表示GPIF波形执行的状态,通常连接到逻辑分析仪上。

2.2   AD9238

AD9238是一个双通道的12位

A/D转换器,采用单3V供电,速度可以是20MSPS、40MSPS和65MSPS;低功耗,工作在20MSPS时,功耗为180mW,40MSPS时,功耗为330mW,65MSPS时,功耗为600mW;具有500MHz 3dB带宽的差分输入;片上参考源及SHA;灵活的模拟输入范围:1Vp-p~2Vp-p;适用于:超声波设备,射频通讯,电池电源仪器,低价示波器等。本系统采用20MSPS的AD9238,可充分发挥USB在高速传输模式下的数据传输优势。

2.3   数据采集系统

该数据采集系统整个框图如图3所示,该系统由以下几部份组成:USB控制器、FIFO、CPLD、AD9238以及数据采集前端电路。

图3 数据采集系统框图

CPLD主要是控制时序,时钟分频等。FIFO主要是起着高速数据缓冲作用,当FIFO半满时,数据开始向USB主机发送。我们采用的是同步FIFO,时钟信号接IFCLK,当FIFO的/RD信号和/OE信号有效时,每个IFCLK上升沿就输出一个数据;当FIFO的/WR信号有效时,IFCLK上升沿就读进一个数据。AD9238的20MHz时钟信号是通过CPLD分频所得。当程序使能AD9238的/OEB_A和/OEB_B信号时,AD9238双通道开始进行数据采集并向FIFO写数据。

系统前端的调理电路采用的是AD公司的AD8138,该放大器具有较宽的模拟带宽(320MHz,-3dB,增益1),而且可以实现将单端输入变成差分输出的功能。此项功能在现代高速模数变换电路中非常有用,因为几乎所有的高速A/D芯片都要求模拟信号为差分输入,虽然部分芯片的手册中提到对于单端输入信号也可使用,但这样一来会使A/D转换结果的二次谐波增大,降低信噪比(SNR)。AD8138很好的解决了这个问题,用户可以很容易的将单端信号转换成差分输出而不必使用变压器,并且它的输入阻抗高达6MΩ,可以直接与输入信号相连而省略隔离放大器,大大精简了电路结构。图4为AD8138的典型应用电路。

图4  AD8138典型应用电路

3

; 软件设计

3.1 Windows驱动程序设计

USB设备驱动程序基于WDM。WDM型驱动程序是内核程序,与标准的Win32用户态程序不同。采用了分层处理的方法。通过它,用户不需要直接与硬件打它道(在USB驱动程序中尤为明显),只需通过下层驱动程序提供的接口号访问硬件。因此,USB设备驱动程序不必具体对硬件编程,所有的USB命令、读写操作通过总线驱动程序转给USB设备。但是,USB设备驱动程序必须定义与外部设备的通讯接口和通讯的数据格式,也必须定义与应用程序的接口。

Cypress公司提供了完整的CY7C68013驱动程序源码、控制面板程序及固件的框架,这大大提高了用户开发的进度。用户只需稍加修改或不需任何修改即可使用所带驱动程序,软件开发者大量的时间主要集中在应用程序和固件的开发。本文所述的数据采集系统驱动程序就在原来的基础上进行了简单的修改来满足我们的需要。根据我们自己的需求,一般只需修改DeviceIoControl例程,如我们主要增加了控制数据传输函数、启动和停止AD、复位FIFO等,即IOCTL_START_AD、IOCTL_STOP_AD、IOCTL_RESET_FIFO。

3.2 底层固件设计

要实现USB2.0的高带宽数据传输,必须使用它特有的GPIF特性,在开发固件前,首先必须根据实际需要对GPIF waveform进行编辑。CY7C68013开发工具中带有一个GPIF Designer,如图5所示,编辑完waveform后,选择Tools->Export to GPIF.c File来输出GPIF.c文件,然后将该文件加入keil c工程进行编译。

由于CY7C68013的EP2、EP4、EP6、EP8四个端点共享4K FIFO缓冲区,所以在该系统中,我们将EP2配置成4K的缓冲区,并设置为IN。用EP1OUT作为AD的控制参数传递,如启动和停止AD数据输出、复位FIFO等。在固件程序中,最重要的就是TD_Init和TD_Poll()两个函数。

图5 GPIF Designer

在TD_Init()中主要完成GPIF相应寄存器的初始化,如下:

void TD_Init(void)             // Called once at startup

{

// set the CPU clock to 48MHz

CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1);

SYNCDELAY;

EP2CFG = 0XE8;     // EP2IN, bulk, size 1024, 4x buffered

SYNCDELAY;

EP4CFG = 0x00;     // EP4 not valid

SYNCDELAY;

EP6CFG = 0x00;     // EP6 not valid

SYNCDELAY;

EP8CFG = 0x00;     // EP8 not valid

SYNCDELAY;

FIFORESET = 0x80;  // set NAKALL bit to NAK all transfers from host

SYNCDELAY;

FIFORESET = 0x02;  // reset EP2 FIFO

SYNCDELAY;

FIFORESET = 0x00;  // clear NAKALL bit to resume normal operation

SYNCDELAY;

EP2FIFOCFG = 0x01; // allow core to see zero to one transition of auto out bit

&

nbsp;SYNCDELAY;

EP2FIFOCFG = 0x11; // auto out mode, disable PKTEND zero length send, word ops

SYNCDELAY;

EP6FIFOCFG = 0x09; // auto in mode, disable PKTEND zero length send, word ops

SYNCDELAY;

GpifInit ; // initialize GPIF registers

SYNCDELAY;

EP2GPIFFLGSEL = 0x02; // For EP2IN, GPIF uses FF flag

SYNCDELAY;

// global flowstate register initializations

FLOWLOGIC = FlowStates[19];      // 0011 0110b - LFUNC[1:0] = 00 (A AND B), //TERMA/B[2:0]=110 (FIFO Flag)

SYNCDELAY;

FLOWSTB = FlowStates[23];        // 0000 0100b - MSTB[2:0] = 100 (CTL4), not //used as strobe

SYNCDELAY;

GPIFHOLDAMOUNT = FlowStates[26]; // hold data for one half clock (10ns) assuming //48MHz IFCLK

SYNCDELAY;

FLOWSTBEDGE = FlowStates[24];    // move data on both edges of clock

SYNCDELAY;

FLOWSTBHPERIOD = FlowStates[25]; // 20.83ns half period

SYNCDELAY;

// reset the external FIFO

OEA |= 0x07;     // turn on PA0、 PA1、 PA2 as output pin

IOA |= 0x07;     // pull PA0、 PA1、 PA2 high initially

IOA &= 0xFB;     // bring PA2 low

EZUSB_Delay (1); // keep PA2 low for ~1ms, more than enough time

IOA |= 0x04;     // bring PA2 high and exit reset

IOA &= 0xFC;     // bring PA0、 PA1 low and enable AD

}

在TD_Poll()中主要完成外部FIFO状态的检测和数据的传输,主要程序部分如下:

void TD_Poll(void)

{

高速总线竞争日趋白热化 篇3

RapidIO的开发者在1997年开始制订标准,采用了Motorola和Mercury计算机系统正在研究的技术,它的目标就是试图打破1999年作为标准出现的总线的现有瓶颈。2001年完成了基本规范。系统逻辑器件、FPGA和ASIC器件早就在硅片上实现了这个技术,几个公司已在板极和系统级实现了量产。在2003年10月,国际标准组织和国际电工委员会(IEC)一致通过了RapidIO互连规范,即ISO/IEC DIS 18372.。这使RapidIO(ISO)成为互连技术方面得到授权的唯一一个系统。尽管RapidIO标准已有8年的历史,但仍然生机勃勃,它还在继续为开发人员提供高速、先进的通讯技术:可对许多集成电路、板卡、背板及计算机系统供应商提供支持。目前,符合RapidIO标准的厂商有:Freescale Semiconductor、Lucent-Alcatel、PMC-Sierra、Texas Instruments、Tundra Semiconductor及WindRiver等。发展至今,开发人员有100多种基于RapidIO的产品可供选择,这些产品涵盖了各种开发工具、嵌入式系统、知识产权、软件、测试与测量设备及半导体(ASIC、DSP、FPGA)等。

RapidIO标准定义了3个架构层:逻辑层、传输层与物理层。逻辑层定义了总体协议与封包格式以及信号需要发起与完成任务的结束点信息。传输层提供了必要的路由信息,使封包可以从一个结点传输到另一个结点。物理层则描述了封包传输、数据流控制、电气特性及低级错误管理的电路级运行。分层的方式防止了产品落伍,并能在将来对产品进一步增强扩展,具有与上一代产品向后兼容的能力。

在物理层上,RapidIO的全双工串行连接采用符合IEEE 802.3规范的万兆位以太网附加单元接口(10-Gigabit Ethernet Attachment Unit Interface,也称为XAUI,读作“zowie”)。“XAUI”的“X”代表10Gbps,这种电气接口工作在1.25GHz、2.5GHz或3.125GHz频率下,经过8b/10b编码后,最高可达2.5Gbps。

XAUI规范具有one-lane及four-lane接口两个版本,4通道接口提供了10Gbps全双工通信,串行RapidIO(SRIO)接口可提供从1Gbps到10Gbps的传输速率,为设计人员提供了使用RapidIO的灵活性。

为简化开发,RapidIO标准对串行及并行两种互连形式提供了相同的编程模式、寻址机制和事务(Addressing Mechanisms and Transactions),这些模式包括基本内存映射的I/O事务、基于端口的信息通道及基于硬件一致性的全局共享式分布内存。RapidIO可进行高级错误管理,并提供报告传输错误及恢复的途径,每个封包中都包括一个端到端循环冗余校验(CRC)。

RapidIO规范是统一的协议,它附有少量选项及一致的协议层,通过PCI和PCI-e(串行PCI)运行一对一对应的RapidIO加载/存储操作(load/store operations),PCI可以轻松地实现转换。RapidIO开发了一个封装协议来处理以太网封包,设计人员使用RapidIO在以太网中利用交换总线结构传输信号时,可以提高系统性能。RapidIO软件工作组的成员正在开发标准的使用模型,这种模型会增强下一代系统中的PCI Express、RapidIO及以太网的补充作用。最新的RapidIO规范(1.3)增加了先进的多点传送数据流增强功能,这些补充规范主要是响应对5Gbps和6.25Gbps、通道速率及提供运营商级增强性能的要求。

此外,RapidIO互连规范同时包含兼容于系统架构的并联和串联体系。从Rapid IO的串口到并口的转换不需要任何协议。此外,RadapdIO交换可有几个串口和并口,它们只在物理层上不同。随着Raipid IO贸易协会新增加的一些流控制规范和数据流规范,RapdIO互连已作好了在嵌入式领域大展拳脚的准备。

高性能嵌入式、通信领域RapidIO活跃

RapidIO互连架构主要解决高性能嵌入式系统在可靠性和互连性方面的挑战。作为系统级的互连,RapidIO互连可应用在很多场合:DSP连接、处理器和其它器件的点对点主/从连接、控制和数据背板连接、基带和RF板连接、芯片和处理器连接。这些形式的连接印证了RapidIO支持广泛应用的互连能力,包括:无线基础设施器件、网络接入设备、多服务平台、高端路由器、,存储设备、信号和图象处理、军事和航天应用、工业计算、科学计算。

RapidIO在嵌入式系统中的应用

RapidIO互连为嵌入式系统设计提供了高带宽,低延迟。另外,它的管脚少,可充分利用板上的空间。RapidIO技术对软件透明,允许任何数据协议运行。它同时通过提供自建的纠错机制和点对点架构来排除单点故障,满足嵌入式设计的可靠性需求。作为经认证的ISO标准,RapidIO互连为广泛的应用提供了系统互连,是下一代系统厂商选择的关键技术。

嵌入式设备通常采用分布式处理模式的SOC元件,它集成了系统处理和接口功能,共同完成大量的系统任务。这些情况与电脑的应用不同。电脑通常只有一颗CPU。PCI-X和PCI Express这样的互连用分层的单地址空间模式足够支持台式机应用。然而将电脑的互连技术重新移植到嵌入式应用并不能满足SOC的独特需求。对于分布式处理系统,RapiaIO互连结构的点到点模式提供了较好的系统架构,比如它的低开销,硬件支持的存储映射以及支持器件间信息对话等功能。此外,RapidIO网上的器件可通过一个有效的对等网络来通讯。性能可达1-60Gbps,而只占CPU的少量时间。RapidIO可以与很多不同的流量管理器件接口,或桥接到其它计算环境。数据流逻辑层的语法与网络处理器论坛通用交换(CSIX)规范和网络处理器流接口(NPSI)规范一致。这使终端可有最小的硅管脚,以适用于特定的流量管理器件。

RapidIo架构定义的通用存储和信息协议很容易桥接通讯协议、网络处理结构、通用处理器。这种多样性在控制和数据应用场合可提供很低的互操作性开销。例如,在一组共享内存的处理器之间或通过RapidIO结构传递数据包的处理器之间,以太网和ATM的交互工作可以得到有效管理。 RapidIO规范的丰富特性和互操作性上的高标准激励了终端更多地采用RapidIO接口。因此,RapidIO可变成一些通信设备的通用部分,因而简化了板级设计。

PCI Express站稳脚跟

PCI Express简介

2001年春季的IDF上Intel正式公布PCI Express,是取代PCI总线的第3代IO技术,也称为3GIO。该总线的规范由Intel支持的AWG(Arapahoe Working Group)负责制定。2002 年4月17日,AWG正式宣布3GIO 1.0规范草稿制定完毕,并移交PCI-SIG进行审核。开始的时候大家都以为它会被命名为Serial PCI(受到串行ATA的影响),但最后却被正式命名为PCI Express。2006年正式推出Spec2.0(2.0规范)。目前PCI Express技术已经广泛使用在电脑、海量存储等领域,尽管源自PC,但是PCI Express还是期望可以在高端通信和消费电子领域一展身手。

PCIe的连接是建立在一个双向的序列的(1-bit)点对点连接基础之上,这称之为“传输通道”。与PCI 连接形成鲜明对比的是PCI是基于总线控制,所有设备共同分享的单向32位并行总线。PCIe是一个多层协议,由一个对话层,一个数据交换层和一个物理层构成。物理层又可进一步分为逻辑子层和电气子层。逻辑子层又可分为物理代码子层(PCS)和介质访问控制子层(MAC)。

物理层

于使用电力方面,每组流水线使用两个单向的低电压微分信号(LVDS)合计达到2.5兆波特。传送及接收不同数据会使用不同的传输通道,每一通道可运作4项资料。两个PCIe设备之间的连接成为“链接”,这形成了1组或更多的传输通道。各个设备最少支持1传输通道(x1)的链接。也可以有2,4,8,16,32个通道的链接。这可以更好的提供双向兼容性。PCI-Express卡能在同一数据传输通道内传输包括中断在内的全部控制信息,也方便了与PCI的兼容。多传输通道上的数据传输采取交叉存取,这意味着连续字节交叉存取在不同的通道上。这一特性被称之为“数据条纹”,需要非常复杂的硬件支持连续数据的同步存取,也对链接的数据吞吐量要求极高。由于数据填充的需求,数据交叉存取不需要缩小数据包。与其它高速数传输协议一样,时钟信息必须嵌入信号中。在物理层上,PCIE2.0标准以前,采用常见的8B/10B代码方式来确保连续的1和0字符串长度符合标准。编码方案用10位编码比特代替8个未编码比特来传输数据,占用20%的总带宽。

数据链路层

数据链接层采用按序的交换层信息包(Transaction Layer Packets,TLPs),是由交换层生成,按32位循环冗余校验码(CRC,本文中用LCRC)进行数据保护,采用著名的协议(Ack and Nak signaling)的信息包。TLPs能通过LCRC校验和连续性校验的称为Ack(命令正确应答);没有通过校验的称为Nak(没有应答)。没有应答的TLPs或者等待超时的TLPs会被重新传输。这些内容存储在数据链接层的缓存内。这样可以确保TLPs的传输不受电子噪音干扰。 Ack和Nak信号由低层的信息包传送,这些包被称为数据链接层信息包(Data Link Layer Packet,DLLP)。DLLP也用来传送两个互连设备的交换层之间的流控制信息和实现电源管理功能。

交换层

PCI Express采用分离交换(数据提交和应答在时间上分离),可保证传输通道在目标端设备等待发送回应信息传送其它数据信息。它采用了可信性流控制。这一模式下,一个设备广播它可接收缓存的初始可信信号量。链接另一方的设备会在发送数据时统计每一发送的TLP所占用的可信信号量,直至达到接收端初始可信信号最高值。接收端在处理完毕缓存中的TLP后,它会回送发送端一个比初始值更大的可信信号量。第一代PCIe标称可支持每传输通道单向每秒250兆字节的数据传输率。这一数字是根据物理信号率2500兆波特除以编码率(10位/每字节)计算而得。这意味着一个16通道(x16)的PCIe卡理论上可以达到单向250x16=4000兆字节/秒(3.7G兆字节/每秒)。实际的传输率要根据数据有效载荷率,即依赖于数据的本身特性,这是由更高层(软件)应用程序和中间协议层决定。PCI Express与其它高速序列连接系统相似,它依赖于传输的鲁棒性(CRC校验和Ack算法)。长时间连续的单向数据传输(如高速存储设备)会造成>95%的PCIe通道数据占用率。这样的传输受益于增加的传输通道,但大多数应用程序如USB或以太网络控制器会把传输内容拆成小的数据包,同时还会强制加上确认信号。这类数据传输由于增加了数据包的解析和强制中断,降低了传输通道的效率。这种效率的降低并非只出现在PCIe上。

PCI Express总线的技术优势

1)串行总线,进行点对点传输,每个传输通道独享带宽。

2) PCI Express总线支持双向传输模式和数据分通道传输模式。其中数据分通道传输模式即PCI Express总线的x1、x2、x4、x8、x12、x16和x32多通道连接,x1单向传输带宽即可达到250MB/s,双向传输带宽更能够达到500MB/s,这个已经不是普通PCI总线所能够相比的了。具体配置可以参照表1。

3) PCI Express总线充分利用先进的点到点互连、基于交换的技术、基于包的协议来实现新的总线性能和特征。电源管理、服务质量(QoS)、热插拔支持、数据完整性、错误处理机制等也是PCI Express总线所支持的高级特征。

4) 与PCI总线良好的继承性,可以保持软件的继承和可靠性。PCI Express总线关键的PCI特征,比如应用模型、存储结构、软件接口等与传统PCI总线保持一致,但是并行的PCI总线被一种具有高度扩展性的、完全串行的总线所替代。

5) PCI Express总线充分利用先进的点到点互连,降低了系统硬件平台设计的复杂性和难度,从而大大降低了系统的开发制造设计成本,极大地提高系统的性价比和健壮性。从下面表格可以看出,系统总线带宽提高同时,减少了硬件PIN的数量,硬件的成本直接下降。

PCI Express 3.0诞生

2007年8月,PCI Special Interest Group(PCI SIG)已经决定8 GigaTransfers/s作为下一代PCI Express互连的比特率,终止了几个月以来对3.0版选择8GT/s还是10GT/s的争论。成本和兼容性最终使工程师们做出了这个更稳妥的决定,PCI Express 3.0也取消了目前的技术中的8bit/10bit编码,去掉了20%的处理开销,使真正的吞吐量可达到5GT/s version 2.0的两倍。

Express 3.0将使用现有的scrambling-polynumial技术,在数据流的开始和结束时采用固定长度的数据包。这个技术有助于处理时钟恢复,解决DC wandering问题,而不会产生带宽开销。当然,这个方法需要媒体存取控制器具有额外的处理功能。研究认为较慢的速率更适于主流芯片工艺技术和现在的印刷电路板材料,并认为10GT/s与最初的2.5GHz Express规范不兼容,而且从8GT/s到10GT/s需要的处理功能成指数增长。 PCI Express 3.0将包括许多新功能,如扩展信令和数据完整性、传输接收均衡、PLL改进、时钟数据恢复和通道扩展。最终的规范将在2009年末发布,相应的产品在2010年推出。

在新版本发布之前,工程师们计划根据多个SIG成员开发的模拟和测试芯片对规范的电气参数进行优化。 目前还不清楚将来的板上互连是采用铜连接还是光波,PCI SIG将开展更多的研究。

高速总线技术的竞争正在日趋白热化

在高端嵌入式、通信领域,一场努力争夺工程师青睐的战争正在各种高速总线技术中站看。ASI是PCI Express针对通信和嵌入式系统的变体。作为幕后最大推手的Intel,原本希望借助ASI为自己铺平道路,使其在通信领域的路由器、交换机以及存储设备等应用中赢得设计中标。然而,经过这些年的运转,只有为数不多的公司在付运ASI芯片,并且前景并不乐观。不过,原本无心栽柳之的Express作为计算和嵌入式处理器的本地接口蓬勃发展,很快PCI特别兴趣小组(SIG)开始着手对Express进行扩展,希望其能够具备某些ASI功能。很明显,在通信领域Intel仍然希望能够卷土重来。

在市场方面,ASI SIG不同,RapidIO商业联盟已与顶级OEM厂商建立了牢固的关系。朗讯、爱立信以及存储业巨头EMC公司的代表去年已经被选为RapidIO商业联盟的官员。据熟悉朗讯的知情人士透露,朗讯已经承诺会采用RapidIO,而且不太可能使用ASI。但是Express日益增加的普及性仍可能扭转这一趋势。越来越多的通信芯片中增加了本地Express接口。事实上,就连那些在RapidIO上进行战略投资的公司也开始着手采用Express,有时战略步伐甚至还优先于RapidIO。如果照此发展,有些工程师很可能会利用正在发展中的Express扩展特性来实现ASI的某些功能。

高速通讯总线 篇4

关键词:RS-485,硬件电路,程序设计

随着计算机技术、网络技术及数字技术发展, 越来越多需要节点多、通讯距离远、结构简单的通讯技术。RS-485采用平衡驱动及差分接收方式来驱动总线, 实现工业网络的物理层连接。信号的抗干扰能力较强、结构简单、价格低廉、通讯距离远等优点, 这种通讯方式已被广泛应用仪表仪器、智能传感器、煤矿安全监控系统等领域。但485总线存在自适应、自保护能力脆弱等缺点, 设计中如果不注意硬件细节及合理的软件通讯协议, 在应用中就会经常出现误码多、通迅芯片损坏等现象, 影响正常使用, 因此提高485总线可靠性设计至关重要。

在设计RS-485通讯电路时应从以下几个方面考虑, 以达到最佳通讯效果。

(一) RS-485通讯芯片的选型

RS-485电路一般需要采用光电隔离技术, 典型通讯电路如下图1所示, 在该电路中不但注意在通讯芯片上加光电隔离, 在整个电路板的布局中也应注意数字电路与模拟电路隔离, 通讯部分电路最好电源也隔离。该电路通讯芯片选用75LBC184, 它采用单电源供电, 工作电压在+3.5VZ之+5.5V之间都能正常工作, 该芯片不但能抗雷电的冲击, 还能承受8KV的静电放电冲击, 因此它能显著提高雷电损坏器件。该芯片的输入阻抗是标准输入阻抗的2倍, 故带负载能力会大大提升, 最多可以接受64个负载, 在RXD、TXD及RTS端都采用光耦隔离, 可以有效提高信号的可靠性, 一般在信号输出端会设计一个匹配电阻, 阻值选用120欧姆, 在总线长度大于10KM时, 通讯波特率可以达到2400BPS, 在总线负载中需要匹配某台负载。

(二) RS-485控制端设计技巧

RS-485通讯一般应用在半双工通讯中, 即在某时刻只允许一台设备向主机发送信号, 其它设备此时必须处于接收状态, 主机下发的命令所用设备均可以接收。如果在某时刻出现一台以上的设备同时向主机发送信号, 就会出现信号叠加, 主机是不会收到正确数据的, 通讯会一直失败。因此在设计中会有一个控制方向的信号, 如图1所示, RTS就是方向控制信号, 在设计中将RE及DE连在一起, 就会保证总线上只会出现一个方向的数据, 在程序设计上还要注意时序的配合, 一般设计时还会在总线上设计一个监视信号, 即看门狗信号, 当总线的控制信号处于发送状态达到一定时间, 用硬件强行将控制信号转换为接收状, 避免总线死锁。

(三) 接地考虑

RS-485通讯不能简单地用一对双绞线将两端连接起来, 而忽略了信号地的连接, 在一些场合通讯没连接地线也可以使用, 但通讯会有很大的隐患, 特别是在环境差的地方, 比如煤矿井下如果地线不接, 通讯的可靠性就没法保证。不接地线主要会产生以下问题:

1.共模干扰问题:RS-485是采用差分方式传递信号, 系统只检测两线之间的电位差就可以了, RS-485收发器共模电压范围是-7V之+12V只有在正常范围内才能正常工作。

2.电磁干扰问题:发送驱动器输出信号中的共模部分需要一个返回通路, 如果没有, 就会以辐射的形式返回电源端, 使总线形成一个电磁发射源

因此在设计中不但要考虑接地问题, 还要注意信号的隔离, 电路布局的隔离。

(四) 防雷击设计

市场上有一些RS-485芯片通过在内部集成瞬变电压抑制二极管 (TVS) 来防过压瞬变。TVS的作用原理是当管子两端经受瞬态能量冲击时能极快地将其两端的阻抗降低, 通过将能量吸收掉从而把其两端间的电压箝制在其标称值上, 保护后端元件。受半导体工艺限制, 集成到RS-485芯片上的TVS很难做到大功率, 在雷击到来时, 瞬态能量可以损坏内置的TVS, 同时, 瞬态电流产生的强磁场会使近距离的其他电路上感应出高电压, 即形成所谓的反击, 造成电路损坏。RS-485芯片上集成TVS的主要功能是为了消除静电, 但不能防雷击浪涌。TED-485防雷管为基础构建的初级和次级两级防雷电路, 该电路可以实现对RS-485接口的整体防雷击和过压保护。图2中防雷管, 分别提供线线间和线地间的防雷击过压保护, TED-485防雷管的快速反应特性使雷击过电压被迅速泄放, 而浪涌吸收能量大的特性可以保证泄放过程中防雷管自身不被损坏。泄放过程中产生的瞬态大电流会在电路中感应出一个尖峰电压, 此电压幅值随电路和器件选择而有所不同, 在数十伏到数百伏之间, 脉宽在数十纳秒到数百纳秒之间。由于脉宽窄, 该尖峰电压的能量并不大。次级保护使用TVS管, 其作用是吸收上述的尖峰电压, 将电压可靠地箝位在安全范围内。

(五) 总线匹配

RS-485总线上可以最多挂接64个节点, 网络拓扑一般采用终端匹配的总线型结构, 不支持星型或环形网络。在构建网络是应注意以下几点。

1.采用双绞线连接电缆, 在进行网络布局时尽量减少分支, 并且节点距离总线的距离应该尽量短, 这样可以最大减少反射信号对总线的干扰。

2.应注意总线阻抗特性的连续性, 总线采用不同线径、节点距离总线太远或多个信号节点连在一起容易导致总线阻抗的不连续。

3.在进行通讯调试时在最远的节点匹配120欧姆电阻, 这样可以减少节点对总线的干扰。

(六) 协议及程序编写

一般RS-485通讯电路主要用于计算机同终端设备进行通讯, 一般通讯均采用半双工方式, 根据环境不同, 采取不同的通讯速度。工业以2400BPS最为普遍, 通讯协议的设置对于良好的通讯由很大的影响, 在485通讯中尽量采用ASCII码传输, 采用CRC校验, 这样就可以避免引通讯误码引起的不正常。一般RS-485通讯协议采用常用的以下通讯协议

引导符+命令字+数据+校验, 为了可靠工作, 在RS-485总线状态切换时要适当的延时, 再进行数据的收发。具体做法是先将总线控制置为高电平, 即发送状态, 延时10~30ms左右时间, 再发送有效数据, 等数据发送完成后, 再延时5ms左右时间, 将总线状态转换成接收状态, 这样的处理会一直使总线在收发数据时总处于一个可靠的状态。使数据能可靠传输。具体通讯流程如下:

正常通讯时收发时序如下图4所示

控制信号太短时序如下图5所示

控制时间太长时序如下图6所示

从以上时序图可以看出, 在作为半双工使用时, RS-485通讯中应注意时序的调节, 控制时间太短会导致通讯不正常, 通讯控制时间太长又会影响通讯速度, 影响通讯效率。因此在程序设计中应尽量保证合适的通讯时序。

(七) 结论

随着科学技术发展, RS-485通讯技术已经非常成熟地应用于工业领域, 其处理稳定, 传输可靠的性能得到大家认可。本文结合实际应用经验, 介绍了RS-485通讯电路在设计过程中应注意的问题, 针对问题提出了一些解决方案, RS-485通讯技术只要合理应用, 将会发挥出其最大的优越性。

参考文献

[1]成晓庆.RS-422、RS-485接口电路设计中应注意的几个问题.电子工程, 2005.1.

[2]薛伟.提高RS-485总线可靠性研究.大众科技, 2005.6.

上一篇:电视新闻娱乐化现象下一篇:修辞手段