逸江南

某激光雷达主控板FPGA设计概要

0
阅读(2867)

       前段时间做了一个激光雷达的项目,我主要负责FPGA部分的程序设计。在项目启动之初,我写了一个简要的设计说明,整个项目的FPGA部分,基本是按照这个思路设计的,现把该文档发布出来,供大家参考一下。

       好像不能直接上传成word格式的,那我就把主要的内容摘取出来吧!

引言

1.1 文档目的

本文档是XXX项目主控板的FPGA开发概要设计,用于指导开发人员编写详细设计文档,实现代码的依据,以及供测试人员理解并编写测试方案的依据。

1.2 文档对象

 FPGA编码人员、模块系统集成人员。

1.3 定义、缩写词和缩略语

表 1 定义、缩写词和缩略语     


术语

定义或说明

motor

电机

pss

码盘

wireless

无线通信

Decode

解码








1 概要设计原则

1.1 概要设计对后续工作的限制(详设,部署等)

 指导详细设计编写,进行FPGA代码编写的依据。

1.2 设计原则

1) 各模块的耦合度最低;

2) 尽量使用公司已有的软件以及软件框架。

3) 在保证功能的前提下,性能最优化。

整体功能说明

 主控板的主要功能是控制电机的转速、测量角位移、通过LVDS接口接收2号板发送的数据并实时处理、通过网口与上位机进行通信。其功能框图图1

      

QQ图片20171220200804.png

   具体实现功能流程如下:

    a  FPGA通过LVDS接口,接收并解析来自2号板的有效数据,通过校正公式计算后,把有效信息输入到Ethernet_Unit单元;

   b  pss 单元通过光电开关和码盘,实时计算角度信息;

   c  motor模块实时控制电机转速;

   d  Ethernet_Unit单元按照预定的协议打包数据,并将数据传输到上位机。

LVDS模块

       该模块数据处理流程如图2:

QQ图片20171220201005.png 

        在此模块中,首先将接收到的串行数据,转换成并行数据,然后进行8b/10b解码。从解码后的数据中,根据预先定义好的通信协议,解析出有效的数据,然后经过校正公式的处理后,把数据发送到双口RAM进行缓存。

4、 码盘

      码盘编码器有A/B/I三个信号,其中A/B信号为正交编码信号,I为起始点信号,一圈(360°)产生一个脉冲。编码器采用X4模式,使用边沿计数,所以计数器 cnt 最大值为 57600 (1800*2*4*4) 。然后将这个计数器映射到实际角度值,则实际角度值 angle 约等于  cnt*3600/57600,该计算可直接通过移位完成。

    码盘工作时序图如图3:

     

QQ图片20171220201158.png

直流电机控制

       本程序对直流电机的控制,采用实时调节PWM的占空比来实现。

6 Ethernet_Unit 模块

      该模块通过FPGA驱动网络芯片来实现与上位机的通信,通信协议如下图4所示:

     

QQ图片20171220201317.png

 PS:基于FPGA的视频编解码QQ群:623495899 ,有兴趣的可以进来交流学习哈。        

        我的微信号:734176597