⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dpram.h.svn-base

📁 给MOTO 360 单片机 开发的MODBUS协议 直流奥特寻协议。。要用SDS编译
💻 SVN-BASE
字号:
/*******************************************************************************************
* MODBUS Master/Slaver Module                                                         
* Coded by XUWANSU                                                                         
* 2007/6/14                                                                                 
*******************************************************************************************
* 双口RAM区 : 4k
* 数据内存区: 0x300个WORD(1536个char) *2(DATA&STS) 
* 旗语区    : 8个char
* 配置参数区: 4*8char(四个SCC各8char,波特率,主/从,奇偶校验,从站地址,主站超时等待时间)
* CMDLINE
* word:高位在前,低位在后
*******************************************************************************************/
#ifndef MOD360_DPRAM_H
#define MOD360_DPRAM_H

#ifndef M_ARCH_ARM93XX#define Dualport_BASE		0x500000#define Dualport_SEM		0x501000#else#define Dualport_BASE   0xffb40000#define Dualport_SEM    0xffb41000
#endif

//数据内存区

//-----------------------------------------------------------------------------------
//数据区起始地址及数量的可变定义
#define HRDATA_BASE             ((volatile unsigned char *)(Dualport_BASE+0x20))  //总数据区,所有的数据均在此数据区中
#define HRDATA_SIZE             0xE60
#define MODBUS_REGDATA_OFFSET   0           //modbus寄存器类的数据在总数据区中的偏移  
#define MODBUS_COILDATA_OFFSET  0           //modbuscoil类型的数据在总数据区中的偏移
#define MODBUS_MAX_REG          1800        //最大的寄存器地址
#define MODBUS_MAX_COIL         60000       //最大的线圈(BOOL量)地址
//-----------------------------------------------------------------------------------

#define DIAG_SEND_MSG       1
#define DIAG_RECV_MSG       0


//TXT配置界面
#define WORDLINE            ((char *)(Dualport_BASE+0xE80))                    //字符串打印区域,250字节
#define WORDLINE_LEN        60 //BYTE

//调试信息输出界面
#define DIAG_INF            ((unsigned char *)(Dualport_BASE+0xF00))                    //数据,250字节
#define DIAG_INF_LEN        60 //BYTE


//0xF00-0xF20,站状态,bit(0/1),每个端口64bit,表示64个站的状态,0异常,1正常
#define HRSTS 	            ((volatile unsigned char *)(Dualport_BASE+0xF80))
#define HRSTS_LEN           0x20  //32BYTE
#define DIAG_INT_FLAG       (*(volatile unsigned char *)(Dualport_BASE+0xFA0))         //中断类型,2字节
#define WORDLINE_NEWFLAG    (*(volatile unsigned char *)(Dualport_BASE+0xFA1))         //数据更新标志,2字节
#define HRDATA_NEWFLAG      (*(volatile unsigned char *)(Dualport_BASE+0xFA2))         //数据区写入标志

//数据锁定信号
#define READY_DATA      (*(volatile unsigned char  *)(Dualport_SEM+0))       //DATA&STS
#define READY_DIAG_INF  (*(volatile unsigned char  *)(Dualport_SEM+1))
#define READY_WORDLINE  (*(volatile unsigned char  *)(Dualport_SEM+2))


//DIAG_INT_FLAG 中断类型
#define INIT_READY      0xBB       //初始化完成
#define NORMAL_ANSWER   0xDD       //普通返回信息
#define LISTEN_MODE     0xFF       //调试信息
#define NEW_WRITE	    0xAA       //WordLine新命令标记
#define USED            0          //用完一定要清哈

//M/S
#define PRO_MODBUS_S	0
#define PRO_MODBUS_M	1
#define PROT_SHGE		  2
#define PROT_SAC		  3
#define PROT_WATT		  4
#define PROT_XJ			  5
#define PROT_ABB		  6
#define PROT_SYNC		  7
#define PROT_UPS		  8
#define PRO_DC        9


//baudrate 
#define BAUD_4800     0
#define BAUD_9600     1
#define BAUD_19200    2
#define BAUD_57600    3
#define BAUD_115200   4  

//parity
#define PARITY_N	0
#define PARITY_E	1
#define PARITY_O	2	                     

//COM
#define COM1   0
#define COM2   1
#define COM3   2
#define COM4   3

#endif      /*MOD360_DPRAM_H*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -