李玉琳,郝巨東,劉開源,于 波,賀瑾瑜
(北方自動(dòng)控制技術(shù)研究所,太原 030000)
隨著信息科學(xué)的飛速發(fā)展,數(shù)字I/O板已經(jīng)成為數(shù)字信號(hào)處理中非常重要的組成部分,其性能將決定整個(gè)數(shù)據(jù)采集和存儲(chǔ)技術(shù)系統(tǒng)的性能,它廣泛應(yīng)用于雷達(dá)、通信、遙測遙感等領(lǐng)域。數(shù)字I/O板具有信號(hào)輸入輸出功能,但其信號(hào)傳輸通道少,一般用于簡單的數(shù)據(jù)I/O設(shè)備中,在信號(hào)復(fù)雜的工作條件下,就難以滿足使用需求。另外,現(xiàn)有的數(shù)字I/O卡功能單一,僅能對(duì)信號(hào)進(jìn)行單一的傳輸,無法滿足設(shè)備中不同信號(hào)時(shí)序不同的需要[1]。
我軍某型防空武器系統(tǒng)的火控計(jì)算機(jī)外圍單體信號(hào)大部分是數(shù)字信號(hào),且信號(hào)通道多,時(shí)序交互性強(qiáng)[2]。針對(duì)以上特點(diǎn),傳統(tǒng)數(shù)字I/O板不能滿足設(shè)計(jì)需求,因此,需要設(shè)計(jì)一種適合于產(chǎn)生火控計(jì)算機(jī)外圍單體信號(hào)的數(shù)字I/O板[3]。本文利用單片機(jī)豐富的外設(shè)接口功能以及FPGA的引腳數(shù)目多、邏輯控制能力強(qiáng)的特點(diǎn),設(shè)計(jì)了基于單片機(jī)和FPGA架構(gòu)的多通道數(shù)字I/O板,模擬產(chǎn)生了火控計(jì)算機(jī)外圍單體的數(shù)字信號(hào)環(huán)境,實(shí)現(xiàn)了火控計(jì)算機(jī)與外圍單體信號(hào)之間的基本交互。
在外圍環(huán)境模擬系統(tǒng)對(duì)火控計(jì)算機(jī)進(jìn)行檢測與維修的過程中,數(shù)字I/O板起著相當(dāng)重要的作用,上位機(jī)與火控計(jì)算機(jī)的通信主要依靠數(shù)字I/O板來實(shí)現(xiàn)。其過程如圖1所示:
火控計(jì)算機(jī)與火控控制面板、鍵盤顯示器及其他單體間的信息傳輸是通過對(duì)外接口實(shí)現(xiàn)的。火控計(jì)算機(jī)共有12個(gè)接口,分別為:設(shè)備測試接口、穩(wěn)定跟蹤計(jì)算機(jī)接口、激光電子箱接口、電視跟蹤箱接口、火炮隨動(dòng)控制箱接口、車體信息處理機(jī)接口、檢測計(jì)算機(jī)接口、火控控制面板接口、導(dǎo)彈控制接口、鍵盤顯示器接口、打印機(jī)接口和電源接口。說明:1)火控計(jì)算機(jī)與車體信息處理機(jī)的接口是經(jīng)火控轉(zhuǎn)接盒轉(zhuǎn)接的(火控轉(zhuǎn)接盒XS1接火控計(jì)算機(jī)、XS3接車體信息處理機(jī));2)火控計(jì)算機(jī)電源由炮塔配電箱供給,經(jīng)火控機(jī)架濾波后送入火控計(jì)算機(jī)。
傳統(tǒng)的數(shù)字I/O板在檢測與維修過程中暴露出信號(hào)通道少、時(shí)序功能缺乏等問題,運(yùn)用到武器裝備上具有一定的局限性。為了解決這些問題,本文將單片機(jī)和FPGA相結(jié)合設(shè)計(jì)出具有多通道的數(shù)字I/O板,可以很容易實(shí)現(xiàn)各信號(hào)的時(shí)序交互,極大地提高了維修訓(xùn)練模擬器的工作效率,其整體設(shè)計(jì)思路如圖2所示:
某自行高炮火控計(jì)算機(jī)外圍環(huán)境模擬系統(tǒng)括上位機(jī)、數(shù)字I/O板、轉(zhuǎn)接板和火控機(jī)。其中上位機(jī)、數(shù)字I/O板、轉(zhuǎn)接板3部分又稱為模擬器實(shí)裝部組件。其工作原理為[4]:上位機(jī)通過RS232串口將不同的模擬信號(hào)傳輸給數(shù)字I/O板,數(shù)字I/O板將模擬控制信號(hào)通過轉(zhuǎn)接口傳輸?shù)交鹂赜?jì)算機(jī)中,實(shí)現(xiàn)外圍信號(hào)和火控機(jī)單體之間的信號(hào)傳遞。此外,火控機(jī)中的故障點(diǎn)信號(hào)可以反向傳回?cái)?shù)字I/O板再到上位機(jī),顯示故障點(diǎn)位置,在實(shí)裝條件下完成裝備維修。
單片機(jī)硬件電路,主要作用是將上位機(jī)發(fā)送的模擬信號(hào)通過FSMC總線傳送到FPGA中。本文選用的STM32的引腳封裝為LQFP144,采用STM32最小系統(tǒng),包括STM32微控制器、JTAG下載接口、晶振、電源和復(fù)位電路[5]。
下載和復(fù)位:本文使用5針的JTAG接口,通過J-Link在線下載。并在nRST引腳連接簡單的復(fù)位電路,與JTAG調(diào)試端口相連,既可使用開發(fā)調(diào)試工具強(qiáng)行復(fù)位STM32,也可實(shí)現(xiàn)手動(dòng)復(fù)位。
啟動(dòng)方式:通過STM32的兩個(gè)外部引腳BOOT0和BOOT1來選擇最小系統(tǒng)的啟動(dòng)方式。這里選擇將這兩個(gè)引腳分別與GND相連,即STM32存儲(chǔ)空間的起始地址對(duì)齊到用戶FLASH模塊。
1)晶振電路
在本設(shè)計(jì)中使用外部時(shí)鐘源,外接兩個(gè)晶振為其內(nèi)部提供時(shí)鐘源,一個(gè)為外部高速時(shí)鐘(HSE),使用25 MHz晶振系統(tǒng)提供較為精準(zhǔn)的168 MHz主頻,另一個(gè)是外部低速時(shí)鐘(LSE),接頻率為32 768 Hz晶振,提供日歷時(shí)鐘功能。
2)串口轉(zhuǎn)換電路
本設(shè)計(jì)串口電路采用的是美國電子工業(yè)協(xié)會(huì)EIA制定的RS-232C電氣標(biāo)準(zhǔn)。其電氣規(guī)范為:在邏輯“0”時(shí),電平范圍是 -5 V~-15 V,在邏輯“1”時(shí),電平范圍是+5 V~+15 V。而單片機(jī)的CMOS電路電氣規(guī)范低電平為0V,高電平為3.3 V,為了實(shí)現(xiàn)兩種電平之間的轉(zhuǎn)換,要引入如下頁圖3所示的串口轉(zhuǎn)換電路。
3)電源部分電路
電路提供的電壓VCC為5.0 V,單片機(jī)和FPGA的工作電壓VDD為3.3 V和2.5 V,通過圖4的電源電路,可將VCC轉(zhuǎn)換為單片機(jī)和FPGA的正常工作電壓。
FPGA在多路并行數(shù)據(jù)處理方面有明顯的優(yōu)勢,設(shè)計(jì)采用STM32F407的FSMC(Flexible Static Memory Controller,可變靜態(tài)存儲(chǔ)控制器)并行總線接口實(shí)現(xiàn)與FPGA的連接,可構(gòu)成具有多通道功能I/O的設(shè)備。
1)FSMC總線
FSMC是STM32系列采用的一種新型的存儲(chǔ)器擴(kuò)展技術(shù),支持不同的外部存儲(chǔ)器類型,其中就包括多種類型的靜態(tài)存儲(chǔ)器[6]。因此,可將FPGA當(dāng)成STM32F407的外部SRAM來配置,通過擴(kuò)展出的數(shù)據(jù)/地址/控制三總線來實(shí)現(xiàn)操作,這樣既能保證較快的操作速度,又具有很高的靈活性。
根據(jù)應(yīng)用需求,設(shè)計(jì)接口數(shù)據(jù)寬度為16位,地址線為10位,將數(shù)據(jù)線FSMC_D[15~0]、地址線FSMC_A[9~0]連接到 FPGA 的 I/O 端口,尋址空間為1K字,F(xiàn)SMC_NOE和FSMC_NEW分別是接口讀寫信號(hào),F(xiàn)SMC_NE1、FSMC_NE2作為片選信號(hào)。除此之外,還有一些中斷信號(hào)(INT),用于FPGA向STM32F417發(fā)送中斷請(qǐng)求。這樣FPGA就作為STM32F417的外設(shè)連接在了系統(tǒng)中,通過存儲(chǔ)器讀寫指令就可以訪問FPGA[7],接口電路硬件連接如圖5所示。
2)設(shè)備選擇
將FPGA直接連接在STM32F407的FSMC總線上,F(xiàn)SMC總線地址映射分為4個(gè)Banks,各占256 M字節(jié)空間。每個(gè)Bank有獨(dú)立的片選信號(hào),我們使用的Bank1又分為4個(gè)region,設(shè)定region對(duì)應(yīng)的片選信號(hào)高低電平就可以選用不同的設(shè)備,且各設(shè)備對(duì)應(yīng)的地址范圍也不同。如圖6所示:
在FPGA工作過程中,F(xiàn)PGA是通過片內(nèi)RAM中的程序來設(shè)置芯片的工作狀態(tài),但是片內(nèi)RAM的數(shù)據(jù)掉電會(huì)丟失,所以在設(shè)計(jì)中需要選擇一個(gè)非易失性的存儲(chǔ)器來存儲(chǔ)配置程序。通常將這種存儲(chǔ)器稱為配置芯片[8]。因此,F(xiàn)PGA在上電之后,存儲(chǔ)在配置芯片中的配置程序?qū)⑼ㄟ^某種模式重新載入到片內(nèi)的配置RAM中。在芯片配置完成之后,芯片才會(huì)按照用戶設(shè)計(jì)的功能正常工作,即進(jìn)入用戶模式。在本文中,為了方便調(diào)試,設(shè)計(jì)選用PS和JTAG兩種配置方式。
配置芯片選擇Altera公司專用的配置芯片EPC2LC20,通過PS方式在線配置FPGA,JTAG用來配置EPC2LC20。EPC2與FPGA之間用跳線隔開,PS在線下載FPGA時(shí),斷開跳線,EPC2不用從板上卸下。當(dāng)跳線連接時(shí),由EPC2直接配置FPGA。
此外,F(xiàn)PGA外圍還配置了雙向驅(qū)動(dòng)電路,其功能是利用SN74HCT245PWLE外接電路實(shí)現(xiàn)FPGA的雙向驅(qū)動(dòng)功能,既可以實(shí)現(xiàn)信號(hào)采集,又可以輸出信號(hào)。如下頁圖7所示。
在裝備實(shí)際應(yīng)用過程中,火控機(jī)對(duì)外接口連接各單體。在檢測與維修裝備的過程中,火控計(jì)算機(jī)的對(duì)外接口可以通過轉(zhuǎn)接電路連接到FPGA的雙向驅(qū)動(dòng)電路上,從而實(shí)現(xiàn)火控機(jī)與數(shù)字I/O卡的連接,滿足了其在脫離實(shí)裝條件下的信號(hào)需求。
FPGA能夠?qū)崿F(xiàn)I/O板的數(shù)據(jù)輸出與采集,主要在于FPGA內(nèi)部邏輯的設(shè)計(jì),本文FPGA的設(shè)計(jì)開發(fā)使用Altera公司自己的綜合開發(fā)平臺(tái)QuartusⅡ。
單片機(jī)的FMSC總線控制產(chǎn)生了4類信號(hào):讀寫信號(hào)、地址信號(hào)、片選信號(hào)以及數(shù)據(jù)信號(hào)。這4種信號(hào)傳輸?shù)紽PGA中控制信號(hào)的輸出與采集。在FPGA內(nèi)部,設(shè)有地址譯碼、設(shè)備選擇總線驅(qū)動(dòng)以及信號(hào)輸出與采集模塊,并采用原理圖和Verilog HDL語言輸入相結(jié)合的方式,實(shí)現(xiàn)各部分功能模塊的設(shè)計(jì)。如圖8所示。
1)地址譯碼模塊。地址譯碼電路,主要由74 154譯碼器組成,外部與STM32的FSMC總線接口地址線相連,能夠?qū)?duì)應(yīng)的地址轉(zhuǎn)換為內(nèi)部邏輯電路的選通信號(hào),從而對(duì)不同地址的輸出電路進(jìn)行操作,實(shí)現(xiàn)多通道的目的[10]。
2)設(shè)備選擇模塊。設(shè)備選擇模塊,主要由邏輯模塊74688等值比較器組成,與單片機(jī)輸出的片選信號(hào)相連。兩塊FPGA的片選信號(hào)各不相同,可以通過設(shè)置每塊FPGA內(nèi)部NE1、NE2、NE3的高低電平不同,與74 688比較器比較,從而選擇不同的設(shè)備。
3)總線驅(qū)動(dòng)模塊。總線驅(qū)動(dòng)電路,使用742541邏輯器件來配合上面的地址譯碼電路,外部與STM32與FPGA接口的數(shù)據(jù)線相連,可以使用總線驅(qū)動(dòng)電路對(duì)不同地址位置的數(shù)據(jù)進(jìn)行讀寫。
4)信號(hào)輸出與采集模塊。信號(hào)輸出與采集模塊,使用74 374芯片進(jìn)行寫操作,使用74541芯片進(jìn)行讀操作。按一次讀寫字節(jié)長度,可分為16位讀寫與8位讀寫。
為測試該設(shè)計(jì)是否能夠滿足多通道信號(hào)通信進(jìn)行實(shí)驗(yàn)驗(yàn)證。設(shè)置高電平:接口X4_S35X4_S37為高電平,其余低電平,連接測試點(diǎn);探頭連接測試點(diǎn);在輸入面板上點(diǎn)擊輸入(采集);觀察采集面板信號(hào)變化。采集結(jié)果如圖9和下頁圖10所示。
界面設(shè)計(jì)結(jié)合了電路板的信號(hào)輸出與采集接口的實(shí)際分布,考慮到了程序員調(diào)試過程中經(jīng)常需要用到的一些控件。整個(gè)設(shè)計(jì)界面由以下幾個(gè)部分組成:初始化設(shè)置、信號(hào)方向及FPGA選擇、信號(hào)輸出顯示面板、信號(hào)采集顯示面板。通過上位機(jī)對(duì)數(shù)字I/O板的控制,模擬產(chǎn)生了火控計(jì)算機(jī)外圍單體的數(shù)字信號(hào)環(huán)境,實(shí)現(xiàn)了火控計(jì)算機(jī)與外圍單體信號(hào)之間的基本交互。
本文提出的基于單片機(jī)和FPGA的數(shù)字I/O板設(shè)計(jì)方案經(jīng)實(shí)際驗(yàn)證驗(yàn)證是可行的,可以容易實(shí)現(xiàn)各信號(hào)的時(shí)序交互,提高了維修訓(xùn)練模擬器的工作效率,滿足其功能需求,具有一定軍事應(yīng)用價(jià)值。