基于FPGA的RS485通信接口设计.doc

上传人:仙人指路1688 文档编号:4137790 上传时间:2023-04-07 格式:DOC 页数:41 大小:2.42MB
返回 下载 相关 举报
基于FPGA的RS485通信接口设计.doc_第1页
第1页 / 共41页
基于FPGA的RS485通信接口设计.doc_第2页
第2页 / 共41页
基于FPGA的RS485通信接口设计.doc_第3页
第3页 / 共41页
基于FPGA的RS485通信接口设计.doc_第4页
第4页 / 共41页
基于FPGA的RS485通信接口设计.doc_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《基于FPGA的RS485通信接口设计.doc》由会员分享,可在线阅读,更多相关《基于FPGA的RS485通信接口设计.doc(41页珍藏版)》请在三一办公上搜索。

1、毕业设计说明书设计题目:基于FPGA的RS485通信接口设计院(系) 专业年级 学生姓名 学号 指导教师 职称 设计地点 日 期 目录第一章 概述2、概述3、RS485通信协议介绍3、课题研究内容5第二章课题开发环境5、WinCE6.0概述52、概述73、Quartus的介绍84 、Altium Designer概述95、VHDL设计语言96、PC3250介绍11第三章 总体结构设计121、DCS控制器软件部分12、DCS控制器硬件部分133、DCS通信需求15、远端I/O模块通信需求16第四章 基于FPGA的RS485电路硬件设计17、RS485驱动芯片选型17、FPGA器件接口设计17、C

2、PU接口设计24第五章 RS485通信接口软件设计251、FPGA通信协议及寄存器设计25、FPGA端发送流程29、FPGA端接收流程30、LPC3250驱动程序设计31()IO驱动程序设计31()中断驱动程序设计33第六章 实验39、FPGA收发数据测试39、FPGA中断测试41、实验结论41参考文献42摘要:本次设计主要是完成基于FPGA的RS485通信模块设计,以及与LPC3250之间的接口硬件设计与驱动程序设计工作,时RS485需要具有两路独立通道以实现冗余功能,并同时具有FIFO管理,与LPC2350之间要能够以中断方式接收数据,并实现校验等功能。通过RS485对数据进行接收和发送,

3、并且设计了两条RS485的通道可以实现冗余,当一路RS485通信损坏后,系统将启动另一路RS485。RS485由MAX3088驱动,其能够进行远距离数据传输且速度高;RS485接收到采集的数据之后,将数据传送给FPGA芯片,并由FIFO管理数据,而FPGA对于CPU处理数据来说,是一个外部存储器。当FPGA收到数据后,通过中断的方式令CPU接收数据并进行数据处理。在最后的实验测试中,可以得出FPGA能够准确的接收数据,然后能够通过中断传送给CPU内部,并且RS485能够进行长距离的传送,可以保证数据传达无误。关键词 通信模块 冗余 中断第一章 概述、概述 DCS是分布式控制系统,是一种分布结构

4、的控制系统。由多台计算机分别控制生产过程中多个控制回路,同时又可集中获取数据、集中管理和集中控制的自动控制系统 。分布式控制系统采用微处理机分别控制各个回路,通过高速数据通道,各回路之间和上下级之间交换信息。在分布式控制系统中,按地区把微处理机安装在测量装置与控制执行机构附近,将控制功能尽可能分散,管理功能相对集中 。DCS的发展体现在:系统的功能从低层逐步向高层扩展;系统的控制功能由单一回路控制发展到综合了程序控制、配方控制、批量控制、顺序控制及逻辑控制等混合控制功能;构成系统的产品改变为开放的市场采购产品;开放的趋势使第三方产品更加容易集成到系统中来;开放性带来的系统趋同化迫使DCS厂家向

5、高层、与生产工艺结合紧密的高级控制功能发展;数字化的发展向现场延伸,发展成为更智能化、更分散化的控制系统。第四代DCS基本上实现了全场实时控制,SCADA监控和MES的绝大部分功能。现在,计算机技术、微电子技术及管理信息技术等高速发展,促使第四代DCS的形成及发展。比如:通信技术的高速发展使整个工厂的信息实时准确地交换变成现实;各种管理信息系统的发展为DCS实现管理化功能提供了技术基础;现场总线技术与产品的成熟促进了DCS系统的集成化;PLC技术的发展与功能丰富激励了DCS的功能拓展。、RS485通信协议介绍为了弥补 RS-232 通信速率低、距离短等缺点,开发出了RS485通信。只规定了平衡

