FPGA的PCI总线串口卡设计_第1页
FPGA的PCI总线串口卡设计_第2页
FPGA的PCI总线串口卡设计_第3页
FPGA的PCI总线串口卡设计_第4页
FPGA的PCI总线串口卡设计_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、【Word版本下载可任意编辑】 FPGA的PCI总线串口卡设计 随着计算机测试技术的飞速发展,越来越多的外部设备通过串口与计算机开展通信,实现信息共享以及设备的集中控制和管理。利用串口开展通信具有构造简单、传输距离远、成本低廉等优点,被广泛应用于各个领域。同时,PCI(Peripheral Component Interconnect)总线是一种高性能32/64位局部总线,数据传输速率为132 Mb/s,可同时支持多组外设,数据吞吐量大,是目前应用广泛、的一种高速同步总线。因此,利用PCI总线实现上位机与外部设备的串口通信,可以提高通信能力。 由于大部分I/O 设备没有PCI总线功能,要实现设

2、备与PCI总线的连接,需要PCI接口芯片、通用异步收发器UART(Universal Asynchronous Receiver Transmitter)等。而目前开发PCI总线与外部设备的串口通信大体上有两种方式:(1)使用专用的芯片,如:PCI专用接口芯片S5920、S5933等;UART专用芯片8250、8251、16450、16550等。使用厂家提供的专用接口芯片,用户可能只使用到它的部分功能,会造成一定的资源浪费,而且专用芯片价格高。(2)使用可编程器件FPGA。使用FPGA较使用专用芯片具有以下优点:一方面用户可以根据需要开展设计,不会浪费资源;另一方面可以将PCI接口、UART都

3、做在一片FPGA内,这样就不需要外接专门的芯片,简化了电路、缩小了体积、提高了系统的可靠性。 1系统硬件设计 本设计中选用Altera公司的FPGA芯片EP1C6SQ240作为器件,完成PCI接口以及UART的设计,实现PCI总线与串口的连接。选用美信公司的MAX490芯片作为电平转换电路。系统的硬件连接框图如图1所示。 数据传输过程:上位机通过PCI总线发送并行数据到UART的数据缓存器中,然后数据经UART的数据缓存器进入UART的移位存放器开展并串转换后,通过串口传到下位机。反之,下位机通过串口将数据传送到UART的移位存放器中,开展串并转换,然后进入UART的数据缓存器中,传到上位机。

4、 设计中采用,传输距离长、抗干扰能力强的RS422串口。但是规定RS422:逻辑1的电平为-6 V-2 V;逻辑0的电平为+2 V+6 V。而FPGA的I/O电平一般为03.3 V,二者之间的电平不兼容。为了使二者之间的供电电压保持一致,必须参加电平转换电路。为此选用美信公司的MAX490芯片来实现二者之间的电平转换,其电路原理图如图2所示。 1.1 PCI总线接口 PCI总线接口的功能是将一个不支持 PCI 协议的后端设备接口到PCI 总线上。为了实现PCI总线接口的基本功能,必须完成如下模块的设计:PCI空间配置模块、偶校验模块、地址译码和命令译码模块、设备状态机模块等。PCI总线接口原理

5、框图如图3所示。 1.1.1 PCI空间配置模块 PCI协议支持3种地址空间:I/O空间、内存空间和配置空间。配置空间是PCI所特有的一种空间,其大小为256 B,前64 B是必需的,记录了PCI串口设备的基本信息。PCI设备的一些主要的信息如下: (1) VendorID、DeviceID:分别表示设备的生产厂商和设备编号。 (2) Command:命令存放器,包含设备控制位,包括允许存储器读写响应等。 (3) Status:状态存放器,记录PCI总线的相关事件信息。 (4) Base Adress Register:基地址存放器,指示此PCI设备按I/O方式还是按内存方式开展读写以及需要的

6、地址空间大小。 (5) Interrupt Line、Interrupt Pin:为设备使用的中断号和中断引脚。 1.1.2 偶校验模块 PCI总线的偶校验用于检验数据传输是否正确。在PCI总线上,利用偶校验模块检查每次传输中主设备是否正确地寻址到目标设备,以及它们之间的数据是否正确地传输。 1.1.3 地址译码和命令译码模块 地址译码模块主要用于检测地址与此PCI串口设备的基地址是否匹配,如果匹配,则PCI串口设备响应当前的总线操作。 命令译码模块表示PCI串口设备响应不同的总线命令,通过检测PCI-cbe信号线上的值,完成命令译码。 1.1.4 设备状态机模块 PCI总线接口电路是时序复杂

