位置:51电子网 » 技术资料 » 传感与控制

基于PCI总线的测控卡的设计

发布时间:2007/4/23 0:00:00 访问次数:1368

    摘要:介绍了一种基于PCI总线的测控板卡的设计,使用PCI9054实现总线控制,利用FPGA实现测控板卡的发送逻辑、接收逻辑和数据缓冲功能,并采用了乒乓FIFO;最后给出了用WinDriver编写设备驱动程序的方法。

     关键词:PCI9054 FPGA 状态机 乒乓FIFO WinDriver

PCI总线是一种高性能的局部总线,它具有32/64位总线宽度,且总线地址和数据复用,支持猝发传输,传输速率高达132MB/s;同时可支持多组外围设备。另外,PCI总线不依赖于热和CPU,具有较好的兼容性。

近几年来,现场可编程门阵列(FPGA)在现代电子设计中的成功应用,使充分利用FPGA的本身资源设计专用电路,完成系统功能成为可能,从而简化了电路、缩小了体积、提高了稳定性、具有更大的灵活性。

基于这种设计思想,笔者利用FPGA和PCI总线接口芯片设计了一种测控电路板卡,经实验运行,效率很好。

1 系统结构与功能

本板卡为基于PCI总线,采用RS485电平传输的异步串行通信测控卡。它与PCI总线的协议部分利用PCI9054专用接口芯片来完成。PCI9054是由美国PLX公司生产的一款高性能PCI I/O加速器,它采用了先进的32位数据管道结构技术,支持复用/非复用的32位数据/地址总线,本地总线有三种模式可选;M、C、J模式,被广泛应用于PCI总线板卡的开发中。在本设计中,PCI9054工作在C模式下,采用中断方式,总线周期为“PCI目标读单周期”和“PCI目标写单周期”,数据总线为8位。

异步串行通信电路部分完全用FPGA来实现。在设计上,笔者选用了Xilinx公司的Spartan II系列的XC2S200来实现异步串行通信的接收、发送和接口控制功能,FPGA具有在线可编程能力,设计者可根据实际需求分配资源。

测控卡的通信协议为起止式协议,采用固定的帧格式:1位开始位、8位数据位、1位停止位,无奇偶校验位,在软件中采用统一的CRC校验,传输波特率为19.2kbps。为保证接收数据的正确性,设计中采用16倍频波特率作为接收采样时钟,并把第八个采样值作为接收数据。

    测控卡主要完成以下工作:采用RS485差分电平传输的遥测数据经过电平转换后,由接收模块接收后乒乓缓存到FIFO中,并通过PCI总线接口芯片PCI9054以单周期方式送到计算机内存中以便进行下一步处理。发送模块接收到PCI总线传输过来的遥控命令后,按照通信协议格式组帧,在通过电平转换芯片转换成RS485电平后,以19.2kHz的频率发送给目标设备,实现对目标设备的各种控制。

根据以上分析,笔者设计的测控卡的具体功能结构如图1所示。下面详细阐述各部分的功能。

·MAX3490E:完成RS485差分电平到TTL电平的转换;

·接收模块:完成遥测数据的接收和缓冲;

·发送模块:完成遥控数据的缓冲和发送;

·接口模块:实现与PCI9054的接口功能,完成读写和传输控制操作;

·PCI9054:完成和PCI总线的接口协议。

1.1 发送模块设计

发送模块主要实现对遥控数据的缓存和并/串转换,同时按照设计的异步串行通信数据帧格式进行相应的处理,最后将数据串行发送。处理器读取线路状态寄存器信息,检查发送FIFO(TxFifo)是否为空,如为空且有遥控数据待发,则将控制数据通过PCI9054发送并存储到发送FIFO中。发送状态机读取TxFifo中数据,通过并/串移位后用19.2kbps的波特率串行输出。发送状态机实现起止位“0”、并/串移位信号、停止位“1”的发送,具体如图2所示。

图3

    开始:当移位寄存器空,发送模块处于等待开始状态,一旦检测到非空,发送起始位“0”,状态机进入移位状态;

移位:通过并/串移位寄存器串行发出,当完成8bit移位后,状态机转入停止状态;

停止:在这个状态,为发送的数据加上一位停止位,然后转入开始状态,等待下一个数据。

