;==============================================================================
; YT 终端设备通信规范:YTRTU_SNP Ver1.8
; 通信规范只有物理层,链路层,应用层;类似MODBUS协议。
;==============================================================================
; 简单网络协议SNP Ver1.2
; SNP只规范了帧数据包的第一个字节; 数据包是否加密;ID号;目标,源地址,内存开始地址,长度等由256种协议规定.
;------------------------------------------------------------------------------
; BIT7--BIT4: 4位16种自定义的类型协议.
; 电表:1000, 水控: 1001, 集线器: 1010, LED终端: 1011
; BIT3: 方向位. 1-主设备发送数据帧,0-子设备响应帧.
; BIT2--BIT0:
; 1000 关闭设备.
; 1001 写数据DTW.
; 1010 读数据DTR.
; 1011 段擦除
; 1100 强制数据CDW. (用于周期性的由调度器发放令牌,得到令牌的子设备可暂时地成为
; 主站. 或作为路由命令等.)
; 1101 备用
; 1110 打开设备.
; 1111 备用.
; 0000 NAK(异常响应).
; 0001 事件数据请求的DTR响应YACK.
; 0010 无事件数据的DTR响应NACK.
; 0011 ACK(正确响应).
; 0100--0111 备用
;------------------------------------------------------------------------------
; 总线传输约定:
;------------------------------------------------------------------------------
; 主从结构的半双工方式。通信链路的建立与拆除均由主站来控制。
; 帧头为SNP;或同步字符: SYNC.
; 数据长度L:数据域的字节数。<=255, L=0表示无数据域。
; 结束符-校验码CS:各字节算术和。
; 设备可为硬设备或软件设备(一段程序).
; 线路空闲状态为1。
; 字符格式:低位先传,后传高位;起始位0;8位数据,一位偶校验位,一位停止位1。
; 每个字符间无需线路空闲间隔。
; 2帧间的线路空闲间隔最少需33位。
; 传输规则: 只有在前一轮传输结束后才能开始新一轮的传输.
; 传输响应:20MS <= TD <= 500MS, TB<= 500MS。
; 差错控制:出错丢弃。
; 数据帧结构:SNP L PT SA D1 D2--DL
; SNP{ //串行主从方式协议的主站头.
; BC8S SNP_HEAD; //SNP协议头.
; BC8S SNP_L; //数据长度.
; BC16S SNP_SOCKET; //端口标识.
; BC16S SNP_SA; //目标开始地址.
; }
; D1---DL为L个的字节数据.
; PT为16位端口标识,用于调度或子设备地址;一个主设备可有64K个端口子设备
; 子设备也允许拥有多个端口。
; PT=65535为广播端口,65534备用.
; SA为目的站内16位存储器(SRAM,FLASH,EEPROM)开始地址或数据标识或其子设备地址。
; 读写数据长度1字节L:从D1到DL的字节数;读时<=255, 写时<=64, L=0表示无数据域。
;------------------------------------------------------------------------------
; 总线调度约定:
;------------------------------------------------------------------------------
; 有路由或网桥功能的设备通常都可作为调度器使用。总线上只能有一个主调度器MLAS。
; 调度器地址码与优先级顺序分别为:1--33。非调度器的设备同一时间只能挂65500个,
; 地址为34--65533。
; MLAS以轮循强制数据CDW方式周期性访问总线上的设备,当设备3次无反应时,就从活动
; 表中去掉这些设备。
; 得到CD的设备成为主站可向总线发送信息。每周期只能发送最大长度256字节的一帧数据。
; 当MLAS退出或故障时,付调度器按优先级依时间次序升为MLAS,例MLAS1退出,总线上有
; 2,4号付调度器。当他们发现
; 总线在预定时间无信号传输时,2延迟1T时间后接管MLAS。如2被设置禁止作为MLAS,
; 则4等候3T时间后接管MLAS。如这
; 时1号调度器恢复,在MLAS轮循到1号调度器时;1号向4号MLAS发写帧,将4号MLAS设回
; 为付调度器方式,从而1号成为MLAS。
; 新入网的设备站地址为65535。MLAS轮循到65535地址有反应时,MLAS将为新设备分配地
; 址,并加入到活动表中,同时在轮循到付调度器时更新付调度器的活动表。也可通过其
; 它方式直接对MLAS设入新设备地址。
;------------------------------------------------------------------------------
; 总线路由约定:
;------------------------------------------------------------------------------
; 总线上的设备通过路由器与其它总线上设备通信;这时就必需建立连接通道。连接可通
; 过ID号服务中心的短消息,邮箱
; 等方式进行。或GSM,GPRS,TCP/IP等点到点方式实现。
; 每个设备都分配有一个唯一的8字节ID号;称为信胞ID号。ID号可为手机号,QQ号,设
; 备号等。前面为0的字节将被忽略。
; 设备号:节点6字节MAC,另2字节为端口PT。
; 1。主站对终端设备请求帧:C=11H/12H/13H,请求读数据,L=02H。
; 2。终端设备从站正常应答:C=91H/92H/93H,无后续数据帧,L=02H+M(数据长度)。
; 3。终端设备从站异常应答:C=D1H/D2H/D3H,从站收到非法的数据请求或无此数据。L=01H。
; 4。主站向从站请求设置数据:C=14H/15H/16H,L=02H+M(数据长度)。
; 5。终端设备从站正常应答:C=94H/95H/96H,L=00H。
; 6。终端设备从站异常应答:C=D4H/D5H/D6H,从站收到非法的数据请求或无此数据。L=01H。
; 7。错误信息字节ERR:D7---D0,空-费率数超-日时段数超-年时区数超-空-密码错-数
; 据标识错-非法数据-空。
;==============================================================================
; MSP430系列SNP:
; 校验口令码: XE 08 PTL PTH F0 10 D1-D8 ; ACK/NAK(X3H/X0H).
; D1--D8为设备密码; 10F0H---10F7H=本设备密码地址; PT=XXXXH
; 有保护命令:
; SNP=XFH 广播数据TEW: XF L 0XFFFF SAL SAH D1 D2..DL ; ACK/NAK. X3H/X0H.
; 2. 对时命令. XF 08 0XFFFF 80 02 D1 D2..D8
; D1D2..D8=年月日星期时分秒 标准值.
; O280H---0287H=年月日星期时分秒.
; SNP=X2H 读数据DTR: SNP L PTL PTH SAL SAH D1 D2..DL ; 0X1H/0X2H D1--DL CS
; 3. 读数据 X2 L PTL PTH SAL SAH
; NACK=X2H(无事件数据的DTR响应), YACK=X1H(有事件数据请求的DTR响应).
; 64K字节,0X00000000--0X0000FFFFH,
; 4. 段擦除. XB 02 PTL PTH SAL SAH ;NACK
; SNP=X1 写数据DTW: SNP L PTL PTH SAL SAH D1 D2..DL ;ACK/NAK(ACK=0X3H, NAK=0X0H)
; 5. 写数据 X1 L PTL PTH SAL SAH D1 D2..DL
; 注意: SRAM开始地址为0200H,不同芯片其范围不一样,写命令只限于0200H以上的地址!
; 出厂时数据区A段B段都是空白点,即01000H--010FFH全0FFH,对FLASH区的写仅当内容
; 空白时才有效,否则返回NAK!
; 大于0FE00H以上的512B地址范围不能写(内含主程序,通信及在线升级),程序段只限于
; 0FE00H以下的地址.对于非空的FLSAH区域的写只能先做段擦除为空后,才能写进去!因全
; 段擦除,所以要注意保护相邻的数据!
; CRC为从SNP字节开始到SA的8字节帧头16位的CRC校验字。CS为D1-DL的校验和。
; 差错控制:出错丢弃。
; SA设为地址可简化各式各样智能部件通信协议的编程,地址的内容表示什么样的数据
; 可在电脑上装相应解释表驱动; 从而使各智能部件的后台人机界面一致。
;==============================================================================
; 简单网络协议LED-SNP
; HE1串口从站接收回应数据帧任务. 出错丢弃该帧.
; 无保护命令:
; 打开设备: BEH 8 PT 010F0H D1-D8 ;B3H/B0H ,ACK/NAK
; 关闭设备: B8H 8 PT 010F0H D1-D8 ;B3H/B0H ,ACK/NAK
; 有保护命令:
; 读数据DTR: BAH L PT SA ; YACK/NACK(B1H/B2H) D1--DL CS.
; 写数据DTW: B9H L PT SA D1-DL ; ACK/NAK
; 广播写数据TEW: B9H L 0FFFFH SA D1-DL ; ACK/NAK
; 擦洗一段DTR: BBH 2 PT SA ; NACK(B2H).
; 广播擦洗一段 BBH L 0FFFFH SA D1-DL ; ACK/NAK