RS485、RS422接口设计指南复习课程_第1页
RS485、RS422接口设计指南复习课程_第2页
RS485、RS422接口设计指南复习课程_第3页
RS485、RS422接口设计指南复习课程_第4页
RS485、RS422接口设计指南复习课程_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、RS485、RS422接口设计指南CPU在线配置Xilinx FPGA硬件功能模块设计XX硬件功能模块设计说明 第 PAGE 52 页 共 159204 页技 术 文 件 技术文件名称:RS485、RS422接口设计指南用CPU对Xilinx FPGA进行配置功能模块设计 技术文件编号: 版 本: 共 21 页(包括封面)拟 制 赵克忠、车伟静 谢 卓 辉 审 核 会 签 标准化 批 准 深圳市中兴通讯股份有限公司附件四35五:技 术 文 件 技术文件名称: TITLE * MERGEFORMAT CPU在线配置Xilinx FPGA硬件功能模块设计 TITLE * MERGEFORMAT 用

2、CPU对Xilinx FPGA进行配置功能模块设计XX硬件功能模块设计 技术文件编号: 版 本:1.0 文件质量等级:共 20 页(包括封面)拟 制 赵克忠、车伟静 审 核 会 签 标准化 批 准 模块名称: 模块代码:模块提交单位:模块负责人:模块参加者: 日 期: 深圳市中兴通讯股份有限公司修改记录文件编号版本号拟制人/修改人拟制/修改日期更改理由主要更改内容(写要点即可)1.0赵克忠、车伟静谢卓辉5/28/2003注1:每次更改归档文件(指归档到事业部或公司档案室的文件)时,需填写此表。注2:文件第一次归档时,“更改理由”、“主要更改内容”栏写“无”。 TOC o 1-4 h z HYP

3、ERLINK l _Toc56517318 前 言 CPU在线配置Xilinx FPGA硬件功能模块设计XX功能模块设计前 言概述模块名称:RS485、RS422接口设计指南用CPU对Xilinx FPGA进行配置功能模块设计CPU在线配置Xilinx FPGA硬件功能模块模块代码:模块提交单位位:CDMA事业部 硬件开发部模块负责人:赵克忠谢卓辉模块参加者:车伟静 RS-485标准最初由电子工业协会(EIA)于1983年制订并发布,后由TIA-通讯工业协会修订后命名为TIA/EIA-485-A,习惯地称之为RS-485。 RS-485由RS-422发展而来,而RS-422是为弥补RS-232

4、之不足而提出的。为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mbps,传输距离延长到4000英尺(速率低于100kbps时),并允许在一条平衡线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,为扩展应用范围,随后又为其增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,这就是后来的EIA RS-485标准。 RS-485是一个电气接口规范,它只规定了平衡驱动器和接收器的电特性,而没有规定接插件、传输电缆和通信协议。RS-485标准定义

5、了一个基于单对平衡线的多点、双向(半双工)通信链路,是一种极为经济、并具有相当高噪声抑制、传输速率、传输距离和宽共模范围的通信平台。 RS-485作为一种多点、差分数据传输的电气规范现已成为业界应用最为广泛的标准通信接口之一。这种通信接口允许在简单的一对双绞线上进行多点、双向通信、它所具有的噪声抑制能力、数据传输速率、电缆长度及可靠性是其他标准无法比拟的。正因为此,许多不同领域都采用RS-485作为数据传输链路。例如电信设备、局域网、蜂窝基站、工业控制、汽车电子、仪器仪表等等。这项标准得到广泛接受的另外一个原因是它的通用性。RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议

6、,在此基础上用户可以建立自己的高层通信协议。 本文档主要说明了RS485与RS422的原理以及设计应用电路中应该注意的问题。RS-485与RS-422性能指标及其标准设计准则功能与性能满足要求,降低成本。指出设计时应注意的如器件选择、可靠性、安全防护等方面问题。本设计是利用CPU对RAM-Based FPGA进行配置。因此,对CPU子系统有一些要求,即CPU子系统应在FPGA被配置前可独立运行并访问所需资源。CPU对FPGA进行配置所需的资源很少,一般来说,仅RAM和BootROM的访问而已仅RAM和BootROM的访问而已。当然,其他挂在CPU总线上的设备必须处于非访问态,FPGA所控制的设

7、备也应处于非工作态或不影响其他设备工作的稳定态。该内容贴于网上,供同类模块设计、使用者参考,内容应指出设计该类模块应遵守的基本准则,包括器件布局、器件选择、布线、安全、防护要求等准则。模块功能摘要模块功能及用途 RS-485作为一种多点、差分数据传输的电气规范现已成为业界应用最为广泛的标准通信接口之一。这种通信接口允许在简单的一对双绞线上进行多点、双向通信、它所具有的噪声抑制能力、数据传输速率、电缆长度及可靠性是其他标准无法比拟的。正因为此,许多不同领域都采用RS-485作为数据传输链路。例如电信设备、局域网、蜂窝基站、工业控制、汽车电子、仪器仪表等等。这项标准得到广泛接受的另外一个原因是它的

