lemonHe

主要关注FPGA信号处理和数字图像处理技术,欢迎交流 邮箱:heliminlemon@163.com

FPGA串口通信及数据解析

3
阅读(6889)

    之前博客中介绍过FPGA中uart的实现,最近做了一个上位机,用于控制红外相机的工作状态,当然,协议也是自定义的。界面如下,包含相机校正算法的选择、图像增强算法参数的调整、不同算法的切换、参数的调整以及相关信息的反馈(相机温度、曝光时间等)。

clip_image002

    采用C#做开发,上位机通过串口新闻给FPGA发送数据,在FPGA中,使用NIOS对接收到的数据做解析,并执行相应操作,同时给上位机反馈结果。采用普遍使用的控制协议,包括包头、字节数、命令字、操作字、校验字和包尾。

clip_image004

a) 包头:起始标志,1个字节,用16进制可表示为0xcc,返回0x55;

b) 字节数:数据长度N-2,1个字节;

c) 命令字:1个字节;

d) 操作字:1个字节;

e) 数据:N-4个字节;

f) 校验字:校验字前的所有字节数据累加和对256取余;

g) 包尾:结束标志,用16进制为表示为0xeb、0xaa。


    这个系统控制部分的设计,主要可分为以下3个部分,后期将单独发文进行说明。

(1) 基于C#的简单的上位机串口通信软件设计;

使用SerialPort组件完成通信。

(2) 在FPGA中使用NIOS解析串口接收的数据;

前期博文中已经介绍了NIOS通过中断的方式接收数据,这里主要说说如何根据通信协议来对数据做解析,并通过寄存器映射的方式与逻辑通信。

(3) 基于C#串口通信软件解析下位机反馈的数据。

这里思路和第2点差不多,不过在处理上稍有差异。