某激光雷达主控板FPGA设计概要
0赞前段时间做了一个激光雷达的项目,我主要负责FPGA部分的程序设计。在项目启动之初,我写了一个简要的设计说明,整个项目的FPGA部分,基本是按照这个思路设计的,现把该文档发布出来,供大家参考一下。
好像不能直接上传成word格式的,那我就把主要的内容摘取出来吧!
本文档是XXX项目主控板的FPGA开发概要设计,用于指导开发人员编写详细设计文档,实现代码的依据,以及供测试人员理解并编写测试方案的依据。
1.2 文档对象
FPGA编码人员、模块系统集成人员。
表 1 定义、缩写词和缩略语
术语 |
定义或说明 |
motor |
电机 |
pss |
码盘 |
wireless |
无线通信 |
Decode |
解码 |
指导详细设计编写,进行FPGA代码编写的依据。
1) 各模块的耦合度最低;
2) 尽量使用公司已有的软件以及软件框架。
3) 在保证功能的前提下,性能最优化。
主控板的主要功能是控制电机的转速、测量角位移、通过LVDS接口接收2号板发送的数据并实时处理、通过网口与上位机进行通信。其功能框图图1
具体实现功能流程如下:
a FPGA通过LVDS接口,接收并解析来自2号板的有效数据,通过校正公式计算后,把有效信息输入到Ethernet_Unit单元;
b pss 单元通过光电开关和码盘,实时计算角度信息;
c motor模块实时控制电机转速;
d Ethernet_Unit单元按照预定的协议打包数据,并将数据传输到上位机。
3LVDS模块
该模块数据处理流程如图2:
在此模块中,首先将接收到的串行数据,转换成并行数据,然后进行8b/10b解码。从解码后的数据中,根据预先定义好的通信协议,解析出有效的数据,然后经过校正公式的处理后,把数据发送到双口RAM进行缓存。
4、码盘
码盘编码器有A/B/I三个信号,其中A/B信号为正交编码信号,I为起始点信号,一圈(360°)产生一个脉冲。编码器采用X4模式,使用边沿计数,所以计数器 cnt 最大值为 57600 (1800*2*4*4) 。然后将这个计数器映射到实际角度值,则实际角度值 angle 约等于 cnt*3600/57600,该计算可直接通过移位完成。
码盘工作时序图如图3:
本程序对直流电机的控制,采用实时调节PWM的占空比来实现。
该模块通过FPGA驱动网络芯片来实现与上位机的通信,通信协议如下图4所示:
PS:基于FPGA的视频编解码QQ群:623495899 ,有兴趣的可以进来交流学习哈。
我的微信号:734176597