《電子技術(shù)應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于NIOS II的導航系統(tǒng)平臺的設計
基于NIOS II的導航系統(tǒng)平臺的設計
摘要: 導航系統(tǒng)的傳統(tǒng)開發(fā)方式是把功能相對固定的導航計算機子系統(tǒng)設計成不同的實現(xiàn)形式,,這就造成了對硬件重復研發(fā),,相應軟件重復調(diào)整等低效率現(xiàn)狀,。 SOPC具有硬件上靈活裁剪、擴充和在線升級的優(yōu)點,,而且市場上有豐富的IP核資源可選,,能成功地解決上述問題。
關(guān)鍵詞: SoPC IP核 導航系統(tǒng) NIOS II
Abstract:
Key words :

 目前廣泛應用的MIMU/GPS組合導航系統(tǒng)的實現(xiàn)形式,,依應用領(lǐng)域的不同而復雜多樣,但是導航計算機板卡負責的工作則相對固定,,其主要包括:采集各路傳感器輸入信號,;濾波、融合計算,;將計算結(jié)果輸送給機電控制子系統(tǒng),;提供各種人機交互接口,如LCD,,鍵盤等,。

長期以來,針對各種應用領(lǐng)域或相同領(lǐng)域的不同場合,,由于對控制計算能力,、接口電路數(shù)據(jù)吞吐能力等要求的差異,我們習慣于把功能相對固定的導航計算機子系統(tǒng)設計成不同的實現(xiàn)形式,,這就造成了對硬件重復研發(fā),,相應軟件重復調(diào)整等低效率現(xiàn)狀。

SOPC(System On Programmable Chip)技術(shù)是Altera公司提出的一種靈活高效的SOC解決方案,。它的宗旨是將處理器,、存儲器、I/O口,、硬件協(xié)處理器或加速器,、一般的用戶邏輯等系統(tǒng)的設計需要的功能模塊都集成到一個FPGA芯片里,構(gòu)建一個可編程的片上系統(tǒng),。它具有硬件上靈活裁剪,、擴充和在線升級的優(yōu)點,而且市場上有豐富的IP 核資源可選,,能成功地解決上述問題,。

1.組合導航系統(tǒng)硬件電路的實現(xiàn)

硬件框圖如圖1所示,它主要包括以Nios處理器為主體的片內(nèi)邏輯(圖中虛線包圍部分,,下文簡稱片內(nèi)邏輯),、MIMU與GPS數(shù)據(jù)采集電路和人機交互接口電路三個部分組成,。

1.1片內(nèi)邏輯的設計

本文采用了Altera公司Cyclone系列FPGA EP1C12Q240、NIOS軟核處理器及其開發(fā)和仿真工具(包括 SOPC Builder,,DSP Builder,,Simulink,Quatus II等),。在設計中利用的IP核里,,比如Nios核,片內(nèi)Boot ROM,,用于FIFO的片內(nèi)雙口RAM,,定時器,Avalon片上總線,,Avalon三態(tài)總線橋,,SDRAM接口,JTAG UART等都來自SOPC Builder軟件,,在此不必贅述,。下面重點討論其他IP核及其接口電路的設計和功用。


圖 1 基于Nios的SOPC組合導航系統(tǒng)設計框圖

6 DSP協(xié)處理器 通過定制一些傳統(tǒng)的DSP運算指令或反復出現(xiàn)的計算密集型算法指令,,來硬件加速CPU的處理能力,。IP核可以通過硬件描述語言自己編寫,也可以借助Simulink和DSP Builder來輔助實現(xiàn),。

7 UART 基于RS232通信協(xié)議的串行通路接口,。UART-0負責傳遞主控設備的命令(如復位、初始化等),、輸入主控設備提供的電子地圖的庫信息,,輸出處理結(jié)果等。UART-1則負責導入GPS OEM板的數(shù)據(jù),。該IP核來自于SOPC Builder軟件,。

8 A/D接口 除了片選信號,A/D接口時序基本遵循SPI協(xié)議,,因此選用了SOPC中相應的IP,, 而對于片選信號,在系統(tǒng)中額外添加一個通用I/O口來控制之,。這樣每次對A/D的操作分兩步進行:先置低GPIO,,再進行SPI操作。

