|
|
| | -文章搜索 - 最新文章 - | |
第15745篇:TM1300 PCI-XIO口的UART和USB接口设计 |
| 发布时间:2005年5月8日 点击次数:660 |
| 来源: 作者:赵井军 沈 斌 |
摘要:以Philips公司的多媒体数字信号处理器TM1300的硬件核心平台,通过TM1300芯片的PCI-XIO口,经UART芯片ST16C550实现串行通信接口,经USB接口芯片USBN9604实现USB接口,设计方案简洁。实际测试结果表明,通信接口工作稳定。 关键词:TM1300 PCI-XI0口 UART接口 USB接口 引言 Trimedia集成电路是Philips公司新近推出的针对多媒体应用的一种高性能DSP,它能够进行高质量的视频和音频处理。TM1300是Trimedia系列产品之一,它的核心是32位处理器,能够进行32位线性寻址,寻址能力可达4GB,含有128个通用寄存器。Tm1300核心处理器采用的是VLIW(超长指令字)结构,可以在每一时钟周期内同时进行5个操作,VLIW结构还可以减少处理器的工作量。TM1300支持16KB的数据高速缓存和32KB的指令高速缓存,并且数据高速缓存是双端口的,允许同时双向接入。 1 硬件设计 TM1300集成了一个符合PCI 2.1的PCI接口,总线数据宽度为32位,最高时钟频率可达33MHz,峰值吞吐率可达132MB/s。TM1300还通过XIO总线控制器在PCI接口上扩展了一个XIO接口。通过XIO接口,TM1300可以方便实现对8位简单外设的无缝连接。本文设计的硬件实现主要就是基于XIO接口,下面将对其进行详细介绍。 PCI-XIO总线提供了TM1300与普通PCI外设和简单8位外设的无缝混合连接。它提供以下特性: *完全的PCI 2.1特性(32位,33MHz); *简单的非复用8位数据,24位地址XIO总线,支持68K、X86控制信号; *内部或外部可编程时钟源; *0~7个可编程等待周期以适应慢速XIO设备; *支持单字节读写和DMA读写。 PCI-XIO总线控制器包括一个可编程的MMIO寄存器:XIO_CTL。其中使能位(7)为1时,允许XIO总线操作;高6位(31:26)定义了XIO空间的基地址;时钟频率位(4:0)用来定制内部时钟;等待状态(10:8)用来支持慢速外部XIO设备操作。 TM1300初始化后,PCI-XIO总线默认为普通PCI模式。若MMIO里XIO-CTL寄存器的使能位被置位,并且TM1300寻址到XIO地址空间,XIO总线控制器就被激活。 从图2可以看出,TM1300利用PCI BIU访问XIO总线,TM1300访问XIO总线的地址格式如图3所示。 在XIO逻辑激活期间,PCI-XIO接口把PCI中断信号PCI_INTB复用为XIO总线全局使能信号CS;把PCI的命令/比特使能信号PCI_C/BE0和PCI_C/BE1分别复用为XIO总线的读使能信号RD和写使能信号WR;把PCI/C_BE2复用为数据锁存信号,用于地址线与数据线复用的环境;PCI的时钟信号PCI_CLK可在XIO总线操作期间为PCI总线接口单元(BIU)提供由TM1300内部高速时钟分频而来的可编程时钟;其它PCI控制信号则由XIO总线控制器负责与PCI BIU进行交互。 1.2 基于PCI-XIO的接口实现方案 通过上述介绍不难看出,PCI-XIO接口的8位数据线无疑是TM1300连接8位外设ST16C550和USBN9604的理想桥梁。 串行接口的实际技术已经非常成熟,本文选用比较常见的ST16C550芯片。ST16C550是可编程的通用异步接收/发送器,工作在3.3V或5V,内部收发均有16个字节FIFO,能实现数据的串行与8位并行之间的转换,支持异步通信协议。片内有时钟产生电路,最高工作频率24MHz,波特率可以从50bps~1.5Mbps.ST16C550可以为应用于远程通信系统中的调制解调器提供控制信号,并接收和记录调制解调器的状态信息。 本文所选用的USB接口芯片USBN9604是National Semiconductor公司设计生产的一款新型的USB通信控制芯片,支持全速传输,可满足USB1.0和USB1.1协议。它具有8位并行接口,可支持DMA、MICROWIRE。其主要特别如下:工作频率为48MHz,芯片内部有倍频电路;可编程产生不同的接口(SIE),可实现USB物理层和信号协议层的转换;带有7个端点的USB功能控制器,每个端点对应一个FIFO;内部有64个映射到内存的寄存器。 在TM1300通过XIO口对USB芯片进行读写的过程中,要特别注意时序问题。虽然TM1300的XIO接口和USB芯片能够实现硬件上的无缝连接,但两者在读写数据的时序上并不匹配。TM1300在发起XIO总线读写操作时,在片选信号有效期间,地址和数据是同时发向USB芯片时;而USB芯片需要先接收一个地址,再对相应地址读写数据,地址与数据是分时的。对于TM1300的读写操作,USB芯片无法将地址和数据区分开来,即两个芯片的读写时序不匹配。本文利用TM1300的PCI_AD0引脚来控制USBN9604的A0,当PCI_AD0为1时,表示写入USBN9604的是地址;当PCI_AD0为0时,表示真正的数据通信。具体的编程语句如下: void write_usb(BYTE address,BYTE data) {xioWrite(USB基地址+0x000001,address); xioWrite(USB基地十+0x000000,data);} BYTE read_usb(BYTEaddress) {xio Write(USB基地址+0x000001,address); return(BYTE)xioRead(USB基地址+0x000000);} 对UART的读写,则不用考虑时序问题,使用如下语句即可。 xioWrite(UART基地址+UART寄存器地址,data); TM1300除了内部模块中断之外,还提供了5个外部中断输入引脚:PCI-INTA/B/C/D和TR1_USERIRQ,前四个中断引脚推荐为电平触发模式,在不用作中断输入时,可以配置为通用I/O引脚,TRI_USERIRQ适合于电平触发或者边沿触发模式。 在本文的硬件设计中,PCI-INTB在PCI-XIO总线激活时,作为XIO总线的全局使能信号;UART芯片利用TRI_USERIRQ引脚向TM1300发中断请求;PCI-INTD用于UART通信接口板上USB芯片的中断请求;PCI-INTC保留未用,可用作以后的扩展。 由于ST16C550的中断输出引脚和TM1300的TRI-USERIRQ中断输入引脚都工作在正逻辑模式,两者可以直接连接。对于ST16C550这样可以同时发生多个中断条件的外部设备,INT-USERIRQ应该工作在电平触发模式。 1.4 PCI-XIO总线复用 本文设计的硬件系统中,通过PCI-XIO总线连接到TM1300的外部设备有三个:Flash、ST16C550和USB9604。为了这三个设备能够同时正常工作,必须加入地址译码芯片以复用PCI-XIO总线。 由于Flash占用4MB的地址空间,可以考虑将16MB的XIO空间划分为4个4MB的地址块,利用XIO地址线的高2位作地址译码。 本文选择的地址译码芯片是常见的三-八译码器,原理图如图7所示。这里将XIO总线的全局使能信号PCI-INTB作为74138的使能信号。XIO逻辑激活期间,XIO地址线AD[23、22]的值决定了三个外部设备中的一个片选信号有效。由图7可见,Flash的基地址为0x000000,USB9604的基地址为0x800000,ST16C550的基地址为0xC00000。 2 总结 本文通过PCI-XIO接口为TM1300硬件平台实现串行接口和USB接口,在硬件上实现了带有串行通信接口和USB接口的TM1300编码板。 接下来的工作是为TM1300实现一个WLAN通信接口,使得以TM1300为硬件平台的编码器可以用于高速无线网络平台。
|
|
|
|
|
[接口电路] 相关文章: 存储器类型综述及DDR接口设计的实现简介: 在过去的数年里,电子市场,确切地说是存储器市场,经历了巨大的变化。在2000年电子工业低迷时期之前,电子系统设计师很少考虑他们下一个设计中元器件的成本,而更关注它们能够达到的最高性能。 今天,竞争的加剧以及利润率的下降迫使系统设计师在降低下一代产品成本的同时,保持、甚至提高系统的性能。作为这种转变的结果,有一个工业部门经历了实质性的增长,它就是DRAM存储器,尤其是双倍数据速率(DDR) SDRAM存储器。 不同存储器类型的读/写率的比较 DDR存储器最初是一种...... 基于FPGA的USB2.0控制器设计 利用EPP接口协议实现高速数据通信 PIC16F877单片机的图形液显示模块接口技术 USB接口的高速数据采集卡的设计与实现 |
|
|
|