6、发送器和接收器的电特性作为RS-485 标准,没有规定接插件、传输电缆和应用层通信协议。RS-485数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,分别将两线定义为A和B,如图 1.1所示。图1.1 RS485 发送器示意图通常情况下,发送发送器 A、B 之间的正电平在+2+6V,是一个逻辑状态;负电平在-2-6V,是另一个逻辑状态。另有一个信号地 C。在 RS-485 器件中,一般还有一个“使能”控制信号。“使能”信号用于控制发送发送器与传输线的切断与连接,当“使能”端起作用时,发送发送器处于高阻状态,称作“第三态”,它是有别于逻辑“1”与“0”的第三种状态。对于接收发送器,也作

7、出与发送发送器相对的规定,收、发端通过平衡双绞线将 A-A与 B-B 对应相连。当在接收端 A-B 之间有大于+200mV 的电平时,输出为正逻辑电平;小于-200mV 时,输出为负逻辑电平。在接收发送器的接收平衡线上,电平范围通常在 200mV至 6V 之间。参见图 1.2 所示。 图1.2 RS485接收器示意图定义逻辑 1(正逻辑电平)为 BA 的状态,逻辑 0(负逻辑电平)为 AB 的状态,A、B 之间的压差不小于 200mV。 RS-485 标准的最大传输距离约为 1219 米,最大传输速率为 10Mbps。通常,RS-485 网络采用平衡双绞线作为传输媒体。平衡双绞线的长度与传输速

8、率成反比,速度越高使用的双绞线长度越短。在 20kbps 速率以下,使用的双绞线长度才能最长。RS-485 网络采用直线拓朴结构,需要2 个终端电阻,其阻值要求等于传输电缆的特性阻抗(一般取值为 120)。在短距离、或低波特率波数据传输时可不需终端匹配电阻。终端匹配电阻并联在 RS-485 传输网络的两个端点 A-B 引脚之间。RS-485 标准被用作为一种相对经济、具有相当高噪声抑制、相对高的传输速率、传输距离远、宽共模范围的通信平台且控制方便、成本低廉。、课题研究内容本次设计任务旨在设计一种基于FPGA的RS485通信接口电路,以及与LPC3250之间的接口硬件设计与驱动程序设计工作,其中

9、RS485需具有两路独立通道以实现冗余功能,并同时具有FIFO管理,与LPC3250之间要能够通过中断方式接收数据,并实现校验等功能,而FPGA即现场可编程门阵列,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点,使用方便准确,并且要满足DCS控制器对IO模块的通信性能要求。所以本任务就需要采用VHDL语言在FPGA上实现协议控制为基础的RS485通信接口电路扩展以及软件。还要通过Altium Designer对硬件进行设计研究以及连接。最后软硬件之间相互结合。本设计关键解决的问题是如何让,为了达到目的我认为应该从以下几个方面进行:(1)设计基于Altera 的CycloneI

10、I系列FPGA的RS485硬件电路(2)设计FPGA与LPC3250的接口电路(3) RS485模块协议软件编写(4)调试程序第二章课题开发环境、WinCE6.0概述微软WinCE是专门针对小型设备的通用操作系统而设计的。2006年发布的CE6.0,对操作系统进行了重新设计,每个进程都可以支持2GB虚拟内存(以往支持32MB),可以同时运行的进程数达到32000个(以往只有32个)。以往的CE操作系统的部分内核模块式使用单独进程,而CE6.0之后将这些模块以DLL的形式内建到内核之中,以便提高性能,减少系统开销,统一内核接口。Windows CE支持大多数32位处理器,包括ARM、MIPS、S

11、H4和x86。Windows CE包括600余个模块,可以方便用户灵活地定制内核镜像。Windows CE支持的模块包括:()快速的系统与应用程序开发ARM模拟器与多个平台的模板AYGShell API与Windows Mobile应用程序兼容Simple Network Management Protocol390万条开源源代码,内核全部开源产品级OAL(PQOAL),包括一系列库文件与源代码。BLCOMMON,包括一系列库文件与源代码,用于创建Bootloader产品级别的驱动与BSP包多语言支持()网络与无线连接支持TCP/IP, IPv4, IPv6, NDIS5.1PAN, LAN,

