一种8路串口转换PCI总线的设计方案
1 引言
随着Internet的发展,越来越多的计算机或设备通过串口通信方式接入网络,实现信息共享和设备的集中控制和管理。多端口扩展已成为通信设备接入的重要环节。利用串口进行通信具有结构简单,线路成本低的优点,广泛应用于各个领域。而PCI总线,即外围器件互连总线,是目前应用最广泛、最流行的一种高速同步总线。由于大部分I/O设备是没有PCI总线功能的,开发多端口通用串口和PCI总线的接口卡也就成为技术发展的必然要求。本系统采用专用芯片XR17D158开发了基于PCI总线的8路RS-232高速串行通讯卡,为通信设备提供额外的高性能串行接口,适用于连接各类串行设备。
2系统硬件设计
系统硬件主要包括主芯片XR17D158、8路UART接口和串行配置寄存器EEPROM。2.1 XR17D158模块介绍
在很多通信系统中,对信号传输的带宽和速度有很很高的要求,而PCI总线非常适合将高速信号经接口芯片和主机桥接在一起。本文采用Exar公司推出的一种兼容3.3V和5V的PCI总线UART芯片XR17D158, 它具有PCI接口和UART结构,满足PCI2.3规范,工作频率为33MHz,32位的数据总线可以充分利用CPU带宽,传送/接收更多数据,支持8个通道UART转换PCI,减少系统开销、节约了电路板空间。为下载CPU的处理信息,每一个通道都拥有带可编程触发电平的64字节发送/接收缓冲FIFO,可分别以高达921.6kbps的速率对波特率进行编程。
500)this.style.width=500;" border=0>
2.2 XR17D158寄存器配置
XR17D158具有三组不同的寄存器。
(1)PCI局部总线配置空间寄存器 PCI插卡插入系统后,系统BIOS将根据读到的插卡信息并结合系统情况为插卡分配存储地址、端口地址和中断等信息,实现即插即用的自动配置,从而免除了人工操作,这些信息都保存在外接的EEPROM中,在上电时XR17D158会检测EEPROM是否有效,系统以此来标识PCI卡;
(2)设备配置寄存器 提供从PCI数据总线向每一UART通道的接收/发送数据FIFO缓冲存储器的传输方式,它提供了对UART传输和各种功能状态的监控。寄存器占用4k PCI总线存储器地址空间。这些地址由基址加上偏移量得到,偏移量保存在PCI局部总线配置寄存器的BAR寄存器0x10[31:12]。这些寄存器控制或监控所有8通道UART的功能状态信息,包括中断控制和状态,16位通用定时器控制和状态,多用途输入/输出控制和状态,休眠模式控制,软复位控制以及设备标识和版本号信息等等;
(3)UART[7:0]配置寄存器 每路UART通道都有内部UART配置寄存器作为串行数据传输控制和状态信息指示,所有8组通道寄存器嵌入设备配置寄存器空间,其寄存器配置偏移地址为:UART[M]=0x00N00,其中M表示通道序号,N=2×M。
XR17D158有8路UART[7:0],每路通道都有深度为64的发送/接收缓冲FIFO,符合16550规范的控制/状态寄存器以及为每路UART通道提供发送/接收时钟的波特率发生器。
每路通道都有单独的具有预分频的可编程波特率发生器(BRG),用以获得16X或8X的串口数据接收/发送的采样时钟。预分频系数可由软件在MCR寄存器中设置,MCR[7]=0,预分频系数为1;MCR[7]=1,预分频系数为4。经过预分频得到的时钟还要经过内置的分频器分频,以获得所需要的发送/接收时钟信号,其中分频器的分频系数由每路UART通道的DLM和DLL寄存器编程得到,波特率由下面公式计算得到:
500)this.style.width=500;" border=0>
假设外部输入时钟为14.7456MHz,通过相应的寄存器设置,使RS-232通道得到最大波特率921.1kps。编程过程如下:
(1)使能DLM,DLL寄存器 写入0x80到相应UART通道的LCR寄存器;
(2)分频系数确定 设置DLM=00,DLL=01;
(3)设定预分频系数相关寄存器MCR
a.使能MCR[7:5] 设置UART通道EFR寄存器EFR[4]=1;
b.预分频系数的设定 设置MCR[7]=0;
c.锁存MCR寄存器设置 设置EFR[4]=0;
2.3 8路UART和XR17D158接口设计
由于RS-232的TTL电平与芯片的CMOS电平不兼容,所以两者之间需要加电平转换电路。本系统采用TI公司的MAX3238芯片实现电平转换及串口通信功能;兼容5V逻辑输入,内含3路接收、5路发送串行通信接口,最大数据传输速率可达250Kbps。具有低功耗、高数据速率、增强型ESD保护等特性。
XR17D158的UART接口就像一个8位的输入和输出端口,它可以从发送缓冲FIFO或者接收缓冲FIFO中读写数据。当主机有数据要发送时,它只需将数据按字节格式(8位宽)发送到UART即可。当UART接收到来自外部串行设备的数据时,会把数据缓存在其FIFO中(同样是8位宽),然后通过一个内部寄存器位或硬件中断信号向主机指示该数据已可以使用。另外,XR17D158的UART接
- 用双端口RAM实现与PCI总线接口的数据通讯(05-06)
- 基于PCI总线和DSP芯片的图像处理平台的硬件设计(07-06)
- 基于DSP和PCI总线的通用数字信号处理系统(11-13)
- 一种基于PCI总线和DSP技术的虚拟仪器设计(03-16)
- 基于Linux平台的天气雷达高速数据采集系统设计(03-13)
- 基于DSP与PC机的PCI总线高速数据传输 (07-08)