国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種射頻單元中FPGA的遠(yuǎn)程升級(jí)方法

2021-08-16 09:51彭磊磊辛利
關(guān)鍵詞:扇區(qū)固件以太網(wǎng)

彭磊磊 辛利

針對(duì)TD-LTE無(wú)線通信系統(tǒng)中遠(yuǎn)端射頻單元的維護(hù)升級(jí)問(wèn)題,提出一種FPGA固件遠(yuǎn)程升級(jí)方法。該方法采用CPRI接口的以太網(wǎng)信道傳輸固件數(shù)據(jù)、控制命令和狀態(tài)信息,利用FPGA內(nèi)部邏輯完成Flash的識(shí)別、擦除和寫(xiě)入,并在Flash分區(qū)存儲(chǔ)的基礎(chǔ)上,通過(guò)控制FPGA加載起始地址實(shí)現(xiàn)遠(yuǎn)程升級(jí)和失敗回退。經(jīng)驗(yàn)證,該方法具有易操作、可移植性強(qiáng)和可靠性高的特點(diǎn)。

當(dāng)前,TD-LTE無(wú)線通信系統(tǒng)憑借通信效率、抗干擾性以及QoS業(yè)務(wù)保證等方面的技術(shù)優(yōu)勢(shì),成為城市軌道交通系統(tǒng)中CBTC、PIS和CCTV綜合業(yè)務(wù)承載的主要無(wú)線通信技術(shù)體制,得到了越來(lái)越廣泛的應(yīng)用。TD-LTE無(wú)線通信系統(tǒng)采用分布式架構(gòu)設(shè)計(jì),將基帶處理單元集中部署在機(jī)房,而射頻單元通過(guò)光纖拉遠(yuǎn)后沿軌道線路部署,形成全線的無(wú)線信號(hào)覆蓋。雖然此種部署方式減少了射頻信號(hào)在傳輸過(guò)程中的衰減,提升了信號(hào)覆蓋的質(zhì)量,卻給壁掛于隧道內(nèi)或架高于塔架上的射頻單元在維護(hù)升級(jí)方面帶來(lái)一定困難,間接影響了軌道交通的運(yùn)營(yíng)效率和安全。因此,有必要設(shè)計(jì)一種針對(duì)射頻單元中FPGA固件的遠(yuǎn)程升級(jí)方法,降低維護(hù)難度,提高維護(hù)效率。

射頻單元遠(yuǎn)程升級(jí)示意圖

射頻單元遠(yuǎn)程升級(jí)示意圖如圖1所示。系統(tǒng)維護(hù)升級(jí)時(shí),控制中心將新版本(1.2版)的FPGA固件通過(guò)網(wǎng)線和光纖介質(zhì)傳輸?shù)缴漕l單元。射頻單元將新版本固件更新到閃存,替換舊版本(1.1版)。升級(jí)成功后斷電重啟,射頻單元的FPGA將以新版本啟動(dòng)。如果升級(jí)失敗,F(xiàn)PGA將以備份版本啟動(dòng)。

硬件設(shè)計(jì)

硬件設(shè)計(jì)如圖2所示,主要包括三部分:微控制單元(MCU)、Xilinx 公司7系歹]FPGA以及SPI Flash。

射頻單元的FPGA通過(guò)CPRI協(xié)議接收上層傳來(lái)的以太網(wǎng)數(shù)據(jù)(包含控制命令、固件數(shù)據(jù)),并以媒體無(wú)關(guān)接口發(fā)送到MCU。MCU接收以太網(wǎng)數(shù)據(jù)并處理,再以本地總線(localbus)發(fā)送到FPGA。FPGA通過(guò)內(nèi)部邏輯完成SPI Flash的識(shí)別、擦除和寫(xiě)入,并將狀態(tài)信息通過(guò)以太網(wǎng)信道反饋給上層。

SPI Flash采用Spansion公司的s25fl256,該芯片是串行NOR Flash。FPGA 采用Xilinx 公司的XC7K325T-2FFG900I,該芯片屬于Kntex7系列,具有高性價(jià)比、低功耗的特點(diǎn)。FPGA需要配置成主SPI加載模式,配置電路如圖3所示。

Flash分區(qū)設(shè)計(jì)

本文的FPGA遠(yuǎn)程升級(jí)方法具備升級(jí)失敗后自恢復(fù)的能力,設(shè)計(jì)思路是Flash存儲(chǔ)分區(qū)。如表1所示,SPI Flash的存儲(chǔ)區(qū)域分成三部分:FPGA加載地址控制區(qū)、備份區(qū)以及升級(jí)區(qū)。FPGA加載地址控制區(qū)存放一組用于IPROG命令的比特流,備份區(qū)存放備份固件,升級(jí)區(qū)存放升級(jí)固件。

