该文进行的设计作为数控系统大课题中的一个子课题,主要研究利用PCI总线来实现对外围IO的操作,硬件上包括设计一块PCI接口卡并测试通过,软件上实现了PCI接口卡在Linux下的驱动和用软PLC来实现对外围IO的操作.该文在比较几种微机总线的基础上,为了实现数控系统高速、高精度、低功耗的要求,采用PCI总线进行设计.随着可编程逻辑器件的发展,为在一片PLD芯片内实现复杂的逻辑控制提供了条件.该文在综合比较开发PCI卡的几种方法的基础上,选择了使用FPGA来实现PCI接口卡设计.用VHDL语言对FPGA编程,采用模块化的设计方法进行设计,用状态机来控制PCI逻辑的时序.设计首先在EDA软件上仿真通过后,制作成PCI板卡并在现场调试通过.为方便所设计的PCI卡在数控系统及其它系统中应用,该文设计了PCI卡在Linux下的设备驱动程序,主要包括设备的注册与注销、与Linux内核的接口、相关的入口函数、驱动程序的编码、编译、加载与卸载等,并编写了相应的测试代码,在Linux环境下调试通过.为了解决数控系统中PLC的应用问题,该文还设计了PCI卡在软PLC中的应用.采用的软PLC软件是Linux下的MatPLC软件.在详细讨论MatPLC工作原理的基础上,设计了一个输入模块、一个输出模块和一个MatPLC配置文件.输入模块通过驱动程序从PCI卡中读取数据,传送到MatPLC内核的全局变量中,输出模块从内核全局变量读取数据并进行逻辑运算,再输出到PCI卡.将他们编译通过,并进行测试,最终实现软PLC对外围IO端口的读写.该论文受到广东省科技攻关项目[2002A1040402]、广东省科技攻关项目[2003C101002]、广州市重大科技攻关计划[2002Z1-D0051]的资助.