发送模块包含8位并/串移位寄存器TSR、51×8 bits发送FIFO(TxFifo)、用于实现发送遥控数据计数

    摘要:介绍了一种基于PCI总线的测控板卡的设计,使用PCI9054实现总线控制,利用FPGA实现测控板卡的发送逻辑、接收逻辑和数据缓冲功能,并采用了乒乓FIFO;最后给出了用WinDriver编写设备驱动程序的方法。

     关键词:PCI9054 FPGA 状态机 乒乓FIFO WinDriver

PCI总线是一种高性能的局部总线,它具有32/64位总线宽度,且总线地址和数据复用,支持猝发传输,传输速率高达132MB/s;同时可支持多组外围设备。另外,PCI总线不依赖于热和CPU,具有较好的兼容性。

近几年来,现场可编程门阵列(FPGA)在现代电子设计中的成功应用,使充分利用FPGA的本身资源设计专用电路,完成系统功能成为可能,从而简化了电路、缩小了体积、提高了稳定性、具有更大的灵活性。

基于这种设计思想,笔者利用FPGA和PCI总线接口芯片设计了一种测控电路板卡,经实验运行,效率很好。

1 系统结构与功能

本板卡为基于PCI总线,采用RS485电平传输的异步串行通信测控卡。它与PCI总线的协议部分利用PCI9054专用接口芯片来完成。PCI9054是由美国PLX公司生产的一款高性能PCI I/O加速器,它采用了先进的32位数据管道结构技术,支持复用/非复用的32位数据/地址总线,本地总线有三种模式可选;M、C、J模式,被广泛应用于PCI总线板卡的开发中。在本设计中,PCI9054工作在C模式下,采用中断方式,总线周期为“PCI目标读单周期”和“PCI目标写单周期”,数据总线为8位。

异步串行通信电路部分完全用FPGA来实现。在设计上,笔者选用了Xilinx公司的Spartan II系列的XC2S200来实现异步串行通信的接收、发送和接口控制功能,FPGA具有在线可编程能力,设计者可根据实际需求分配资源。

测控卡的通信协议为起止式协议,采用固定的帧格式:1位开始位、8位数据位、1位停止位,无奇偶校验位,在软件中采用统一的CRC校验,传输波特率为19.2kbps。为保证接收数据的正确性,设计中采用16倍频波特率作为接收采样时钟,并把第八个采样值作为接收数据。

    测控卡主要完成以下工作:采用RS485差分电平传输的遥测数据经过电平转换后,由接收模块接收后乒乓缓存到FIFO中,并通过PCI总线接口芯片PCI9054以单周期方式送到计算机内存中以便进行下一步处理。发送模块接收到PCI总线传输过来的遥控命令后,按照通信协议格式组帧,在通过电平转换芯片转换成RS485电平后,以19.2kHz的频率发送给目标设备,实现对目标设备的各种控制。

根据以上分析,笔者设计的测控卡的具体功能结构如图1所示。下面详细阐述各部分的功能。

·MAX3490E:完成RS485差分电平到TTL电平的转换;

·接收模块:完成遥测数据的接收和缓冲;

·发送模块:完成遥控数据的缓冲和发送;

·接口模块:实现与PCI9054的接口功能,完成读写和传输控制操作;

·PCI9054:完成和PCI总线的接口协议。

1.1 发送模块设计

发送模块主要实现对遥控数据的缓存和并/串转换,同时按照设计的异步串行通信数据帧格式进行相应的处理,最后将数据串行发送。处理器读取线路状态寄存器信息,检查发送FIFO(TxFifo)是否为空,如为空且有遥控数据待发,则将控制数据通过PCI9054发送并存储到发送FIFO中。发送状态机读取TxFifo中数据,通过并/串移位后用19.2kbps的波特率串行输出。发送状态机实现起止位“0”、并/串移位信号、停止位“1”的发送,具体如图2所示。

图3

    开始:当移位寄存器空,发送模块处于等待开始状态,一旦检测到非空,发送起始位“0”,状态机进入移位状态;

移位:通过并/串移位寄存器串行发出,当完成8bit移位后,状态机转入停止状态;

停止:在这个状态,为发送的数据加上一位停止位,然后转入开始状态,等待下一个数据。

发送模块包含8位并/串移位寄存器TSR、51×8 bits发送FIFO(TxFifo)、用于实现发送遥控数据计数

相关IC型号

热门点击

 

推荐技术资料

滑雪绕桩机器人
   本例是一款非常有趣,同时又有一定调试难度的玩法。EDE2116AB... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!