当前位置:文档之家› 数据采集板最新通信协议及测试

数据采集板最新通信协议及测试

数据采集板通讯命令测试
1测试平台
本测试平台依赖于新版数据采集卡,整个通信可以划分为两部分,PC机到单片机的串
口通信,以及单片机到FPGA的SPI通信。

2软件环境
对于用户而言,所有测试命令基于串口精灵发送,通过串口精灵返回的数值来判断命令
发送正确与否。

串口通讯约定
1,计算机作为主机,数据采集板作为从机。

2,所有的通讯都由主机发起,以从机的应答结束。

3,波特率设置为9600, —个起始位,一个停止位,无校验位。

4,当出现通信错误时(超时,校验错,无应答),采用重传作为处理手段。

设备地址:数据采集板的地址定义为0XAQ
子地址:不同设备内部不同单元,该设计中子地址定义,默认为0x00.
命令字符:详细定义见下文。

数据长度:数据的长度,不包括检验和的长度,有可能是0。

当数据长度是0时,“数
据内容”部分不存在。

数据内容:当数据长度不为0时为所发送的数据,不能大于255字节。

累加和:以简单的累加和作为校验。

只针对数据部分进行累加,如果数据长度为1,累加和就等于数据内容,如果数据长度为0,不仅数据部分内容为空,累加和部分也为空。

3测试内容
所有的命令可以划分为两类:公共的通讯控制命令以及针对数据采集板的控制命令。

公共通讯控制命令可分为以下四条
1设置通讯波特率
2查询从机状态
3获取从机固件版本信息
4获取固件SN码
针对数据采集板的控制命令有以下三条
1读取单片机状态
2设置数据采集板工作模式
3读取FPGA内部状态
对于控制命令的第二条和第三条而言,其测试内容都包含两部分内容:上位机到单片机
的通信验证以及单片机到FPGA的验证。

上位机到单片机的通讯方式采用RS232方式,波特率为9600,—个起始位,8个数据
位,以及一个停止位,无校验。

上位机到单片机的通信方式都会有应答,具体的应答方式在
下面的测试内容中有详细介绍。

单片机到FPGA的通信方式采用SPI方式,CS低有效,SCLK的上升沿采集数据。

4控制命令测试
数据采集板的地址是0xA0。

单片机仅仅是一个命令转达的单元。

其负责将接收到的控制信息转发给FPGA
主机给单片机发送的内容定义表4-12:主机发送内容定义
4.1工作模式设置命令测试
该命令主要完成对视频采集模式的参数设置,包括对FPGA读写操作设定,设置LVDS
行场有效的时间参数,帧头检测参数设置,设置LVDS的单双通道,分辨率以及制式,VIDEO 行场有效时间参数设置。

该命令的数据内容共有13字节
4.1.1参数定义
参照数据采集板的设计概要。

将工作参数写入到FPGA内部,该命令包含13个字节,
下面的内容为各个字节中的所代表的命令的含义。

R/W_:控制单片机对FPGA的操作,如果是写操作,那么主机必须依次执行该命令以及执行命令字符为30-B0的所有命令,每写一个命令字节成功,返回一个成功标志。

如果是读操作,那么单片机返回FPGA内部状态内容。

SWITCH选择当前处理的是CVBS言号还是LVDS信号,1为CVBS 0为LVDS
S/D:针对LVDS信号而言,S为single,当该位为1时,选择单通道,否则为双通道
8/10:颜色分辨率选择,8为8bit,10为10bit。

该位为1时,选择8bit,否则为10bit。

format :选择电视制式,0为VESA 1为JEADA.
我们需要设置数据采集板工作在LVDS信号采集,双通道,分辨率为8bit,VESA制式下,因此,设定该寄存器内容为0x10
如果我们要设置数据采集板工作在VIDEO信号采集下,那么应该设置该寄存器值为40
2)行有效时间参数定义为两字节,一共11bit
此次调试使用到的信号源的分辨率为,因此设置行有效时间参数为的十
六进制表示,0x556,其中高三位送给字节1,低八位送给字节2,因此,需要发送两个字节,0x05,0x56 对于VIDEO而言,行有效设置为720,其十六进制表示为0x2D0,即发送两个字节,0x02,
0xD0
3
同理设置场有效时间参数为的十六进制,即高两位送给字节,低八位送个
字节2,即发送两个字节0x03,0x00.
对于VIDEO而言,场有效设置为576,其十六进制表示为240,则发送两个字节
0x02,0x40.
设置这两个寄存器为0,这里需要发送四个0x00
帧头检测参数有5位组成,我们独用一个寄存器,用第五位表示,高三位保留
6)帧头检测参数以及消隐消隐信号最高位定义
为帧头查找设定值,分别为四个消隐信号分别的最高位。

7)设置行消隐的前肩(9bit )
)设置行消隐的后肩()
)设置场消隐的前肩()
)设置场消隐的后肩()
对于
信号采集而言,这些数据组成了工作模式设置命令即:
10,05,56,03,00,00,00,00,00,0A,00,00,01
,共 13 字节。

对于CVBS 信号采集而言,这些数据组成了工作模式设置命令即:40 , 02,
D0,02,40,00,00,00,00,0A,00,00,01, 共 13 字节
4.1.2命令设置
4.1.3上位机与单片机通信
单片机返回到主机的值有三类, 发送完命令后,当主机接受到
0x00时,表明此次通讯成功,成功的标志在于,单片机
正确的解析到了完整的命令内容,
并且命令的内容符合约定,
且命令的累加和同单片机计算
的累加和校验值一致,整个通信建立成功。

0xBF 时,表明此次通讯不成功,但是引导字符,以及设 不满足的地
方在于校验出了问题, 需要重新检查命令内
0x7F ,表明此次通讯彻底失败,即命令不是定义的类型。

AAA000200D1005560300000000000A00000179,共 19但是,如果将累加和内容或者命令内容部分改变,即最后一个字节不再是 0x4B 时,串
口精灵就会收到 0xBF 。

发送完命令后,当主机接收到 备地址,以及命令字符都符合要求, 容,并计算校验值。

发送完命令后,当主机接受到 例如,串口助手发送正确的指令:
个字节,发送完毕后,串口精灵收到 0x00,表明此次通讯正确
若将指令的非数据以及校验部分内容部分更改
(例如,引导字符,设备地址,命令字符
等),则返回0X7F,说明此命令不符合系统要求。

FPGA发送指令,否则一直处于需要注意的是,单片机仅仅在命令正确的情况下才会向等待正确
命令状态。

4.1.4单片机与FPGA勺SPI通信
对于FPGA与单片机之间的SPI的通信正确与否,我们只能通过看现象来得知命令是否传输正确,例如,上述指令的数据内容为1005560300000000000A000001,这串命令将通过
SPI的方式发送到FPGA在FPGA的内部存在13字节的命令寄存器,我们可以通过检测该寄存器的值是否为写入的命令,为此,我们在FPGA采用比较的方式来验证传输的正确性。

若FPGA接受到的数据与要求相符,则点亮LED,否则LED不亮。

通过实验发现,串口
助手将正确指令发出后,FPGA将LED点亮,验证了SPI通信的正确性。

,若发送的指令有误,FPGA将不会接收到指令,因为在指令错误的情况下,单片机跟FPGA勺SPI通信是建立不起
来的。

4.2读取单片机状态命令
4.2.1参数定义
1;
WAIT :等待接收命令字节状态。

只要单片机不响应中断,那么该状态位就会置位
4.2.2命令设置
发送命令
4.2.3上位机与单片机通信
单片机将当前状态返回给主机。

相关主题