8、通用性。RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。 本模块属于电路级功能模块。本模快是参照网络事业部陆晓的模块文档用CPU对FPGA进行配置功能模块设计来完成的。本模块设计是利用板上现有CPU子系统中空闲的ROM空间或RAM空间存放FPGA的配置数据,并由CPU模拟专用EPROM对FPGA进行配置,以降低硬件成本并实现FPGA的在线升级。本模块将主要讨论对Xilinx的FPGA系列中SPARTARN XL、SPARTARN、VIRTEX和VIRTEXE等常用系列的FPGA进行配置该内容用于模块库中“模块功能摘要”栏,用于简

9、单介绍模块的功能及用途,为模块查询者提供简要介绍为模块查询者提供简要信息。因此本内容应指出功能模块所实现的功能、采用的主要技术方法名称、达到的目标及模块用途和扩展用途、典型案例等。说明参考的标准和文件。基本原理以功能块和主要芯片为单元,画出各单元之间的连接关系,以及关键的逻辑关系;支撑整个电路的主要信号线或引出线。详细介绍上述各单元电路的基本工作原理及整个电路的工作过程。各组成部分完成的功能和指标分配,以及相应的时序图、逻辑图、信号关系、输入输出关系等。关键词、类别关联词RS-485:RS-422:长导线(长连接、传输线):短导线(短连接):上升时间:单向延迟:特征阻抗:终端电阻:单位负载:(

10、以上关键词在文中都作了解释)应列出模块的关键词、类别关联词。关键词用于模块入库后的索引;类别关联词用于确定模块类别,用于入库模块分类及编号。FPGA:Field Programmable Gate Array;Serial Slave Mode;Configuration Memory;Configuration Data;CRC Error Checking;模块技术 性能指标及其符合的标准EIA/TIA-422 与 EIA/TIA-485 标准的比较规格EIA/TIA-422EIA/TIA-485传输模式平衡平衡电缆长度(在90Kbps下)4000 ft4000 ft电缆长度(在10Mbp

11、s下)50 ft50 ft最大数据传输速度10Mbps10Mbps最小差动输出2V1.5V最大差动输出10V6V接收器敏感度0.2V0.2V最小驱动器负载10060最大驱动器数量132负载单位最大接收器数量1032负载单位 表1 本模块要能够利用单板上的CPU和CPU子系统中空闲的ROM或RAM空间完成对Xilinx FPGA的在线下载配置。RS-485接口的主要性能指标如下: 平衡传输; 多点通信; 驱动器输出电压(带载):1.5V;接收器输入门限:200mV,接收器的输入灵敏度为200mV(即(V+)-(V-)0.2V,表示信号“0”;(V+)-(V-)-0.2V,表示信号“1”);-7V

12、至+12V总线共模范围; 最大输入电流:1.0mA/-0.8mA(12Vin/-7Vin); 最大总线负载:32个单位负载(UL); 最大传输速率:10Mbps; 最大电缆长度:4000英尺,由于在双绞线上的电平损耗,RS-485标准通信的最大传输距离是1200米(4000英尺),更远距离的应用中必须使用中继器;接收器的输入电阻RIN12k;RS-485与RS-422器件及材料说明列出模块技术指标及指标满足标准的程度。电原理图无。下面以是Mortalola的CPU MPC860、与Xilinx FPGA芯片XC2S150为例,说明硬件连接关系的连接图如下图。该原理图将贴于网上供使用查看,因此应

13、有WORD文件,对于需单独制板的模块应有原理图源文件。PCB图对于需单独制板的模块应提供PCB文件,对于不单独制板的模块应指出本模块的布线要求及对周围电路的要求及影响。无。结构图需要时应提供无。输入、输出接口及电性能输入、输出接口及性能参数本模块无引入/引出信号。a) 以表格形式给出模块引出线信号的名称和符号,并在表格后对引出线信号做出说明。表格中引出线信号名称和符号,应与电路原理图中完全相同。 b) 对于有点性能要求的引出线线,应进行电特性描述,如:波形、电平、信号频率、驱动能力、输入/输出阻抗等,需要时还须指出信号的输入容差、输出误差及时延等。引出线信号时序及系统配合要求。如果模块有指示灯

14、、跳针、按键、开关、电位器等,需指出它们的定义、作用及使用方法。器件及材料说明在模块性能指标与基本原理中有详细说明。器件及材料说明有很多485芯片可以选择,速度较慢的芯片有更好的信号质量,如果不需要高速连接,使用较低速度的芯片可以避免很多麻烦。有的485芯片小于一个单位负载以便在一个网络中允许更多的节点。为了扩展总线节点数,器件生产厂商增大收发器输入电阻。例如MAX487,MAX1487的输入电阻增加至48k以上(1/4UL),节点数就可增加至128个,96k输入电阻的MAX1483允许节点数可到256个。 对外置设备为防止强电磁(雷电)冲击,建议选用TI的75LBC184等防雷击芯片,对节点

15、数要求较多的可选用SIPEX的SP485R。具有节能模式与低电源电压特性的485芯片对于电池供电的设备很有用,485芯片具有的其它特性还有增强的ESD保护、电气绝缘、失效保护电路等。减小反射电压的两个办法是减小电缆长度或者增加信号上升时间,可以通过选择485芯片来控制信号上升时间。最大的上升时间限制了比特率,上升时间不应超过位宽的20%。最小的上升时间决定一根导线是长导线还是短导线,是否需要终端电阻。如果连接不需要高比特率,使用低速驱动器可以使短导线的物理长度大大加长。此外低速485芯片能够减弱EMI。RS-485与RS-422设计原理本模块适用于指出优选器件系列的名称、性能、特点及针对模块不