7、的接口电路,它的复杂性由PCI总线操作的多样性决定。根据PCI的总线操作类型和总线操作时序关系,在这里抽象出一种简洁明了,符合总线时序、更易于硬件描述语言实现的状态机。总线接口状态机示意图如图4所示。状态机的设计是整个设计的部分,利用该状态机可以完成配置存放器、存储器、I/O的读写操作。 状态机包括4个状态:空闲(idle)状态、配置读写(con)状态、存储器或I/O读写(rw)状态、传输中止(backoff)状态。系统复位后,状态机转入空闲状态,在空闲状态中采样总线,并根据总线的变化来决定状态机即将转入的状态。如果此时命令总线上是配置存放器读写命令,判断PCI-irdy信号是否有效来决定下一

8、可能的状态。如果信号无效,则状态机转入传输中止状态,然后返回空闲状态;如果信号有效,则状态机转入配置读写状态。如果此时命令总线上是存储器或者I/O的读写命令,则判断PCI-frame信号是否有效来决定下一可能的状态。如果信号无效,状态机转入传输中止状态,然后返回空闲状态;如果信号有效,状态机转入存储器或I/O读写状态。 1.2 UART模块 PCI总线传输的是并行数据,而串口传输的是串行数据,要想实现PCI总线与串口的数据传输,必须通过UART完成数据的串并/并串转换。本文设计的基于FPGA的UART由4个模块组成:波特率发生器模块、存放器控制模块、接收模块以及发送模块。UART的总体框图如图

9、5所示。 1.2.1 波特率发生器模块 波特率发生器实际上就是一个分频器,用来产生和串行通信所采用的波特率同步的时钟,这样才能按照串行通信的时序要求开展数据接收或发送。本设计中UART收发的每一个数据宽度都是波特率发生器输出时钟周期的16倍,即假定当前按照9 600 b/s开展收发,那么波特率发生器输出的时钟频率应为9 60016 Hz。 1.2.2 存放器控制模块 设计的UART包括:2个数据缓冲存放器(接收、发送缓冲存放器);2个状态存放器(中断识别、线路状态存放器);2个控制存放器(中断使能、线路控制存放器);2个移位存放器(接收、发送移位存放器)。存放器控制模块完成除了移位存放器外的所

10、有存放器的读写控制。 1.2.3 接收模块 接收模块包括接收缓冲存放器和接收移位存放器。在接收数据开始时,为了能够准确地传输数据,先要清空接收缓冲存放器和接收移位存放器,然后接收移位存放器等待检测数据的起始位。检测到有效的起始位后开始接收数据,同时启动接收数据计数器,统计接收数据的位数,直到接收到满足需求的数据位。如果需要奇偶校验,则产生校验位。接收停止位,完成1帧数据(起始位+数据位+奇偶校验位+停止位)的接收,将数据存入接收缓冲存放器,开展下一帧数据的接收,并通知上位机读取数据。 接收模块通过状态机来完成数据接收,其状态机包含4个状态:空闲状态(idle)、移位状态(shift)、奇偶校验

11、状态(parity)和停止位状态(stop),如图6所示。其工作过程如下:当系统复位时,状态机进入空闲状态,等待接收开始位;当开始位被确定有效后,状态机进入移位状态。在移位状态中,接收模块为每个数据位的移入等待16个内部时钟周期,接收完特定的数据位后,若奇偶校验使能有效,则跳转到奇偶校验状态;否则,进入停止位状态,而后进入空闲状态,重复上述过程。 1.2.4 发送模块 发送模块包括发送缓存存放器和发送移位存放器。在发送数据开始时,清空发送缓存存放器和发送移位存放器后,发送缓存存放器接收发送来的数据,然后从发送缓存存放器向发送移位存放器发送数据。首先发送起始位到发送移位存放器,同时启动发送数据计

12、数器,记录发送数据的个数,直到发送移位存放器接收到满足需求的数据。若奇偶校验使能有效,则跳转到奇偶校验状态;否则,进入停止位状态,完成1帧数据的发送。只要发送缓存存放器不为空,则继续传输下一帧数据。其状态机的实现与接收模块的类似。 2 系统软件设计 2.1 驱动程序 WinDriver是一套PCI驱动程序开发包。它改变了传统驱动程序开发的方法与思路,极大地简化了驱动程序的编制。同时,WinDriver又没有牺牲驱动程序的性能,是一套高效、快捷的PCI驱动程序开发软件包。WinDriver可在VCC+、Delphi、BC+、VB等多种开发环境中使用,本设计选用VC+作为驱动程序的开发环境,通过WinDriver生成VC+代码,根据设计的需要修改生成的代码以完成此PCI设备的驱动。驱动程序流程图如图7所示。 2.2 应用程序 应用程序负责调用、连接驱动程序,实现与驱动程序的通信。连接到驱动程序后,向驱动程序注册,同时启动串口监测工作线程

温馨提示

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

评论

0/150

提交评论