根據(jù)軟件編碼的中速紅外技術(shù)在FTU中的應(yīng)用
概 述??
饋線自動化終端(FTU)是自動化系統(tǒng)與一次設(shè)備聯(lián)結(jié)的接口,主要用于配電系統(tǒng)變壓器、斷路器、重合器、分段器、柱上負(fù)荷開關(guān)等應(yīng)用場合,主要安裝于戶外柱上或環(huán)網(wǎng)柜。由于設(shè)備和電力一次設(shè)備安裝距離比較近,特別是柱上安裝模式給應(yīng)用程序更新、設(shè)備調(diào)試、運行參數(shù)整定和維護帶來困難,傳統(tǒng)的經(jīng)過串口進(jìn)行調(diào)試和維護的方式需要直接接觸,往往還需要設(shè)備掉電,存在安全隱患,接線很不方便,而非接觸式維護調(diào)試接口將解決上述問題。和藍(lán)牙等一些短距離無線通訊相比,紅外數(shù)據(jù)通訊成本低,設(shè)計簡單保密性好。紅外通訊是一種短距離無線通訊技術(shù),采用點對點傳輸方式,傳輸距離為0~30 m,發(fā)射角度為30°錐角以內(nèi),最高傳輸速率達(dá)16 Mb/s。中速紅外數(shù)據(jù)通訊產(chǎn)品,具有成本低廉、連接方便、簡單易用、結(jié)構(gòu)緊湊、傳輸距離遠(yuǎn)和傳輸速率快等特點,非常適合作為FTU調(diào)試接口,很好地解決了FTU的參數(shù)設(shè)置和維護等困難。
1?常用的紅外數(shù)據(jù)傳輸規(guī)范
1.1 IrDA協(xié)議的紅外數(shù)據(jù)傳輸
IrDA 1.0協(xié)議基于異步收發(fā)器UART,最高通信速率在115.2 Kb/s。IrDA 1.1協(xié)議提高通信速率到4 Mb/s,之后,IrDA又推出了最高通信速率在16 Mb/s的協(xié)議。使用IrDA協(xié)議的高速傳輸紅外收發(fā)器,傳輸距離比較近,只有幾十厘米,而且角度很窄,而FTU一般安裝在柱上,距地面距離5~6 m,這種方法使現(xiàn)場對準(zhǔn)光軸很困難,傳輸距離遠(yuǎn)不能滿足要求。而且陽光中的紅外波段會對紅外收發(fā)器的靈敏度產(chǎn)生很大影響,并且?guī)碓S多干擾。
1.2 紅外遙控用數(shù)據(jù)傳輸
遙控用的收發(fā)器傳輸距離在幾米到幾十米,發(fā)射角度通常在0~30°,發(fā)射強度與接收靈敏度因不同器件不同應(yīng)用設(shè)計而強弱不一,在小型移動設(shè)備中有著廣泛的應(yīng)用。標(biāo)準(zhǔn)的紅外遙控用波長為900~950 nm,副載波為33~40 kHz。但遙控用的紅外收發(fā)器的數(shù)據(jù)傳輸速率很低,通常只傳輸簡單的命令或讀取設(shè)備狀態(tài)等少量數(shù)據(jù),對FTU來說其調(diào)試接口可能需要觀察設(shè)備內(nèi)部數(shù)據(jù)或更新程序,需要傳輸?shù)臄?shù)據(jù)量大,如果速率很低,會導(dǎo)致性能無法接受。
2 系統(tǒng)設(shè)計方案
FTU安裝在戶外柱上,距離較長,數(shù)據(jù)速率要求,高干擾,因此采用Vishay中速紅外收發(fā)器,利用CPLD/FPGA實現(xiàn)紅外調(diào)制和數(shù)據(jù)波形識別,通過軟件實現(xiàn)應(yīng)用層的編碼和解碼,既降低硬件設(shè)計難度又提高了電路的抗干擾能力。
整個系統(tǒng)分為主機側(cè)紅外適配器和FTU側(cè)收發(fā)器,主機側(cè)適配器通過RS 232和計算機相連經(jīng)USB接口為適配器供電,通過FTU維護軟件經(jīng)適配器向外收發(fā)數(shù)據(jù),F(xiàn)TU經(jīng)紅外收發(fā)器接收來自主機的命令和數(shù)據(jù),并向主機發(fā)送主機需要的數(shù)據(jù)報。FTU是基于A1tera NiosⅡ的SoPC系統(tǒng),紅外收發(fā)器的信號通過UART和處理器Nios相連接。
2.1 FTU側(cè)紅外適配器
FTU側(cè)的收發(fā)電路包括一個接收器和兩個紅外發(fā)射管,將紅外收發(fā)器的信號ITXD和IRXD直接接到FPGA的兩個I/O腳上即可,框圖如圖1所示。
圖1中虛線框內(nèi)的部件由FPGA實現(xiàn),在Nios處理器的總線上掛接一個UART控制器,UART輸出TXD信號經(jīng)過紅外調(diào)制器和連接到紅外發(fā)射管的驅(qū)動電路,來自紅外接收管的信號經(jīng)整形后送到脈寬檢測器進(jìn)行解碼,脈寬檢測器的解碼輸出連接到UART的RXD,同時由復(fù)位檢出組件檢出復(fù)位信號連接到Nios的控制總線來控制系統(tǒng)重啟。
2.2 主機側(cè)電路
主機側(cè)紅外適配器電路如圖2所示,其中紅外收發(fā)器信號經(jīng)過CPLD和經(jīng)MAX232再接入主機的串行接口。通過串口供電可以簡化外部接線,但由于本設(shè)計的傳輸距離遠(yuǎn),傳輸速率高,所以功耗要求高,串口不能提供穩(wěn)定的輸出。所以適配器從主機的USB接口接入5 V工作電源,晶振Z103提供給CPLD做紅外物理層編碼時鐘和接收信號識別用。
圖2中R22和C742構(gòu)成上電復(fù)位,D306和J1構(gòu)成主機側(cè)RS 232接口,紅外發(fā)射管由D1,D2串接組成,增強發(fā)射功率和靈敏度。Q1為紅外接收管,D301為CPLDXC9536。主機側(cè)由CPLD完成紅外發(fā)射的載波生成和調(diào)制及接收信號的脈寬檢測和復(fù)位命令產(chǎn)生。
2.3? 收發(fā)器組件
紅外發(fā)射管采用Vishay公司的TSHF5400,TSHF5400是一個高速砷化鎵紅外發(fā)射管,調(diào)制帶寬可達(dá)10 MHz,在電流If=100 mA時tr=30 ns,tf=30 ns,光角φ=±22°,峰值波長為870 nm,工作環(huán)境溫度-40~+100℃,非常適合在戶外運行。
紅外接收采用Vishay的高速接收管TSOP7000,如圖3所示,可以工作在455 kHz,和870 nm的紅外發(fā)射管TSHF5400配對使用時,在If=300 mA時傳輸距離可達(dá)20 m。
3 物理層調(diào)制和寬度鑒別
文獻(xiàn)[8]給出了幾種常用的應(yīng)用層傳輸規(guī)范,但不能滿足現(xiàn)場安全性和強干擾下中速傳輸?shù)目煽啃砸?,所以需要對傳輸?shù)男盘栠M(jìn)行編碼傳輸,并在無數(shù)據(jù)傳輸時關(guān)閉收發(fā)器。傳輸采用曼切斯特編碼,所以在碼流中除了起始符和結(jié)束符采用違規(guī)編碼外不存在連0碼和連1碼。接收部件的寬度檢測單元對編碼字段的碼流進(jìn)行檢測,三個以上的連0碼和連1碼均判為誤碼。
3.1?紅外調(diào)制輸出
紅外收發(fā)器的物理層發(fā)送信號調(diào)制和接收信號檢測由VHDL實現(xiàn),把主時鐘分頻得到455 kHz的數(shù)據(jù)載波,通過發(fā)送信號TXD控制數(shù)據(jù)載波的有無實現(xiàn)數(shù)據(jù)發(fā)送。若當(dāng)前傳輸信號TXD為0則輸出一串?dāng)?shù)據(jù)載波,否則關(guān)閉輸出。為了減少紅外發(fā)射管的功耗,控制數(shù)據(jù)載波的占空比為30%。
3.2 紅外接收控制
紅外傳輸為半雙工方式ASK調(diào)制方式,在發(fā)射管發(fā)送邏輯0時關(guān)閉接收回路,避免發(fā)射管對接收電路的影響。FTU安裝的環(huán)境決定了其強干擾,而短的突發(fā)幀被干擾命中的幾率相對較低。本文在接收方增加兩個控制字符和一個信號.檢測部件,僅在檢測到9-bit0時允許接收,在接收到8-bit0時關(guān)閉接收部件,這兩個字符分別對應(yīng)0x0和0x80,通過應(yīng)用層對數(shù)據(jù)進(jìn)行編碼和解碼實現(xiàn)。
3.3?紅外復(fù)位信號發(fā)送和接收
FTU在更新應(yīng)用程序和改變特定的運行參數(shù)時需要重啟系統(tǒng),通過在FTU側(cè)的紅外接收接口中的復(fù)位脈沖檢出組件和主機側(cè)的紅外發(fā)送接口中復(fù)位脈沖產(chǎn)生組件相配合,完成主機對FTU的復(fù)位控制。
主機需要復(fù)位FTU時,只需要通過主機側(cè)接口軟件在RS 232接口的RTS線上產(chǎn)生一個邏輯l到邏輯0的跳變,CPLD檢測到該跳變后產(chǎn)生50 ms的連續(xù)調(diào)制輸出。由于正常的編碼發(fā)送中沒有連續(xù)50 ms的低電平,干擾信號也不會產(chǎn)生連續(xù)的電平,所以接收方的復(fù)位檢測組件在檢測到紅外接收管連續(xù)輸出50 ms低電平后即可產(chǎn)生系統(tǒng)復(fù)位信號,完成FTU的重新啟動,整個復(fù)位邏輯不依賴應(yīng)用軟件,可用于緊急情況下系統(tǒng)重啟。
4 軟件編碼與解碼
4.1? 幀格式
本文采取了短突發(fā)幀物理層的幀結(jié)構(gòu)如表1所示,包含起始符0x0和結(jié)束符0x80不編碼,碼字的連0特性分別用來啟動紅外接收器和關(guān)閉紅外接收器。起始符和結(jié)束符由發(fā)送方的驅(qū)動程序添加,接收方的脈寬檢測單元自動去除。編碼字段用來傳輸用戶數(shù)據(jù),一個用戶數(shù)據(jù)報文可以分成多個物理層突發(fā)幀,發(fā)送方驅(qū)動程序根據(jù)鏈路特征將用戶數(shù)據(jù)報拆分,接收方負(fù)責(zé)重組。
本文所采用的用戶數(shù)據(jù)報文格式如表2所示,采用字符同步方式,包含AA55EB90H四個字節(jié)的幀頭、1 B的目標(biāo)地址和2 B的幀長(整個編碼字段的字節(jié)長度)、NB的數(shù)據(jù)以及2 B CRC校驗,這部分?jǐn)?shù)據(jù)需要驅(qū)動程序進(jìn)行軟件差分編碼和解碼。編碼后實際發(fā)送的數(shù)據(jù)為幀長的兩倍。
4.2 紅外數(shù)據(jù)編碼發(fā)送
通過對應(yīng)用層數(shù)據(jù)按曼切斯特編碼規(guī)則進(jìn)行編碼,保證應(yīng)用數(shù)據(jù)不出現(xiàn)連0和連1。按下面的算法生成編碼查找表:
???
(1)循環(huán)變量置0,編碼結(jié)果值置0;
???
(2)取數(shù)據(jù)位7,若為1,則編碼成10;否則編碼成01;
???
(3)數(shù)據(jù)左移1位,編碼結(jié)果值左移2位,循環(huán)變量加1;
(4)若循環(huán)變量為7,則退出;否則,轉(zhuǎn)步驟(2)繼續(xù)編碼。
在這張表中,0被編碼成0x5555,0xff編碼成0xaaaa等。由于待編碼的數(shù)據(jù)總是介于0~255之間,所以通過下面的查找表可以實現(xiàn)應(yīng)用層編碼。
發(fā)送時把待發(fā)送的字符作為數(shù)組索引,依次查找上面的數(shù)組就可以得到編碼輸出。
4.3 紅外數(shù)據(jù)解碼接收
參照編碼算法,發(fā)送方1 b被編碼成2 b,而在接收方,每2 b則被解釋成一個bit,由于接收方接收到的8 b字符也位于0~255之中,對應(yīng)解碼后的4 b,16 b構(gòu)成一個8 b字符。按下述方法生成解碼數(shù)組:
(1)循環(huán)變量置0,解碼結(jié)果值置0;
(2)取數(shù)據(jù)位D7,D6,若為10則將解碼結(jié)果值加1;若為01則將解碼結(jié)果置于0xfe,否則視為誤碼將解碼結(jié)果值加80退出;
(3)數(shù)據(jù)左移2位,解碼結(jié)果值左移1位,循環(huán)變量加1;
(4)若循環(huán)變量為3則退出,否則轉(zhuǎn)步驟(2)繼續(xù)編碼。
十六進(jìn)制解碼對照表如表3所示,如輸入55,解碼值為0,輸入99解碼值為a,對應(yīng)其他輸入解碼輸出為0x80即誤碼。?
?
4.4? 幀接收和幀同步
由于一個應(yīng)用幀會被分成多個物理層幀,而且采用差分編碼發(fā)送,一個字符被分成兩個字符,所以解碼時幀同步很重要,否則無法重新恢復(fù)原始數(shù)據(jù)。本文把同步頭作為一個整體,則根據(jù)編碼算法,序列0xAA55EB90編碼成序列0x99998666a99a9655,接收程序接收到序列0x99996666a99a9655立即同步幀接收計數(shù)器。按表2所述的應(yīng)用層數(shù)據(jù)報文格式,幀同步點對應(yīng)接收計數(shù)器為8。
接收到幀同步序列后就可以處理數(shù)據(jù)接收,由兩個半字符合成一個應(yīng)用層字符。當(dāng)接收計數(shù)器為偶數(shù)時,根據(jù)解碼輸出可以獲得一個字符的低4位;接收計數(shù)器為奇數(shù)時,獲得一個字符的高4位。
如根據(jù)接收計數(shù)器為8和9時獲得目標(biāo)地址字段,接收計數(shù)器為10和11時獲得幀長的低字節(jié),接收計數(shù)器為12和13時獲得幀長的高字節(jié),依次類推接收所有應(yīng)用層數(shù)據(jù),整個幀同步和解碼過程如圖4所示。
4.5? 差錯控制
本文綜合使用了寬度檢測、編碼違規(guī)檢測和幀校驗三種手段進(jìn)行接收幀校驗。幀校驗采用16位的CRC校驗,其生成多項式為G(x)=x16+x15+x2+1,校驗出錯的幀被丟棄,并由主機側(cè)控制超時重發(fā)。通過這種機制識別錯誤報文,強干擾時仍然能夠保證邏輯鏈路的可靠性。
報文發(fā)送方在發(fā)送之前先計算報文CRC校驗碼并附加在報文的幀校驗字段,然后啟動編碼程序編碼并發(fā)送當(dāng)前數(shù)據(jù)報。接收方程序在排除違規(guī)編碼錯誤和CRC錯誤后才將收到的數(shù)據(jù)包提交到應(yīng)用層接收處理程序,如圖4所示。
5?系統(tǒng)軟件設(shè)計??
整個系統(tǒng)的邏輯采用VHDL描述語言,CPLD設(shè)計采用Xilinx ISE進(jìn)行邏輯綜合和調(diào)試,F(xiàn)TU側(cè)采用Altera SoPC Buitder構(gòu)建Nios系統(tǒng),并在QuartusⅡ環(huán)境下完成邏輯設(shè)計和仿真調(diào)試。FTU應(yīng)用軟件則采用C語言,在Nios IDE環(huán)境下完成編碼和調(diào)試,主機側(cè)的軟件采用Visual Basic 6.0完成控制臺軟件編碼和調(diào)試。通過這些開發(fā)工具的相互配合完成整個項目的編碼和調(diào)試。
6 結(jié)? 語
由于FTU多安裝在戶外柱上和環(huán)網(wǎng)柜,傳輸距離長,收發(fā)器對準(zhǔn)困難,背景光很強,必須考慮可見光和日光的干擾。針對這種應(yīng)用場合,應(yīng)從以下幾個方面考慮靈敏度和抗干擾的問題:
(1)采用廣角的紅外接收管,發(fā)射管則采取多個串聯(lián),適當(dāng)增加驅(qū)動電流來兼顧靈敏度和功耗,收發(fā)器對準(zhǔn)困難;
(2)采用短突發(fā)幀,減少數(shù)據(jù)幀被干擾命中的機率;
(3)本地發(fā)送數(shù)據(jù)時關(guān)閉接收器,應(yīng)用程序在發(fā)送時不處理接收的數(shù)據(jù),同時考慮收發(fā)轉(zhuǎn)換的時機;
(4)采用本文所述的發(fā)送端編碼和接收段進(jìn)行寬度檢測的方法,僅在收到啟動字符時打開接收部件,收到結(jié)束字符時關(guān)閉接收,減少接收窗口;
(5)數(shù)據(jù)段采取差分編碼和幀校驗相結(jié)合以及出錯重發(fā)等差錯控制機制,配合軟件有效濾除出錯報文,使得鏈路抗干擾性能進(jìn)一步加強;
(6)對戶外應(yīng)用,設(shè)計還要考慮背景光、電磁干擾、濕度和溫度對收發(fā)器的影響。
按上述介紹設(shè)計的中速紅外收發(fā)器電路和軟件已成功應(yīng)用在我公司DMP2000配電自動化系統(tǒng)的FTU中和DMP5000數(shù)字化變電站的智能采集終端,現(xiàn)場運行三年,穩(wěn)定可靠。在中午陽光直射條件下傳輸距離可達(dá)5 m以上,晚上可以達(dá)到20 m,數(shù)據(jù)碼元速率為38 400 b/s,考慮差分編碼因素實際數(shù)據(jù)傳輸速率為19 200 b/s,鏈路檢錯和抗干擾能力很強,極大地方便了FTU現(xiàn)場維護和參數(shù)整定。
評論
查看更多