zynq_7010/CameraParams.h

313 lines
7.6 KiB
C
Raw Normal View History

2023-08-09 07:31:27 +00:00
/*
* @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;//帧计数只能
2023-08-31 08:37:05 +00:00
unsigned int unuse_1 : 9;
2023-08-09 07:31:27 +00:00
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
};
};
2023-08-31 08:37:05 +00:00
union SCAN_PWM
{
int value;
struct
{
unsigned int reserved_1:1;
unsigned int scan_pwm_enble : 1;
unsigned int scan_pwm_start : 1;
unsigned int scan_pwm_timer_runs :1;
unsigned int scan_pwm_enble_o : 1;
unsigned int scan_pwm_input_clear :1;
unsigned int reserved_2:1;
unsigned int scan_pwm_reset :1 ;
}bit;
};
2023-08-09 07:31:27 +00:00
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*******************************************/