您现在的位置是:首页 > 电源

DNP3.0鍦ㄥ熀浜嶥SP鐨凢TU涓?殑瀹炵幇

2019-12-25 11:41:15

鎽樿锛?/STRONG>棣堢嚎缁堢鍗曞厓(FTU)鏄厤鐢佃嚜鍔ㄥ寲绯荤粺涓殑閲嶈缁勬垚閮ㄥ垎锛屼互DSP涓烘牳蹇冩瀯鎴愮殑FTU鍏锋湁杩愮畻閫熷害蹇拰绮惧害楂樼瓑鐗圭偣锛?鑰孌NP3.0鍒欐槸FTU涓庨厤缃戜富绔欓€氫俊鐨勪富娴佽绾︺€傝璁轰簡鍦―SP骞冲彴涓婂疄鐜癉NP3.0鐨勭壒娈婃€э紝浠嬬粛浜咲SP鐗囧唴寮傛涓插彛鐨勪娇鐢ㄦ柟娉曪紝缁欏嚭浜嗙▼搴忕殑涓昏娴佺▼鍥惧拰鏁版嵁缁撴瀯浠ュ強娑夊強涓茶閫氫俊鐨凜璇█婧愮爜銆?/P>

DNP (Distributed Network Protocol锛屽垎甯冨紡缃戠粶瑙勭害)鏄疕ARRIS鍏徃鎺ㄥ嚭鐨勪竴绉嶈繙鍔ㄩ€氫俊瑙勭害锛屾槸鐩墠鐢靛姏绯荤粺鑷姩鍖栦骇鍝佸競鍦轰笂鐨勪竴绉嶄富娴侀€氫俊瑙勭害銆傚畠鏃㈠彲浣滀负FTU(Feeder Terminal Unit锛岄绾跨粓绔崟鍏?涓庨厤缃戜富绔欎箣闂寸殑瑙勭害锛屽張鍙綔涓篟TU涓庤皟搴︿富绔欎箣闂寸殑瑙勭害銆傜敱浜庣洰鍓嶆垜鍥界殑澶ч儴鍒嗛厤鐢佃嚜鍔ㄥ寲(DA)浜у搧閮芥敮鎸丏NP3.0锛屼负浣夸骇鍝佹洿鍏峰吋瀹规€у拰鏍囧噯鎬э紝FTU鏈夊繀瑕侀噰鐢―NP3.0浣滀负鍏朵笌閰嶇綉涓荤珯涔嬮棿鐨勯€氫俊瑙勭害銆?/P>

FTU浣滀负閰嶇數鑷姩鍖栫郴缁?DAS)涓噸瑕佺殑缁勬垚閮ㄥ垎锛岄櫎鎷呰礋鏈€鍩烘湰鐨勬祴閲忎笌鎺у埗浠诲姟澶栵紝杩樿涓庝腑蹇冨瓙绔欐垨涓荤珯杩涜閫氫俊銆傛煇浜汧TU杩樺叿鏈夊井鏈轰繚鎶ゅ姛鑳斤紝鏁呰€屽叾鏍稿績閮ㄥ垎涓€鑸噰鐢ㄩ珮妗f鐨?6浣嶆垨32浣嶅崟鐗囨満銆備絾鍦ㄤ氦娴侀噰鏍风殑鎯呭喌涓嬶紝鍗曠墖鏈鸿绠桿銆両鏈夋晥鍊间互鍙奝銆丵绛夊弬鏁板線寰€鍔涗笉浠庡績锛屽鑷村疄鏃舵€ц緝宸€傝櫧鐒跺彲浠ラ€氳繃閲囩敤涓烩€斾粠缁撴瀯鏉ヨВ鍐筹紝浣嗚繖鏍锋棤鐤戣澧炲姞鎴愭湰銆侱SP(鏁板瓧淇″彿澶勭悊鍣?鎭版伆浠ユ暟瀛﹁绠?濡傚揩閫熷倕绔嬪彾鍙樻崲)鑰岃闀匡紝铏界劧瀹冪殑鎺у埗鍔熻兘閫婁簬鍗曠墖鏈猴紝浣嗙敱浜嶧TU鍙礋璐g洃鎺т竴璺煴涓婂紑鍏筹紝鏁呰€屽湪杩欑娴嬫帶閲忎笉澶氱殑鎯呭喌涓嬶紝濡傛灉涓嶉渶瑕佸氨鍦颁繚鎶ゅ姛鑳斤紝涓€鐗嘍SP杩樻槸瀹屽叏鑳藉鑳滀换鐨勩€俆MS320F206(浠ヤ笅绠€绉癋206) 鏄?a href="http://bbs.elecfans.com/zhuti_715_1.html" target="_blank" class="blue" title="TI绀惧尯">TI鍏徃鐢熶骇鐨凾MS320C2000绯诲垪涓殑涓€娆句富娴丏SP锛屽畠灞炰簬16浣嶅畾鐐笵SP锛屽彲搴旂敤浜庣數鏈烘帶鍒朵互鍙婂伐涓氳嚜鍔ㄥ寲鍜岀數鍔涜涓氫腑锛屼环鏍兼帴杩戞櫘閫?6浣嶅崟鐗囨満銆侳TU浠ヤ竴鐗嘥MS320F206涓烘牳蹇冿紝骞惰緟浠/D杞崲鍣ㄧ瓑澶栧洿鍣ㄤ欢锛屽嵆鍙畬鎴愭祴鎺с€佸弬鏁拌绠楀拰閫氫俊绛変换鍔°€?/P>