12、 WAN, 蓝牙SOAP, OBEX, LDAP客户端VoIP, RTC, SIPRIL, SMS, WAP, SIM卡接口RAPI/RAPI2, PPPoE()服务器终端Telnet, FTP, SMB, CIFS, MSMQASPParental Control打印架服务,Web代理()多媒体DirectDraw, DirectShow, Direct3DWindows媒体播放器,WMA,MP3网络浏览器DVD视频API接口数字版权管理()存储与文件系统支持FAT, TFAT, 对象存储CDFS/UDFSFSD管理,Cache管理CEDB,EDB数据库2、概述FPGA是一种可编程逻辑器件,

13、现场可编程门阵列(Field Programmable Gate Array,FPGA)的出现是可编程逻辑器件发展变化的必然,并且它还推动了可编程逻辑器件的进一步发展。FPGA器件已成为当今的主要的可编程逻辑器件之一了,资源更加多样,使用也越来越方便。FPGA由6部分组成: (1) 可编程输入/输出单元(I/O单元)大多数FPGA的I/O单元被设计为可编程模式,通过软件的灵活配置,可适应不同的电器标准与I/O物理特性;可以调整匹配阻抗特性,上下拉电阻;可以调整输出驱动电流的大小等。(2)基本可编程逻辑单元查找表和寄存器组成FPGA的基本可编程逻辑单元,查找表完成纯组合逻辑功能。FPGA内部寄存

14、器可配置为带同步/异步复位和置位、时钟使能的触发器,也可以配置成为锁存器。通过寄存器FPGA可以完成同步时序逻辑设计。(3)嵌入式块RAM目前大多数FPGA都有内嵌的块RAM。嵌入式块RAM可以配置为单端口RAM、双端口RAM、伪双端口RAM、CAM、FIFO等存储结构。(4)丰富的布线资源布线资源连通FPGA内部所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。布线资源可以分为全局性的专用布线资源;长线资源;短线资源;在逻辑单元内部还有着各种布线资源和专用时钟、复位等控制信号线。(5)底层嵌入式功能单元嵌入式功能单元指的是那些通用成都较高的嵌入式功能模块。(6)内嵌专用硬核指

15、的是硬核主要是那些通用性相对较弱的,不是每个FPGA都含有硬核。3、Quartus的介绍Alter公司的Quartus软件是一种集编辑、变异、综合、布局布线、仿真与器件编程于一体的集成设计环境。Quartus软件支持基于VHDL与Verilog HDL等硬件描述语言的设计和基于图形的设计,内部嵌有VHDL和Verilog HDL的逻辑综合器,也支持利用第三方的综合工具进行逻辑综合。表2.1 Quartus图形用户界面的功能和与其对应的软件工具。基本功能扩展功能设计输入文本编辑器模块/符号编辑器宏单元插入管理器系统级设计SOPC BuilderDSP Builder设计综合分析和综合设计助手RT

16、L查看器技术映像查看器增量式综合软件开发Software Builder约束输入分配编辑器引脚规划期设置对话框平面布图编辑器设计分区窗口基于模块设计Logiclock窗口平面布图编辑器VQW WriterEDA界面EDA Netlist Writer布局布线适配器分配编辑器平面布图编辑器增量式编译报告窗口资源优化设计空间管理器芯片编辑器功耗分析PowerPlay Power Analyser工具PowerPlay Early Power Estimator时序逼近平面布图编辑器LogicLock窗口时序优化设计空间管理器增量式编译时序分析时序分析仪报告窗口工艺映射查看器调试SignalTapS

17、ignalProbe系统内存储器编辑器RTL查看器工艺映射查看器芯片编辑器仿真验证仿真器波形编辑器加载编程汇编程序编程器转换程序文件工程更改管理芯片编辑器资源属性编辑器更改管理器 4 、Altium Designer概述Altium Designer 是Altium公司推出的一体化的电子产品开发系统,主要运行在Windows XP操作系统。这套软件通过把原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合。Altium Designer拓宽了板级设计的传统界面,全面集成了FPGA设计功能,从而允许工程设计人员能将系统设计中的FPGA与PCB设计及嵌入

