田地,李康樂,楊春宇
(西安中車永電捷通電氣有限公司,陜西西安,710016)
2016年7月,國家發(fā)展改革委、交通運輸部、中國國家鐵路集團有限公司聯(lián)合發(fā)布了《中長期鐵路網(wǎng)規(guī)劃》,勾畫了新時期“八縱八橫”高速鐵路網(wǎng)的宏大藍圖,即以沿海、京滬等“八縱”通道和陸橋、沿江等“八橫”通道為主干,城際鐵路為補充的高速鐵路網(wǎng)?!鞍丝v八橫”可實現(xiàn)相鄰大中城市間1-4小時交通圈、城市群內(nèi)0.5-2小時交通圈。隨著“八縱八橫”鐵路網(wǎng)絡(luò)建設(shè)有序推進、逐步完善,使我國高速鐵路網(wǎng)絡(luò)四通八達。加之高速動車組有載客量大、速度快、到點準(zhǔn)時、乘坐舒適、行駛平穩(wěn)、受雷雨等惡劣天氣影響較小等特點,成為越來越多的人出行交通工具的首選。高速動車組優(yōu)異的舒適性不僅體現(xiàn)在行駛平穩(wěn)性上,其精確的車廂溫度控制與通風(fēng)控制也是重要的原因之一。
空調(diào)顯示設(shè)定器作為動車組列車空調(diào)運行控制的核心部件,廣泛應(yīng)用于我國CRH2系列、CRH380系列等動車組上,其主要功能為接收列車網(wǎng)絡(luò)(TCMS)下發(fā)或自身按鍵手動設(shè)置的空調(diào)運轉(zhuǎn)模式、控制溫度等指令信息,進一步傳輸至空調(diào)微機室實現(xiàn)車廂空調(diào)系統(tǒng)溫度、風(fēng)量等控制。同時將空調(diào)運行狀態(tài)、溫度信息、故障狀態(tài)上傳至列車網(wǎng)絡(luò),并且同步在空調(diào)顯示設(shè)定器面板進行顯示。以上功能邏輯是由控制器通過軟件實現(xiàn)的,我國幅員遼闊、高速動車組線路長、自然環(huán)境復(fù)雜多變,為適應(yīng)不同的線路環(huán)境,對于空調(diào)系統(tǒng)控制邏輯的優(yōu)化更改在所難免。當(dāng)前在運營動車組空調(diào)顯示設(shè)定器均由國外進口,更改軟件依賴于國外廠家,存在更改費用高、響應(yīng)周期長的弊端。在進行升級作業(yè)時,需拆開顯示設(shè)定器面板,升級完畢后需進行面板安裝恢復(fù),做緊固標(biāo)記,作業(yè)時間較長。本文基于FPGA芯片的國產(chǎn)化空調(diào)顯示設(shè)定器,創(chuàng)新性的提出了通過串口升級FPGA程序的方案,使升級作業(yè)效率大幅提高,節(jié)省了人力成本,縮短作業(yè)時間。
由于空調(diào)顯示設(shè)定器需同時與列車網(wǎng)絡(luò)、兩組空調(diào)微機室實時通信,并及時響應(yīng)空調(diào)控制指令,還需響應(yīng)面板與按鍵操作,同步執(zhí)行復(fù)雜的控制邏輯,因此控制器性能成為方案設(shè)計重要因素之一。FPGA以并行執(zhí)行,可重復(fù)、靈活配置等優(yōu)勢,成為國產(chǎn)化顯示設(shè)定器主控芯片的首選。按照設(shè)計要求,空調(diào)顯示設(shè)定器外部需預(yù)留串口作為數(shù)據(jù)下載接口,故本方案不再額外增加接口,設(shè)計數(shù)據(jù)下載與程序升級公用同一串口。根據(jù)功能評估結(jié)果,本文選取Xilinx公司Spartan6 系FPGA作為主控芯片。因為FPGA基于SRAM結(jié)構(gòu),配置文件掉電會丟失,需要在外部配置存儲介質(zhì)進行配置文件存儲或通過額外的處理器進行配置文件寫入。Spartan6系列FPGA程序配置方式可分為主模式(Master Modes)、從模式(Slave Modes)、JTAG模式。根據(jù)存儲介質(zhì)接口的不同又可細分為主串、主并、從串、從并等模式。
主模式即FPGA作為主設(shè)備,存儲介質(zhì)作為從設(shè)備, FPGA的CCLK引腳給存儲介質(zhì)提供工作時鐘,上電后FPGA將主動從存儲介質(zhì)中讀取程序配置文件,典型的模式可分為PROM模式和SPI-Flash模式,具體介紹如下。
①主串模式-PROM
FPGA作為主設(shè)備,Xilinx PROM作為從設(shè)備。此方案需要通過JTAG將配置文件燒寫至PROM中,F(xiàn)PGA上電后將主動從PROM中讀取配置文件。DIN與CCLK管腳在程序配置完成后可作為用戶IO使用, PROM成本相對較高。
②主串模式-SPI Flash
此模式下需FPGA外部配置SPI Flash,F(xiàn)PGA作為主設(shè)備,SPI Flash作為從設(shè)備。配置模式選擇后, FPGA上電時主動從SPI Flash中讀取程序文件,MOSI、DIN、CSO_B、CCLK等信號在FPGA配置完成后可作為用戶IO使用,串行Flash的特點是占用引腳比較少,器件封裝小,容量大,不但可以節(jié)約電路板空間,還能降低功耗核噪聲。存儲程序文件的同時也可用作用戶數(shù)據(jù)存儲。
③主并模式-NOR flash
此模式下FPGA外部需配置并行NOR Flash, FCS_B等接口信號,在程序引導(dǎo)完成后,也可以作為用戶IO使用,并行NOR Flash占用FPGA管腳數(shù)量較多。
④主并模式-并行PROM
并行PROM模式下FPGA作為主設(shè)備,并行PROM作為從設(shè)備,配置文件可通過JTAG寫入PROM中,F(xiàn)PGA上電時,主動從并行Flash中引導(dǎo)配置文件,引導(dǎo)完成后,配置管腳可作為用戶IO使用,此方案特點是占用FPGA管腳資源較多成本較高。
從模式根據(jù)外部處理器接口分為從并模式和從串模式。
①從串模式
即FPGA作為從設(shè)備,需要外部處理器通過串行接口將配置文件寫入FPGA。
②從并模式
即FPGA作為從設(shè)備,需外部處理器通過并行接口將配置文件寫入FPGA,雖然從模式不需要額外的存儲介質(zhì),但需要外部額外配置處理器進行配置文件寫入,成本較高,增加了開發(fā)難度。
根據(jù)項目應(yīng)用場景要求,控制板卡安裝在顯示設(shè)定器箱體內(nèi),顯示設(shè)定器整體安裝于動車組車廂電氣柜中,在實際運營、程序升級作業(yè)時,一般禁止打開顯示設(shè)定器面板,故通過JTAG升級配置文件方案不能滿足要求,若使用從模式配置程序文件,需額外增加處理器,增加了成本和開發(fā)工作量。主模式里,PROM成本高于SPI Flash,串行SPI Flash接口比并行FLASH簡單,節(jié)約FPGA管腳資源。綜合考慮,本項目使用主串配置模式,選擇SPI Flash作為存儲介質(zhì),通過FPGA數(shù)據(jù)手冊可知,SPI接口MOSI、DIN、CSO_B、CCLK在程序配置完成后可以做用戶IO使用,則當(dāng)程序引導(dǎo)完成后,F(xiàn)PGA可以操作上述接口操作SPI Flash。那么通過顯示設(shè)定器外部DB9接口,就可以使用PC把程序配置文件下發(fā)至FPGA,F(xiàn)PGA將配置文件緩存后,再寫入SPI flash,從而實現(xiàn)配置文件自升級功能。
結(jié)合研發(fā)成本與工作量本項目總體方案設(shè)計如圖1所示,系統(tǒng)主控芯片采用Spartan6系列FPGA,SPI Flash選用成本較低的M25P32,需要進行配置文件更新時,通過PC上位機將BIN文件下發(fā)至FPGA,F(xiàn)PGA完成SPI FLASH擦除后,邊緩存配置文件,邊通過SPI驅(qū)動將數(shù)據(jù)寫入Flash,從而完成程序文件更新,文件寫入完成后,只需空調(diào)顯示設(shè)定器重新上電,新程序即可完成配置。