鐢变簬DNP3.0甯ф牸寮忎腑鐨勫熀鏈崟鍏冩槸8浣嶆暣鍨嬫暟(BYTE瀛楄妭)锛岃€孎206涓殑鏁版嵁鎬荤嚎鏄?6浣嶇殑锛屽鍧€鏃舵槸浠ュ瓧(WORD)涓哄崟浣嶏紝鑰屼笖TI鎻愪緵鐨凜璇█涓篃娌℃湁8浣嶆暣鍨嬫暟锛岃繖鏍峰湪F206骞冲彴涓婂疄鐜癉NP3.0鏃跺氨瀛樺湪涓€涓?浣?16浣嶈浆鎹㈢殑闂銆傚彟澶栵紝澶у鏁癉SP鍒╃敤澶栨帴UART(閫氱敤寮傛鏀跺彂鍣?鏉ュ疄鐜颁覆琛岄€氫俊銆傛湰鏂囩潃閲嶈璁哄浣曞湪淇濊瘉绋嬪簭娓呮櫚鍜岄珮鏁堢殑鍓嶆彁涓嬪埄鐢‵206鐗囧唴寮傛涓插彛瀹炵幇浠NP3.0涓洪€氫俊鍗忚鐨勪覆琛岄€氫俊銆?B>

1 DNP3.0绠€浠媅4锝?]

DNP3.0涓虹函杞欢鐨勯€氫俊鍗忚锛屽叾缁撴瀯濡傚浘1鎵€绀恒€傚畠鍩轰簬IEC 870-5鏍囧噯锛岄噰鐢ㄤ簡ISO涓冨眰妯″瀷涓殑涓夊眰锛氱墿鐞嗗眰銆佹暟鎹摼璺眰鍜屽簲鐢ㄥ眰锛屽叾缁撴瀯涓哄寮哄崗璁粨鏋勩€傝繖绉嶅垎灞傜粨鏋勪娇寰楁暟鎹紶閫佺殑鍙潬鎬уぇ澶ф彁楂橈紝鍚屾椂涔熶究浜庤蒋浠剁紪绋嬬殑妯″潡鍖栥€傜墿鐞嗗眰涓€鑸噰鐢ㄦ櫘閫氱殑RS232鎴朢S485锛涢摼璺眰閲囩敤CRC鏍¢獙锛涗负浜嗘弧瓒宠緝闀挎暟鎹寘鐨勪紶閫侊紝鍙堝鍔犱簡涓€涓吉浼犺緭灞傘€傚彂閫佹暟鎹椂瀹冨彲浠ュ皢杈冮暱鐨勫簲鐢ㄥ眰鎶ユ枃鎷嗗垎涓哄涓煭甯х劧鍚庡甯т紶閫侊紝鍙嶄箣锛屾帴鏀舵椂灏嗙煭甯х粍瑁呮垚瀹屾暣鐨勫簲鐢ㄥ眰鎶ユ枃銆?/P>

2 绯荤粺纭欢

2.1 缁撴瀯妗嗗浘

纭欢缁撴瀯妗嗗浘濡傚浘2鎵€绀恒€?/P>

2.2 F206鐗囧唴寮傛涓茶鍙d粙缁峓2锝?]

F206鐗囧唴鍏锋湁涓€涓?浣嶅叏鍙屽伐ASP(Asynchronous SerialPort锛屽紓姝ヤ覆琛屽彛)锛屽彲浠ュ畬鎴愬苟琛屾暟鎹笌涓茶鏁版嵁鐨勭浉浜掕浆鎹紝骞跺彲浠ヤ骇鐢熷彲灞忚斀纭欢涓柇TXRXINT銆傛湁鍏崇殑澶栭儴寮曡剼鍏?涓細鍙戦€佺TX銆佹帴鏀剁RX銆両O0銆両O1銆両O2銆両03锛屼竴鑸儏鍐典笅鍙娇鐢═X鍜孯X灏辫冻澶熶簡(鍙﹀杩樻湁涓€鏍瑰湴绾?銆?/P>

涓庣紪绋嬫湁鍏崇殑鐗囧唴16浣嶅瘎瀛樺櫒鍏?涓細寮傛鏁版嵁鍙戦€佸拰鎺ユ敹瀵勫瓨鍣ˋDTR銆佸紓姝ヤ覆鍙f帶鍒跺瘎瀛樺櫒AS-PCR銆両/O鐘舵€佸瘎瀛樺櫒IOSR銆佹尝鐗圭巼闄ゆ暟瀵勫瓨鍣˙RD锛屽潎鏄犲皠鑷矷/O绌洪棿銆侫DTR涓鸿/鍐欏瘎瀛樺櫒锛岄珮8浣嶆亽涓?锛屽悜ADTR鍐欐暟鎹嵆鍙惎鍔ㄤ覆鍙e彂閫併€侫SPCR鐢ㄦ潵鎺у埗涓插彛鐨勫伐浣滄柟寮忥紝BIT8涓哄彂閫佷腑鏂睆钄?a href="http://bbs.elecfans.com/zhuti_715_1.html" target="_blank" class="blue" title="TI绀惧尯">TIM锛孊IT7涓烘帴鏀朵腑鏂睆钄絉IM锛孊IT6涓哄仠姝綅閫夋嫨STB銆侷OSR鍙嶆槧涓插彛鐨勫伐浣滅姸鎬侊紝BITll涓哄彂閫佸瘎瀛樺櫒绌烘寚绀轰綅THRE锛孊IT8涓烘帴鏀舵暟鎹噯澶囧氨缁綅DR銆侭RD鐢ㄤ綔娉㈢壒鐜囧彂鐢熷櫒锛孊RD鍊?CLKOUTl棰戠巼/(16脳娉㈢壒鐜?銆?/P>

鍊煎緱娉ㄦ剰鐨勬槸锛孎206鐗囧唴涓插彛涓庨€氱敤寮傛涓插彛鐣ユ湁涓嶅悓銆傚畠鍙敮鎸佹渶甯歌鐨?浣嶈捣濮嬩綅銆?浣嶆暟鎹綅銆?鎴?浣嶅仠姝綅銆傚彟澶栧嚑绉嶇壒娈婃牸寮忎笉浜堟敮鎸侊紝濡?鎴?浣嶆暟鎹綅銆?.5浣嶅仠姝綅绛夈€備负閫傚簲鐜板満鍚勭鍙兘鐨勯€氫俊鏂瑰紡锛岃繕搴斿綋鎵╁睍涓€璺互涓婄殑閫氱敤寮傛鏀跺彂鍣?UART)锛屾湰渚嬮噰鐢?a href="http://bbs.elecfans.com/zhuti_715_1.html" target="_blank" class="blue" title="TI绀惧尯">TI鍏徃鐨勫崟璺紓姝ヤ覆鍙Ll6C550銆傚叧浜庤繖绫昏姱鐗囨湁寰堝鏂囩珷浠嬬粛杩囷紝鍦ㄦ涓嶅啀璧樿堪銆?B>

3 杞欢閮ㄥ垎

3.1 缂栫▼璇█

閲囩敤C璇█寮€鍙慏SP绋嬪簭涓嶄粎鍙鎬у拰鍙Щ妞嶆€ч兘寰堝ソ锛岃繕鑳藉ぇ澶у姞蹇紑鍙戦€熷害銆備絾鐢–璇█瀹炵幇鏌愪簺纭欢鎺у埗涓嶅姹囩紪鏂逛究锛屼笖瀹炴椂鎬т笉濡傛眹缂朳1]銆傚洜姝ら噰鐢ㄥ湪C绋嬪簭涓洿鎺ュ祵鍏ユ眹缂栬鍙ユ潵瀹屾垚閫氫俊妯″潡绋嬪簭鐨勭紪鍐欙紝闄ゆ瀬灏戞暟閲囩敤姹囩紪璇█浠ュ锛岀粷澶ч儴鍒嗛噰鐢–璇█缂栧啓銆?/P>

