;==============================================================================
; YT 終端設備通信規(guī)范:YTRTU_SNP Ver1.8
; 通信規(guī)范只有物理層,鏈路層,應用層;類似MODBUS協(xié)議。
;==============================================================================
; 簡單網絡協(xié)議SNP Ver1.2
; SNP只規(guī)范了幀數據包的第一個字節(jié); 數據包是否加密;ID號;目標,源地址,內存開始地址,長度等由256種協(xié)議規(guī)定.
;------------------------------------------------------------------------------
; BIT7--BIT4: 4位16種自定義的類型協(xié)議.
; 電表:1000, 水控: 1001, 集線器: 1010, LED終端: 1011
; BIT3: 方向位. 1-主設備發(fā)送數據幀,0-子設備響應幀.
; BIT2--BIT0:
; 1000 關閉設備.
; 1001 寫數據DTW.
; 1010 讀數據DTR.
; 1011 段擦除
; 1100 強制數據CDW. (用于周期性的由調度器發(fā)放令牌,得到令牌的子設備可暫時地成為
; 主站. 或作為路由命令等.)
; 1101 備用
; 1110 打開設備.
; 1111 備用.
; 0000 NAK(異常響應).
; 0001 事件數據請求的DTR響應YACK.
; 0010 無事件數據的DTR響應NACK.
; 0011 ACK(正確響應).
; 0100--0111 備用
;------------------------------------------------------------------------------
; 總線傳輸約定:
;------------------------------------------------------------------------------
; 主從結構的半雙工方式。通信鏈路的建立與拆除均由主站來控制。
; 幀頭為SNP;或同步字符: SYNC.
; 數據長度L:數據域的字節(jié)數。<=255, L=0表示無數據域。
; 結束符-校驗碼CS:各字節(jié)算術和。
; 設備可為硬設備或軟件設備(一段程序).
; 線路空閑狀態(tài)為1。
; 字符格式:低位先傳,后傳高位;起始位0;8位數據,一位偶校驗位,一位停止位1。
; 每個字符間無需線路空閑間隔。
; 2幀間的線路空閑間隔最少需33位。
; 傳輸規(guī)則: 只有在前一輪傳輸結束后才能開始新一輪的傳輸.
; 傳輸響應:20MS <= TD <= 500MS, TB<= 500MS。
; 差錯控制:出錯丟棄。
; 數據幀結構:SNP L PT SA D1 D2--DL
; SNP{ //串行主從方式協(xié)議的主站頭.
; BC8S SNP_HEAD; //SNP協(xié)議頭.
; BC8S SNP_L; //數據長度.
; BC16S SNP_SOCKET; //端口標識.
; BC16S SNP_SA; //目標開始地址.
; }
; D1---DL為L個的字節(jié)數據.
; PT為16位端口標識,用于調度或子設備地址;一個主設備可有64K個端口子設備
; 子設備也允許擁有多個端口。
; PT=65535為廣播端口,65534備用.
; SA為目的站內16位存儲器(SRAM,FLASH,EEPROM)開始地址或數據標識或其子設備地址。
; 讀寫數據長度1字節(jié)L:從D1到DL的字節(jié)數;讀時<=255, 寫時<=64, L=0表示無數據域。
;------------------------------------------------------------------------------
; 總線調度約定:
;------------------------------------------------------------------------------
; 有路由或網橋功能的設備通常都可作為調度器使用??偩€上只能有一個主調度器MLAS。
; 調度器地址碼與優(yōu)先級順序分別為:1--33。非調度器的設備同一時間只能掛65500個,
; 地址為34--65533。
; MLAS以輪循強制數據CDW方式周期性訪問總線上的設備,當設備3次無反應時,就從活動
; 表中去掉這些設備。
; 得到CD的設備成為主站可向總線發(fā)送信息。每周期只能發(fā)送最大長度256字節(jié)的一幀數據。
; 當MLAS退出或故障時,付調度器按優(yōu)先級依時間次序升為MLAS,例MLAS1退出,總線上有
; 2,4號付調度器。當他們發(fā)現
; 總線在預定時間無信號傳輸時,2延遲1T時間后接管MLAS。如2被設置禁止作為MLAS,
; 則4等候3T時間后接管MLAS。如這
; 時1號調度器恢復,在MLAS輪循到1號調度器時;1號向4號MLAS發(fā)寫幀,將4號MLAS設回
; 為付調度器方式,從而1號成為MLAS。
; 新入網的設備站地址為65535。MLAS輪循到65535地址有反應時,MLAS將為新設備分配地
; 址,并加入到活動表中,同時在輪循到付調度器時更新付調度器的活動表。也可通過其
; 它方式直接對MLAS設入新設備地址。
;------------------------------------------------------------------------------
; 總線路由約定:
;------------------------------------------------------------------------------
; 總線上的設備通過路由器與其它總線上設備通信;這時就必需建立連接通道。連接可通
; 過ID號服務中心的短消息,郵箱
; 等方式進行。或GSM,GPRS,TCP/IP等點到點方式實現。
; 每個設備都分配有一個唯一的8字節(jié)ID號;稱為信胞ID號。ID號可為手機號,QQ號,設
; 備號等。前面為0的字節(jié)將被忽略。
; 設備號:節(jié)點6字節(jié)MAC,另2字節(jié)為端口PT。
; 1。主站對終端設備請求幀:C=11H/12H/13H,請求讀數據,L=02H。
; 2。終端設備從站正常應答:C=91H/92H/93H,無后續(xù)數據幀,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。錯誤信息字節(jié)ERR:D7---D0,空-費率數超-日時段數超-年時區(qū)數超-空-密碼錯-數
; 據標識錯-非法數據-空。
;==============================================================================
; 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字節(jié),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以上的地址!
; 出廠時數據區(qū)A段B段都是空白點,即01000H--010FFH全0FFH,對FLASH區(qū)的寫僅當內容
; 空白時才有效,否則返回NAK!
; 大于0FE00H以上的512B地址范圍不能寫(內含主程序,通信及在線升級),程序段只限于
; 0FE00H以下的地址.對于非空的FLSAH區(qū)域的寫只能先做段擦除為空后,才能寫進去!因全
; 段擦除,所以要注意保護相鄰的數據!
; CRC為從SNP字節(jié)開始到SA的8字節(jié)幀頭16位的CRC校驗字。CS為D1-DL的校驗和。
; 差錯控制:出錯丟棄。
; SA設為地址可簡化各式各樣智能部件通信協(xié)議的編程,地址的內容表示什么樣的數據
; 可在電腦上裝相應解釋表驅動; 從而使各智能部件的后臺人機界面一致。
;==============================================================================
; 簡單網絡協(xié)議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