9 同步采樣控制邏輯 負責控制MIMU和GPS信號的同步采集,,為數(shù)據(jù)融合提供準確的輸入,。該IP核由設計者自行編制,詳述請見MIMU和GPS信號采集系統(tǒng)的設計部分。

10 VGA控制 基于Avalon流模式的VGA控制器,。它主要由VGA時序發(fā)生器,,F(xiàn)IFO存儲器,Avalon流模式接口組成,。該IP由設計者用VHDL語言自行編制,,人機接口部分將詳述之。

11 ATA橋 連接CF卡,,保存電子地圖信息庫,、中英文字符點陣庫等海量信息。該IP核來自于SOPC Builder軟件,。

12 GPIO 最常規(guī)的外設控制接口,,本系統(tǒng)的LCD、LED,、鍵盤都是采用該接口進行連接,,時序上的驅(qū)動控制則是由軟件實現(xiàn)的。該IP核來自于SOPC Builder軟件,。

13 ASMI EPCS4系列配置芯片的專門接口。該IP核來自于SOPC Builder軟件,。與之相連的Flash存貯空間中有如下內(nèi)容:一部分是FPGA的配置文件,。另一部分作為常規(guī)程序存儲器用。采用此方案可以省去片外專門的程序存儲Flash,,充分利用了配置芯片的資源,。由于串行器件的帶寬限制,我們可以通過將主程序裝載入SDRAM中運行來提高程序的運行速度,。

1.2 MIMU和GPS信號采集系統(tǒng)的設計

MIMU的信號采集工作由微型慣性測量組合,、采樣/保持器AD1154、多路開關(guān)MAX4540,、A/D 轉(zhuǎn)換器完成,;而GPS的信號采集工作則主要由GPS接收機完成。接收機采用了Jupiter OEM 板,,可輸出位置,、速度、偽距,、偽距率,、載波相位、衛(wèi)星星歷等數(shù)據(jù),。系統(tǒng)啟動期間,,主控設備通過UART-0向片上邏輯發(fā)送命令并獲取信息反饋,對系統(tǒng)導航參數(shù)進行初始化;接收的初始化數(shù)據(jù)可由片上邏輯的UART-1傳遞給GPS接收機,,以實現(xiàn)GPS的快速初始化和快速鎖定衛(wèi)星.

我們所討論的MIMU和GPS信號的同步,,是指需要同步的兩個數(shù)據(jù)源在原始信息更新時刻對齊,而不是在經(jīng)過計算或A/D轉(zhuǎn)換延時等不同通信路徑傳輸后,,在輸出結(jié)果的時刻對齊,。GPS接收機解碼轉(zhuǎn)換后輸出的秒同步脈沖(1PPS,每秒一個脈沖)是與UTC秒點對齊的,。接收機嚴格地在每個1PPS脈沖邊沿進行一次偽距,、偽距變化率、載波相位,、GPS 標準授時,、定位等測量,其脈沖沿為GPS數(shù)據(jù)更新時刻,。我們把1PPS脈沖接入FPGA中,,由同步采樣控制邏輯保證脈沖到來的同時產(chǎn)生一個SSP(同步采樣脈沖,synchronous sampling pulse),,實現(xiàn)MIMU和GPS數(shù)據(jù)在整秒時刻同步,。當然,MIMU數(shù)據(jù)更新率遠小于1秒,,我們可以把1PPS脈沖作為FPGA內(nèi)部的1秒定時器的標準同步觸發(fā)時刻,,通過邏輯倍頻產(chǎn)生相應頻率的SSP輸出。在GPS信號丟失的情況下,,F(xiàn)PGA內(nèi)部的秒定時器則作為MIMU采樣信號的時基標準,。

1.3人機交互接口的設計

七段數(shù)碼管負責標識系統(tǒng)的工作狀態(tài);而鍵盤除了作為初始化參數(shù)輸入的備用接口外,,還可以負責切換LCD,、VGA顯示器等的顯示模式;液晶屏則相應地顯示輸入與輸出的導航參數(shù),;VGA接口形象的輸出電子地圖背景,、車輛當前位置及運行軌跡等信息。