Spansion公司的s25fl256存儲(chǔ)空間是32MByte,其扇區(qū)類(lèi)型有2種規(guī)格,一種是統(tǒng)一64KyteB大小,另一種是統(tǒng)一256KByte大小,本文選取后者。FPGA芯片XC7K325T- 2FFG900I生成的固件大小約為11.9MByte,備份固件和升級(jí)固件可同時(shí)存放在s25fl256中。

首先分配IPROG命令比特流,如表2所示。

這組比特流中,“AA995566”是同步頭。FPGA只有在收到同步頭后才開(kāi)始接收配置數(shù)據(jù),而同步頭之前的數(shù)據(jù)后被FPGA忽略。本方案把“AA995566”放到Flash第一個(gè)扇區(qū)的最后四個(gè)字節(jié)上。同步頭后的比特流按次序從Flash的第二個(gè)扇區(qū)開(kāi)始位置存放并執(zhí)行16個(gè)字節(jié)對(duì)齊,不足的比特流用空操作指令填充。其中熱啟動(dòng)起始地址(WBSA)是升級(jí)固件的起始地址,本方案確定該地址為0X00B40000。

IPROG命令比特流之后開(kāi)始放置備份固件。備份固件結(jié)束之后升級(jí)固件開(kāi)始之前的空間放置比特1。升級(jí)區(qū)從指定地址0X00B40000開(kāi)始,并按512byte對(duì)齊,不足的比特填充‘1。升級(jí)區(qū)最后的32bit是CRC32校驗(yàn)碼,計(jì)算升級(jí)區(qū)域所有比特的CRC32值,但不包括最后的32bit。

FPGA固件修改

初始化Flash

實(shí)現(xiàn)在線升級(jí)功能,需要初始化Flash,即用JTAG線把修改后的固件燒錄進(jìn)Flash。該初始化工作只需要執(zhí)行一次。修改后的固件包含IPROG命令比特流、備份固件比特流和升級(jí)固件比特流,它們的起始地址按Flash分區(qū)方案確定。

固件修改可由Matlab或C語(yǔ)言實(shí)現(xiàn),流程如下:

1.以寫(xiě)模式打開(kāi)一個(gè)init.bin文件,寫(xiě)入0x3FFFC個(gè)“FF”,并在后面的四個(gè)字節(jié)寫(xiě)入0x“AA995566”。

2.繼續(xù)寫(xiě)入IPROG比特流,以16個(gè)字節(jié)對(duì)齊,不足的字節(jié)填充0x“20000000”。

3.讀取備份固件并寫(xiě)入imt.bin,其后填充比特‘1直到0X00B40000前一個(gè)地址。

4.讀取升級(jí)固件按512byte對(duì)齊,不足的比特填充‘1直到最后4個(gè)字節(jié)。計(jì)算加填充的升級(jí)固件的CRC32值并放到最后4個(gè)字節(jié)。

5.寫(xiě)入加CRC32校驗(yàn)的升級(jí)固件到init.bin。

升級(jí)固件添加CRC32

FPGA從RS232接口接收修改后的升級(jí)固件,并寫(xiě)入到Flash實(shí)現(xiàn)在線升級(jí),該過(guò)程不再需要JTAG線。

改寫(xiě)升級(jí)固件只需要添加CRC32,流程如下:

1.以寫(xiě)模式打開(kāi)一個(gè)update.bin文件。

2.讀取升級(jí)固件按512byte對(duì)齊,不足的比特填充‘1直到最后4個(gè)字節(jié)。計(jì)算加填充的升級(jí)固件的CRC32值并放到最后4個(gè)字節(jié)。

3.寫(xiě)入加CRC32校驗(yàn)的升級(jí)固件到update.bin。

FPGA邏輯設(shè)計(jì)

媒體無(wú)關(guān)接口

本文設(shè)計(jì)中,媒體無(wú)關(guān)接口(MII)是CPRI接口的一部分。CPRI采用Xilinx公司的IP核實(shí)現(xiàn),可實(shí)現(xiàn)同相/正交數(shù)據(jù)、廠商特定信息、以太網(wǎng)數(shù)據(jù)和高速數(shù)據(jù)鏈路控制的傳輸。MII接口在CPRI接口中的位置如圖4所示。

FPGA的MII接口與MCU的MII接口對(duì)接,實(shí)現(xiàn)以太網(wǎng)收發(fā)。

SPI Flash讀寫(xiě)

SPI Flash讀寫(xiě)模塊包含一個(gè)Flash編程器和一個(gè)基于SPI 協(xié)議的收發(fā)器,如圖5所示。Flash編程器的功能是識(shí)別、擦除和燒寫(xiě)Flash,并通過(guò)MCU本地總線向?qū)影l(fā)送升級(jí)成功或失敗的指示信號(hào)?;赟PI協(xié)議的收發(fā)器功能是向SPI Flash發(fā)送命令或數(shù)據(jù),并從SPI Flash中接收數(shù)據(jù)。

