《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于DSP和FPGA的磁浮列車同步485通信方式
基于DSP和FPGA的磁浮列車同步485通信方式
電子設(shè)計(jì)應(yīng)用
王菡 郭小舟
摘要: 測速定位單元緊鄰懸浮電磁鐵及長定子繞組和鐵心,,處于懸浮磁場和牽引磁場中,,電磁環(huán)境非常復(fù)雜,這對其通信設(shè)備的電磁兼容性能提出了很高的要求,。另外,,為滿足牽引控制系統(tǒng)的需求,測速定位信號的精度要求相當(dāng)高,。因此,測速定位信號傳輸?shù)乃俣?、?shí)時(shí)性及可靠性都面臨挑戰(zhàn),。基于以上考慮,,本文提出了基于DSP和FPGA的磁浮列車同步485通信方式的研究,,以解決上述挑戰(zhàn)。
關(guān)鍵詞: FPGA 磁浮列車 同步485通信 DSP
Abstract:
Key words :

在高速磁浮交通系統(tǒng)中,,車載測速定位單元對車輛的位置和速度進(jìn)行實(shí)時(shí)測量,,并將位置和速度信號通過無線電系統(tǒng)傳送至地面上的牽引控制系統(tǒng)和運(yùn)行控制系統(tǒng),以用于長定子直線同步電機(jī)牽引的反饋控制,,以及車輛運(yùn)行的指揮和安全防護(hù),。測速定位單元是牽引和運(yùn)控系統(tǒng)閉環(huán)控制的核心與關(guān)鍵,。

測速定位單元緊鄰懸浮電磁鐵及長定子繞組和鐵心,處于懸浮磁場和牽引磁場中,,電磁環(huán)境非常復(fù)雜,,這對其通信設(shè)備的電磁兼容性能提出了很高的要求。另外,,為滿足牽引控制系統(tǒng)的需求,,測速定位信號的精度要求相當(dāng)高。因此,,測速定位信號傳輸?shù)乃俣?、?shí)時(shí)性及可靠性都面臨挑戰(zhàn)?;谝陨峡紤],,本文提出了基于DSP" rel="http://www.eeworld.com.cn/my/keyad/ti.html" target="_blank">DSP和FPGA磁浮列車同步485通信方式的研究,以解決上述挑戰(zhàn),。

同步485的實(shí)現(xiàn)方法

考慮到測速定位單元的工作環(huán)境及通信功能需求,,在選擇該單元與車載無線電系統(tǒng)之間的通信方式時(shí),經(jīng)過分析,,本研究采用了傳輸速率較高的同步通信方式,,并使用屏蔽性能較好的雙絞線實(shí)現(xiàn)RS-485平衡型差分傳輸。

接口設(shè)計(jì)及通信協(xié)議

測速定位單元與車載無線電控制單元之間的通信接口關(guān)系如圖1所示,。車載無線電控制單元為主控方,,車輛測速與定位單元為受控方。通信雙方均由收發(fā)器和控制器構(gòu)成,,收發(fā)器之間采用RS-485同步串行接口方式,,每個(gè)接口有4對差分線。

圖1中,,CLK為時(shí)鐘信號,,ANF為無線電請求信號,UEF為門控信號,,DATA為數(shù)據(jù)信號,。車輛測速定位單元每20ms向無線電控制單元發(fā)送一次數(shù)據(jù),傳輸速率為512kbps,。為了防止小脈沖信號的干擾,,ANF信號的寬度為10個(gè)CLK信號;在ANF信號變?yōu)榈碗娖胶?,等?0個(gè)CLK信號寬度,,UEF才開始跳變?yōu)橛行АNF,、UEF,、DAFA信號均在CLK的上升沿變化,。在無信號傳輸時(shí),UEF,、DATA,、ANF均為低電平,時(shí)鐘信號保持傳輸,。數(shù)據(jù)傳輸采用左移方式,,即先傳高位,后傳低位,。信息幀格式如表1所示,。
 

同步485的收發(fā)器實(shí)現(xiàn)

在本文所論述的通信系統(tǒng)中,車輛測速定位單元及車載無線電控制單元雙方均采用XC2S100作為通信收發(fā)器,,模擬同步485的發(fā)送與接收時(shí)序,。同步485的FPGA設(shè)計(jì)主要是基于Verilog硬件描述語言,所使用的EDA工具包括ISE(含其內(nèi)部集成工具),、Modelsim,。

時(shí)鐘及定時(shí)信號的的產(chǎn)生

車載無線電控制單元需要產(chǎn)生速率為512k的時(shí)鐘信號與20ms一次的ANF信號。另外,,該單元在串行接收定位數(shù)據(jù)時(shí)接收時(shí)鐘應(yīng)為512k(波特率時(shí)鐘)的16倍,,即8M。因此,,分頻器在同步485通信方式中得到有效應(yīng)用,。

