zynq_7010/CameraParams.h

295 lines
7.2 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* @Author: your name
* @Date: 2022-01-19 17:27:51
* @LastEditTime: 2023-02-27 18:06:42
* @LastEditors: Zhaozhonmin 1656963645@qq.com
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \zynq_MSS\capimage\Camparams.h
*/
#pragma once
/****************************FPGA REG DEFINE*****************************************/
union CamZ_Reg_2Short
{
unsigned short NShort[2];
int value;
};
union CamZ_Reg_4
{
int value;
struct
{
unsigned int unuse_0 : 2;
unsigned int color_mode : 1;
unsigned int unuse_1 : 2;
unsigned int encode_divide : 3;
unsigned int encode_divide_mode : 1;
unsigned int unuse_2 : 5;
unsigned int en_adc_cfg : 1;
unsigned int clr_exp : 1;
unsigned int soft_reset : 1;
unsigned int en_pattern : 1;
unsigned int line_enable : 1; //不使用
unsigned int byte_sync : 1;
unsigned int adc_config_all : 1 ;
unsigned int adc_select : 5 ;
unsigned int test_pattern : 1;
unsigned int gpio1 : 1 ;
unsigned int gpio2 : 1 ;
unsigned int reserved : 3;
};
};
union CamZ_Reg_4_New
{
int value;
struct
{
unsigned int unuse_0 : 2;
unsigned int color_mode : 1;
unsigned int en_frameset:1;//帧计数只能
unsigned int unuse_1 : 8;
unsigned int en_adc1_cfg:1; //使能ADC 配置 脉冲有效(写低写高)
unsigned int en_adc2_cfg:1; //使能ADC 配置 脉冲有效(写低写高)
unsigned int clr_exp:1; //曝光清除 低电平 有效
unsigned int soft_rst_n:1; //软复位
unsigned int en_pattern:1; //使能自测试数据
};
};
union CamZ_Reg_A_New
{
int value;
struct
{
unsigned int start : 1; //上升沿触发
unsigned int stop : 1; //下降沿触发
unsigned int unuse_0 : 5;
unsigned int finished : 1; //finished
unsigned int psen: 1; //使能相移 写低写高
unsigned int psincdec : 1; //相移动反向
unsigned int clr_psedon : 1;//清除相完成 写低写高
unsigned int dpi: 1; //1: 300DPI 0: 600DPI
};
};
union CamZ_Reg_A
{
int value;
struct
{
unsigned int user_in : 1;
unsigned int not_use1 : 5;
unsigned int trigger_mode : 1;
unsigned int : 4;
unsigned int DPI : 1;
unsigned int not_use2 : 20;
};
};
/****************************FPGA REG DEFINE*****************************************/
/****************************PS REG DEFINE*******************************************/
enum PSReg
{
PS_VERSION,
IMG_WIDTH,
IMG_HEIGHT,
BUF_WIDTH,
BUF_HEIGHT,
BUF_NUM,
CAM_STATUS,
MOTOR_SPEED,
CAM_DPI,
CAM_INFO,
RLS_CHECK_CODE, //软件发布版本校验码
ADC_INFO,
HEARTBAT,
DATA_STATUS,
REG_NUM,
};
union CAM_INFO_REG
{
int value = 0;
struct
{
unsigned int ProjectVersion : 6; //所属项目版本
unsigned int cam_run_status : 1; //相机扫描状态
unsigned int vidio_status : 1; // v4l状态
unsigned int CIS_count : 8; // CIS计数
unsigned int CIS_Width : 16;
/* data */
};
};
union CAM_STATUS_REG
{
int value = 0;
struct
{
unsigned int doImageProcess : 1; //启用图像处理
unsigned int dosplice : 1; //启用拼接
unsigned int doCorrect : 1; //是否启用校正
unsigned int continuousScan : 1; //是否是连续扫描
unsigned int NoAIOBuffer :1 ; // 是否使用AIO buffer , 0自行管理buffer 1AIO buffer管理
unsigned int INTPrintInfo:2;
unsigned int reserve : 5 ;
unsigned int dataIn : 1; //数据输入
unsigned int simulateData : 1; //是否启用PS模拟数据
unsigned int doSort : 1; //是否进行排序
unsigned int doZoom : 1; //是否进行缩放
unsigned int ratio_deno : 8; // resize分母
unsigned int ratio_num : 8; // resize分子
};
};
union ADC_INFO_REG
{
int value = 0;
struct
{
unsigned int adc_channel_num : 8; // adc通道数量
unsigned int adc_agin_bit_width : 5; // adc增益位宽
unsigned int adc_offset_bit_width : 5; // adc偏移位宽
unsigned int unuse : 14;
};
};
union Heartbeat_REG
{
int value = 0;
struct
{
unsigned int hart_interval_ms : 31;
unsigned int eable_heartbeat : 1;
};
};
union DATA_STATUS_REG
{
int value = 0;
struct
{
unsigned int dataIn : 1;
unsigned int nuse : 31;
};
};
enum VERSION_ATTR
{
Release = 0,
Alpha, //内部测试版本
Beta, //外部测试版本
Demo, //演示版本
Free, //自由版本
Full, //完全版本
Standard, //标准版
SpecialVersion = 15
};
enum SpecialId
{
SpecialID_zero = 0,
SpecialID_CODE = 15,
};
union VERSION_INFO
{
/* data */
int value = 0;
struct
{
unsigned int AmendMentVersion : 8; //修订版本
unsigned int SpecialIdent : 4; //特别标识
VERSION_ATTR AttrVersion : 4; //版本描述
unsigned int NextVersion : 8; //次要版本
unsigned int MajorVersion : 8; //主要版本
};
};
enum PERJECT_VERSION
{
PythonZ1200_O,
PythonZ1200 = 1,
PythonZ1800_3_CHANNEL,
PythonZ108,
PythonZ54,
PythonZ1800,
PythonZWSS,
PythonZ1206,
PythonZ1602
};
// cn : 中断端点数据解析 en : INT BLUK envent
enum INT_EVENT_CODE
{
EVENT_CAM_GEGIN = -0x99, // cn : 相机事件边界
EVENT_CAM_RECOVING_FILED= -15,// cn : 相机恢复数据错误
EVNET_CAM_RECV_ERROR = -14, // cn : 相机传输数据错误
EVENT_CAM_OPEN_ERROR = -13, // cn : 相机打开文件错误
EVENT_CAM_BUF_FULL = -12, // cn : 相机缓冲区满
EVENT_CAM_OVER_CLK, // cn : 相机触发超频
EVENT_CAM_EXEC_FAIL, // cn : 相机致命错误退出事件
EVENT_CAM_FATAL = -3, // cn : 相机致命错误事件
EVENT_CAM_ERROR, // cn : 相机错误事件
EVENT_CAM_WARRING, // cn : 相机警告事件
EVENT_CAM_STOP = 0, // cn : 相机停止事件
EVENT_CAM_START, // cn : 相机开始事件
EVENT_CAM_BUTN_START, // cn : 相机外部启动
EVENT_BY_FPGA, // cn : 由FPGA发起的相机事件
EVENT_CAM_SP_PRO, // cn : 工程特殊事件
EVENT_CAM_HEATBEAT, // cn : 相机心跳事件
EVENT_CAM_SUCESS = 10, // cn : 相机执行成功
EVENT_CAM_PAUSE, // cn : 相机暂停运作
EVENT_CAM_CLOSE, // cn : 相机关闭
EVENT_CAM_INFO, // cn : 相机基本信息
EVENT_CAM_RECOVING, // cn : 相机尝试恢复数据
EVENT_CAM_RECOVed, // cn : 相机恢复数据成功
EVENT_CAM_ERAS, // cn : 相机擦除数据
EVENT_CAM_WRITE, // cn : 相机写入固件
EVENT_CAM_CHECK, // cn : 相机检查数据
EVENT_CAM_EVENT_END = 0x99, // cn :相机地址终止符
};
struct INT_EVENT_HEAD
{
INT_EVENT_CODE EventID;
unsigned int EventLength;
char *EventData;
};
typedef enum
{
CP_STOP,
CP_START,
CP_CLEAR_FIFO,
CP_Phase,
CP_SpTime,
CP_SaveADC,
CP_SavePS,
CP_SpTime_VSNP,
CP_Send_Buffer,
CP_SEND_FILE = 10,
CP_SEND_CMD,
CP_UPGRADE,
CP_SAFE_SEND, //未使用
CP_SAFE_DATE_SEND, //未使用
CP_UP_CLear ,
CP_SAVE_SP,
CP_READ_ADC_AGIN,
CP_READ_ADC_OFFSET,
CP_WRITE_ADC_AGIN,
CP_WRITE_ADC_OFFSET,
CP_WRITE_CORRECT,
CP_WRITE_MONTAGE,
CP_READ_CURRENT_LINE,
CP_READ_CACHING_DARA,
CP_GET_DPI = 100,
CP_GET_DPI_LENTH,
CP_LOOP_TEST = 200,
CP_IMAGE_TEST,
} Capture_flag;
/****************************PS REG DEFINE*******************************************/