基于FPGA的PXA270外设时序转换接口设计
图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源代码。
图5为批数据从WRRAM向外设传送的连续时钟产生和自动地址生成原理图。其中,lpm_counter0为带有异步清零和进位信号的增计数; AutoAccessDataNumsOnce在EN='1'时,产生一次批传送时钟,根据COM20020的长短数据包传送要求,在CCESSTYPE =‘1’时传送长数据包(512 B),否则传送短数据包(256 B)。FRE信号同时提供WRRAM的rdclock和lpm_counter0的clock信号。
图6为一次批数据向RAM中写,而后启动DMA传输,将数据从RAM送至COM20020的时序仿真。在WRCLOCK上升沿时,RAM将datain总线上的数据存储到WR_AD-DRESS所指向的字节地址空间,WRCLOCK信号是由PXA270的WE信号与分配给RAM的片选信号(高电平有效)相与而得。对RAM进行
3.3 对外设指定寄存器操作
对外设指定寄存器操作比批数据传送实现简单,只需将操作次数降为1次,并对 COM20020的A2~A0提供相应的地址即可。指定寄存器操作将数据存储在RAM的高512字节空间,并且只占用其中低8个字节,在PXA270编程时,需确保PXA270送入RAM的地址与命令寄存器中的RAM存储地址COMMANDBYTE[2..0]相对应。
4 结论
本设计解决ARCNET协议专用器件应用于列车通信网络中的时序匹配问题,实现了PXA270处理器与COM20020的时序转换。此外,对扩展其他总线访问类型提供了参考框架,可通过修改CommandGenerator中COM20020时序,实现不同外设总线访问类型的扩展;修改 AutoAccessDataNun-sOnce中的ACCESSTYPE,可配置批数据操作的数据种类。
评论