16、同用途的选择方法Xilinx公司FPGA产品系列中的SPARTARNXL、SPARTARN、VIRTEX和VIRTEXE系列由于Xilinx公司早期产品XC系列配置时序略有不同,而且供应商也已经不推荐使用,公司基本也不使用,因此不在本文讨论之列。无。设计说明设计目标 为了节约生产的成本,利用CPU子系统本身的资源设计出一套CPU完成FPGA在线下载的方法。我们的产品中很多单板都用了FPGA,虽然品种不同,但编程方式几乎都一样:利用专用的PROM对FPGA进行配置。专用的PROM价格不便宜很贵,且基本上而且都是一次性的,。不便于一旦更换FPGA版本,代价不小版本升级,而且无疑会增加升级成本。为了

17、进一步降低产品的成本,考虑利用板上现有CPU子系统中空闲的ROM空间存放FPGA的配置数据,并由CPU模拟专用PROM对FPGA进行配置。在模块性能指标中有详细说明。指出单板对模块的设计需求输入,罗列本模块所有功能、性能指标要求及BIT要求,从模块在本系统的需求、模块的通用性、系列化需求等方面论证该模块功能及性能指标完整性及必要性。模块设计方案及论证根据不同的需求选择不同的芯片与应用电路等本模块设计严格按照Xilinx FPGA的Slave Serial配置流程进行,并在配置过程中始终监测工作状态,在完善的软件配合下,可纠正如上电次序导致配置不正常等错误。因此,采用此方法对Xilinx FPG

18、A进行配置,性能将优于Configuration PROM方式。与Configuration PROM方式相比本设计有如下优点:降低硬件成本省去了FPGA专用PROM的成本,而几乎不增加其他成本。以Xilinx的XC2S150系列为例,板上至少要配一片以上的PROM,如XC17S50,每片XC17S50的批量价是23.8元,容量1M位。提供1Mb的存储空间,对于大部分单板来说(如860系统的单板),是不需要增加硬件的。即使增加1Mb存储空间,通用存储器也会比FPGA专用PROM便宜。可多次编程FPGA专用PROM几乎都是一次性的,一旦更换FPGA版本,旧版本的并不便宜的PROM只能丢弃。如果使

19、用本设计对FPGA配置,选用可擦除的通用存储器保存FPGA的编程数据,更换FPGA版本,无须付出任何硬件代价。这也是降低硬件成本的一个方面。实现真正“现场可编程”FPGA的特点就是“现场可编程”,只有使用CPU对FPGA编程才能体现这一特点。如果设计周全的话,单板上的FPGA可以做到在线升级。减少生产工序省去了对“FPGA用PROM”烧结的工序,对提高生产率,降低生产成本等均有好处。对于双面再流焊的单板,更可省去手工补焊DIP器件的工序。当然,与Configuration PROM方式相比本设计也有缺点:需要CPU提供5根I/O线一般来说,这并不困难。对于MPC860一类的CPU来说,区区5根

20、I/O线是不成问题的。即使是某些设计中实在没有多余的I/O供配置使用,也可通过板上的PLD扩展。虽然这样做可能会增加成本,但获得的真正“现场可编程”的功能是非常宝贵的。2CPU的Boot应不依赖于FPGA这在单板设计时需要特别考虑的。由于CPU对FPGA进行配置所需的资源很少,这一点比较容易做到。详细叙述模块的设计方案、各包括子模块的实现方式及BIT方案,必要时画出功能框图。将本设计方案与公司已有的设计方案及可能其他设计方案进行比较,指出本模块的优点(包括先进性)及限制。指出本模块中调用公司、事业部模块库模块;指出本模块中新产生的子模块。参考资料 Serial Port Complete Ja

21、n Axelson 2001年5月说明参考的标准和文件。Xilinx DataSource CD-ROM(Rev.4 0.2-2001)用CPU对FPGA进行配置功能模块设计 陆晓 网络事业部基本原理RS-485与RS -232电路的区别与优势 如图1中RS-232使用非平衡线路,接收器对一个信号电压和一个通用地线之间的压差作出反应。在100Kbps的传输速度下电缆长度最大为50ft,最大数据传输速度为20Kbps(有的驱动器达到115 Kbps),驱动器最小输出为5V,驱动器最大输出为15V,接收器敏感度3V,最大驱动器与接收器数量都为1,接收器输入阻抗为3到7K。 图1 如图2一个 RS-

22、485 驱动器必须有“Enable”控制信号,而一个RS-422 驱动器则一般不需要。 在驱动器端,一个TTL逻辑高电平输入使得导线A电压比导线B高,反之,一个TTL逻辑低电平输入使得导线A电压比导线B低,对于驱动器端的有效输出,A与B之间的压差必须至少1.5V。 图2 如图3在接收器端A与B之间的压差只需0.2V,如输入A电平比输入B高,TTL输出逻辑高电平,反之,如输入A电平比输入B低,TTL输出逻辑低电平,这就至少有1.3V的噪声容限,大多数情况下驱动器端A与B之间的压差大于1.5V,因此噪声容限更大。 图3 RS-485能够远距离传输是因为使用了平衡线路,每个信号都有专用的导线对,其中