18、式设计集成在一起。Altium Designer 6.0将设计流程、集成化 PCB 设计、可编程器件设计和基于处理器设计的嵌入式软件开发功能整合在一起的产品,一种同时进行PCB和FPGA设计以及嵌入式设计的解决方案,具有将设计方案从概念转变为最终成品所需的全部功能。5、VHDL设计语言VHDL主要用于描述数字系统的结构,行为,功能和接口。VHDL的程序结构特点是将一项工程设计或设计实体,分成外部和内部,涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,只要完成内部开发,其他的设计就可以直接调用这个实体。VHDL 语言主要具有以下优点:(1) VHDL 语言功能强大,设计方式多

19、样;(2) VHDL 语言具有强大的硬件描述能力;(3) VHDL 语言具有很强的移植能力;(4) VHDL 语言的设计描述与器件无关;(5) VHDL 语言程序易于共享和复用;因此 VHDL 语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言,从而减小硬件电路设计的工作量,缩短开发周期。从结构上看,VHDL具有相对清晰的结构构成。从程序开始到结束,个部分结构都具有特定的功能和语法结构。实体是设计中最基本的模块,描述设计实体的外部接口特性。由多个模块构成的设计实体中可能包含多个实体,其中包括一个顶层实体和处于底层的底层实体,底层实体可以作为组件例化到高层次实体中,顶层实体可以对应于芯片的

20、外部引脚定义。结构体用于描述实体所代表的系统内部的结构和行为。每个实体都必须有至少一个结构体与之相应。结构体定义了设计实体的具体功能实现,规定了设计实体的数据流程,制定了实体内部元件的连接关系。库是用来存放已经编译过的实体、结构体、程序包等数据集合。库和程序包的作用就是使得设计者可以共享已经编译过的设计结果,在程序包中,用户可以定义一些公用的子程序、常量和自定义数据类型。在VHDL中数据类型、常量及子程序在实体声明和机构体内定义,而这些数据类型、常量及子程序对其它设计实体是不可见的。配置就是从与某个实体对应的多个结构体重选定一个作为具体实现。它可以作用实现对应多个结构体,即多种实现方式。6、L

21、PC3250介绍LPC3250嵌入式微控制器满足低功耗,高性能。NXP通过使用90纳米的处理技术,将一个带有矢量浮点协处理器的ARM926EJ-S CPU内核与一系列包括USB On-The-Go在内的标准外设结合起来,从而实现LPC3250的性能目标。LPC3250可工作在高于266MHz的CPU频率下。LPC3250采用NXP半导体先进的开发技术优化内在功率实现低功耗,并使用增强型的软件控制结构使基于功率管理的应用得到优化。LPC3250包含有256KB的片内静态RAM、NAND Flash接口、以太网MAC、1个支持STN和TFT面板的LCD控制器、1个支持SDR和DDR SDRAM以及

22、静态设备的外部总线接口、USB2.0全速接口、7个UART、2个I2C接口、2个SPI/SSP端口、2个I2S接口、2个多通道PWM、4个带有捕获输入和比较输出的通用定时器、加密数字(SD)接口和带有触屏感应选项的10位A/D转换器。LPC3250 含有1个主机中断控制器(MIC)和2个从机中断控制器(SIC),支持74个中断源,高达18个外部中断。中断控制器是通过FAB总线访问的,中断控制器的内部连接,如图2.2所示:图2.2 中断控制器内部连接图如图所示,中断控制器的输入是异步的,在加工前同步。中断控制器的输出驱动器的FIQ和IRQ输入到CPU。所有的外部中断引脚连接着步电路两个小组的中断

23、的控制器(SIC1 SIC2)。SICs的四个中断输出连接到主中断控制器(MIC)4个中断输入,其应始终配置上的MIC输入低电平有效水平。所有中断都可以被编程为一个特定的极性。如果设置触发边缘,直到被清除激活的中断状态存储由主机。每个中断源可以单独屏蔽和屏蔽之前和之后都可以读取中断状态。每个中断源设置为产生一个IRQ或FIQ。 SIC寄存器APR和ATR必须配置为每个中断引脚中断模式。一个典型的位片中断控制器,如图2.3所示:图2.3 位片中断控制器第三章 总体结构设计1、DCS控制器软件部分DCS控制器是DCS的核心,系统的主要控制功能由它来完成。DCS控制器的基本功能主要包括:I/O数据

