www.pudn.com > f2812_SPI.rar > MODBUS.h


//This macro file is not the last version 
 
//MODBUS 有关命令宏定义 
 
 
#ifndef _MODBUS_h 
#define _MODBUS_h 
 
#include "Macro.h" 
 
#define POWER_VALUE 100  //掉电检测门限值 
 
#define DEVICE_NUM 1    //本机设备号 
#define MODBUS_OP3 3    //modbus功能命令3,读设备数据4区 
#define MODBUS_OP4 4    //modbus功能命令4,读设备数据3区 
#define MODBUS_OP16 16   //modbus功能命令16,写设备数据4区 
#define MODBUS_OP23 23   //modbus功能命令23,设备数据4区屏蔽写操作 
#define MODBUS_OP128 128 //modbus功能命令128,采集数据同步 
#define MODBUS_INIT 5    //预置参数命令,12通道参数结构体初始化设置 
                         // 
 
//通道工作命令字 
#define word01  81   //低应变:ch1 
#define word02  82   //低应变:ch2 
#define word03  83   //低应变:ch1+ch2 
#define word04  84   //高应变RS模式: ch3,4,7,8 
#define word05  85   //高应变PDA模式:ch5,6,7,8 
#define word06  86   //剪切波:  ch9,10,11 
#define word07  87   //地脉动:  ch9,10,11 
#define word08  88   //地震测试:ch12 
 
 
 
//12 通道数据在外部SRAM中的首地址,注意数据类型确定.32bit 
#define ADDR1 (volatile long *)0x080000    //1K for 1 channel 
#define ADDR2 (volatile long *)0x080800    //1K for 2 channel 
#define ADDR3 (volatile long *)0x081000 
#define ADDR4 (volatile long *)0x081800 
#define ADDR5 (volatile long *)0x082000 
#define ADDR6 (volatile long *)0x082800 
#define ADDR7 (volatile long *)0x083000 
#define ADDR8 (volatile long *)0x083800 
#define ADDR9 (volatile long *)0x084000 
#define ADDR10 (volatile long *)0x084800 
#define ADDR11 (volatile long *)0x085000 
#define ADDR12 (volatile long *)0x085800  //8K for 12 channel 
 
//前19K数据被通道数据占用,从0x084c00地址开始,其他数据可占用 
#define ADDR_REV (volatile long *)0x08a000  
 
 
//数据结构定义 
typedef struct        //对应于每个通道的参数结构体 
{  
  Uint16 start;       //通道采集是否启动:0:禁止,1:启动 
  float  sense;       //传感器灵敏度。考虑是否尽量用Uint16 
  Uint16 SampGain;    //前置放大系数,1,10,100,1000可选 
  float  rate;        //采样间隔 
  float  YanSi;       //采样延时 
  Uint16 DelayPoint;  //延时点数 
  Uint16 TrigerMode;  //触发方式,上位机应明确给定定义码 
  Uint16 TrigerVol;   //触发电平 
  Uint16 SampLength;  //采样长度,12通道地震测试1,2,4,8K可选,其余通道为1K 
  Uint16 SampMode;    //采样方式(适用于通道触发方式下),连续采样,单次采样· 
   
  //其他通道参数定义,如模拟滤波器上下限、终端选择、波形初至时间、测试时间 
  //DAC的驱动输出值==  
   
}CHAN_CONFIG; 
 
//四种DAC输出电压所对应的8位数值,高8位恒为0 
#define DAC_DATA1 0X0001 
#define DAC_DATA2 0X0002 
#define DAC_DATA3 0X0003 
#define DAC_DATA4 0X0004 
 
#define DAC_RANGE  0x0000  //DAC 输出增益 range位0,1可选  0x0100 
#define DAC_ADDR   0x0600  //DAC 输出通道选择0~7,变量访问,宏访问 
 
#endif