3.2 鏁版嵁缁撴瀯瀹氫箟

鐢变簬F206涓殑鏁版嵁鎬荤嚎涓?6浣嶏紝鏁呰€孴I鎻愪緵鐨凜璇█(浠ヤ笅绠€绉癟I C)涓庢爣鍑咰璇█鐨勬暟鎹被鍨嬬暐鏈変笉鍚屻€俢har銆乽nsigned char銆乮nt鍜宻hort鍧囦负16浣嶏紝enum涔熶负16浣嶃€傜浉搴斿湴锛宻izeof(int)鍜宻izeof(short)鐨勭粨鏋滀负1锛岃€屼笉鏄?锛岃繖涓€鐐瑰湪璁$畻甯ч暱搴︽椂灏や负閲嶈锛屼範鎯簬鏍囧噯C鐨勭紪绋嬩汉鍛樹竴瀹氳鐗瑰埆娉ㄦ剰銆?/P>

鐢变簬DNP3.0甯ф牸寮忎腑鐨勫熀鏈崟鍏冩槸瀛楄妭锛岃€孴I C涓嵈娌℃湁杩欎竴鏁帮紱鎹被鍨嬶紝鍦ㄧ敤缁撴瀯浣撶被鍨嬪畾涔夊叿浣撶殑鏁版嵁缁撴瀯鏃讹紝閮芥槸鎸夊瓧(WORD)瀵归綈鐨勶紝鍥犳鍙兘灏咲NP3.0鏁版嵁鏍煎紡涓殑BYTE瀹氫箟涓?6浣嶆棤绗﹀彿鏁存暟WORD锛屽皢DNP3.0涓殑WORD瀹氫箟涓?2浣嶆棤绗﹀彿鏁存暟DWORD銆傛帴鏀舵暟鎹椂灏嗘瘡涓瓧鑺傞兘瀛樺偍鑷充竴涓瓧鐨勪綆8浣嶏紝鍙戦€佹椂鍒欏彧鍙栨瘡涓瓧鐨勪綆8浣嶏紝杩欐牱铏界劧娴垂浜嗕竴鍗婄殑瀛樺偍鍣ㄧ┖闂达紝浣嗙▼搴忕紪鍐欏鏄擄紝鏁堢巼涔熻緝楂樸€?/P>