23、一根导线上的电压等于另一根导线上的电压取反或取补。接收器对两者的压差作出反应。平衡接口中两根信号线传递几乎等大反向的电流,大多数噪声电压在两根信号线上出现,它们互相抵消;但在非平衡接口中,接收器检测信号线与接地线之间的电压差,当多个信号共用一根接地线时,每个返回的电流都在这根接地线上引起电势,如果这根接地线连到大地地线,来自别处的噪声也会影响这些电路。 一个 RS-485 驱动器可以驱动32个单位负载,一个等于单位负载的接收器在标准的输入电压极限下产生一个不大于规定大小的电流,在接收到的电压比接收器信号地高出12V与低7V时,一个单位负载的接收器产生的电流分别不大于1mA与-0.8mA,为符合

24、此要求,接收器在每个差动输入与电源电压或接地线之间至少有12000的输入阻抗。这样对于32单位负载的接收器,并联阻抗为375,加入两个120的终端负载电阻,并联阻抗减小为60,在短距离、低速连接中,可以去掉终端负载电阻以极大地减小电源消耗。长短连接的判断标准、物理表现与应对措施一个RS-485是长还是短的连接是以一个信号沿着导线传播到接收器所需要的时间为参考,这个时间与导线的物理长度、所传递信号的频率以及信号传输速度有关。当导线物理长度很短、所传递信号的频率很低时,信号沿着导线传播到接收器所需要的时间对信号质量没有影响,可以将短导线当作零阻抗导线。当导线物理长度很长、所传递信号的频率很高时,信

25、号沿着导线传播到接收器所需要的时间对信号质量有影响,长导线又叫传输线,恰当的终端负载电阻可以削弱导线上的反射电压确保接收器看到一个清晰的信号。长短导线的区别在于在长导线上反射有可能持续足够长的时间以至使得接收器误读逻辑电平,而短导线上的反射更快,在有接收到的逻辑电平上没有影响。上升时间是一个输出从10%切换到90%的时间,上升时间限制了最大的比特率,位宽度应该比上升时间长5到10倍以确保接收器读这个位时电压已经达到有效的逻辑电平,更短的上升时间表示可以有更高的频率。单向延迟是一个信号通过电缆长度所用时间,它等于电缆长度除以信号传播速度,在铜导线的电气信号大约以2/3到3/4倍光速传播。一个连接

26、如果信号上升时间小于单向延迟的4倍,则它是长的连接,RS-232总是短的连接。传输线效应会使反射电压出现,接收器在位的中间附近读逻辑电平,如果比特率越低,位就越宽,这样电压在接收器读之前就已经固定下来。另一个决定导线长短的方法是如果位宽大于单向延迟的40倍,则它是短的连接,这时任何反射在接收器读这些位之前就已经稳定了。传输导线的特征阻抗与导线直径、导线间距以及导线上绝缘类型有关,不随导线长度变化,普遍使用的AWG#24绞合的双绞线电缆特征阻抗为100到150欧,生产厂商都会给出这个值。等于特征阻抗的终端电阻一般连接在最远端接收器那一边的差动导线上,不论网络有多少个节点,终端电阻的数量不能超过2

27、个。终端电阻比特征阻抗大的极端情况是远端导线开路,电流不能继续,电流反射回来并引入一个电压,导致接收器读到比传输电压更高的电压。如果终端电阻比特征阻抗大,效果类似,只是只有部分电流反射回去,反射电流来回好多次,越来越小,最后电流稳定到一个终值,接收器读到的电压也逐渐减小到一个终值电压。终端电阻比特征阻抗小的极端情况是远端导线短路,没有电压降,电压反射回来并引入一个电流,如果终端电阻比特征阻抗小,效果类似,只是只有部分电压反射回去,驱动器每反射一次电压的一部分,接收器的电压就上升一次直到最终值。终端电阻等于特征阻抗,电流没有间断,没有任何反射。添加并联终端电阻使接收器输入电阻大幅下降,连接中的电

28、流大幅上升,电能损耗大幅上升。更大的电流也使驱动器输出阻抗吸收更大电压,降低接收器端差动电压,噪声容限降低。节约电能的办法是除了驱动器正在发送的时间以外,禁止驱动器,在我们的CDMA95与3G设计中发送完后立即禁止驱动器。当导线很长要注意串联电阻的影响,如AWG#24绞合线电阻25/1000FT,信号的大部分将在通过导线时衰减,为减小串联电阻要用更大直径的导线。RAM-Based FPGA由于SRAM工艺的特点,掉电后数据会消失。因此,每次系统上电后,均需对FPGA进行配置。对于Xilinx的FPGA,其配置方法一般有8种(这里主要是指Xilinx Virtex、Virtex e、Sparta

29、n和SpartanXL的系列的FPGA,对于Xilinx的XC2000、XC3000、XC4000、XC5200系列产品是Xilinx公司的早期产品,在本文中不再叙述),如下表所示:表 Virtex、Virtex e和Spartan的配置模式表对于Spartan XL系列的FPGA,其配置模式为三种,其中当M1、M0=11时,为Slave Serial模式。本设计采用Slave Serial模式对FPGA进行配置,是基于如下几个方面的考虑:Serial模式连线最简单;Slave Serial模式中,CCLK信号由主器件发起,便于CPU对FPGA进行配置;与并行配置相比,误操作的几率小,可靠性高

