首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ARM和FPGA的接口设计 - 基于ARM和FPGA的嵌入式数控系统设计(2)

ARM和FPGA的接口设计 - 基于ARM和FPGA的嵌入式数控系统设计(2)

3 ARM和FPGA的接口设计          为使系统能够按照预期设计良好工作,首先要从硬件上实现ARM和FPGA之间的可靠通信。本文采用的方案是在FPGA上实现SRAM时序,将FPGA作为一块特殊的内存设备挂接到ARM的内存地址空间。这样在ARM端只需要编写SRAM的驱动程序就可以实现对FPGA端的数据写入和读取。
          3.1 SRAM时序
          SRAM时序分为读时序和写时序两种。当CPU对SRAM进行读操作时,首先会在地址线上写入正确的地址信号,接着是对SRAM芯片的片选信号,然后是对芯片的读信号,之后经过一定的振荡期后CPU在数据线上读到稳定的有效数据。
          当CPU对SRAM进行写操作时,首先会在地址线上写入正确的地址线号,接着是对SRAM芯片的片选信号,然后是对芯片的写信号,在写信号上升沿之前CPU会在数据线上准备好有效数据,以供SRAM芯片在写信号上升沿将数据写入相应的地址单元。
          3.2 FPGA端SRAM实现
          ARM和FPGA的通信需要的接口信号有地址线A0-A15、数据线D0-D15、片选信号nCS,读信号nRD和写信号new,每次需要实现16位数据的读写。用Verilog硬件语言描述SRAM时序如下:
          
          可知只有在片选信号、读信号都拉低而写信号仍为高的情况下,才在data线上输出地址线上对应单元的数值,其他情况下FPGA都将data线置为高阻态,放弃对data线的控制。
          4 基于FPGA的DDA精插补器设计
          随着FPGA器件及其开发技术的日臻成熟,采用FPGA实现运动控制的方案显示出巨大的潜力。由于FPGA的设计是并行的、多线程,而且具有在线可编程能力,兼备了速度快和成本低的优点,同时克服了专用处理器灵活性方面的不足。基于FPGA的DDA精插补器相对传统的软件插补具有强大的优势。
          4.1 数字积分插补算法
          目前比较成熟的数控插补算法有逐点比较法、最小偏差法和数字积分法等,数字积分法又称数字微分分析器(Digital Differential Analyzer,DDA)。采用该方法进行插补,具有运算速度快、逻辑功能强、脉冲分配均匀等特点,可实现一次、二次甚至高次曲线插补,易于实现多轴联动。
          数字积分插补算法是将函数的积分运算转换成变量的求和运算。如果所选择的脉冲当量足够小,则用求和运算代替积分所引起的误差可以不超过允许的数值。采用两个寄存器(函数寄存器和累加寄存器)和一个全加器构成数字积分器,将单位周期选得足够小,每单位周期都向累加器累加函数寄存器中的数值,如果累加器溢出,就向外发送脉冲,实时地改变函数寄存器的值,就可以完成步进电机的调速。DDA插补控制器设计的硬件描述语言程序的流程图如图3所示。
       
        图3 DDA插补控制器设计的硬件描述语言程序的流程图
继承事业,薪火相传
返回列表