twain3.0/huagao/Device/device_common.h

169 lines
4.8 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.

#pragma once
#define FLASH_ADDR_START (0x300000) //!<DSP 读取flash起始地址
#define CONT_ADDR (FLASH_ADDR_START) //!< 指向flash存储定义的首地址 4字节存储扫描总数 所属空间4字节
#define PID_ADDR (CONT_ADDR+4) //!<CONT_ADDR向后偏移4字节 指向PID存储位置 2字节存储pidunsigned short类型
#define VID_ADDR (PID_ADDR+2) //!<PID_ADDR向后偏移2字节 指向VID_ADDR首地址 2字节存储vid 所属空间大小2字节
#define DEVNAME_ADDR (VID_ADDR+2) //!<VID_ADDR向后偏移2字节 指向DEVNAME_ADDR首地址 所属空间大小64字节
#define SERIAL_ADDR (DEVNAME_ADDR+64) //!<DEVNAME_ADDR向后偏移64字节 指向序列号flash存储地址 所属空间大小12字节
#define FWVERSION_ADDR (SERIAL_ADDR+12) //!<固件版本号 8字节
#define MOTORBOARD_CONFIG_ADDR (FWVERSION_ADDR+8) //!<SERIAL_ADDR偏移12字节 指向 电机板flash存储数据头地址 所属空间3字节
#define EXPOSURE_ADDR_200DPI (MOTORBOARD_CONFIG_ADDR+3) //!<MOTORBOARD_CONFIG_ADDR偏移8字节 指向 电机板flash存储曝光数据头地址
//!<所属空间8字节 存储空间 存储方式Gray2+B2+G2+R2
#define EXPOSURE_ADDR_300DPI (EXPOSURE_ADDR_200DPI+2)
#define AD_ADDR_200DPI (EXPOSURE_ADDR_300DPI+2) //!<EXPOSURE_ADDR
#define AD_ADDR_300DPI (AD_ADDR_200DPI+28)
#define FPGA_FLAT_ADDR_200DPI_GRAY (AD_ADDR_300DPI+28) //正面+黑场数据2448+2448+反面+黑场数据2448+2448
#define FPGA_FLAT_ADDR_200DPI_COLOR (FPGA_FLAT_ADDR_200DPI_GRAY+2448*4)//正面RGB+黑场数据2448+2448+2448+2448+反面+黑场数据RGB+黑场数据2448+2448+2448+2448
#define FPGA_FLAT_ADDR_300DPI_GRAY (FPGA_FLAT_ADDR_200DPI_COLOR+2448*8)
#define FPGA_FLAT_ADDR_300DPI_COLOR (FPGA_FLAT_ADDR_300DPI_GRAY+3672*4)
//#define FPGA_FLAT_ADDR (AD_ADDR+28) //!<所属空间918+612字节
//flash size
//#define FLASH_200_COLOR (2448 * 8)
//#define FLASH_200_GRAY (2448*4)
//#define ARRAY_200 (612)
//#define ARRAY_300 (918)
//#define FLASH_300_COLOR (3672 * 8)
//#define FLASH_300_GRAY (3672)
#define FLASH_CONT_ADDR_SIZE (4)
#define FLASH_PID_ADDR_SIZE (2)
#define FLASH_VID_ADDR_SIZE (2)
#define FLASH_DEVNAME_ADDR_SIZE (64)
#define FLASH_SERIAL_ADDR_SIZE (12)
#define FLASH_FWVERSION_ADDR_SIZE (8)
#define FLASH_MOTORBOARD_CONFIG_ADDR_SIZE (3
#define FLASH_AD_ADDR_SIZE (28)
#define FLASH_FPGA_FLAT_ADDR_200DPI_GRAY_SIZE (2448*4)
#define FLASH_FPGA_FLAT_ADDR_200DPI_COLOR_SIZE (2448*8)
#define FLASH_FPGA_FLAT_ADDR_300DPI_GRAY_SIZE (3672*4)
#define FLASH_FPGA_FLAT_ADDR_300DPI_COLOR_SIZE (3672*8)
typedef enum {
Cmd_None,
Cmd_Line_Count,
Cmd_Mode_Freque,
Cmd_Ad_Front,
Cmd_Ad_Back,
Cmd_Exposure_Back1,
Cmd_Exposure_Back2,
Cmd_Exposure_Front1,
Cmd_Exposure_Front2,
Cmd_Start,
Cmd_Stop,
Cmd_Status,
Cmd_Width,
Cmd_Sensor_Count_Channel,
Cmd_Dma_Status,
Cmd_Dma_Stransfer,
Cmd_Dma_Size,
Cmd_Num
} FPGA_CMD;
typedef enum
{
MAIN_BOARD,
MOTOR_BOARD,
USERDEFINE,
IMAGEREGS,
BOARDFLAGNUM
} BOARD_FLAG;
typedef enum User_Define_Regs
{
ModeParam,
WriteCorrectData,
ReadCorrectData,
BulkInOn
} UserDefineRegs;
typedef union Motor_Setting {
unsigned int value;
struct {
unsigned int scan_enable : 1;
unsigned int dpi : 1;
unsigned int paper : 1;
unsigned int double_paper : 1;
unsigned int staple_enable : 1;
unsigned int error_clean : 1;
unsigned int status_init : 1;
unsigned int pick_paper : 1;
unsigned int skew_enable : 1;
unsigned int skew_parameter : 3;
unsigned int key_staple_enable : 1;
unsigned int iic_config_addr : 7;
unsigned int iic_config : 1;
unsigned int v_setting : 2;
unsigned int speed_set_enable : 1;
unsigned int scan_busy_motor_stop : 1;
unsigned int papar_type : 4;
unsigned int color_model : 1;
unsigned int reserve : 2;
};
} MotorSetting;
typedef union Motor_Status {
unsigned int value;
struct {
unsigned int scan_pulse : 1;
unsigned int m1_paper_sin : 1;
unsigned int open_machine : 1;
unsigned int pick_failed : 1;
unsigned int stop_jam : 1;
unsigned int double_paper : 1;
unsigned int staple : 1;
unsigned int papertilted : 1;
unsigned int count_pulse : 1;
unsigned int scan_mode_change : 1;
unsigned int motor_status : 1;
unsigned int keep_last_paper : 1;
};
} MotorStatus;
typedef union Motor_Mode {
unsigned int value;
struct {
unsigned int scan_num : 14;
unsigned int scan_mode : 2;
unsigned int feeding_paper_ready : 1;
unsigned int scan_status : 1;
};
} MotorMode;
typedef union Scan_Triger {
unsigned int value;
struct {
unsigned int triger : 1;
};
} ScanTriger;
typedef enum Color_Mode
{
Gray = 0,
Color = 1
}ColorMode;
typedef enum Burst_Mode
{
SingleInternalTrigger = 1,
SingleExternalTrigger,
ContinuousInternalTrigger,
ContinuousExternalTrigger,
}BurstMode;
typedef union Reg_2Short {
int value;
struct {
unsigned short short1;
unsigned short short2;
};
struct
{
unsigned short val[2];
};
} Reg2Short;