24、的采集、控制运算及I/O数据的输出等。DCS的控制功能由控制器来实现,是控制器的核心功能。在控制器中一般保存有各种基本控制算法,如PID、微分、积分、超前滞后、逻辑运算、模糊控制及先进控制等控制算法程序。在控制器软件中,I/O容量、控制算法容量、采集数据的分辨率和控制运算周期,起着决定性作用。对于DCS系统来说,必须要满足实时性的要求。这种系统网络在任何情况下,网络通信都不能中断,大部分DCS还是采用双总线、环形或双重星型的网络拓扑结构。图3.1DCS控制系统通信的拓扑结构。图3.1DCS控制系统通信的拓扑结构、DCS控制器硬件部分一个典型的主控制器的组成框图如图3.2所示,从图中可得,主控制

25、器主要有CPU、系统网络接口、控制网络接口、主从冗余控制逻辑、掉电保持SRAM及电源电路组成。以太网接口站地址设定工作电源DP接口CPU10MB以太网控制SENT1SENT2RENT 主/从单元控制调压24 SRAM24 双口RAMDSPUARTDP DP 图3.2典型的DCS控制器组成原理框图各部分功能简述如下:CPU:控制运算的主芯片,近年来以ARM核为基础的低功耗芯片的流行。系统网络(SNET)接口:SNET接口是主控制器与操作员站、工程师站等操作层设备通信的网络接口。现在DCS的系统网络都采用了以太网,事实证明,只要在软件的应用层上采取一定的保护措施(比如应答和重发),其可靠和安全性是

26、没有问题的。控制网络(CNET)接口:CNET接口是主控制器与I/O进行数据交换的网络接口。作为过程控制系统,由于DCS需要进行大量的模拟量数据传送,每个I/O设备的数据量较大,所以CNET一般选择字节型长包协议的通信网络。主从冗余控制逻辑:该部分电路用于控制互为备份的两台主控制器的切换。因为要满足过程控制对安全性和可靠性的要求,该部分电路必须确保任一时刻有且仅有一台主控制器的控制指令被输出到I/O设备。DCS控制系统冗余通信网络如下图3.3图3.3 DCS控制系统冗余通信网络固态盘或Flash存储器:用于保存主控制器的操作系统、用户控制算法文件等信息。在主控制器上电启动后将这些文件调入内存运

27、行。内存:用于加载运行程序,掉电后内存的内容不会被保存。掉电保持静态存储器:用于存储运行过程中需要实时保存、并且在系统掉电后还需要保存一段时间的数据。为了DCS掉电后SAM能够保存实时数据,一般的主控制器都设置有使能开关,用于接通或关断SRAM的后备电池。电源电路:主控制器的电源输入一般是24V直流电源,需要将其变换成5V直流或3.3V直流,供主控制器上的IC芯片使用。3、DCS通信需求DCS系统主要有两种通信方式:以太网通信和I/O模块通信。对上层操作站通信使用以太网。由于DCS是由各种不同功能的站组成的,这些站之间必须实现有效的数据传输,以实现系统总体的功能,因此系统的实时性、可靠性和数据

28、通信能力关系到整个系统的性能,随着以太网技术逐步成熟,以太网被直接选做系统网络。在以太网初期,其网络介质访问的特点比较适宜传输信息的请求随机发生,每次传输的数据量较大而传输的次数不频繁,因网络访问碰撞而出现的延时对系统影响不大的应用系统。但是在真正的控制系统中,数据传递需要周期性的传输,而且每次传输的数据次数频繁。随着以太网应用的广泛和成熟,以太网的传输速度有了极大的提高,从最初的10Mbps发展到现在的100Mbps甚至到10Gbps,极大的改进了以太网的实时性。并且随着交换技术的采用,更使以太网在多节点可以同时访问。在I/O模块部分,通常使用串行总线或者现场总线实现通信。对于串行总线来说,

29、由于并行总线结构比较复杂,用它连接逻辑部分和现场部分很难实现有效的隔离,成本较高,所以大部分选用串行总线。串行总线的优点是结构简单,成本低,很容易实现隔离,而且容易扩充,可以实现远距离的I/O模块连接。而随着近几年现场总线的发展,直接使用现场总线的产品作为现场I/O模块和主处理模块的连接已经很普遍了,比如:CAN、Profibus等等。由于DCS的现场控制站有比较严格的实时性要求,需要在确定的时间期限完成测量值的输入、运算和控制量的输出,因此一般在快速控制系统中,可以采用较高速的现场总线,如CAN,而在控制速度要求不是很高的系统中,采用较低速的现场总线。下图为DCS系统的通信部分分析:图3.4

