新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于FPGA的PCI总线串口卡设计

基于FPGA的PCI总线串口卡设计

作者:时间:2010-10-18来源:网络收藏

 接收模块通过状态机来完成数据接收,其状态机包含4个状态:空闲状态(idle)、移位状态(shift)、奇偶校验状态(parity)和停止位状态(stop),如图6所示。其工作过程如下:当系统复位时,状态机进入空闲状态,等待接收开始位;当开始位被确定有效后,状态机进入移位状态。在移位状态中,接收模块为每个数据位的移入等待16个内部时钟周期,接收完特定的数据位后,若奇偶校验使能有效,则跳转到奇偶校验状态;否则,进入停止位状态,而后进入空闲状态,重复上述过程。

本文引用地址:http://www.eepw.com.cn/article/191527.htm


1.2.4 发送模块
 发送模块包括发送缓存寄存器和发送移位寄存器。在发送数据开始时,清空发送缓存寄存器和发送移位寄存器后,发送缓存寄存器接收发送来的数据,然后从发送缓存寄存器向发送移位寄存器发送数据。首先发送起始位到发送移位寄存器,同时启动发送数据计数器,记录发送数据的个数,直到发送移位寄存器接收到满足需求的数据。若奇偶校验使能有效,则跳转到奇偶校验状态;否则,进入停止位状态,完成1帧数据的发送。只要发送缓存寄存器不为空,则继续传输下一帧数据。其状态机的实现与接收模块的类似。
2 系统软件设计
2.1 驱动程序

 WinDriver是一套驱动程序开发包。它改变了传统驱动程序开发的方法与思路,极大地简化了驱动程序的编制。同时,WinDriver又没有牺牲驱动程序的性能,是一套高效、快捷的驱动程序开发软件包[4]。WinDriver可在VC/C++、Delphi、BC++、VB等多种开发环境中使用,本设计选用VC++作为驱动程序的开发环境,通过WinDriver生成VC++代码,根据设计的需要修改生成的代码以完成此设备的驱动。驱动程序流程图如图7所示。

2.2 应用程序
 应用程序负责调用、连接驱动程序,实现与驱动程序的通信。连接到驱动程序后,向驱动程序注册,同时启动监测工作线程,等待事件发生。当驱动程序接收到中断后,通过发送消息通知应用程序,处理发生的事件。处理后退出应用程序,结束等待事件线程。应用程序流程图如图8所示。
 本文介绍了一种基于的PCI卡设计方法,简单说明了其硬件的设计和驱动程序、应用程序的编写方法。该设计符合通用的PCI规范,支持即插即用功能,传输速率高,抗干扰能力强。可以广泛应用于各类测试设备、工厂自动化等,具有很高的实用价值。
参考文献
[1] 徐志春.基于PCI的多通信适配卡设计[J].微计算机信息,2007,23:294-296.
[2] 王友波,刘明业.PCI接口控制器的设计[J].北京理工大学学报,2004,24(5): 423-426.
[3] 杨大柱.基于的UART电路设计与仿真[J]. 微计 算机信息, 2007,23(5-2):212-213.
[4] 刘映杰,张在峰,刘玮,等.用WinDriver开发PCI设备驱动程序[J]. 信息技术,2004, 28 (2):78-80.


上一页 1 2 3 下一页

关键词: FPGA PCI 总线 串口

评论


相关推荐

技术专区

关闭