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