30、 DCS系统通信分析、远端I/O模块通信需求DCS控制系统中,系统需要建立信号的输入和输出通道这就是I/O口,而I/O模块上有一个或多个I/O通道,用来连接传感器和执行器。I/O模块与DCS控制站之间的通信方式有两种:RS484通信协议和现场总线方式。RS485数据信号采用的是差分传输方式,且抗噪声干扰性号,且在传输线上接终端电阻。RS485可以采用二线与四线的方式,二线制可实现真正的多点双向通信,而采用四线连接时,则只能实现点对多的通信,总线上可多接到32个设备。RS485的数据最高传输速率可达10Mbps,最大的传输距离可达1200米。因为RS485接口组成是半双工网络,所以RS485接口

31、均采用屏蔽双绞线传输。图3.5DCS控制器RS485通信结构现场总线具有实时性、互操作性、互换性、开放性、现场设备的智能化与功能自治性、经济性、安全和可靠的优点。因此,可以使控制系统的设计、安装、投运、正常生产运行和检修维护都得到优化。现场总线设备的智能化、数字化,与模拟信号相比,它从根本上提高了测量与控制的准确度,减少了传送误差。同时,由于系统的结构简化,设备与连线减少,现场仪表内部功能加强,减少了信号的往返传输,提高了系统的工作可靠性。另外,由于它的设备标准化和功能模块化,因而还具有设计简单,易于重构等优点。第四章 基于FPGA的RS485电路硬件设计、RS485驱动芯片选型MAX3088

32、是一个用于RS485/422通信的高速收发器件,是一个半双工的通信收发器件,包含一个驱动器和一个接收器。这些器件具有失效保护电路,当接收器输入开路或短路,从而保证接收器输出逻辑高。意思就是如果所有终止总线发送器都禁用,那么接收器输出将会是逻辑高“1”。MAX3088的驱动器的摆率是没有限制的,使传输速度高达10Mbps的可能。所有的驱动器有一个1 / 8-unit-load达的输入阻抗,在总线上最多允许有256个这样的收发器。MAX3088的静态电流为375A,引脚数为8个。图4.1为MAX3088硬件图和图4.2为MAX3088真值表。图4.1MAX3088内部硬件图 图4.2MAX3088

33、真值表、FPGA器件接口设计对于CPU端的外围器件的选择,采用的是CS片选信号,它用来区别总线上的数据和地址由哪个芯片处理,一般是在划分地址空间时,由逻辑电路产生的,一般开路输入管脚呈现为高电平,因此片选信号绝大多数情况下是一个低电平。由于LPC3250片选信号有限,因此采用EMC_nCS3片选线挂两个外围器件的方式,分别外接的是485和CAN,并根据不同的地址总线分别基地址。因此,选用74HC00器件作为片选信号逻辑运算器件。74HC00为四组独立的2输入端与非门(正逻辑),其逻辑图如图4.3:图4.3 74HC00逻辑图(双列直插封装)其中A1A4和B1B4为输入端,A-B间电压为5.5V

34、,输入电压为5.5V,YIY4为输出端,Vcc电源电压为7V。其布尔运算为: 或者:图4.4 74HC00真值表其片选连接方法如下图所示:图4.5 LPC3250片选信号由图可知片选信号EMC_nCS3第12号和第13号接口分别输入低电平通过该逻辑运算器后从11号输出高电平,并且作为4号接口输入高电平,而5号接口输入的是高电平那么6好接口输出低电平输出,也就是说CAN_nCS片选信号是低电平;1号接口输入的是高电平和2号接口输入高电平,那么3号接口输出的是低电平,所以E485_nCS片选信号为低电平。SN74LVCC3245是一个拥有两个独立供电电源轨的8位正逻辑总线收发器。B口是被用来追踪V

35、ccB的,其接收电压范围在3V5.5V之间,而A口则是被设计来追踪VccA的,其接收的电压范围为2.5V3.6V之间。这种结构允许数字逻辑从供电电压在3.3V的系统环境转换到5.5V的系统环境,当然也可以从5.5V的系统环境转换到3.3V的系统环境。SN74LVCC3245是应用于数字总线之间的异步通讯,这个设备的数据传递从A总线到B总线或者是从B总线到A总线的传递方向取决于方向控制引脚DIR上的逻辑电平。输出允许引脚OE可以被用来禁用某些器件,这样可以对总线有效隔离。SN74LVCC3245的工作环境温度为-40C85C。SN74LVCC3245双向电平转换器有下列的特点:(1)双向电压转换