對偶數(shù)分頻,只需設(shè)計(jì)一個(gè)計(jì)數(shù)器進(jìn)行計(jì)數(shù),,待計(jì)數(shù)至分頻數(shù)的二分之一時(shí),,使分頻后的時(shí)鐘電平翻轉(zhuǎn)即可;奇數(shù)分頻較為復(fù)雜,,因?yàn)橛?jì)數(shù)器不能對非整數(shù)進(jìn)行計(jì)數(shù),,需使用一定的算法進(jìn)行處理。這里對奇數(shù)分頻模塊進(jìn)行功能仿真后的波形見圖2,。

ANF信號每隔20ms發(fā)送一次,,每次發(fā)送脈寬為10個(gè)時(shí)鐘周期。ANF信號的產(chǎn)生可以分成兩部分實(shí)現(xiàn):首先產(chǎn)生間隔20ms的脈沖信號,,然后把此脈沖信號的寬度變成10個(gè)時(shí)鐘周期。

串行數(shù)據(jù)的發(fā)送與接收

產(chǎn)生串行數(shù)據(jù)時(shí),,根據(jù)通信協(xié)議的要求,,測速定位單元每隔20ms應(yīng)串行移出72bits數(shù)據(jù)。如果每個(gè)發(fā)送時(shí)鐘周期移出一位,,則需要72個(gè)時(shí)鐘周期才能全部移出,,因此門控信號也需要保持72個(gè)時(shí)鐘周期的寬度,。

接收串行數(shù)據(jù)時(shí),同步串行接收一幀(72bits)數(shù)據(jù)與異步串行接收是不同的,。由于收發(fā)時(shí)鐘不是異步的,,因此不能以判斷在空閑態(tài)以后出現(xiàn)的第一個(gè)低電平作為一幀的開始,而是以門控信號(UEF)的上升沿作為一幀數(shù)據(jù)到來的判斷,。為了避免數(shù)據(jù)傳輸過程中毛刺的影響,,我們?nèi)砸圆ㄌ芈蕰r(shí)鐘的16倍進(jìn)行接收,即每隔16個(gè)波特率時(shí)鐘周期采樣一次,,因此,,每個(gè)數(shù)據(jù)將在傳輸?shù)拿恳晃坏闹悬c(diǎn)處被采樣。

串行數(shù)據(jù)發(fā)送與接收的仿真時(shí)序圖見圖3,。
 

收發(fā)器與控制器之間的數(shù)據(jù)交換

基于RS-485的同步通信時(shí)序是用FPGA作為通信收發(fā)器來模擬的,,但是通信數(shù)據(jù)最終是與系統(tǒng)的CPU進(jìn)行數(shù)據(jù)交換的。在該通信方式的設(shè)計(jì)中,,通信雙方均采用TMS320F2812作為通信控制器,。FPGA與DSP的數(shù)據(jù)交換必須滿足一定的時(shí)序,才能保證測速定位單元向車載無線電控制單元實(shí)時(shí)地傳輸位置及速度信號,。本系統(tǒng)中,,DSP控制器采用C語言進(jìn)行軟件設(shè)計(jì)。

測速定位單元側(cè)DSP與FPGA的數(shù)據(jù)交換

TMS320F2812的外部存儲器XINTF可供選擇的外部地址空間有XINTF0,、XINTF2及XINTF6,。其中XINTF0使用XZCS0AND1作為片選信號,外部存儲器擴(kuò)展空間為8K,;XINTF2與XINTF6分別使用XZCS2,、XZCS6AND7作為片選信號,外部存儲器擴(kuò)展空間均為0.5M,。測速定位單元在發(fā)送位置速度信息時(shí),,通過DSP的數(shù)據(jù)線傳輸?shù)紽PGA,DSP根據(jù)相應(yīng)的外部存儲器片選信號找出對應(yīng)的地址,,在從底層傳感器得到一個(gè)新的定位數(shù)據(jù)后寫入該地址,。相對應(yīng)的硬件連接框圖見圖4。

根據(jù)協(xié)議要求,,定位信息每次發(fā)送時(shí)包括5個(gè)字節(jié)的用戶數(shù)據(jù)和2個(gè)字節(jié)的CRC校驗(yàn),,因此,16bits數(shù)據(jù)線至少需要連續(xù)發(fā)送四次,,才能將底層的定位信息完整地傳送到FPGA,。

為了減少硬連線,這里只連接地址線的高五位,,對其中的低四位地址線進(jìn)行4~16譯碼,,最高位地址線作為該譯碼器的使能信號,。取對應(yīng)于一個(gè)外部存儲器片選信號的四個(gè)地址,比如片選信號XZCS2為低,,即可選用0xe0000,,0xe4000,0xe8000,,0xec000四個(gè)地址作為DSP向FPGA寫數(shù)據(jù)的地址,。

