PixelxCamera
|
| 概述:此文档给出了CMOS相机PX4040指令定义及FPGA操作流程。 |
版本号 | 作者 | 版本信息 | 更新原因 | 历史版本 | 更新日期 |
---|---|---|---|---|---|
0.1 | 冯译 | 创建文档 | 20190505 | ||
1.1 | 张艺浩 | MD版,并对兼容性做修改 | 20190901 | ||
配置设定指令
指令名称 | 指令头 | 指令意义 | 指令参数 |
---|---|---|---|
Exposure Time | 16’h8406 | 设置曝光时间 | 从00000000到FFFFFFFF |
Get Exposure Time | 16’h80D1 | 获取设置的曝光时间 | |
ROI ROW | 16’h84C0 | 设置曝光区域 | 起始行:0~FFE 终止行:1~FFF |
Get ROI ROW | 16’h80D2 | 获取设置的曝光区域 | |
Multiple | 16’h82C1 | 设置连拍张数 | 从1到3FF |
Get Multiple | 16’h80D3 | 获取设置的连拍张数 | |
Video Mode | 16’h81C2 | 设置Video模式 | ON/OFF |
Get Video Mode | 16’h80D4 | 获取Video模式 | |
Picture Mode | 16’h81C3 | 设置图片模式 | 00: LDR低增益; 01: LDR高增益; 02: HDR; 03: LDR高低增益同时读出 |
Get Picture Mode | 16’h80D5 | 获取设置的图片模式 | |
Gain | 16’h82C4 | 设置TOP、BOTTOM通道增益,TOP通道为高增益,BOTTOM通道为低增益 | TOP:从000000到111111 BOT:从000000到111111 |
Get Gain | 16’h80D6 | 获取设置的增益 | |
Force Training | 16’h81C5 | 设置强制对齐 | 00:不强制对齐 01:强制对齐一次 |
Get Force Training | 16’h80D7 | 获取设置的强制对齐方式 | |
BIN | 16’h81C6 | 设置BIN | 00:1*1 01:2*2 |
Get BIN | 16’h80D8 | 获取设置的BIN模式 | |
PIC Interval | 16’h84C7 | 设置连拍图片时间间隔 | 从00000000到FFFFFFFF |
Get PIC Interval | 16’h80D9 | 获取设置的连拍图片时间间隔 | |
Black Level | 16’h84C8 | 设置TOP、BOTTOM通道本底设置 | TOP:从0000到FFFF BOT:从0000到FFFF |
Get Black Level | 16’h80DA | 获取设置的本底数值 | |
LDC Mode | 16’h81C9 | 设置LDC Mode | ON/OFF |
Get LDC Mode | 16’h80DB | 获取设置的LDC模式 | |
Trigger Mode | 16’h81CA | 设置触发模式 | 00: 软件触发; 01: 外部trigger0触发; 02: GPS时间触发; |
Get Trigger Mode | 16’h80DC | 获取设置的触发模式 | |
Fan Speed | 16’h81CB | 设置风扇转速 | 00:0转速; 01: 25转速; 02: 50转速; 03: 75转速; |
Get Fan Speed | 16’h80DD | 获取设置的风扇转速 | |
Target Temp | 16’h82CC | 设置制冷温度 | |
Get Target Temp | 16’h80DE | 获取制冷目标温度 | |
PID Parameter | 16’h83CD | 设置制冷PID算法参数 | |
Get PID Parameter | 16’h80DF | 获取设置的PID参数 | |
Get Device | 16’h8003 | 获取设备信息 | |
Get Temp | 16’h80E0 | 获取当前温度 | |
Get Voltage | 16’h80E1 | 获取当前电压 | |
Get Electric Current | 16’h80E2 | 获取当前电流 | |
Get Cooling State | 16’h8013 | 获取制冷状态 | |
Get Gps Time | 16’h80E3 | 获取曝光起始时刻GPS时间 | |
Get Tdc Time | 16’h80E4 | 获取曝光起始时刻和PPS时间差的TDC计数 | |
Get Gps Status | 16’h80E5 | 获取GPS的连接状态 | |
Set Trigger Time | 16’h86E6 | 设置定时拍照时间 | |
Set Tdc Time | 16’h84E7 | 设置定时拍照TDC时间 | |
Get Serial Number | 16'h80E8 | 获取下位机序列号 |
| |Get Logic Version | 16'h80EA | 获取下位机逻辑版本号 | | | |Get Exposure Date | 16'h80E9 | 获取曝光日期 | | | |Set Heat Dutycycle | 16'h80EB | 设置除霜加热pwm的占空比 | | | |Get Heat Dutycycle | 16'h80EC | 获取除霜加热pwm的占空比 | | | |Set V2 Serial Number | 16'h88ED | 设置下位机的序列号(V2版开始有,存的FLASH) | | | |Get V2 Serial Number | 16'h80EE | 获取下位机的序列号(V2版开始有,存的FLASH) | |
执行指令
指令名称 | 指令头 | 指令意义 | 指令参数 |
---|---|---|---|
Start Photo | 16’h8009 | 开始拍照 | |
Operation End | 16’h80E6 | 终止拍照 | |
Cooling | 16’h81CE | 开始/停止制冷 | 00:停止制冷 01:开始制冷 |
Shutter | 16’h81CF | 打开/关闭快门 | 00:快门常开 01:快门常关 |
Fan | 16’h81D0 | 启动/停止风扇运行 | 00:关闭风扇 01:开启风扇 |
Force Training | 16’h80C5 | 强制对齐 |
错误类型 | 错误码 | 错误说明 |
---|---|---|
错误指令 | F0 | 满足cmos命令解析,但不属于cmos的指令 |
初始化未完成 | F1 | 拒绝所有指令 |
曝光未完成 | F2 | 拒绝所有曝光相关指令(开始曝光,force_train,设置曝光时间,设置曝光行数,设置帧数,video_mode,pic_mode,设置增益,设置BIN,连拍间隔,blacklevel,LDC_mode) |
配置cmos未完成 | F3 | 拒绝所有cmos_SPI相关指令(开始曝光,force_train,set_gain,set_blacklevel,set_LDC,set_BIN) |
读取cmos未完成 | F4 | 拒绝所有cmos_SPI相关指令(forcetrain,set_gain,set_BIN,set_black_level,set_LDC) |
命令标示位 Cmd [15:12] | Definition |
---|---|
1000 | 命令头 |
0000 | 命令数据字1 |
0010 | 命令数据字2 |
0100 | 命令数据字3 |
0110 | 命令数据字4 |
1110 | 下传文件数据 |
Cmd [15:12] | Cmd [11:8] | Cmd [7:0] |
---|---|---|
1000 | 命令数据字的个数 | 命令ID |
Cmd [15:12] | Cmd [11:0] |
---|---|
0000/0010/0100/0110 | 命令数据字1-4 |
命令标示位 Cmd [15:12] | Definition |
---|---|
1000 | 命令头 |
0000 | 命令数据字1 |
0010 | 命令数据字2 |
0100 | 命令数据字3 |
0110 | 命令数据字4 |
1110 | 上传报警数据 |
变量 | 默认值 |
---|---|
曝光时间 | 3000行 |
高增益 | 10 |
低增益 | 1 |
风扇状态 | 开启 |
连拍间隔时间 | 0行 |
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00100 | 8’h06 |
此命令设定曝光时间,命令后跟4个命令数据字,构成32bits的数据内容,代表曝光的时间,单位为ms,即最大曝光设定时间为32’hFFFFFFFF ms, 约为1200h。
软件应方便的设定时间值,可参考solis.
实际下发指令为:16’h8406,16’h00XX, 16’h20XX, 16’h40XX, 16’h60XX
收到完整命令,反馈16’h8006到06通道,代表命令接收OK
下发指令为行数,一行时间为:
Tline = 12*516/数据率,数据率为150M,即一行时间为0.00004128s
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hD1 |
此命令下发后,读取曝光时间,上传数据如下:
16’h84D1,16’h00XX, 16’h20XX, 16’h40XX, 16’h60XX
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00100 | 8’hC0 |
此命令设定CMOS相机曝光行数,命令后跟4个命令数据字,构成32bits的数据内容。 曝光行数设定为起始行和终止行,范围为[0,4095],需要保证起始行数低于终止行数。
实际下发指令为:16’h84C0, 16’h00XX, 16’h20XX, 16’h40XX, 16’h60XX。起始行为60XX,40XX,终止行为20XX,00XX。
比如起始行为100,终止行为2000,那么下发
16’h84C0, 16’h00D0, 16’h2007, 16’h4064, 16’h6000
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hD2 |
此命令下发后,读取曝光区域参数,上传数据如下:
16’h84D2, 16’h00XX, 16’h20XX, 16’h40XX, 16’h60XX
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00100 | 8’hC1 |
此命令设定连拍张数,命令后跟2个命令数据字,构成16bits的数据内容,代表连拍张数。
实际下发指令为:16’h82C1,16’h00XX, 16’h20XX
收到完整命令,反馈16’h80C1到06通道,代表命令接收OK
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hD3 |
此命令下发后,读取连拍张数参数,上传数据如下:
16’h82D3,16’h00XX, 16’h20XX
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00001 | 8’hC2 |
此命令设定Video模式,命令后跟1个命令数据字,构成8bits的数据内容,代表Video指令。
实际下发指令为:16’h81C2,16’h00XX
开启Video为:16’h81C2,16’h0001
关闭Video为:16’h81C2,16’h0000
收到完整命令,反馈16’h80C2到06通道,代表命令接收OK
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hD4 |
此命令下发后,读取Video模式,上传数据如下:
16’h81D4,16’h00XX
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00001 | 8’hC3 |
后跟1组命令数据字,表明是HDR还是LDR模式,同时表明是高增益还是低增益读出
16’h81C3,16’h0000表明是LDR低增益读出
16’h81C3,16’h0001表明是LDR高增益读出
16’h81C3,16’h0002表明是HDR读出
16’h81C3,16’h0003表明是LDR高,低增益读出
在Video模式下只可选择LDR低增益读出和LDR高增益读出,不可选择HDR读出和LDR高,低增益读出
收到完整命令,反馈16’h80C3到06通道,代表命令接收OK
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hD5 |
此命令下发后,读取图片模式,上传数据如下:
16’h81D5,16’h000X
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00100 | 8’hC4 |
此命令设置高低增益通道增益数值,命令后跟2个命令数据字,分别表明高、低增益通道增益数值
16’h82C4,16’h00XX,16’h20YY
XX表明设置高增益通道(TOP)增益数值,YY表明设置低增益通道(BOT)增益数值,增益为离散值,需根据GS4040手册枚举
收到完整命令,反馈16’h80C4到06通道,代表命令接收OK
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hD6 |
此命令下发后,读取通道增益,上传数据如下:
16’h82D6,16’h00XX,16’h20YY
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00001 | 8’hC6 |
此命令后跟1组命令数据字,表明设置BIN模式
16’h81C6,16’h0000表明1*1模式
16’h81C6,16’h0001表明2*2模式
同时预留后面使用FPGA进行BIN输出
收到完整命令,反馈16’h80C6到06通道,代表命令接收OK
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hD8 |
此命令下发后,读取BIN设置,上传数据如下:
16’h81D8,16’h000X
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 01000 | 8’hC7 |
此命令后跟4组命令数据字,表明设置连拍模式曝光间隔
16’h81C7,16’h00XX,16’h20XX,16’h40XX,16’h60XX
最长时间为32’hffffffff*40ns=171.8s
收到完整命令,反馈16’h80C7到06通道,代表命令接收OK
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hD9 |
此命令下发后,读取连拍图片时间间隔,上传数据如下:
16’h84D9,16’h00XX,16’h20XX,16’h40XX,16’h60XX
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 01000 | 8’hC8 |
此命令后跟4组命令数据字,分别设置TOP通道和BOT通道的Black Level。
Black Level设置为16位数,其中D7D6必须设置为’10’,需要软件强制
下发指令为16’h84C8,16’h00AA,16’h20BB,16’h40CC,16’h60DD
AA为TOP低位,BB为TOP高位,CC为BOT低位,DD为BOT高位
收到完整命令,反馈16’h80C8到06通道,代表命令接收OK
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hDA |
此命令下发后,读取本底设置,上传数据如下:
16’h84DA,16’h00XX,16’h20XX,16’h40XX,16’h60XX
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00001 | 8’hC9 |
此命令后跟1组命令数据字,表明开启或者关闭LDC Mode
16’h81C9,16’h0000表明关闭LDC Mode
16’h81C9,16’h0001表明开启LDC Mode
收到完整命令,反馈16’h80C9到06通道,代表命令接收OK
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hDB |
此命令下发后,读取LDC模式设置,上传数据如下:
16’h81DB,16’h000X
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00001 | 8’hCA |
此命令后跟1组命令数据字,表明触发模式
16’h81CA,16’h0000表明内部触发(软件指令触发)
16’h81CA,16’h0001表明下一次通过外部Trigger触发
16’h81CA,16’h0002表明下一次触发根据软件设定时间触发(时间格式待确定?)
说明:不管何种模式,都要下发开始曝光的指令,才会去等待触发。
收到完整命令,反馈16’h80CA到06通道,代表命令接收OK
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hDC |
此命令下发后,读取触发模式,上传数据如下:
16’h81DC,16’h000X
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00001 | 8’hCB |
此命令后跟1组命令数据字,表明风扇设置模式
16’h81CB,16’h0000表明风扇00转速
16’h81CB,16’h0001表明风扇20转速
16’h81CB,16’h0002表明风扇50转速
16’h81CB,16’h0003表明风扇75转速
收到完整命令,反馈16’h80CB到06通道,代表命令接收OK
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hDD |
此命令下发后,读取风扇转速,上传数据如下:
16’h81DD,16’h00XX
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00010 | 8’hCC |
此命令后跟2组命令数据字,表明设置制冷目标温度
16’h82CC,16’h00AA,16’h2002表明设置制冷目标温度为16’h2AA,温度和参数关系按照手册公式由软件计算
收到完整命令,反馈16’h80CC到06通道,代表命令接收OK
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hDE |
此命令下发后,读取制冷目标温度,上传数据如下:
16’h82DE,16’h00AA,16’h2002
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hCD |
此命令下发后,设置PID参数(内部调试使用)
16’h83CD,16’h00AB,16’h20CD,16’40EF
其中24’hEFCDAB = {4’h0, Kp, Ti, Td, T}
Kp是8位转换系数,默认设置为1
Ti是4位积分系数,默认设置为3
Td是4位微分系数,默认设置为3
T是4位比例系数,默认设置为10
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hDF |
此命令下发后,读取PID参数, 上传数据如下:
16’h80DF,16’h00AB,16’h20CD,16’40EF
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’h03 |
此命令下发后,读取设备信息,反馈如下:
16’h8303,16’h0006,16’h2001,16’4001(CMOS相机)
0006表示PX4040相机
2001表示版本号
4001表示固件号
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hE0 |
此命令下发后,读取当前温度,格式如下:
16’h80E0,16位CMOS温度,24位TEC热端温度,24位house内部温度,24位环境温度1(预留),24位环境温度2(预留),16位FPGA温度,16’h0(补足32位整数倍)
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hE1 |
此命令下发后,读取电压,格式如下
{16’h84E1,16位VCCINT,16位VCCAUX,16位VCCBRAM,16位TEC电压} 前三个电压均为FPGA内部电压,VCCINT为1.1V,VCCAUX为1.8V,VCCBRAM为1.8V左右
电压=16位数高12位*3/4096V
TEC电压=16位数低12位/4095*12.635V
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hE2 |
此命令下发后,读取电流,格式如下
{16’h84E2,16位主板2.8V电流,16位5.5V电流,16位24V输入电流,16位TEC电流} 2.8V电流大概1A左右,5.5V电流大概1.5A左右,24V输入大概2A左右
电流计算方法:
16位(主板2.8V,5.5V,24V)电流=16’hABCD
I=16’ABCD高12位*0.00125(A);
16位TEC电流 = n*3.3/4096/101/0.01
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’h13 |
此命令下发后,读取制冷状态,制冷状态分别为:
16’h8113,16’h0000表明未制冷
16’h8113,16’h0001表明正在制冷
16’h8113,16’h0002表明制冷完成
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00001 | 8’hCE |
此命令后跟1组命令数据字,表明制冷命令
16’h81CE,16’h0000表明停止制冷
16’h81CE,16’h0001表明开始制冷
收到完整命令,反馈16’h80CE到06通道,代表命令接收OK
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00001 | 8’hCE |
此命令后跟1组命令数据字,表明快门状态
16’h81CF,16’h0000表明快门常开
16’h81CF,16’h0001表明快门常闭
收到完整命令,反馈16’h80CF到06通道,代表命令接收OK
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00001 | 8’hD0 |
此命令后跟1组命令数据字,表明风扇状态
16’h81D0,16’h0000表明关闭风扇
16’h81D0,16’h0001表明打开风扇
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’h09 |
收到指令后,相机按照设定的参数开始一次拍照流程。
收到命令,反馈16’h8009到06通道,代表命令接收OK。
再此过程中软件上除中止按键可以操作外,其他按钮应该变成不可操作的灰色。
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hE6 |
当此命令发送到控制器,任何的曝光和读出序列立刻被中止。等待曝光的功能也会终止后请等待2秒钟,让下位机完成剩余操作。
收到命令,反馈16’h80E6到06通道,代表命令接收OK,相机拍照中止。
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hC5 |
收到指令后,相机进行一次强制对齐操作。
收到命令,反馈16’h80C5到06通道,代表命令接收OK
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hE3 |
收到指令后,相机将上次曝光缓存的起始时刻gps时间上传
收到命令,反馈16’h85E3到06通道
返回数据格式
{16’h86E3,16’h00AA,16’h20BB, 16’h40CC,16’h60DD, 16’h80EE,16’hA0FF,16’h0}
BBAA为秒的asc ii码,DDCC为分的asc ii码,FFEE为时的asc ii码,为了满足usb传输需要,后面补了16位0
目前兴隆观测站的GPS遵从NEMA协议:
‘$GPRMC,142143.00,A,4023.75173,N,11734.64829,E,0.000,000.00,151119,,,A*60’
注意:下位机实现是,TDC和串口时间都是通过PPS触发来做记录得,串口时间来得比PPS晚,所以PPS记录的都是上一秒的时间,所以软件处理上需要加1
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hE4 |
收到指令后,相机将上次曝光缓存的起始时刻和PPS信号的时间差的TDC计数
上传
收到命令,反馈16’h84E4到06通道
返回数据格式为:
{16’h84E4,16’h00AA,16’h20BB, 16’h40CC,16’h60DD, 16’h0}
DDCCBBAA,A为低位,D为高位,其中低28位有效,为了满足usb的传输需要,后面补了16位的0
时间= n*10(ns)TDC时钟为100Mhz
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hE5 |
收到指令后,相机将gps的连接状态上传
收到命令,反馈16’h81E5到06通道
返回数据格式为:
{16’h81E5,16’h00AA }
16’h0001表示连接上了gps
16’h0000表示未连接gps
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hE6 |
此命令下发后,设置曝光起始的时间:
16’h86E6,16’h00AB,16’h20CD,16’h40EF,16’h60GH,16’h80IJ,16’hA0KL
CDAB为秒时间ASC码
GHEF为分时间ASC码
KLIJ 为时时间ASC码
例如想在UTC时间12点34分56秒曝光
则下发16’h86E6,16’h0035,16’h2035,16’h4034,16’h6033,16’h8032,16’hA031
注意!(红色部分说明):因为串口时间总是慢于PPS的时间,最终曝光触发由PPS触发,所以设置时间应当设置提前1秒,而去等待下一秒的PPS信号
拍照流程:设置定时拍照时间设置触发模式为time触发开始曝光
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hE4 |
收到指令后,相机将设置PPS信号来后的counter计数
收到命令,返回16’h80E7
{16’h84E7,16’h00AA,16’h20BB, 16’h40CC,16’h60DD}
DDCCBBAA,A为低位,D为高位,其中低25位有效,
时间= n*50(ns)TDC时钟为20Mhz
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hFF |
详见错误码部分
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hE8 |
收到指令后,下位机返回序列号
位数 | 0-15 | 16-31 | 32-39 | 40-47 | 48-55 | 56-63 |
---|---|---|---|---|---|---|
内容 | 0x88 | 0xE8 | 0x00 | SERIAL[0..7] | 0x20 | SERIAL[8..15] |
含义 |
位数 | 64-71 | 72-79 | 80-87 | 88-95 | 96-103 | 104-111 |
---|---|---|---|---|---|---|
内容 | 0x40 | SERIAL[16..23] | 0x60 | SERIAL[24..31] | 0x80 | SERIAL[32..39] |
含义 |
位数 | 112-119 | 120-127 | 128-135 | 136-143 | 144-151 | 152-159 |
---|---|---|---|---|---|---|
内容 | 0xA0 | SERIAL[40..47] | 0xC0 | SERIAL[48..55] | 0xE0 | SERIAL[56..63] |
含义 |
命令序号位0xE8,返回值为一个64位数(记为SERIAL),如上表所示,此六十四位数用于表示相机的序列号。
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hEA |
收到指令后,相机返回逻辑版本号
位数 | 0-15 | 16-31 | 32-39 | 40-47 | 48-55 | 56-63 |
---|---|---|---|---|---|---|
内容 | 0x88 | 0xE8 | 0x00 | A[0..7] | 0x20 | B[0..7] |
含义 |
位数 | 64-71 | 72-79 | 80-87 | 88-95 | 96-103 | 104-111 |
---|---|---|---|---|---|---|
内容 | 0x40 | C[0..7] | 0x60 | D[0..7] | 0x80 | D[8..15] |
含义 |
返回值形如上表,其中A为八位无符号整数,表示大版本号(Major Version Number),B为八位无符号整数,表示小版本号(Minor Version Number),C为八位无符号整数,表示修正版本号(Revision Number), D为16位无符号整形,表示编译版本号(Build Number)
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hE9 |
收到指令后,相机返回曝光日期
位数 | 0-15 | 16-31 | 32-39 | 40-47 | 48-55 | 56-63 |
---|---|---|---|---|---|---|
内容 | 0x86 | 0xE8 | 0x00 | D0[0..7] | 0x20 | D1[0..7] |
含义 |
位数 | 64-71 | 72-79 | 80-87 | 88-95 | 96-103 | 104-111 |
---|---|---|---|---|---|---|
内容 | 0x40 | M0[0..7] | 0x60 | M1[0..7] | 0x80 | Y0[8..15] |
含义 |
位数 | 112-119 | 120-127 |
---|---|---|
内容 | 0xA0 | Y1[0..7] |
含义 |
返回的负载是按照DDMMYY的格式返回的拍照时的UTC时间的日、月、年信息,注意此处的返回是字符串的形式,例如2019年9月11日,对应的D0为‘1’,即0x31,D1为‘1’,0x31,M0为‘0’,0x30,M1为‘9’,0x39, Y0为‘1’,0x31,Y1为‘9’,0x39
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hEB |
收到指令后,相机设置除霜加热的PWM信号的占空比
位数 | 0-15 | 16-31 | 32-39 | 40-47 |
---|---|---|---|---|
内容 | 0x80 | 0xEB | 0x00 | A[0..7] |
|含义|||||||
A对应的十进制数为占空比*100。
例如发送16‘h80EB 0032 ,则代表设置占空比50。超过100的占空比,会被下位机视作无效舍弃 (后续根据测试情况,上位机需要加入一个上限值,加热功率不能过大,会影响成像)
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hEC |
收到指令后,相机上传除霜加热的PWM信号的占空比
位数 | 0-15 | 16-31 | 32-39 | 40-47 |
---|---|---|---|---|
内容 | 0x80 | 0xEB | 0x00 | A[0..7] |
|含义|||||||
A对应的十进制数为占空比*100。
例如发送16‘h80EC ,返回16’h81EC 0032,则代表设置的占空比为50%
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hED |
收到指令后,设置相机序列号(V2版开始有此功能)
位数 | 0-15 | 16-31 | 32-39 | 40-47 |
---|---|---|---|---|
内容 | 0x80 | 0xEB | 0x00 | A[0..7] |
|含义|||||||
序列号为128位:详见序列号定义
SN(15:0)为序列号低16位
发送:
88ED 00SN(7:0) 20SN(15:8) 40SN(23:16) 60SN(31:24) 80SN(39:32) A0SN(47:40) C0SN(54:48) E0SN(63:55)
Cmd [15:13] 命令标示位 | Cmd [12:8] | Cmd [7:0] 命令ID |
---|---|---|
100 | 00000 | 8’hEE |
收到指令后,设置相机序列号(V2版开始有此功能)
位数 | 0-15 | 16-31 | 32-39 | 40-47 |
---|---|---|---|---|
内容 | 0x80 | 0xEB | 0x00 | A[0..7] |
|含义|||||||
序列号为128位:详见序列号定义
下发80EE后
接收:
88EE 00SN(7:0) 20SN(15:8) 40SN(23:16) 60SN(31:24) 80SN(39:32) A0SN(47:40) C0SN(54:48) E0SN(63:55)