30、CPU仅需要利用5个I/O脚与FPGA相连,就实现了Slave Serial模式中的硬件连接,具体信号见下表(信号方向从CPUFPGA侧看): 信号名I/O说明PROGRAMOIAsynchronous reset to configuration logic.INITIODelay configuration, indicate configuration clearing or error.CCLKOIConfiguration clock. OutInput in MasterSlave mode.DINOISerial configuration data input.DONEIOCo

31、nfiguration status and start-up control.一、采用Slave Serial模式对单个FPGA进行配置在Slave Serial模式中,需要将“M0、M1、M2”设置为“111”。在Slave Serial模式中,需要将“M0、M1、M2”设置为“111”。其连接关系图如图所示。对Xilinx FPGA的配置有四个主要步骤:配置存储器清空(Clearing Configuration Memory)将管脚拉低300ns以上。当拉低后,开始配置存储器,将存储器清空。此时将被拉低,当置高后,FPGA将继续将置低直到完全清除完所有的配置存储器。当变高时,配置便可以

32、开始了。加载配置数据(Loading Configuration Data) 当变高时,便可以配置FPGA了。配置时,先将CCLK置低,再将数据发送到DIN上,延时45ns以上,再将CCLK置高,该位数据便写入到了FPGA中(数据是低位在前),然后再准备下一次的输入。如此反复,将所有数据输入完毕为止。CRC错误校验(CRC Error Checking)在加载数据过程中,嵌入到配置文件中的CRC值同FPGA计算出来的值比较,若有CRC校验错误产生,则置低,且FPGA停止加载。FPGA开始运行(Start-up)数据加载完毕后,继续送出CCLK时钟,等待DONE置高。当DONE置高后,FPGA将

33、进入Start-up状态,即FPGA从配置状态转入到运行状态。配置流程如下图所示:Xilinx FPGA的下载时序图如图所示。图 Xilinx下载的时序图图Virtex、Virtex e和Spartan Slave Serial模式的时间关系图图 SpartanXL Slave Serial模式的时间关系图其操作过程如下所述:CPU按下列步骤操作I/O口线,即可完成对FPGA的配置:设置=0,保持300ns以上,然后再设置=1。检测信号,如果为“1”,表明FPGA的Memory检测完毕,可开始进行配置。当在4us内未置高,FPGA需要重新配置。置CCLK=“0”,DIN上放置数据(低位在前),

34、延时(45ns以上)。CCLK=“1”(将数据写入FPGA中),并延时45ns以上,并检测是否变低,若=0,FPGA需要重新配置。准备下一位数据,并重复执行步骤3、4,直到所有数据送出为止。继续送出时钟信号,并等待DONE置高。当DONE置高后,表明FPGA的配置已完成。若在一定时钟周期内DONE内不能置高(需要等待的最大时钟周期在DataSheet中没有介绍,Xilinx的技术人员说是配置成功一般需要十几个时钟周期DONE信号便会抬高,在例程和流程图中,我们采用了等待20000个时钟周期,此时DONE还不置高,表示配置异常。),必须重新配置(从步骤1开始)。 其配置流程图如下图所示: 采用S

35、lave Serial模式对多个FPGA进行配置在该模式中,需要将多个FPGA级连在一起,如图所示。 对于多个FPGA级连在一起进行配置时,若FPGA较多且输出的时钟频率也较高的话,需要加入时钟驱动芯片,将从CPU中出来的信号经过时钟驱动芯片后送入到FPGA中(对于FPGA在两片以上的,最好加入时钟驱动芯片,以便保证可靠的时钟信号)。对于别的口的驱动问题不作特殊要求。将每一个FPGA都设为Slave Serial模式,同时上一级的DOUT同下一级的DIN相连。当上一级的数据配置完成后,以后输入的数据便从DOUT输出,下一级的DIN从上一级的DOUT中接收配置数据,这样一级一级配置。当所有的FP

36、GA配置完成后,DONE才能置高。其配置时序如下图所示。Xilinx FPGA的从串多级配置的配置时序图 Xilinx FPGA的从串多级配置的配置时序图 当本片FPGA的配置数据加载完成后,DOUT选择在时钟的上升沿将数据输出。从时钟的上升沿到DOUT数据输出的时间为。见前面的配置时间关系表可以看出,对于VERTEX、VERTEX_E、SPARTAN ,该时间的最大值为12ns;对于SPARTAN XL,该时间的最大值为30ns。DOUT数据的输出是在本片FPGA的配置数据加载完毕后才输出的,而且数据是选择在CCLK时钟的上升沿后由本片的FPGA这种配置方式需要将所配置的多个 *.bit文件

37、合成一个 *.mcs文件。其合并过程如下(以Xilinx的开发平台Project Manager为例): 打开工程文件后,进入如图所示的界面。选择PROGRAMING一项,进入如下图所示的界面。再选择PROM File formatter,进入如下图所示的界面。 双击所要配置的文件(*.bit),将它加入到左边Data stream #1中。注意:一定要注意文件次序,第一个*.bit文件是配置级连链路上的第一个FPGA的,第二个*.bit文件是配置级连链路上的第二个FPGA的。 然后选择File中的PROM Save as,将文件存入一个目录下。在该目录下形成的*.mcs文件即为我们所需要的配