36、;(2)A口输出电压的范围是2.3V到3.6V,B口的输出电压范围是3V到5.5V;(3)控制输入信号VIH/VIL逻辑电平参数VCCA的电压;Latch-Up性能超过250mA。下表4.1为SN74LVCC3245的逻辑真值表:表4.1 SN74LVCC3245数据传递方向功能表由上表可知当OE和DIR都为低电平时,其中OE和DIR都是由VCCA供电。数据是由B口传向A口;当OE为低电平和DIR为高电平时,数据是由A口传向B口;当OE为高电平时,器件将与外部总线隔离。485端的总线与CPU端总线连接如下图所示:图4.6 485端的总线与CPU端总线连接由图4.5可知,E485_nCS的输入信

37、号是低电平,则在图4.6中可得DIR和OE都为低电平,数据就是从B总线传向A总线。FPGA器件采用的是Altera公司的Cyclone系列的EP2C5Q208C8N,该芯片包含一个二维的行和列的基本构架来实现来自定义的逻辑。这个芯片最多可用I/O接口有158个。在该芯片上的每个I/O接口都有各自的编号,在硬件设计上需要自定义引脚接线意义。为了适应电压参考的I/O标准,该芯片I/O接口有两个个单独的VREF总线。EP2C5芯片一个有4608个逻辑单元,26个M4K RAM块,其中RAM总量为1119808,并且可以扩大外周设置。EP2C芯片与CPU端采用的是16位数据总线,4条地址总线A0-A3

38、表示的是地址为0X00-0X0F。下图4.7为FPGA端地址数据线接口及引脚分配:图4.7 FPGA端地址数据线接口及引脚分配由图4.7可知,第86-89引脚通过外挂485分别于SN74LVCC3245的A1-A4连接,而102-103接口与SN74LVCC3245的B5和B6相连,进行读写和隔离总线作用;第56到76号引脚共16个数据总线与74LVCH162245连接。74LVCH162245是一个16位收发器且具有3态总线兼容输出发送和接收方向,输入输出电压为5V。74LVCH162245的30欧串联端电阻的高和低输出都能减少线路噪音。使用了74LVCH162245作为总线连接器件,也有一

39、些IDE硬盘的连接也使用它,具体作用:总线隔离,一个高速的总线(50M以上)到处乱跑的话,其后果的很可怕的。使用它可以有效减少EMI,同时也不会由于一个外设的损坏而导致整个总线的瘫痪。还有一个作用是增强总线的驱动能力以及电平转换。下表为74LVCH162245的真值表:表4.2 74LVCH162245真值表由于FPGA器件上总线速度超过50M,甚至达到100M,因此需要利用74LVCH162245作为总线驱动与隔离器件,增强总线抗干扰性以及数据传输的可靠性,图4.8为FPGA端数据与片选、读写信号:图4.8 FPGA端数据与片选、读写信号由上图可知,1DIR和2DIR是方向控制输入,而它是是

40、由EMC_nOE决定为低电平,2OE和2OE是使能输入,而由E485_nCS决定为低电平,由真值表可得知,该芯片的数据传递方向是由B传向A。该芯片是连接FGPA和CPU的,由于它们之间传递数据时会出现过高的速度,此芯片可以缓冲过高的速度。HCPL-0601是一种高速10MBit/s的逻辑门光耦器件,对总线信号进行隔离传输,,输入和输出间互相隔离,电信号传输具有单向性特点。该器件是一个集电极开路输出,主要应用于TTL到LSTTL或LSTTL、5V CMOS,线性接收器,数据传输,数据复用,开关电源,计算机外围设备接口等。其输出类型为逻辑闸,通道数为1,隔离电压为2.5KV,输入电流为15mA,输