excalibur.h 頭文件定義了七段數(shù)碼管,、按鍵數(shù)據(jù)結(jié)構(gòu)指針na_seven_seg_pio 和na_button_pio通過對指針所指PIO數(shù)據(jù)結(jié)構(gòu)內(nèi)的np_piodata數(shù)據(jù)寄存器操作,,來讓數(shù)碼管顯示特定的字符或判斷是否有按鍵按下,以及是哪個按鍵,。

本文采用型號Optrex 16027的LCD屏,,頭文件pio_lcd16027.h定義了九個控制子程序,通過這些程序完成對LCD的控制,。標準VGA畫面大小是640*480,,每秒60幀左右,。像素時鐘高達25.175MHZ。如果每個點都由Nios軟件掃描實現(xiàn),,那么在40ns的間隔內(nèi),,最多能讓共作在50MHZ的CPU執(zhí)行兩條指令。所以,,我們采用DMA控制器在流模式VGA控制器和SRAM之間建立一條DMA傳送通道,,讓硬件完成像素信息的自動讀取,緩解了CPU的工作壓力,。VGA時序發(fā)生器的設計源程序由VHDL語言實現(xiàn),,下面是部分示意代碼:

 

2.系統(tǒng)工作原理

系統(tǒng)上電后,串行配置器件EPCS4配置FPGA,;然后NIIOS啟動,,運行片內(nèi)ROM中的Bootloader。Bootloader根據(jù)選擇端的控制選擇工作模式,,模式分為兩種:調(diào)試模式和運行模式,。在調(diào)試模式下,Bootloader啟動GERMS監(jiān)控程序,,我們可以對系統(tǒng)進行開發(fā)調(diào)試,。在運行模式下,Bootloader將EPCS4中存儲的主程序裝載到SRAM中全速運行,。然后,,程序指針復位指向SRAM中的系統(tǒng)主程序。主程序先初始化并配置系統(tǒng),,然后開始正常工作,。

3.軟件設計

由于本控制系統(tǒng)架構(gòu)龐大,,我們在軟件設計時使用實時操作系統(tǒng)microC/OS作為軟件內(nèi)核,。該操作系統(tǒng)具有內(nèi)核小,代碼公開等優(yōu)點,,而且Altera公司提供了關(guān)于此系統(tǒng)移植方面比較詳細的技術(shù)文檔,,操作起來簡單易行。系統(tǒng)軟件分為三個層次設計:一,、驅(qū)動層,。主要包括了UART驅(qū)動,LED驅(qū)動,,鍵盤驅(qū)動,,LCD驅(qū)動,VGA驅(qū)動,,SPI總線設備驅(qū)動等等,。二、內(nèi)核層。包括系統(tǒng)任務和內(nèi)核調(diào)度,。三,、應用層。

任務主要有數(shù)據(jù)采集任務,,數(shù)據(jù)融合任務,,數(shù)據(jù)濾波任務,導航計算任務,,顯示任務等,。其中還有一些用于控制管理性質(zhì)的任務,包括錯誤捕捉任務及其相應的處理方程序等,。

系統(tǒng)的核心是操作系統(tǒng)的內(nèi)核調(diào)度,,負責整個軟件的運作。系統(tǒng)相關(guān)的層面是以任務為單位的系統(tǒng)模塊,,這些任務模塊負責市實現(xiàn)導航系統(tǒng)的正常運行,,負責系統(tǒng)模塊的配置控制和差錯檢測,響應處理用戶的操作,。硬件相關(guān)的層面以驅(qū)動任務為單位,,它們作為操作系統(tǒng)和硬件系統(tǒng)中介,直接負責對硬件設備的驅(qū)動控制,。軟件分層封裝,,用任務調(diào)度的方法來實現(xiàn),可以提高軟件設計的效率,,降低設計風險,,利于移植和升級。

4.結(jié)論

NIOS符合工業(yè)技術(shù)的潮流,,即硬件設計軟件化,。此設計方法可以對硬件做全面細致的模擬仿真,減少硬件設計的錯誤,,有效降低了開發(fā)成本,,增強了產(chǎn)品的競爭力。而且由于它屬于單片解決方案,,不僅提高系統(tǒng)的魯棒性,,還可以有效地保護開發(fā)者的知識產(chǎn)權(quán)。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。