38、置文件。该配置过程与采用Slave Serial模式对单个FPGA进行配置的方法相同。且在CPU中的配置程序的编写也相同。 在级连模式中,我们需要注意的就是CPU的I/O口的驱动问题和各配置端口的上拉电阻的选取问题。各种Xilinx FPGA的直流电器特性见附录。其中,SPARTAN XL、SPARTAN 、VERTEX、VERTEX_E的输入输出的漏极电流均为:Min=10uA;Max=10uA。其中以子模块和主要芯片为单元,画出各单元之间的连接关系,以及关键的逻辑关系;支撑整个电路的主要信号线或引出线。详细介绍上述各单元电路的基本工作原理及整个电路的工作过程。各组成部分完成的功能和指标分配

39、,以及相应的时序图、逻辑图、信号关系、输入输出关系等。 RS-422接收器能够经受7 V的共模电压。(共模电压是输入A与B相对于地电压的平均值 )RS-485驱动器与接收器的特性与RS-422一样,它的驱动器与接收器能经受的共模电压扩展到+12 到-7 V, 因为驱动器要能够经受三态时的共模电压,而一些有三态能力的RS-422驱动器也不能经受+12 到-7 V的共模电压。在我们的CDMA95与3G设计中驱动器与接收器都加了共模抑制电感。RS-485与RS-422典型应用电路与选择方法图4是一个典型的RS-485四线多点网络,也就是用的是全双工的488芯片。 图4 图5是一个典型的RS-485二

40、线多点网络,也就是用的是半双工的485芯片。 图5 如果只有两个单片机做远距离通信,若对数据的处理速度要求很高的话,肯定选择全双工的488,因为这时候在只有两个单片机的情况下就无所谓谁是主机了,它们两个可以在任意时刻向对方发送数据,而不需要握手;而这时候如果用半双工的485的话,两个单片机之间必须有明确的握手协议才能正确通信,握手主要是为了避免总线竞争问题,而2个单片机的全双工通信是不会产正总线竞争的,并且从协议上来讲要简单很多。 在多单片机通信系统里,情况就不一样了,这里就拿单主查询方式来说,系统只有一个主机,主机问到谁了谁才能说话,否则不准说话,其实这个原则也是为了避免总线竞争问题。这时就

41、分成A、B两种情况了: A:系统上所有的单片机用的是全双工的488芯片,那么系统的工作过程是:主机呼叫1号子机,问有没有话要说,当1号子机察觉到呼叫的是自己后,先看看主机问的是什么问题,然后根据自己的情况作相应的回答,回答完后就继续订着总线有没有再一次呼叫到自己,当主机没有呼叫到自己时,自己是不能乱说话的,因为这时候主机有可能在和别的单片机说话,如果这时候自己乱说话的话,总线上的电平肯定乱套了,于是总线竞争就产生了,只好等待主机再一次呼叫到自己。这里面有一点需要说明,当某一子机被呼叫允许和主机说话时,因为这时候是全双工通信,所以在这个时候主机和子机之间可以乱说话,但有一点就是当子机把要说的话全

42、说完的时候,必须明确的告诉主机我要讲的话讲完了,否则的话主机不知道是否该继续往下查。 B:系统上所有的单片机用的是半双工的485芯片,那么系统的工作过程是::主机呼叫1号子机,问有没有话要说,当1号子机察觉到呼叫的是自己后,先看看主机问的是什么问题,然后根据自己的情况作相应的回答,回答完后就继续订着总线有没有再一次呼叫到自己,当主机没有呼叫到自己时,自己是不能乱说话的,因为这时候主机有可能在和别的单片机说话,如果这时候自己乱说话的话,总线上的电平肯定乱套了,于是总线竞争就产生了,只好等待主机再一次呼叫到自己。 现在我们对比上述的两种情况,发现全双工和半双工多机通信唯一的区别在于:当某一个确定的

43、子机和主机说话时,对于全双工来讲这时候和主机直接说话就行,可以随便乱说话而不需要握手了,但是有一点就是当子机不想再说话的时候要明确的告诉主机一声,好让主机死了这条心继续往下查别的子机。除了这个地方外,其他的和半双工的485是一样的。所以在多机通信系统中,用全双工的488并没有比半双工的485效率高多少,而且它至少要比485多拉出两条信号线来,这是一个很大的开销,这时应该用半双工的485。图6是一个典型的RS-422四线网络。 图6 485总线上处理竞争的方法 先要总线结构:一主多从,多主多从,全主全从,无主等。再看你的实时性要求,可靠性要求;还要看网络数据流量和特征(如是否突发)等。常用的协议

44、:1,CSMA/CD(竟争)如以太网(无主) 2,TOKEN BUS 令牌(无主) 3,主从(探寻或点叫)(主从) 4,全主全从 5,改进型CSMA/CD 如CAN 总线(硬件实现)(无主) 缺点:优先权码低的可能很难发出。 “中断方式”属于“4,全主全从”,“查询方式”则为“3,主从(探寻或点叫)”,而“2,TOKEN BUS 令牌”也不失为很好的方案,“1,CSMA/CD(竟争)”对软件资源开销较大,初次使用不易做好,“5,改进型CSMA/CD 如CAN 总线(硬件实现)”则把软开销转化为硬开销,增加成本。若要详细了解,应找“数据通信”或“现场总线”相关的书籍看看。 通常,容量/数据流量较

