文/劉紅偉 范永坤
為解決航空電子系統(tǒng)不標準的問題,北大西洋公約組織(NATO)成立了聯合標準航空電子系統(tǒng)結構委員會(Allied Standard Avionics Architecture Concil, ASSAAC)。 目前,ASSAAC標準已經發(fā)布了5個標準:軟件標準、封裝標準、通信及網絡標準、通用功能模塊標準及系統(tǒng)相關問題指南標準。同時,ASSAAC定義了通用功能模塊和通用處理模塊兩種標準硬件類型。為進一步降低成本,模塊由一系列的通用標準電路單元集進行構造,如圖1所示。這些通用標準單元集包 括MSU(Module Support Unit)、PSU(Power Supply Unit)、RU(Routing Unit)、NIU(Network Interface Unit)、PU(Processing Unit),模 塊 物理接口是電源的輸入接口和網絡的輸入輸出接口。其中MSU負責監(jiān)視和控制模塊運行,提供模塊BIT檢測、初始化配置、維護測試等功能,完成模塊健康狀態(tài)檢測和模塊故障管理的數據采集輸入。
模塊內部芯片的供電電壓的狀態(tài)是模塊健康狀態(tài)的重要檢測指標,是故障管理的重要數據輸入。本專利提出了一種通用功能模塊和通用處理模塊的電壓采集方法,來監(jiān)控模塊內部芯片的供電電壓5V、3.3V、2.5V、1.8V、1.2V、1.05V、1.0V等的電壓狀態(tài),并通過MSU進行檢測結果采集。
目前的航空電子模塊內部電壓的檢測多根據自身模塊的特點采用的電壓采集方法也不同:或利用模塊中集成模數轉換功能的DSP來采集模塊內的電壓,或利用模塊中集成模數轉換功能的高性能FPGA來采集模塊內的電壓,或采用多個單路的模數轉換芯片來采集模塊內的電壓。同一個系統(tǒng)中也無法形成統(tǒng)一標準的電壓采集方法。
國內在研的模數轉換芯片多是單通道的模數轉換器,一片芯片只能采集一路電壓信號,用在模塊內部進行電壓采集就需要多片芯片,需要的數字接口的數量也會隨著芯片數量成倍增加,不利于高集成度航空電子模塊的設計。
圖2:多通道電壓采集的硬件框圖
圖3:AD7327驅動接口框圖
圖4:AD7327驅動的讀時序圖
TI公司生產的AD7327是一款8通道12位采樣率為500kSPS的模數轉換芯片,檢測電壓范圍可以軟件配置成四種:-10V~+10V,-5V~+5V,-2.5V~+2.5V,0V~10V,數字輸出接口為高速串行外設接口(Serial Peripheral Interface,SPI)。目前,限于通用功能模塊和通用處理模塊的MSU單元多使用沒有集成模數轉換功能的大規(guī)??删幊涕T陣列(FPGA),模塊的健康狀態(tài)檢測結果多需要在沒有集成模數轉換功能的FPGA內部轉換成并行數據進行上報,因此,需要對FPGA擴充SPI接口,并轉換成并行數據進行上報電壓檢測結果。
SPI通信作為一種串行總線通信方式,有簡單、高速、全雙工傳輸等優(yōu)點,廣泛應用于數據通信、數據處理、航空電子、消費電子產品等領域,通過FPGA來進行SPI總線的協(xié)議解析、轉換是常用的數據處理方式。
電壓采集的硬件框圖如圖2所示。待采集的板載電壓,例如3.3V、2.5V、1.8V、1.1V、1.0V等模擬信號通過AD7327的IN0~IN7管腳輸入到模擬通道選擇器,模擬通道選擇器根據通道選擇信號依次選擇IN0至IN7先后輸出到模數轉換器進行模數轉換,轉換結果輸出到控制邏輯寄存器,控制邏輯寄存器(包含輸入范圍寄存器1、輸入范圍寄存器2、通道選擇寄存器)輸出控制參數(如輸入電壓范圍為0~10V的選擇參數、參考電壓為內部參考的選擇參數、選擇編碼格式為補碼格式的選擇參數等)到模數轉換器,控制邏輯寄存器輸出通道選擇參數到模擬通道選擇器來選擇IN0~IN7通道中的一個輸入通道作為模數轉化器的輸入。同時控制邏輯寄存器列化出高數串行總線至管腳,分別為DIN、SCLK、CS、DOUT,其中DIN為高速串行總線的輸入數據管腳、SCLK為高速串行總線的時鐘輸入管腳、CS為高速串行總線的片選管腳、DOUT為高速串行總線的數據輸出管腳。DIN、SCLK、CS、DOUT通過包含于MSU的大規(guī)??删幊涕T陣列(FPGA)的普通輸入輸出管腳分別連接至AD7327驅動 的adc_sdo_i、ad_sclk_o、adc_cs_n_o、ad_sdi_o四個信號接口。
AD7327驅動的接口信號圖如圖3所示,分為時鐘和復位接口部分、AD7327驅動的控制信號和數據接口部分、AD7327的高速串行總線接口部分三部分。時鐘和復位接口部分信號定義和功能如下:fpga_clk_i為AD7327的主時鐘,由FPGA內部產生的100MHz時鐘提供;adc_clk_i為輸入給AD7327高速串行時鐘的時鐘源,由FPGA的100MHz時鐘分頻提供;reset_n_i為AD7327驅動的復位信號,復位AD7327驅動中的信號量的初始值,信號為低有效。AD7327驅動的控制信號和數據接口部分信號定義和功能如下:wr_data_n_i為寫入AD7327寄存器的使能信號,信號為低有效;data_i[15:0]為寫入AD7327寄存器的16位數據;data_o[15:0]為AD7327驅動輸出的模數轉換結果的并行數據;data_rd_ready_o為AD7327驅動輸出信號,當電平為高時,可以從data_o[15:0]讀出模數轉換結果;data_wr_ready_o為AD7327驅動輸出信號,當電平為高時,寫入AD7327的寄存器操作完成,具備再次寫入的狀態(tài)。AD7327的高速串行總線接口部分信號定義和功能如下:adc_sdo_i為AD7327驅動的串行數據輸入信號;ad_sdi_o為AD7327驅動的串行數據輸出信號;ad_sclk_o為AD7327驅動的串行時鐘輸出信號;adc_cs_n_o為AD7327驅動的片選輸出信號,為低電平有效。
圖5:AD7327驅動的寫時序圖
圖6:AD7327驅動內部的狀態(tài)機轉換圖
圖7:全通道模數轉換流程圖
圖8:測試平臺框圖
圖9:測試結果輸出
AD7327驅動的讀時序圖如圖4。以100MHz的時鐘信號fpga_clk_i作為讀時序的時鐘源,在表征數據可讀的狀態(tài)信號data_rd_ready_o為高時,通道轉換結果的數據data_o[15:0]有效,可以讀取其中的高3位作為通道編碼:“000”為IN0通道,“001”為IN1通道,依次類推,IN0~IN7各通道編碼唯一,data_o[15:0]的低12位作為該通道的輸出結果。
AD7327驅動的寫時序圖如圖5。以100MHz的時鐘信號fpga_clk_i作為讀時序的時鐘源,在表征數據可寫入的狀態(tài)信號wr_data_n_i下降沿時開始將已經提前1個時鐘周期準備好的數據data_i[15:0]寫入不同的AD7327控制邏輯寄存器,其中data_i[15:0]的高3位作為寄存器編碼:“101”表征輸入范圍寄存器1、“110”表征輸入范圍寄存器2、“111”表征通道選擇寄存器;低12位為寫入該寄存器的值。當寫入寄存器操作完成時,表征完成寫操作的信號wr_data_ready_o變高。
采用狀態(tài)機的軟件架構使得AD7327驅動程序流程更具層次化,增強了軟件的可讀性和規(guī)范性。AD7327驅動內部的狀態(tài)機主要由空等待狀態(tài)、開始轉換狀態(tài)、將轉換結果數據寫入AD7327驅動的寄存器狀態(tài)、片選延時狀態(tài)、傳輸數據狀態(tài)、等待結束狀態(tài)共6個狀態(tài)組成。模塊上電、FPGA程序加載完成后,FPGA產生復位信號reset_n_i=0使得狀態(tài)機處于空等待狀態(tài),復位信號reset_n_i=1變?yōu)楦唠娖綍r,復位結束,等待1個100MHz的時鐘周期,狀態(tài)機進入AD7327開始轉換狀態(tài),芯片開始進行預定通道的模數轉換;等待1個100MHz的時鐘周期后狀態(tài)機進入將轉換結果數據寫入AD7327驅動的寄存器狀態(tài),該狀態(tài)持續(xù)16個周期的10MHz的時鐘周期,之后狀態(tài)機進入片選延時狀態(tài),確保AD7327驅動內表征轉換結果數據的寄存器穩(wěn)定;等待1個10MHz的時鐘周期之后進入傳輸數據狀態(tài),此時data_rd_ready_o=1(其他狀態(tài)為0),此時data_o[15:0]有效,可以讀出對應通道的模數轉換結果;等待1個100MHz的時鐘周期后狀態(tài)機進入等待結束狀態(tài),該狀態(tài)持續(xù)等待完成一次轉換的周期數(完成1次轉換的周期數是198個100MHz的時鐘周期數);之后狀態(tài)機又進入空等待狀態(tài),完成一次模數轉換的循環(huán)。AD7327驅動內部的狀態(tài)機如圖6所示。
AD7327全通道模數轉換流程圖如圖7所示。首先開啟電源,AD7327供電穩(wěn)定,大規(guī)模可編程門陣列(FPGA)供電正常,加載程序成功并正常工作;第二步,FPGA中的AD7327驅動向AD7327的輸入范圍寄存器1寫入“1011111111100000”來選擇通 道IN0、IN1、IN2、IN3的 輸 入 模 擬 信號的范圍為0V至10V;第三步,FPGA中的AD7327驅動向AD7327的輸入范圍寄存器2寫入“1101111111100000”來選擇通道IN4、IN5、IN6、IN7的輸入模擬信號的范圍為0V至10V;第四步,FPGA中的AD7327驅動向AD7327的通道選擇寄存器寫入“1111111111100000”選擇轉換的通道IN0、IN1、IN2、IN3、IN4、IN5、IN6、IN7;第五步,FPGA中的AD7327驅動向AD7327的通道控制邏輯寄存器寫入“10011100000011000”來選擇依次轉換的順序為:通道IN0、IN1、IN2、IN3、IN4、IN5、IN6、IN7,選 擇 參考電壓為內部參考,選擇輸入的模擬信號為單端信號,選擇編碼為補碼格式;第六步,FPGA中的AD7327驅動向AD7327的寫入“0000000000000000”,標志位Write_Bit=0,啟動ADC轉換,從IN0開始轉換;第七步,依次轉換通道IN1、IN2、IN3、IN4、IN5、IN6、IN7。循環(huán)至第六步開啟下一次的ADC轉換。
該多通道電壓采集方法已成功應用于某航空電子系統(tǒng),并達到如下性能指標:
(1)最多采集電壓通道數:8路。
(2)輸入電壓范圍可變:可軟件配置選擇電壓輸入范圍-10V~+10V;-5V~+5V;-2.5V~+2.5V;0V~+10V四種電壓輸入范圍。
(3)采樣率:500kSPS。
(4)每個通道的信噪比:大于72dB。
(5)單通道數據精度:0.61mV/LSB(最大輸入范圍差為5V);1.22mV/LSB(最大輸入范圍差為10V);2.441mV/LSB(最大輸入范圍差為20V)
(6)單AD7327的最大功耗:17mW。
某通用模塊測試平臺框圖如圖 8所示。板載的電壓3.3V、2.5V、1.2V、1.5V、1.05V分別接入AD7327芯片的IN0~IN4通道,經AD7327模數轉換,通過SPI總線將結果傳輸給FPGA,FPGA內的AD7327驅動完成串行SPI總線協(xié)議到16位數據線的并行總線的協(xié)議轉換并傳輸,處理器PowerPC通過并行總線接口將轉換結果接收并解析并行協(xié)議,并通過串口輸出結果。
處理器PowerPC上運行嵌入式VxWorks操作系統(tǒng),并輸出板載電壓的輸出,如圖 9所示。
本文針對航空電子系統(tǒng)中通用功能模塊和通用處理模塊的健康狀態(tài)檢測,提供了一種多通道電壓同時采集的電壓采集方法,降低了航空電子模塊中多種電壓采集時電路設計的復雜性,并在工程中得到實現和驗證,可以滿足航空電子系統(tǒng)模塊對電壓的采集的健康管理需求。