安書董 李明 段小虎 畢宏彥
摘 要: 在航空電子系統(tǒng)中,離散量數(shù)字電路的應(yīng)用和需求越來越多,而傳統(tǒng)的離散量接口芯片集成度較低,功耗較高,且在惡劣環(huán)境下,離散量的穩(wěn)定性和可靠性很難得到保證?;谏鲜鼍窒蓿榻B一種新型離散量數(shù)字接口轉(zhuǎn)換芯片,能夠?qū)?8 V航空電源電平轉(zhuǎn)換為TTL電平,由于其高集成、低功耗,并且能夠在惡劣環(huán)境下展示出較穩(wěn)定的性能,因此具有廣泛的應(yīng)用前景。同時(shí),對(duì)該芯片的讀/寫操作提出一種不同于傳統(tǒng)的“CPU+專用芯片”的控制方法,采用可編程邏輯器件(FPGA)來實(shí)現(xiàn)對(duì)該芯片的控制,以VHDL語言編寫控制邏輯,用Xilinx集成開發(fā)環(huán)境對(duì)設(shè)計(jì)進(jìn)行了綜合,并編寫測試碼從而進(jìn)行仿真。結(jié)果表明,該方法不但能夠?qū)υ撔酒M(jìn)行讀/寫控制,還能極大程度提高系統(tǒng)處理數(shù)據(jù)的能力,并具有更高的穩(wěn)定性和可靠性。
關(guān)鍵詞: 離散量數(shù)字接口; 讀/寫控制; 可編程邏輯器件; VHDL
中圖分類號(hào): TN876?34; TN918.7 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2017)20?0083?04
Abstract: The application and requirement of discrete magnitude digital circuits are increased extremely in the avionics systems, but the traditional discrete magnitude interface chips have low integration and high power dissipation, and the stability and reliability of discrete magnitude couldnt be guaranteed. According to the above situations, a new discrete magnitude interface convention chip is introduced, which can convert the 28 V aircraft power supply level into TTL level. It has wide application prospect because of its high integration, low power dissipation, and stable performance in severe environment. A control method different from the traditional “CPU + dedicated chip” methods is proposed, in which the field programmable gate array (FPGA) is used to control the discrete magnitude interface chip, the VHDL is adopted to compile the control logic, the Xilinx integrated development environment is employed to synthesize the design, and the test code is compiled for simulation. The simulation results show that the method can perform the read?write control of the chip, improve the data processing ability of the system, and has high stability and reliability.
Keywords: discrete magnitude digital interface; read and write control; field programmable gate array; VHDL
0 引 言
近年來,我國航空工業(yè)發(fā)展迅速,各種機(jī)載設(shè)備都在更新?lián)Q代。尤其是在航空電子系統(tǒng)中,機(jī)載計(jì)算機(jī)作為飛機(jī)上電子設(shè)備的控制核心,需要采集越來越多的離散量信號(hào)用來獲取當(dāng)前系統(tǒng)的工作狀態(tài),同時(shí),需要輸出大量的離散量信號(hào)來發(fā)送指令。因此,離散量接口電路已經(jīng)越來越多的應(yīng)用于航電系統(tǒng)中,逐漸成為航空電子電路系統(tǒng)中的基本組成部分[1]。然而,隨著離散量的增多,傳統(tǒng)的離散量接口不僅集成度上較低,而且在惡劣環(huán)境下,很難保證數(shù)據(jù)的可靠性。本文提出采用一種新型HKA03201離散量數(shù)字接口芯片,具有自檢測校驗(yàn)、錯(cuò)誤隔離、雙倍冗余等功能,因此提高了數(shù)據(jù)的可靠性和穩(wěn)定性。同時(shí)由于集成小型化,在功耗、成本和面積重量等方面都具有一定的優(yōu)勢。
用于控制該離散量接口芯片讀/寫的方法有很多,傳統(tǒng)的方法是CPU通過程序直接控制芯片,這樣會(huì)在程序上大量占用CPU,極大程度削弱CPU的處理能力,從而降低系統(tǒng)的可靠性。本文提出用可編程邏輯FPGA器件作為離散量接口芯片的控制器,采用VHDL語言編寫控制邏輯,通過一種橋接邏輯,實(shí)現(xiàn)對(duì)HKA03201芯片的控制,這樣可以極大程度地減少CPU的工作時(shí)間,從而提高系統(tǒng)處理數(shù)據(jù)的能力,增強(qiáng)系統(tǒng)的穩(wěn)定性和可靠性。
1 HKA03201芯片
通常情況下,系統(tǒng)中需要幾十到幾百種離散量信號(hào),這些離散量信號(hào)均是28 V的航空電源電平,不能接入航電系統(tǒng)中作為控制信號(hào),因此需要通過電路轉(zhuǎn)換將28 V的航空電源電平轉(zhuǎn)換為TTL電平,如果使用外置電路和器件完成幾百路的轉(zhuǎn)換,則占用大量的空間,在控制板面積、重量、功耗、體積等各個(gè)方面均耗費(fèi)較大且成本較高[1]。因此,本文提出一種新型離散量數(shù)字接口芯片,是一款用于將離散量轉(zhuǎn)換為TTL電平的接口集成電路。電路集成32路離散量通道,并且每個(gè)輸入通道支持28 V/Open,28 V/GND,OPEN/GND三種離散量輸入形式。由于集成小型化,在控制板面積、功耗和成本上均有大幅度提升,芯片外部配置參考電平,以適應(yīng)不同航空電平的離散量信號(hào),使芯片應(yīng)用具有更大的靈活性和更強(qiáng)的適應(yīng)系統(tǒng)能力。端口最高耐壓可達(dá)55 V,防止離散量輸入端口浪涌電壓的沖擊,增加芯片的可靠性。
該芯片能夠?qū)崿F(xiàn)32路離散量到TTL電平的轉(zhuǎn)換,提供SPI和異步存儲(chǔ)器訪問兩種接口。離散量端口可配置為DMA模式和自掃描模式,輸入16位時(shí)可配置為雙倍冗余模式,輸入端口提供有源快速泄放功能,內(nèi)置振蕩器,采取雙時(shí)鐘冗余。該芯片的內(nèi)部結(jié)構(gòu)如圖1所示。
該芯片具有以下特性:
(1) 內(nèi)置振蕩器,采用雙時(shí)鐘冗余。
(2) 芯片上電或工作狀態(tài)時(shí)均可進(jìn)行自檢測試,并將檢測結(jié)果反饋給fault_ch_reg寄存器;
(3) 采用延時(shí)采樣輸入,屏蔽掉高頻抖動(dòng),并且屏蔽時(shí)間可配置,以滿足屏蔽不同離散量抖動(dòng)時(shí)間的要求;受芯片外圍寄生電容和電感的影響,在離散量采集單元采集瞬間,會(huì)產(chǎn)生高頻的抖動(dòng),在實(shí)際的操作中,必須屏蔽掉該高頻抖動(dòng),采用延時(shí)采樣輸入信號(hào)的方式,對(duì)應(yīng)芯片中的bsel<2:0>引腳。
(4) 對(duì)離散量的數(shù)據(jù)更新設(shè)計(jì)兩種模式:自掃描模式和DMA模式。自掃描模式下,debounce模塊使能,確認(rèn)輸入數(shù)據(jù)未抖動(dòng)后進(jìn)行數(shù)據(jù)更新。DMA模式下,數(shù)據(jù)實(shí)時(shí)更新,32路輸入信號(hào)只要有一路發(fā)生變化則即時(shí)輸出脈沖中斷信號(hào)data_DMA(脈沖寬度50 ns)。芯片默認(rèn)進(jìn)行自掃描模式,配置DMA模式采用配置內(nèi)部寄存器dma_ch_reg的方式。
(5) 雙路冗余提供額外的雙路數(shù)據(jù)校驗(yàn)功能,且冗余模式使能可配置。冗余模式使能端口(高有效),對(duì)應(yīng)HKA03201的Redundant端口置高后,芯片進(jìn)入冗余模式。ch_in<31:16>與ch_in<15:0>組成校驗(yàn)對(duì),ch_in<0>對(duì)應(yīng)ch_in<16>,ch_in<1>對(duì)應(yīng)ch_in<17>,以此類推。
(6) 可以通過SPI和異步存儲(chǔ)器兩種接口訪問各寄存器。接口模式選擇端口interface_sel置低電平為異步總線接口,高電平為SPI接口。在芯片的輸出端,有ready和fault信號(hào),芯片上電自檢查時(shí)ready信號(hào)拉低,當(dāng)自檢查結(jié)束時(shí),ready信號(hào)置高,表明芯片穩(wěn)定,可以開始正常工作。fault信號(hào)對(duì)應(yīng)芯片70腳,為芯片工作出錯(cuò)信號(hào)(低有效),當(dāng)芯片出現(xiàn)內(nèi)部功能錯(cuò)誤時(shí),falut信號(hào)置低。data<15:0>對(duì)應(yīng)芯片的Pin51?66,為異步讀寫雙向端口,用于寄存器的異步配置和讀取。
2 HKA03201芯片控制器
對(duì)HKA03201芯片的控制,傳統(tǒng)方法采用“CPU+專用芯片”,以CPU作為控制核心,通過CPU讀取內(nèi)存中軟件的方法來實(shí)現(xiàn)控制。軟件的實(shí)現(xiàn)方法固然簡單易行,然而,必將長時(shí)間占用大量CPU的時(shí)間,削弱了CPU處理數(shù)據(jù)的能力,同時(shí)降低系統(tǒng)的可靠性[2?3]。
針對(duì)以上情況,結(jié)合目前比較成熟的FPGA技術(shù),通過向可編程邏輯器件(FPGA)中燒寫程序邏輯,這些邏輯按照一定的時(shí)序來控制HKA03201芯片。其中,邏輯采用VHDL語言進(jìn)行自頂向下的設(shè)計(jì),而VHDL語言所設(shè)計(jì)的邏輯需要滿足HKA03201芯片的讀寫時(shí)序,這樣將FPGA的輸出端和HKA03201芯片的輸入端連接,通過FPGA輸出符合HKA03201芯片讀寫時(shí)序的信號(hào)來控制HKA03201芯片,從而實(shí)現(xiàn)離散量信號(hào)和TTL電平之間的轉(zhuǎn)換。用此方法取代傳統(tǒng)的設(shè)計(jì)結(jié)構(gòu), 對(duì)系統(tǒng)的可靠性和抗干擾能力有較大提升,而且成本較低。
本文采用Xilinx公司Virtex?5系列的FPGA作為硬件載體,以ISEDesignSuite作為開發(fā)環(huán)境,以VHDL語言編寫控制邏輯來實(shí)現(xiàn)對(duì)HKA03201芯片的控制。其控制電路的架構(gòu)如圖2所示。
3 FPGA控制器邏輯設(shè)計(jì)
根據(jù)對(duì)信號(hào)實(shí)時(shí)性的分析,芯片提供兩種接口用于與CPU的數(shù)據(jù)交互,分別是串行(SPI)接口和異步接口。由interface_sel端口進(jìn)行接口模式選擇,高電平時(shí)為串行(SPI)接口,低電平為異步接口。根據(jù)前面的芯片介紹,只有當(dāng)芯片選擇異步接口時(shí),才能對(duì)端口數(shù)據(jù)端進(jìn)行校驗(yàn),因此,選擇異步接口進(jìn)行通信。CPU通過總線以地址查詢的方式訪問離散量數(shù)字接口芯片。當(dāng)進(jìn)行異步接口訪問時(shí),還需要配置讀寫信號(hào)r_wn,低電平時(shí)異步寫,高電平時(shí)異步讀。寫操作用來對(duì)離散量數(shù)字接口芯片內(nèi)部的寄存器進(jìn)行配置,而讀操作可以獲取芯片內(nèi)部寄存器的當(dāng)前狀態(tài)。由于本文采用橋接式設(shè)計(jì),因此FPGA的輸出口各信號(hào)必須符合HKA03201芯片的讀寫時(shí)序,因此在FPGA的邏輯編寫時(shí),需構(gòu)造有限狀態(tài)機(jī)來滿足系統(tǒng)的時(shí)序需求。
根據(jù)HKA03201芯片讀操作的時(shí)序圖,如圖3所示,在讀操作開始時(shí),首先需要r_wn為高電平,即需要FPGA對(duì)應(yīng)的HKA03201_R_or_W_N引腳輸出高電平。與此同時(shí),CPU將需要訪問的地址信號(hào)通過ADDR地址總線發(fā)送給ADDR,再通過FPGA輸出端HKA03201_ADDR向HKA03201芯片發(fā)送地址信號(hào)。由于這兩步在讀時(shí)序中最先體現(xiàn),因此為第一狀態(tài),命名為RD_WR_ADDR_SETUP。
根據(jù)時(shí)序圖,在10 ns之后,CS_N信號(hào)被置低,片選有效,開始進(jìn)行讀操作,數(shù)據(jù)通過dout端口讀出,將此狀態(tài)命為Chip_select。其中,10 ns的等待時(shí)間在VHDL邏輯代碼中可以通過計(jì)數(shù)器在時(shí)鐘下進(jìn)行倒計(jì)數(shù)來實(shí)現(xiàn)。
讀操作結(jié)束后,將CS_N信號(hào)置低電平,而ADDR和R_W_N依舊保持有效(低電平),此狀態(tài)稱為RD_WR_ADDR_HOLD。最后所有信號(hào)均恢復(fù)復(fù)位狀態(tài),重新進(jìn)入IDLE狀態(tài)。
采用VHDL語言建立狀態(tài)機(jī),首先需要利用可枚舉的狀態(tài)類型定義信號(hào)。
隨后建立狀態(tài)機(jī)進(jìn)程,并且在進(jìn)程中定義狀態(tài)的轉(zhuǎn)移,在這里,設(shè)置好敏感信號(hào),根據(jù)時(shí)鐘信號(hào)和敏感信號(hào)的變化,狀態(tài)機(jī)的狀態(tài)也發(fā)生改變,最終完成HKA03201芯片所需的時(shí)序。
寫操作可以類似讀操作進(jìn)行同樣的邏輯設(shè)計(jì)。在寫操作(r_wn為低)開始時(shí),輸入需要寫入數(shù)據(jù)寄存器的地址,同時(shí)R_W_N信號(hào)置低,稱此狀態(tài)為RD_WR_ADDR_setup,隨后將CS_N信號(hào)置低,片選有效,開始進(jìn)行寫操作,數(shù)據(jù)通過din端口寫入,將此狀態(tài)命為Chip_select。在寫操作結(jié)束后,將CS_N信號(hào)置高而ADDR地址信號(hào)和R_W_N信號(hào)依然有效,此狀態(tài)命名為RD_WR_ADDR_Hold,最后將CS_N信號(hào)置低,從而結(jié)束寫操作。寫操作的時(shí)序示意圖如圖4所示。
在整個(gè)讀/寫操作的時(shí)序圖中,因?yàn)閕dle是狀態(tài)的起點(diǎn)和終點(diǎn),因此idle作為when之后的第一項(xiàng),在列出狀態(tài)轉(zhuǎn)移到其他狀態(tài)的條件,寫出狀態(tài)的轉(zhuǎn)移流程圖,圖5為HKA03201芯片整個(gè)狀態(tài)轉(zhuǎn)移過程[4?5]。根據(jù)以上邏輯和狀態(tài)的轉(zhuǎn)移,即可實(shí)現(xiàn)PFGA按照HKA03201芯片的時(shí)序?qū)π酒x寫的控制。
4 仿真結(jié)果
筆者用VHDL語言在ISEDesignSuite 13.3的開發(fā)環(huán)境中進(jìn)行了設(shè)計(jì)輸入與綜合仿真,并將設(shè)計(jì)代碼下載到FPGA上[6?7]。為了驗(yàn)證設(shè)計(jì)的正確性,通過ISEDesignSuite 13.3自帶的仿真工具ISE Simulator Lite(也可以使用第三方軟件modelsim)對(duì)HKA03201芯片的工作狀況進(jìn)行仿真驗(yàn)證。在模擬時(shí),筆者編寫了用戶端的test測試程序, 由其向FPGA控制器發(fā)出各個(gè)命令RESET、READ,WRITE等, 并提供工作時(shí)鐘和控制寄存器參數(shù),圖6,圖7分別表示芯片在讀/寫過程中的仿真時(shí)序圖。
通過驗(yàn)證仿真的時(shí)序圖可以發(fā)現(xiàn),仿真結(jié)果的時(shí)序和HKA03201芯片說明中要求的讀/寫操作時(shí)序完全一致,即證明了FPGA對(duì)HKA03201芯片進(jìn)行讀/寫操作的可行性。
5 結(jié) 論
通過板級(jí)調(diào)試發(fā)現(xiàn),本文所設(shè)計(jì)的控制器不僅能夠完全滿足航空電子系統(tǒng)中多路離散量向TTL電平轉(zhuǎn)換的需求,而且系統(tǒng)設(shè)計(jì)簡潔,性能穩(wěn)定并且具有較高的靈活性,可用于不同的高性能高、要求系統(tǒng)中,達(dá)到了預(yù)期的目標(biāo),并且本文所采用的橋接的方法通過PFGA對(duì)HKA03201芯片的控制可以拓展到其他場合并加以應(yīng)用。
參考文獻(xiàn)
[1] 魏婷.一種新型離散量接口電路的設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2015,25(3):167?170.
[2] 謝東迅.基于FPGA的SDRAM控制器設(shè)計(jì)[J].長沙醫(yī)學(xué)院學(xué)報(bào),2008(2):53?58.
[3] 左清清,梁爭爭,鄭毓琦.基于FPGA的頻率信號(hào)實(shí)時(shí)程控計(jì)數(shù)電路[J].現(xiàn)代電子技術(shù),2014,37(24):160?162.
[4] 周德新,崔海青,謝曉敏.機(jī)載電子設(shè)備故障診斷專家系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2010,33(24):80?82.
[5] 王培利.雙口RAM在圖像處理系統(tǒng)中的應(yīng)用研究[J].光電技術(shù)應(yīng)用,2014,29(4):45?60.
[6] 段然,樊曉椏,張盛兵,等.基于狀態(tài)機(jī)的SDRAM控制器的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2005,41(17):110?112.
[7] 高希權(quán),溫鑫.FPGA實(shí)現(xiàn)DDR內(nèi)存條的控制[J].電子技術(shù),2008(12):66?67.