页面加载中,请稍候
来源:现代电子技术发布时间:2011-11-05218浏览
询问 AI摘要:为了提高PCI总线与AVR单片机之间的数据传输速度,利用双口RAM通过共享的方式实现PCI总线与AVR单片机之间的高速数据交换。利用有限状态机方法将PCI接口芯片局部端逻辑转换为双口RAM读写控制信号和地址数据信号,并通过仿真工具Modelsim Se对接口电路进行了验证,得出的仿真波形符合要求;利用乒乓操作方法实现PCI接口芯片和AVR单片机交替读/写数据存储区,有效提高了PCI总线与AVR单片机之间的数据传输速度。实践证明该设计方法是解决高低速设备的传输瓶颈问题的有效途径。
关键词:双口RAM;AVR;CPLD;状态机;乒乓操作
由于PCI总线工作在频率33 MHz,AVR单片机工作在16 MHz,它们之间时钟不同步,要进行有效通信,必须在它们中间设置数据缓冲区,作为双方交换数据的单元。双口RAM正好解决了这个问题,它既作为PCI总线的局部空间又作为AVR单片机的外部扩充存储器,通过交替读/写达到交换数据的目的。下面以PLX公司的PCI总线接口芯片PCI9052和IDT公司的双口RAMIDT7006为例,介绍实现数据交换的方法。
1 PCI9052和IDT7006
1.1 PCI9052简介
PCI9052是PLX公司为扩展适配板卡推出的低价位PCI总线目标接口芯片,低功耗,符合PCI V2.1规范,它的本地总线(Local Bus)可以通过编程设置为8/16/32位的复用或非复用总线。其主要性能特点如下:
(1)异步操作。PCI9052的Local Bus与PCI总线的时钟相互独立运行,两总线的异步运行方便了高、低速设备的兼容。Local Bus的时钟频率范围为0~40 MHz,TTL电平;PCI的时钟频率范围0~33MHz。
(2)可编程的局部总线配置。PCI9052支持8位、16位或32位Local Bus,它们是复用或非复用。PCI9052有4个字节允许信号(LBE[3:0]#),26条地址线(LA[27:2])和32位、16位、8位数据线(LAD[31:0])。
(3)直接从(目标)数据传送模式。PCI9052具有双向FIFO,可用于零等待状态突发操作,支持从PCI总线到Local Bus的存储器映射空间的突发传送和I/O访问。Local Bus能被设置成突发或持续单周期。
(4)4个局部片选。PCI9052提供4个片选,每个片选的基地址和范围被E2PROM或主机编程成唯一的。
(5)5个局部地址空间。PCI9052提供5个局部地址空间,每个局部地址空间的基地址和范围可以被E2PROM或主机编程成惟一的。
1.2 IDT7006简介
IDT7006是美国IDT公司开发研制的高速16K×8 B双口静态RAM。该双口RAM提供两个独立的具有控制、地址和I/O引脚的端口。其主要性能特点如下:可同时访问双端口同一存储器空间;高速存储访问,访问速度最高可达到15 ns;低功耗运行;双片选,允许不需要外部逻辑的深度扩展;使用级联和主从选择引脚可以扩展IDT7006的数据总线宽度到16位或更宽;具有硬件仲裁方式、中断仲裁方式和信号灯仲裁方式,来防止访问冲突。
2 PCI9052和IDT7006的时序转换
为将PCI9052的局部信号逻辑转换为双口RAMIDT7006的读/写控制信号逻辑,采用有限状态机的方法来实现它们之间的逻辑转换。在可编程器件设计中,状态机的设计方法是应用最广泛的设计方法之一,它是一种简单、结构清晰、设计灵活的方法,易于建立、理解和维护,特别应用在具有大量状态转移和复杂时序控制的系统中,更显其优势。设计中用VerilogHDL描述的状态机来实现接口的时序转换。
2.1 硬件连接
硬件上采用可编程逻辑器件MAXⅡ(EPM240)来实现PCI9052和IDT7006的接口电路,PCI9052采取非复用、8 b局部总线宽度和单周期读/写方式,信号连接关系如图1所示。
2.2 有限状态机
PCI9052局部总线有4个基本的状态:空闲状态、地址状态、数据/等待状态和恢复状态。一旦局部总线的主设备拥有总线并需要开始一个总线访问,则进入地址状态,
内状态机中写状态机有5个状态:S0,写空闲状态;S1,写开始;S2,写等待;S3,单周期写;S4,写结束。具体的状态转移图如图3所示。
当系统复位后,状态机输出双口RAM的片选信号
读操作的状态机转移过程是:当状态机处于空闲状态时,在每次时钟的上升沿采样到
3 双口RAM的读/写程序
为了达到用低速模块处理高速数据流的效果,在双口RAM的程序处理上采用乒乓操作的技巧。乒乓操作的最大特点是通过“输入数据选择单元”和“输出数据选择单元”按节拍、相互配合的切换,将经过缓冲的数据流没有停顿地送到“数据流运算处理模块”进行运算与
处理。把乒乓操作模块当作一个整体,站在这个模块的两端看数据,输入数据流和输出数据流都是连续不断的,没有任何停顿,因此非常适合对数据流进行流水线式处理。所以乒乓操作常应用于流水线式算法,完成数据的无缝缓冲与处理。
设计中将双口RAM分为A,B两个部分,各占8 KB空间。通过9052和AVR交替对两个存储器进行读/写操作到达交换数据的目的。在双口RAM的仲裁方式选择上选取中断和硬件仲裁结合的方式,中断仲裁在硬件电路设计上比较简单,只要将双口RAM两侧的INT引脚连接到AVR和PCI90 52的中断引脚上,软件设计上只要编写双口RAM操作程序和中断服务程序两部分。具体过程是:
(1)数据下行(PCI9052写,AVR读)。在首次发起数据传输时,通过握手信号告诉AVR本次数据传输共多少个字节。然后发起本次数据传输,如果数据传输长度小于8 KB,9052向双口RAM的A区写入数据,并在数据全部写完之后对地址3FFFH(右端口信箱)执行一个写操作,这样
(2)数据上行(PCI9052读,AVR写)。双口RAM读/写程序中的写函数会将数据写入双口RAM的A区,并在最后一步对左端口信箱3FFEH地址执行一个写操作,
4 结语
高性能双口RAM可以有效解决上位机和下位机之间的复杂数据处理问题,实现时序的粘连;乒乓操作是一个常应用于数据流控制的处理技巧,是解决高速设备和低速设备交换数据的常用方法。实践证明本文的设计方法是解决高低速设备的传输瓶颈问题,提高PCI总线与AVR单片机之间的数据传输速度的有效途径。
新闻来源:现代电子技术,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。
暂无评论哦,快来评论一下吧!
2026-06-16

2026-06-23

2026-06-08