圖1 系統(tǒng)硬件方案
本方案軟件部分包括上位機軟件和FPGA軟件兩部分。
FPGA實現(xiàn)與上位機通信,接收上位機升級指令及程序文件數(shù)據(jù)并進行數(shù)據(jù)緩存、實現(xiàn)SPI Flash 驅(qū)動管理、程序文件的flash寫入等功能,軟件模塊架構(gòu)簡圖如圖2所示。

圖2 軟件結(jié)構(gòu)模塊
波特率生成模塊:根據(jù)系統(tǒng)時鐘生成目標(biāo)波特率,提供數(shù)據(jù)發(fā)送接收模塊使用,作為異步串行通信的協(xié)議基準(zhǔn)。
數(shù)據(jù)接收模塊:對串行RX信號的起始位、數(shù)據(jù)位、停止位進行識別與判斷、完成奇偶校驗并進行數(shù)據(jù)串并轉(zhuǎn)換。
數(shù)據(jù)發(fā)送模塊:對并行字節(jié)數(shù)據(jù)進行并串轉(zhuǎn)換、補充起始位、校驗位、停止位數(shù)據(jù),配合波特率模塊完成TX串行數(shù)據(jù)發(fā)送。
指令數(shù)據(jù)解析模塊:對接收到的數(shù)據(jù)幀進行解析判斷及校驗,如果是升級指令,將指令轉(zhuǎn)發(fā)至FLASH控制邏輯模塊,完成FLASH擦除等程序升級準(zhǔn)備工作。如果是程序數(shù)據(jù),將數(shù)據(jù)寫入文件接收雙口RAM中進行緩存。
雙口RAM:因為接收數(shù)據(jù)速率與寫FLASH速率不一致,使用雙口RAM對程序文件的緩存,起到Flash和上位機數(shù)據(jù)間橋梁和數(shù)據(jù)緩沖的作用,本項目使用IP核利用BRAM生成FPGA內(nèi)部雙口RAM。
FLASH控制邏輯模塊:根據(jù)指令完成SPI-Flash讀、寫、擦除命令生成,包括各寄存器指令、讀寫擦除流程控制,讀、寫、擦除、程序文件寫入完畢的判斷,是整個升級流程的“指揮官”。
SPI驅(qū)動模塊:按照M25P32數(shù)據(jù)手冊中對于讀寫時序要求,完成SPI控制協(xié)議時序?qū)崿F(xiàn)。
(1)串行通信協(xié)議
本項目與PC的串行通信波特率為57600bps,數(shù)據(jù)位8位,起始位1位,偶校驗。
(2)FLASH 驅(qū)動實現(xiàn)
M25P32具有32Mb容量,時鐘頻率最高支持75MHz,支持256bytes頁編程,整個空間由64個扇區(qū)組成,每個扇區(qū)包含256頁,每頁包含256bytes數(shù)據(jù),M25P32支持扇區(qū)擦除和整片擦除。SO8封裝的M25P32共有8個引腳,驅(qū)動的實現(xiàn)主要是跟據(jù)數(shù)據(jù)手冊相關(guān)要求,操作相應(yīng)管腳高低電平,各電平必須符合讀時序、寫時序要求。本項目SPI Flash在完成配置后,時鐘信號作為用戶IO由FPGA提供,頻率選用5MHz,占空比50%,所有接口信號執(zhí)行均有較大裕量,滿足時序要求。
(3)升級軟件處理邏輯
軟件處理邏輯如圖3所示,F(xiàn)PGA內(nèi)部使用狀態(tài)機編碼實現(xiàn),狀態(tài)機包含有上電讀狀態(tài)寄存器、等待命令、執(zhí)行片擦除、頁編程等。當(dāng)接收到程序升級命令后,先對SPI Flash執(zhí)行整片擦除操作,因擦除時間較長,內(nèi)部BRAM容量有限,需完成擦除后再開始接收配置文件數(shù)據(jù),一邊接收數(shù)據(jù)寫入內(nèi)部雙口RAM中,一邊進行SPI Flash頁編程操作,直到全部配置文件數(shù)據(jù)寫入完畢。并對上位機下發(fā)的文件大小與接收的文件大小進行對比,若文件大小比照正確后,向上位機返回升級完畢指令,若對比失敗,則向上位機返回升級失敗提示,重新進行上述升級流程即可。