45、少的总线,建议采用“全主全从”方式,实时性强,效率高,编程简单,碰撞的概率较低; 有一定容量的总线,建议采用“主从(探寻或点叫)”方式,实时性还行(相当于分时),编程不难,效率较差,总线时刻在忙却不会碰撞; 总线节点较多时建议采用“TOKEN BUS 令牌”方式,实时性居中,效率较高,总线时刻在忙却不会碰撞,但编程较难。 在我们的CDMA 95与3G系统中都是采用“主从(探寻或点叫)”方式。 子模块设计说明子模块设计说明文档按本文即xxxx模块说明要求;无可编程器件说明如有可编程器件,应给出无:原理及框图 画出可编程器件内部的逻辑原理框图和关键逻辑的原理框图,并作相关的说明无。器件说明根据编程

46、逻辑选用相应的器件及型号,并作简要说明无。管脚说明说明选用的器件所有管脚的定义和输入输出信号的含义,应使用列表方式无。关键时序说明关键的逻辑时序关系和要求,画出其波形。必要时附上仿真的模拟波形图无。编程文件说明说明使用的编程器、编程文件和生成的目标文件名(包括烧结文件和逻辑图文件)以及芯片的烧结方式(包括烧结使用工具)无。软件在Xilinx最后形成的*.mcs文件是一种以Intel Hex文件格式存储的文件。该文件我们需要将它转换成数据文件,将其加载到CPU系统的ROM或RAM中。转换方式共有两种,分别如下:1用烧录器转换*.mcs文件以MPC860小系统为例,我们可以用烧录器将转换完成的*.

47、mcs文件作为十六进制文件,直接烧录MPC860小系统的某一ROM/Flash区域。我们在程序中直接调用该数据,将该数据加载到FPGA上即可。用程序转换*.mcs文件为了支持在线能够将FPGA数据嵌入到程序中去,随同程序一起下载下载,我们可以通过程序将*.mcs文件转换为一个数组文件,在程序中直接调用该数组文件即可。(我们也可以将*.mcs文件直接存储起来,在程序中直接转换后调用即可。限于篇幅的关系,在这里我只列举出Intel Hex的文件格式,并附上一用C+ Builder编写的转换程序的原代码和形成的.exe文件。)Hex文件的INTEL格式:LLAAAATTDDCC这是Intel公司提出

48、的按地址排列的数据信息,数据宽度为字节,所有数据使用16进制数字表示。其中“:”表示该行的开始;LL表示数据的长度;AAAA表示数据的地址(当数据的地址大于64K,该地址还需加上其基地址,见后所述);TT表示记录的类型,它的定义为:0 数据记录、 1 记录文件结束 、2 扩展段地址记录 、3 开始段地址记录 、4 扩展线性地址记录 、5开始线性地址记录;DD表示数据;CC表示校验数据,CC加上所有数据DD的和为0。举例如下:10008000AF5F67F0602703E0322CFA92007780C361:1000900089001C6B7EA7CA9200FE10D2AA00477D81:

49、0B00A00080FA92006F3600C3A00076CB:00000001FF第一行,“:”符号表明记录的开始,后面的两个字符表明记录的长度,这里是10h。后面的四个字符给出调入的地址,这里是0080h。再后面的两个字符表明记录的类型,这里为00,表示数据记录。后面则是真正的数据记录, 最后两位是校验和检查,它加上前面所有的数据和为0。最后一行特殊,总是写成这个样子:00000001FF,表示文件结束。扩展Intel Hex的格式(最大1M), 由于普通的Intel的Hex记录文件只能记录64K的地址范围,所以大于64K的地址数据要靠扩展Intel Hex格式的文件来记录。对于扩展形式

50、Hex文件,在每一个64K段的开始加上扩展的段地址规定,下面的数据地址均在这个段内,除非出现新的段地址。一个段地址定义的格式如下:起始符 长度 起始地址 扩展段标示 扩展段序号 无用 累加和,如:02 0000 02 3000 EC段地址的标识符是第四组数据02,表示扩展地址段的定义。上面的定义为3,表示段地址是3,所以下面的数据地址是3 + XX(XX是64K段内的地址)。如在该行的下面有这样的代码:1000000008200400000000001BA0B4089102C402F4表示该数据的地址从0 x30000开始该行的第一字节。补充:对于数据大于1M的表示方法为::020000040

51、005F5:020000020000FC粗体字中的是新加入的字段,如1M,1M的边界就加入:020000040001F9,然后重头开始同Intel Hex16的格式;如果2M,2M的边界加入:020000040002F8,以此类推; (2)转换程序的原代码(设计转换程序只适用于FPGA配置数据小于1Mbyte的情况,对于大于1Mbyte的情况,设计者可根据该程序来修改。)见附录。如果模块中抱包含有软件,应提供如下软件资料:源程序下面将给出配置FPGA的应用程序。(连接图如图1所示)。其中FPGA与CPU的连接关系如下表所示:序号对应CPU的管脚对应FPGA的管脚1PA92PA103PA11DO

52、NE4PB29DIN5PB30CLKUbyte FPGA_Main (Unsigned Long Addr) Long k; Ubyte *Paddr; Paddr=(Ubyte *)Addr; /*配置所需要的I/O口初始化*/ IMMR-pio_padir &= 0 xffcf; /*pa10,pa11 input*/ IMMR-pio_padir |= 0 x0040; /*p9 output*/ IMMR-pio_papar &= 0 xff8f; /*pa9,10,11 为通用I/O口*/ /*pb29,pb30 ouput generic I/O */ IMMR-pip_pbdir

