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