41、出电压为7V。图4.9为HCPL-0601的内部原理图和表4.2为HCPL-0601真值表:图4.9 HCPL-0601的内部原理图表4.2HCPL-0601真值表74AHC1G14是一种反相施密特触发器,利用施密特触发器提供反相缓冲功能。其采用的是电平触发,电源电压在2.5V-5.5V之间,逻辑为:。可以将缓慢变化的输入信号转化成严格定义,无抖动的输出信号。主要应用于波形和脉冲整形器,非稳态多谐振荡器,单稳多谐振荡器。隔离DC-DC(IS05B05-1W)是电压变换装置,指在直流电路中将一个电压值的电能变为另一个电压值。其输入电压为4.55.5V,输出电压为5V,隔离电压为1500V。其输出

42、端的电压被转换成了平滑直流且无交流谐波分量,输出阻抗为0,抑制能力强,为施密特触发器提供了稳定的输入。MAX3088是一个用于RS485/422通信的高速收发器件,包含一个驱动器和一个接收器。这些器件具有失效保护电路,当接收器输入开路或短路,从而保证接收器输出逻辑高。下图为RS485驱动及隔离电路:图4.10RS485驱动及隔离电路上图通过光电耦合器接收 信号通过施密特触发器的波形整合驱动MAX3088进行RS485协议,在本次设计一共有两路RS485独立通道进行冗余,所以还应有一路RS485驱动电路,设计图同上图。、CPU接口设计由于CPU是直接把FPGA作为外接的静态存储器,因此LPC32

43、50端接口相对简单,主要是高速总线需要加缓冲器件。并按照4位地址线和16位数据线,分别经过缓冲器件后连接到LPC3250器件的总线端口即可。如下图所示:图4.11 CPU接口图第五章 RS485通信接口软件设计1、FPGA通信协议及寄存器设计FPGA端器件作为外部静态存储器,配置完毕地址后CPU就可以访问FPGA内部各个寄存器以及缓冲区。本课题应设计两路RS485通道,下面着重设计一路RS485通道(另一通道同理),共8个寄存器,分别定义如下:寄存器名称地址数据寄存器10x00接收计数寄存器高10x01接收计数寄存器低10x02累加和0x03Reserved0x04波特率寄器高10x05波特率

44、寄器低10x06状态寄存器10x071.数据寄存器:数据寄存器为一个8位寄存器,对其写入的8位数据会被写入发送FIFO内;通过读取该寄存器,可以读取到接收FIFO内已收到的数据;2.接收计数寄存器:读取该寄存器可以读取到接收FIFO中有效数据个数对该寄存器写无效;3.累加和寄存器:读取该寄存器可以读取到发送帧或者接收帧的累加和(可采用异或加方式),对该寄存器写无效;4.波特率寄存器:该波特率为16位,该寄存器支持读/写。如果该寄存器值为BAUD,当前计算公式为:BAUDRATE = 400MHz / 10 /(BAUD + 1),使用LVDS同步时钟时,计算方式改变,且仅作用于接收模块。5.状

45、态寄存器:RF位:正在接收标志,在已接收到帧头、还未接收到帧尾时该标志置位,否则清0;TF位:启动发送标志,由CPU置位,FPGA清零,如果为1,则FPGA启动发送FIFO数据;RC位:接收完成标志,成功接收到一帧数据(收到大于1字节数据,且已收到帧尾)后置位,该位可对其写0进行清除,在收到下一帧帧头后该位自动清0;TC位:发送完成标志,将发送FIFO内的数据送完并送出帧尾字节后置位,可对其写0清除或在开始发送下一帧帧头时清0;TER:发送故障标志位,指向通信对方发送数据错误,比如断帧;RER:接收故障标志位,指向接收到通信对方的数据错误,比如断帧;CRC位:累加和校验成功标志,指示最后接收到

46、的一帧数据的累加和校验结果是否正确,1表示正确,0表示失败。该位可由写0清除,在接收一帧数据完成后对其进行更新。为了提高传输效率和简化采样过程,FPGA内部对总线收发数据采用4B5B编码,内部的逻辑关系如下图所示:图5.1 FPGA逻辑关系图1图5.2 FPGA逻辑关系图2其中,各个模块说明如下:(1) ctr:MCU 接口模块端口说明:clk,400M时钟输入,用于对MCU控制信号采样cs:片选rst:复位wr:写数据信号rd:读数据信号 data7.0:数据总线 address3.0:地址总线fifo_wren:写发送FIFO数据使能信号fifo_wr:写发送FIFO数据时钟信号sed_data7.0:写入发送FIFO数据总

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号