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

📄 关于485通信数据传输协议规定.txt

📁 带时钟功能温度和湿度测量的仪器
💻 TXT
字号:
串行通信模块说明->
        系统与外界通信接口为串口;
        采用基于RS-485的电流环方式传输数据;
        上层传输控制协议自定义为HouseTran 1.0;

HouseTran 1.0协议规定:

协议内容:(信道是逻辑上的概念实际上都复用同一物理信道)
/*------------------------------------------------------*/
        a.所有传输操作都通过信道进行;
/*------------------------------------------------------*/
	b.信道分成命令、数据、应答三种信道;
	  1.命令信道无需建立自物理链路建立而自动有效;
          2.数据信道需要通过命令信道来建立,
            当数据信道建立成功时设立数据信道允许标志DataChannel;
	  3.应答信道无须建立自动随物理链路产生,可以将其一并归为命令信道;
/*------------------------------------------------------*/
	c.采用CRC和累加和校验方式,可以任意选择使用;
/*------------------------------------------------------*/
        d.数据有:
          测量数据:  温度  湿度  
          时钟数据:  日期   时间  
          系统数据:  启动参数
/*------------------------------------------------------*/
        e.数据的传输以数据帧的格式传输
          规定:
          数据帧=接收对象ID(1B)           +
                 数据帧类型(1B)           +
                 采样记录数据内容(<=10B)  +
                 数据校验(1B)             +
                 发送对象来源ID(1B)
/*------------------------------------------------------*/
        f.数据帧类型规定:      //帧数据大小(B)  帧描述
          TRecord=         1    //   10        完整的采样记录类型 
          TTemperature=    2    //    2        采样温度帧
          THumidity=       3    //    2        采样湿度帧
          TDate=           4    //    3        采样日期帧
          TTime=           5    //    3        采样时钟帧  
          TSystemParameter=6    //    2        参数传递帧
         具体结构:
         (符号+整数)(1bit+7bits)+小数(1B)   
         年+月+日 (3B)   
         时+分+秒 (3B)  
         存储地址+参数值(2B)
/*------------------------------------------------------*/
        g.命令帧的传递
          规定:
          数据帧=接收对象ID(1B)           +
                 命令帧类型(1B)           +
                 命令数据内容(<=10B)      +
                 数据校验(1B)             +
                 发送对象来源ID(1B)
          具体结构:
          TCommand=0            //     1B   实现一个特定的操作
          命令字(1B)
/*------------------------------------------------------*/
        h.具体的传输方式:
        站点A(主)                       站点B(从)
        SiteA                            SiteB
       Cmd_REQUST To A    ->             //A向B请求建立连接
       B处理请求回应连接  <-             Cmd_ACK From B
       DataFrame(xB)      ->             TimeOut ? Counter==5                         
       //B收到合法的一个帧回应正常确认ACK_Cmd 否则回应Error_Cmd
       ...	          <- Cmd_ACK     Yes    
       Get ACK? 
       No 
       Resend DataFrame(xB) ->            No
       //A若收到确认信号则完成一次传输 若收到出错则重发
       //若没有任何信息反馈,则以超时为由重发一次退出
       Yes                To end
/*------------------------------------------------------*/
       i.协议常数规定:
           标志          具体数值              描述
          TCommand=0            //   1B        实现一个特定的操作
          TRecord=         1    //   10        完整的采样记录类型 
          TTemperature=    2    //    2        采样温度帧
          THumidity=       3    //    2        采样湿度帧
          TDate=           4    //    3        采样日期帧
          TTime=           5    //    3        采样时钟帧  
          TSystemParameter=6    //    2        参数传递帧
          
          ON_LINE=         1    //     上线
          OFF_LINE=        0    //     下线
          PC_ADMINI=       1    //     系统管理员
          PC_USER=         2    //     系统操作员
          MCU_USER=        3    //     站点采集员
          
          CMD_CHANNEL      1    //     命令信道值
          DATA_CHANNEL     2    //     数据信道值

          DEFAULT_USER     0    //     最高级别的默认管理员

          ACk_CMD         255   //     正常确认信号
          ERROR_CMD       254   //     出错信号
          ...
          操作命令字规定:
          命令字符              命令字          命令描述
          SampleRecord           250   //     采样所有的数据记录
          SampleTemperature      249   //     采样温度值
          SampleHumidity         248   //     采样湿度值

          SampleDate             247   //     采样日期值
          SampleTime             246   //     采样时钟值
          SampleParameter        245   //     采样系统参数 
 
          ModifyDate             244   //     修改日期值
          ModifyTime             243   //     修改时钟值
          ModifyParameter        242   //     修改系统参数  
/*------------------------------------------------------*/
推荐:
          波特率:19200;若要修改波特率请修改Constants.h的配置
          CRC循环冗余校验;
          建立信道切换进程;
注意:  
     不论是上位机还是下位机在建立链路逻辑信道前必须得到
对方握手确认信号ACK;并且要切换任务到该模式或设定对应的模式;
/*------------------------------------------------------*/

⌨️ 快捷键说明

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