FGPA实现串转并,同时对数据打包的模块

来源:互联网 发布:js获取class属性值 编辑:程序博客网 时间:2024/06/06 12:55

本来应该将各部分的功能分开来实现,但是刚开始写Verilog,代码风格不规范,将各部分功能揉到一起了。

首先说下代码实现了个什么功能。

一、 这个模块要求从RS422异步串口读取串行数据41字节,数据格式如下图:


校验F,去掉ABCD部分,将E部分扩展成45字节并打包成长度为256字节数据包。

扩展情况如下图所示,其中12~44字节为图1中的E部分。


长度为256字节的数据包格式如下,将上文所提到的45字节填入G部分。


二、 分析实现

1. 对于串行数据首先进行串转并:1. 以八倍串口波特率的时钟进行过采样,当检测到起始位0的时候,采样频率降为波特率,读取8个bit的数据,放到移位寄存器中,转换成并行数据。

2. 对数据前两个字节进行检测,不为EB90则舍弃。否则,将数据写入RAM并将前40个字节累加后得到数据的低8位,不同则舍弃。

3. 第一遍读取RAM,进行CRC校验。

4. 第二遍读取RMA,将数据写入上层文件的FIFO2中。

0 0