圖3 升級軟件處理邏輯
本項目上位機軟件使用NI公司Labview軟件進行開發(fā),界面分可為數(shù)據(jù)下載、軟件升級、時鐘設(shè)定等功能,進入界面后會首先會選擇波特率等串行通信協(xié)議參數(shù)。
數(shù)據(jù)下載:可下載空調(diào)機組運行數(shù)據(jù),并生成EXCEL格式文檔,方便對空調(diào)機組運行情況進行查看,便于故障定位分析,此功能非本文重點,不再贅述。
軟件升級:用于選擇FPGA配置文件所在位置、下發(fā)FLASH擦除指令、對BIN文件進行大小計算并分包下發(fā)、判斷是否升級成功。
時鐘設(shè)定:可重置空調(diào)顯示設(shè)定器內(nèi)部時鐘芯片。
(1)整體實物圖
圖4為空調(diào)顯示設(shè)定器實物與上位機界面圖,可以看出顯示設(shè)定器與上位機通過USB轉(zhuǎn)RS232串口線進行連接,通過操作上位機軟件,選擇正確的異步串行通信協(xié)議,操作簡單的菜單即可完成FPGA程序升級。

圖4 空調(diào)顯示設(shè)定器實物圖
(2)驅(qū)動實現(xiàn)
圖5所示為SPI驅(qū)動時序?qū)崪y圖,讀寫數(shù)據(jù)的時鐘頻率5MHz,占空比50%,時序滿足要求,相較于數(shù)據(jù)手冊時序要求,均有較大裕量,對于Flash的讀寫擦除均可穩(wěn)定執(zhí)行。

圖5
(3)上位機
圖6為程序升級完成后上位機提示框,表示程序升級完成并且升級成功,此時需對顯示設(shè)定器進行重新上電,新的配置文件即可加載。若提示框顯示升級失敗,則重新選擇文件,再次執(zhí)行升級步驟,直至提示升級結(jié)束。

圖6 上位機升級完成界面
本文設(shè)計了基于FPGA的空調(diào)顯示設(shè)定器程序自升級方案,通過與數(shù)據(jù)下載功能共用串口進行程序文件升級,使升級流程極大簡化,升級作業(yè)不需要打開空調(diào)顯示設(shè)定器機箱蓋板,只需通過串口線連接電腦即可升級,方便快捷,提升了售后服務(wù)效率,單人即可完成操作,縮短了升級作業(yè)時間,節(jié)省了人力成本,目前本方案設(shè)計空調(diào)顯示設(shè)定器已在380AL車型載客運營2年,性能穩(wěn)定。