由于每個(gè)不同的地址都對應(yīng)一個(gè)地址譯碼值,當(dāng)四個(gè)譯碼值都出現(xiàn)后才可認(rèn)為一次定位信息傳送完成,。這時(shí)把連續(xù)接收到的七個(gè)字節(jié)加上幀頭及幀尾,,作為測速定位單元發(fā)送給車載無線電控制單元的一幀數(shù)據(jù)。

車載無線電控制單元側(cè)DSP與FPGA的數(shù)據(jù)交換

為了避免占用過多的CPU資源,,車載無線電控制單元中DSP從FPGA讀數(shù)據(jù)時(shí)不采用查詢方式,,而采用外部中斷來接收數(shù)據(jù)。將DSP的16bits數(shù)據(jù)線與FPGA連接,,DSP的XINT1也連接到FPGA的I/O管腳,。若選用XZCS0AND1作為外部存儲器片選信號,則DSP從FPGA讀數(shù)據(jù)的尋址空間范圍為0x002000—0x004000,,這個(gè)地址范圍內(nèi)所讀出的數(shù)據(jù)即為數(shù)據(jù)線上傳送到DSP的定位數(shù)據(jù),。相對應(yīng)的硬件連接框圖見圖5。
 

由于FPGA傳送到DSP的一幀數(shù)據(jù)為72bits,,因此通過16bits數(shù)據(jù)線傳輸需要5次才能傳送完,,每16bits數(shù)據(jù)到達(dá)時(shí)產(chǎn)生一次外 部中斷。設(shè)波特率時(shí)鐘為512k,,假設(shè)來自定位單元完整的一幀數(shù)據(jù)為0x02123456789abcde03,,車載無線電單元通過16bits數(shù)據(jù)線分次轉(zhuǎn)發(fā)到DSP的數(shù)據(jù)則為0x0002、0x1234,、0x5678,、0x9abc及0xde03。數(shù)據(jù)及中斷信號產(chǎn)生的時(shí)序如圖6所示,。由圖6可以看出,,每對應(yīng)移出一次dataout,都會相應(yīng)地發(fā)出一個(gè)外部中斷信號xint1,,DSP一旦接收到外部中斷,,便在中斷服務(wù)子程序中從16bits數(shù)據(jù)線讀取信號值。為了完整的接收一幀信號,,可在外部中斷服務(wù)程序中定義一個(gè)16級FIFO,,當(dāng)從FIFO的最底層讀出的數(shù)據(jù)為0x02時(shí),便可以判斷一幀數(shù)據(jù)的開始(若在用戶數(shù)據(jù)和校驗(yàn)值中存在0x02,則要進(jìn)行相應(yīng)的字符轉(zhuǎn)義),,依次接收以下的數(shù)據(jù)便得到完整的一幀定位信息。

通信雙方的原理圖

根據(jù)以上對同步485實(shí)現(xiàn)方法的描述,,在ISE中利用ECS工具所描繪的頂層原理圖如圖7和圖8所示,。包括測速定位單元同步數(shù)據(jù)發(fā)送和車載無線電控制單元同步數(shù)據(jù)接收兩部分。

圖7中,,addr_decode為地址譯碼模塊,,用于從DSP完整地接收一幀定位信息;tra485data為串行數(shù)據(jù)及門控信號發(fā)送模塊,。其中,,din(15:0)直接來自DSP的16bits數(shù)據(jù)線;addr(3:0)與DSP的A17~A14地址線相連,;clkin及anfin信號由車載無線電控制單元提供,。輸出的dataout及uefout經(jīng)過輸出緩沖及差分電平轉(zhuǎn)換后送給車載無線電控制單元。

在圖8所示的車載無線電控制單元同步數(shù)據(jù)接收方的原理圖中,,divide_512k為發(fā)送時(shí)鐘產(chǎn)生模塊,,產(chǎn)生通信所需的波特率時(shí)鐘;anf_shift用于產(chǎn)生無線電請求信號,;rec485data用于串行接收定位信息并通過dataconvert模塊轉(zhuǎn)發(fā)到通信控制器,。其中,Dataout(15:0)直接通過數(shù)據(jù)線連到DSP,,Xint1則連到DSP的外部中斷1,。anfout和clkout由輸入的晶振頻率分頻后得到,經(jīng)輸出緩沖及差分電平轉(zhuǎn)換后送給車輛測速定位單元,。
 

結(jié)語

在高速磁浮列車特殊的通信環(huán)境中,,基于RS-485物理層的同步通信方式體現(xiàn)出其抗干擾性強(qiáng)、實(shí)時(shí)性好,、誤碼率低等優(yōu)點(diǎn),,且實(shí)現(xiàn)原理簡單。利用FPGA所實(shí)現(xiàn)的通信收發(fā)器設(shè)計(jì)靈活,、可靠性高,,其功能在實(shí)際應(yīng)用中已得到驗(yàn)證。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。