鏍规嵁DNP3.0鐨勫眰娆$粨鏋勫畾涔変笁涓粨鏋勪綋鈥斺€旈摼璺眰DL_LAYER銆佷紶杈撳眰T_LAYER鍜屽簲鐢ㄥ眰APP_LAYER锛屾瘡涓粨鏋勪綋鍐嶆寜鐓NP3.0涓浉搴斿眰瑙勫畾鐨勫瓧娈靛幓閫愪釜瀹氫箟鐩稿簲鐨勬垚鍛樺嵆鍙€傚閾捐矾灞傚寘鎷姤澶村拰n涓暟鎹潡锛屾姤澶村張鍖呮嫭璧峰瀛椼€侀暱搴︺€佹帶鍒跺瓧鑺傜瓑瀛楁锛屾帶鍒跺瓧鑺傛寜姣旂壒浣嶅張鍖呮嫭鍔熻兘鐮併€佹柟鍚戜綅鍜屽抚璁℃暟浣嶇瓑銆傞摼璺眰缁撴瀯瀹氫箟涓猴細

(1)DL灞傛帶鍒跺瓧

typedef struct{

WORD b0-3_FuncCode:4,/*鍔熻兘鐮?/

b4_FCV:1 /*甯ц鏁版湁鏁堜綅*/

b5_FCB:1锛?/*甯ц鏁颁綅*/

b6_PRM:l /*涓荤珯鏍囧織浣?/

b7_DIR:1; /*鏂瑰悜浣?/

}DL_CONTROL锛?/P>

(2)DL灞傛姤澶?/P>

typedef struct{

DWORD dwStart锛?/*璧峰瀛?/

WORD wLength锛?/*闀垮害*/

DL_CONTROL DLCtrl锛?/*鎺у埗瀛?/

DWORD dwDest锛?/*鐩殑鍦板潃*/

DWORD dwSource锛?/*婧愬湴鍧€*/

DWORD dwCRC锛?/*鏍¢獙鐮?/

}DL_HEADER锛?/P>

(3)DL灞傛暟鎹潡

typedef struct{

WORD awUserData[l6] /*鐢ㄦ埛鏁版嵁*/

DWORD dwCRC锛?/*鏍¢獙鐮?/

}DL_DATABLOCK锛?/P>

3.3 娴佺▼鍥?/P>

DNP3.0宸茬粡璇︾粏瑙勫畾浜嗗崗璁殑灞傛缁撴瀯鍙婃瘡涓€灞傜殑鍔熻兘锛岀▼搴忕殑灞傛缁撴瀯鍙涓庡叾涓€鑷村氨浼氶潪甯告竻鏅帮紝缂栫▼鏃跺彧闇€閬电収杩欎簺灞傛闂寸殑鏁版嵁娴佸悜缂栧啓鐩稿簲鐨勫嚱鏁板嵆鍙€傜墿鐞嗗眰瀵瑰簲涓插彛鏀跺彂涓柇瀛愮▼搴忥紝閾捐矾灞傘€佷紶杈撳眰鍜屽簲鐢ㄥ眰鍦ㄦ帴鏀朵笌鍙戦€佹椂鍚勬湁涓€濂楀嚱鏁板幓澶勭悊锛屼互瀵瑰簲涓插彛鐨勫叏鍙屽伐宸ヤ綔鏂瑰紡銆傚叾涓紝閾捐矾灞傛帴鏀跺鐞嗘祦绋嬪鍥?鎵€绀恒€?IMG height=713 hspace=1 src="/article/UploadPic/2006-3/2006311173957873.gif" width=296 align=right vspace=1 border=0>

3.4 ASP鐨勭浉鍏崇▼搴?/P>

3.4.1 ASP鐨勫瘎瀛樺櫒瀹氫箟

ioport unsigned portFFF4锛?/P>

#define ADTR portFFF4 /*鏀跺彂瀵勫瓨鍣?/

ioport unsigned portFFF5锛?/P>

#define ASPCR poaFFF5 /*鎺у埗瀵勫瓨鍣?/

ioport unsigned portFFF6锛?/P>

#define IOSR poaFFF6 /*I/O鐘舵€佸瘎瀛樺櫒*/

ioport unsigned portFFF7锛?/P>

#define BRD portFFF7 /*娉㈢壒鐜囧彂鐢熷櫒*/

3.4.2 鍒濆鍖朅SP

void InitASP(){ /*鍒濆鍖栧紓姝ヤ覆鍙?/

ASPCR=0xE080锛?/*RIM=1L:鍏佽鎺ユ敹涓柇锛?/P>

STB=0:涓€浣嶅仠姝綅*/

IOSR=0xl800锛?/*THRE=1:ADTR绌?/

BRD=0x0020锛?/*20MHz/38400bps*/

}

3.4.3 寮傛涓插彛鍛绘柇鏈嶅姟瀛愮▼搴?/P>

void interrupt aspint(){

if((IOSR & 0x0l00)==0x0l00){

Recv()锛泒 /*鏈夋帴鏀舵暟鎹?/

if((IOSR & 0x0400)==0x0400){

鈥︹€︼紱} /*甯ч敊璇鐞?/

if((IOSR & 0x0800)==0x0800){

Send()锛泒 /*鍙互鍙戦€佹暟鎹?/

*IFR=0x20锛?/*娓呬腑鏂爣蹇?/锛?/P>

asm("clrc INTM") /寮€涓柇*/锛?/P>

}

鐢变簬閲囩敤F206鐨勭墖鍐呬覆鍙d綔涓洪€氫俊宸ュ叿锛屽厖鍒嗗埄鐢ㄤ簡DSP鐨勭墖鍐呴泦鎴愬璁撅紝涓嶄粎浣垮緱閫氫俊妯″潡鍙潬鎬ц緝楂橈紝鑰屼笖鎺ュ彛鏂规硶绠€鍗曪紝ASP鐨勬帶鍒跺拰璇诲啓閫氳繃鍑犱釜瀵勫瓨鍣ㄥ氨鍙畬鎴愶紝闈炲父鏂逛究銆傞噰鐢ㄦ湰鏂囨墍浠嬬粛鐨勬柟娉曠紪鍐欑殑浠NP3.0涓鸿绾︾殑閫氫俊瀛愮▼搴忔祦绋嬫竻鏅帮紝绗﹀悎妯″潡鍖栫殑瑕佹眰銆傝嚜鐜板満鎶曞叆璇曡繍琛屼互鏉ワ紝鏁翠釜閫氫俊妯″潡宸ヤ綔绋冲畾鍙潬锛岃兘杩呴€熷搷搴斾富绔欒姹傦紝涓诲姩涓婃姤鏁版嵁锛屽強鏃跺噯纭€備絾鏄殢鐫€鐜板満鎬荤嚎鎶€鏈殑鍙戝睍锛孎TU杩樺簲鍏峰鑷冲皯涓€涓幇鍦烘€荤嚎鎺ュ彛(濡侰AN鎬荤嚎鎺ュ彛)銆傝繖鏍蜂笉鍏夐€氫俊璐ㄩ噺鏈変繚璇侊紝杩樺彲浠ョ畝鍖栭€氫俊瑙勭害(鍙繚鐣欎竴涓簲鐢ㄥ眰鍗冲彲)锛岃繖搴旇鏄疐TU閫氫俊鏂瑰紡鐨勪竴涓彂灞曟柟鍚?