0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于DSP和FPGA實(shí)現(xiàn)RS-485平衡型差分傳輸系統(tǒng)的設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì)應(yīng)用 ? 作者:王菡,郭小舟 ? 2021-06-23 14:47 ? 次閱讀

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

通信雙方的原理圖

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

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

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

結(jié)語(yǔ)

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

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • dsp
    dsp
    +關(guān)注

    關(guān)注

    551

    文章

    7824

    瀏覽量

    346863
  • FPGA
    +關(guān)注

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    599003
  • 無(wú)線電
    +關(guān)注

    關(guān)注

    58

    文章

    2114

    瀏覽量

    115824
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    什么是RS-485接口?RS-485RS-232-C接口區(qū)別

    RS-485接口是采用平衡驅(qū)動(dòng)器和接收器的組合,抗共模干能力增強(qiáng),即抗噪聲干擾性好。
    發(fā)表于 01-06 10:27 ?2283次閱讀

    RS-485數(shù)據(jù)傳輸設(shè)計(jì)指南報(bào)告

    RS-485 僅是一個(gè)電氣標(biāo)準(zhǔn)。與定義功能、機(jī)械和電氣規(guī)格的完整接口標(biāo)準(zhǔn)相比,RS-485 僅定義了使用平衡多點(diǎn)傳輸線的驅(qū)動(dòng)器和接收器的電氣特性。
    發(fā)表于 10-09 14:23 ?614次閱讀
    <b class='flag-5'>RS-485</b>數(shù)據(jù)<b class='flag-5'>傳輸</b>設(shè)計(jì)指南報(bào)告

    RS485總線是如何工作的 RS485總線的工作原理

    RS-485 標(biāo)準(zhǔn)與 RS-232 不一樣,數(shù)據(jù)信號(hào)采用傳輸方式(Differential Driver Modc),也稱作
    的頭像 發(fā)表于 03-06 17:20 ?3187次閱讀
    <b class='flag-5'>RS485</b>總線是如何工作的 <b class='flag-5'>RS485</b>總線的工作原理

    RS-485RS-422接口介紹

    只對(duì) 接口的電氣特性做出規(guī)定,而不涉及接插件、電纜或協(xié)議,在此基礎(chǔ)上用戶可以建立自己的高層通信協(xié)議。1. 平衡傳輸RS-422、RS-485RS
    發(fā)表于 10-03 20:08

    RS-232、RS-422和RS-485串行數(shù)據(jù)接口標(biāo)準(zhǔn)

    ,分別用來(lái)接收數(shù)據(jù)和發(fā)送數(shù)據(jù)。RX與TX端子相接,并將地線相接即可實(shí)現(xiàn)自環(huán)。 RS-422和RS-485的數(shù)據(jù)信號(hào)均采用
    發(fā)表于 04-23 09:40

    采用CAN總線與RS-485實(shí)現(xiàn)DSP通信接口

    設(shè)備,負(fù)載設(shè)備可以是被動(dòng)發(fā)送器、接收器或收發(fā)器,RS-485最大傳輸距離為1200m,最大傳送速率可達(dá)10Mb/s。因此,RS-485在遠(yuǎn)程通信和多機(jī)總線系統(tǒng)中具有很大的吸引力,在實(shí)際
    發(fā)表于 06-14 05:00

    【銀杏科技ARM+FPGA雙核心應(yīng)用】STM32H7系列53——RS-485

    時(shí),傳輸速度可達(dá)100Kbps。③抗干擾能力強(qiáng)。 RS485 接口是采用平衡驅(qū)動(dòng)器和接收器的組合,抗共模干擾能力增強(qiáng),即抗噪聲干擾性好
    發(fā)表于 05-12 15:44

    使用RS-422和RS-485進(jìn)行便捷,可靠的數(shù)據(jù)傳輸

    上的最大接收器數(shù)量為十(很好,請(qǐng)參閱下面的“單位負(fù)載”討論)。另一方面,使用RS-485,你可以擁有一個(gè)實(shí)際的多點(diǎn)系統(tǒng),其中“點(diǎn)”而不是“下降”表示一個(gè)分對(duì)可以支持多個(gè)發(fā)送器和多個(gè)接收器。該
    發(fā)表于 09-18 07:40

    RS-485總線介紹

    RS-485總線介紹RS-485僅是一個(gè)電氣標(biāo)準(zhǔn),描述了接口的物理層,像協(xié)議、時(shí)序、串行或并行數(shù)據(jù)以及鏈路全部由設(shè)計(jì)者或更高層協(xié)議定義。 RS-485定義的是使用平衡(也稱作
    發(fā)表于 07-16 08:25

    RS-485的相關(guān)資料分享

    管理等領(lǐng)域。RS-485總線彌補(bǔ)了RS-232通信距離短,速率低的缺點(diǎn),RS-485的速率可高達(dá)10Mbit/s,理論通訊距離可達(dá)1200米;RS-485
    發(fā)表于 02-09 07:10

    RS485接口的電磁兼容設(shè)計(jì)

    一、RS485 接口介紹 RS-485 采用平衡發(fā)送和接收方式實(shí)現(xiàn)通信
    發(fā)表于 02-10 17:47 ?4554次閱讀

    RS-485(EIA / tia-485分?jǐn)?shù)據(jù)傳輸系統(tǒng)的基本知識(shí)

    和驅(qū)動(dòng)程序 在總線配置。相反RS-422 EIA/TIA標(biāo)準(zhǔn)規(guī)定一個(gè)單一的、單向的驅(qū)動(dòng) 多個(gè)接收器。因此RS-485是向后兼容和可互換的RS 422同行。然而,
    發(fā)表于 04-11 11:17 ?0次下載
    <b class='flag-5'>RS-485</b>(EIA / tia-<b class='flag-5'>485</b>)<b class='flag-5'>差</b>分?jǐn)?shù)據(jù)<b class='flag-5'>傳輸</b><b class='flag-5'>系統(tǒng)</b>的基本知識(shí)

    RS-485總線通信協(xié)議分析

    RS-485總線技術(shù)只是規(guī)定了接口的電氣標(biāo)準(zhǔn),并沒(méi)有規(guī)定RS-485接口的電纜,插件以及通信協(xié)議,只是OSI規(guī)范中物理層的一個(gè)標(biāo)準(zhǔn),由于RS-485總線采用
    發(fā)表于 07-23 18:02 ?7011次閱讀

    RS-485采用平衡發(fā)送和的接收方式來(lái)實(shí)現(xiàn)通信

    RS-485采用半雙工工作方式,支持多點(diǎn)數(shù)據(jù)通信。RS-485總線網(wǎng)絡(luò)拓?fù)湟话悴捎媒K端匹配的總線型結(jié)構(gòu)。即采用一條總線將各個(gè)節(jié)點(diǎn)串接起來(lái),不支持環(huán)形或星網(wǎng)絡(luò)。 RS-485采用
    發(fā)表于 01-14 16:26 ?4776次閱讀

    原來(lái)RS-485這么簡(jiǎn)單?

    管理等領(lǐng)域。RS-485總線彌補(bǔ)了RS-232通信距離短,速率低的缺點(diǎn),RS-485的速率可高達(dá)10Mbit/s,理論通訊距離可達(dá)1200米;RS-485
    發(fā)表于 12-05 16:51 ?31次下載
    原來(lái)<b class='flag-5'>RS-485</b>這么簡(jiǎn)單?