53、 |= 0 x00000006; IMMR-pip_pbpar &= 0 xfffffff9; /*配置开始*/IMMR-pip_pbdat &= 0 xfffffff9; /*CClk=0,Din=0*/*配置复位信号Program置低延时,使FPGA芯片清除配置存储器*/ IMMR-pio_padat |= 0 x0040; /*prog set high*/ IMMR-pio_padat &= 0 xffbf;/*prog=0*/ Delay(10); /*延时10us(延时大于300ns即可)*/IMMR-pio_padat |= 0 x0040; /*prog set high*/*

54、等待INIT信号变高,若在一段时间内未变高,返回配置不成功值0(等待的时间大于4us即可)*/for (k=0;kpio_padat & 0 x0020)!=0) break; if (k=500000) return 0;/*开始加载配置数据*/ for (k=0;kpio_padat & 0 x0020)=0) /*INIT变低,返回值0*/ return 0; /*数据传送完毕,需再次检查INIT是否变低,若变低表示FPGA配置不成功*/for (k=0;kpio_padat & 0 x0020)=0) /*INIT is low */ return 0; IMMR-pip_pbdat

55、&= 0 xfffffffb; /*Din=0*/ /*继续送出CLK信号,并且等待DONE信号变高,当DONE变高后,表示FPGA配置结束*/for (k=0;kpip_pbdat &= 0 xfffffffd; /*CClk=0*/if (IMMR-pio_padat & 0 x0010)!=0) return 1; IMMR-pip_pbdat |= 0 x00000002; /*CClk=1*/ if (k=200000) IMMR-pip_pbdat &= 0 xfffffffd; /*CClk=0*/ Return 0; /*DONE cant turn into high*/ /

56、*传送一个字节数据子程序,由于CPU使用的是MPC860,其工作在50MHz频率下,下面每一条指令的时间均大于45ns,故未考虑传送数据时的延时 */Void SendDataBit(Unsigned Char Dat) Int i; Unsigned Char Mask=0 x01;/*用Mask信号来标定需要传送数据位(由低到高)*/ for (i=0;ipip_pbdat &= 0 xfffffffd; /*CClk=0*/ if (Dat & Mask) IMMR-pip_pbdat |= 0 x00000004; /*当传送的数据位为1时,置DIN为1*/else IMMR-pip_

57、pbdat &= 0 xfffffffb; /*当传送的数据位为0时,置DIN为0*/ Mask=Maskpip_pbdat |= 0 x00000002; /*CClk=1,送入数据*/ 应按软件工程种的相应规定提供源详细程序框图、源程序及说明;参数说明应指出软件模块及子模块中使用的参数并参数的使用(调整)方法Addr:FPGA配置文件存储的起始地址(在调用程序时输入);FPGA_CONF_FILE_SIZE:FPGA配置文件长度,需在头文件中定义;软件接口说明指出地址空间分配(包括ROM地址、RAM地址、I/O地址);各可编程芯片的接口地址。若模块含CPU,应分别对每个CPU的外部和内部资

58、源根据原理图进行详细说明,包括外部资源地址分配图、周边设备的接口方式和控制过程、存储器空间地址分配图和中断系统详细说明等。模块实现各项功能的操作次序要求FPGA加载成功,返回值1;否则,返回值0。工艺结构说明说明模块的工艺要求,包括PCB工艺(迭层、布线、元器件封装、布局、焊接工艺)、PCB板材、可能的结构工艺、及其它特殊工艺要求,等等略。可信性设计说明本模块没有独立使用的器件,故略去。对需独立制板的模块,需进行可信性设计:可靠性的设计根据元器件清单对模块的可靠性指标进行预计,并与分配指标进行比较。说明模块元器件的质量要求及降额等级。说明该模块进行的热设计措施以及效果。描述该模块所采取的EMC

59、设计方法。其它可靠性设计方法的说明,如安全、防错、冗余、容差设计等网络配置 RS-485支持半双工或全双工模式,网络拓扑一般采用终端匹配的总线型结构,不支持环形或星形网络。最好采用一条总线将各个节点串接起来,从总线到每个节点的引出线长度应尽量短,以便使引出线中的反射信号对总线信号的影响最低。下图所示为实际应用中常见的一些错误连接方式(图7左边三个图)和正确的连接方式(图7右边三个图)。图7左边三种不恰当的网络连接尽管在某些情况下(短距离、低速率)仍然可以正常工作,但随着通信距离的延长或通信速率的提高,其不良影响会越来越严重,主要原因是信号在各支路末端反射后与原信号叠加,造成信号质量下降。总线型

60、连接可以使总线上每一个端点都用终端电阻。 图7 除此之外还应注意总线特性阻抗的连续性,在阻抗不连续点也会发生信号的反射。例如,总线的不同区段采用不同电缆、某一段总线上有过多收发器紧靠在一起安装、或者是有过长分支线引出总线时都会出现阻抗不连续点。总之,应该提供一条单一、连续的信号通道作为总线。 有关总线上允许连接的收发器数标准并没有做出规定,但规定了最大总线负载为32个单位负载(UL)。每单位负载的最大输入电流为1.0mA/-0.8mA,相当于约12k。为了扩展总线节点数,器件生产厂商增大收发器输入电阻。例如MAX487,MAX1487的输入电阻增加至48k以上(1/4UL),节点数就可增加至1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论