Flash編程器實(shí)現(xiàn)在線升級(jí)的流程如下:

1.初始化。完成升級(jí)過(guò)程中指示信號(hào)的復(fù)位。

2.檢驗(yàn)Flash ID并上報(bào)上位機(jī)是否正常。

3.擦除第一個(gè)扇區(qū)最后4個(gè)字節(jié)的同步頭0x“AA995566”。

4.擦除升級(jí)區(qū)。

5.燒寫(xiě)升級(jí)區(qū)。

6.校驗(yàn)升級(jí)區(qū),看CRC32余式是不是0x“C704DD7B”。

7.更新升級(jí)狀態(tài),指示升級(jí)成功或失敗。如果升級(jí)成功,第一扇區(qū)最后4個(gè)字節(jié)燒寫(xiě)同步頭0x“AA995566”。失敗情況下,會(huì)給出錯(cuò)誤類(lèi)型,如超時(shí)或CRC校驗(yàn)有誤,并不燒寫(xiě)同步頭。

Flash編程器實(shí)現(xiàn)升級(jí)失敗返回備份配置的關(guān)鍵是對(duì)同步頭的控制。如果升級(jí)成功,F(xiàn)PGA掉電重啟,檢測(cè)到同步頭后,執(zhí)行后續(xù)的IPROG命令并跳轉(zhuǎn)到升級(jí)區(qū)的起始地址開(kāi)始加載;如果升級(jí)失敗,F(xiàn)PGA無(wú)法檢測(cè)到同步頭,就會(huì)忽略預(yù)置的IPROG命令,從備份配置啟動(dòng)。

測(cè)試驗(yàn)證

采用多個(gè)不同的固件,在無(wú)線通信板卡上對(duì)本文方法做驗(yàn)證,這些固件控制板卡上的指示燈以不同的方式閃爍。選取其中2個(gè)固件并制作imt.bm初始化Flash。選取其他的固件制作update.bin做在線升級(jí)。多次執(zhí)行在線升級(jí)并穿插進(jìn)行人為斷電操作。升級(jí)成功后,板卡上的指標(biāo)燈按新固件中的邏輯閃爍。人為斷電致使升級(jí)失敗,板卡上的指標(biāo)燈閃爍方式不變。上百次實(shí)驗(yàn)中,沒(méi)有出現(xiàn)一次差錯(cuò),證明本文方法具有較高的可靠性。

本文方法操作簡(jiǎn)單的特點(diǎn)體現(xiàn)在init.bin和update.bin制作上。兩個(gè)文件的制作只需要簡(jiǎn)單的Matlab或C語(yǔ)言腳本即可實(shí)現(xiàn)。

本文方法的FPGA邏輯使用HDL語(yǔ)言編寫(xiě),移植時(shí),只需修改與Flash和固件加載地址相關(guān)的部分,具有較強(qiáng)的可移植性。本方法的FPGA邏輯已成功移植到以Micron公司MT25Q25做為配置存儲(chǔ)芯片的xc7a200tfbg676-2上。

本文提出的射頻單元中FPGA固件遠(yuǎn)程升級(jí)方法,操作簡(jiǎn)單、可移植性強(qiáng)和可靠性高,已成功應(yīng)用到多個(gè)TD-LTE無(wú)線通信系統(tǒng)產(chǎn)品上,為產(chǎn)品的升級(jí)維護(hù)帶來(lái)了便利。

猜你喜歡
扇區(qū)固件以太網(wǎng)
分階段調(diào)整增加扇區(qū)通行能力策略
尼康旗艦Z9升級(jí)新固件延長(zhǎng)高速連拍時(shí)間
手工修復(fù)MBR
不花錢(qián)的升級(jí),你錯(cuò)過(guò)了嗎?
網(wǎng)絡(luò)智能平臺(tái)和云服務(wù)為以太網(wǎng)注入新動(dòng)力
淺述“4K對(duì)齊”及其發(fā)展前景
U盤(pán)故障排除經(jīng)驗(yàn)談
三大因素驅(qū)動(dòng)創(chuàng)新提速以太網(wǎng)快步邁入“靈活”時(shí)代
三大因素驅(qū)動(dòng)創(chuàng)新提速 以太網(wǎng)快步邁入“靈活”時(shí)代
英特爾發(fā)布免費(fèi)固件引擎
松原市| 通海县| 德清县| 沂南县| 潜山县| 石柱| 临猗县| 敦煌市| 潮安县| 灵石县| 台中市| 象山县| 上林县| 东乌| 嫩江县| 舟山市| 永新县| 奉贤区| 绩溪县| 宿州市| 苏尼特右旗| 南丹县| 梧州市| 资源县| 清流县| 隆化县| 措美县| 巨野县| 广宗县| 宣武区| 新郑市| 西安市| 鄂伦春自治旗| 邢台市| 卢氏县| 清原| 岳西县| 中方县| 得荣县| 丘北县| 中西区|