集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2445|回复: 2

一种基于FPGA的PXA270外设时序转换接口设计

[复制链接]
老怪甲 该用户已被删除
老怪甲 发表于 2010-4-10 21:31:12 | 显示全部楼层 |阅读模式
国外电子元器件 西南交通大学 王青元 吴培栋 李云峰

  1 引言

  ARCNET协议应用于高速动车组列车通信网络时,产生中央控制单元处理器PXA270与专用协议控制器件COM20020相连的时序不匹配问题,若用通用数字电路模块进行时序转换,PXA270需占用PXA270专门的资源(CPU时间片)对 COM20020的寄存器、数据包缓冲区进行低速读写访问(对COM20020的相邻两次读操作相隔至少300 ns),这样将增加处理器的负担。基于这种现状,提出一种基于FPGA的PXA270外设时序转换接口设计方案,以FPGA为桥梁进行时序转换,并增加存储器直接访问DMA(Direct Memory Aeeess)功能,即FPGA自动完成数据包的收发工作,PXA270则只需高速读写访问FPGA中的同步双口RAM。

  2 时序转换接口整体设计

  2.1 FPGA对外接白

  采用FPGA连接PXA270处理器与外设以解决PXA270处理器与外设直接连接时的时序不匹配问题。如图1所示,FPGA从PXA270处理器获得地址总线(ADDRBUS[17..14], ADDRBUS[9..0]),片选信号(SYSCS5),读允许(SYSOE),写允许(SYSWE),并提供双向数据端口DATABUS[7..0] (可根据实际应用修改为32位或16位等),中断(interrupt);同时,FPGA向COM20020提供特定的总线接口,包括 COM20020_DS,COM20020_CS,COM20020_DIR,COM20020_DATABUS [7..0],COM20020_ADDRBUS[2..0]等。

FPGA时序转换接口原理图

  2.2 内部功能实现

  PXA270和外设之间的连接是将FPGA中的双口RAM作为数据中转站,以此间接相连。该设计由以下4个功能模块组成。

  (1)PXA270对外设指定寄存器单次写操作PXA270先将所要写的数据送人双口RAM,然后PXA270向FPGA的命令寄存器写入对该外设指定寄存器的单次写指令,然后FP-GA根据接收到的命令将RAM中的数据输出到外设数据总线,同时给出对外设的写时序。

  (2)PXA270对外设指定寄存器单次读操作PXA270先向FPGA的命令寄存器写入对该外设指定寄存器的单次读指令,此时,FPGA给出对外设的读时序,并驱动RAM的地址总线、写时钟等信号,将外设数据总线上的数据传送到RAM中。再延时1μs,PXA270从RAM中读出数据。

  (3)PXA270对外设批数据写操作与单次写操作不同的是,PXA270需先将所要写入的数据存储到RAM的连续空间,然后向FPGA的命令寄存器写入批数据写操作指令,FP-GA根据接收到的命令将RAM中的数据分次送至外设数据总线,且需保证向COM20020的写时序与之同步。

  (4)PXA270对外设批数据读操作 由FPGA给出对外设的连续多次读时序将外设中的数据送人RAM,完成存储工作。PXA270等待批数据读完成中断发生后对RAM进行连续读。

  3 功能模块设计

  3.1 时序发生模块设计

  COM20020有80xx-like和68xx-like两种总线访问方式。这里中实现68xx-like访问方式,图2为其读写访问时序。

读写访问时序

  读写时序的共同要求为:片选信号CS必须先于DS至少5 ns,并且只允许在DS无效之后CS才能恢复为高电平;读写方向信号DIR应在DS有效前至少10 ns建立;DS高电平宽度不小于20 ns。两者的不同要求:写时序的地址总线先于操作脉冲DS至少15 ns建立,DS低电平不小于20 ns,数据总线有效数据必须在DS变高之前至少30 ns建立,保持至DS变高后至少10 ns;而读时序的地址总线先于片选信号至少15 ns建立,DS低电平不小于60 ns,DS变低到数据总线数据有效的间隔最大为40 ns,DS变高到数据总线高阻抗的间隔最大为20 ns,这是COM20020作为数据输出方给访问设备提供的特性。针对以上读写时序的要求,具体设计如下:DIR在一次操作中只有高或低电平一种可能,通过命令寄存器在操作前事先给出,而后给出使能信号,DS在CS有效之后变低,而在CS无效之前变高,以便数据可靠锁存。

  图3为COM20020的时序原理图,从时序分析可得出如下设计方案:DIR用于指示操作是读还是写,DIR=‘1’为读,否则为写。在操作前先对DIR 赋值;在EN有效时选择CS,CLK的下一次上升沿变为有效。这样是给写操作对COM20020数据总线准备数据之用,不影响读操作;DS选择在CS有效的下一个CLK上升沿变为有效,但在CS无效前两个时钟周期给出上升沿,以满足“片选信号CS必须先于DS至少5 ns,并且只能在DS无效之后恢复为高电平”,并且DS中间应有至少60ns的时钟宽度,因而保持3个CLK周期有效。图4为 CommandGenerator时序仿真图。采用计数器进行时序同步。以下给出VHDL源代码。

COM20020的时序原理图

CommandGenerator时序仿真图
zhangyukun 发表于 2018-10-3 10:21:51 | 显示全部楼层
一种基于FPGA的PXA270外设时序转换接口设计
雷磊 发表于 2023-4-22 16:40:45 | 显示全部楼层
RS译码中改进型欧几里德算法的研究及其FPGA实现
http://www.fpgaw.com/forum.php?m ... 0&fromuid=54563
(出处: 集成电路技术分享)
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-11-16 18:01 , Processed in 0.060916 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表