基于嵌入式處理器軟核Nios II的IP復用技術及應用
引言:
嵌入式處理器是嵌入式系統的核心,有硬核和軟核之分。其中,嵌入式處理器軟核以其更大的使用靈活性,更低廉的成本,受到了研發人員和市場的廣泛歡迎。Altera公司較新推出的嵌入式處理器軟核Nios II更是軟核處理器中的先進代表,它已經快速的滲透到教學、科研以及生產等各個方面,積極的推動著嵌入式技術、SOPC(可編程片上系統)的發展。
1 Nios II 簡介
二十世紀九十年代末,可編程邏輯器件(PLD)的復雜度已經能夠在單個可編程器件內實現整個系統,可編程片上系統(SOPC)已成為現實。Altera將可編程器件的優勢拓展到嵌入處理器的開發設計中,推出了成功的產品。
2000年,Altera發布了Nios處理器,這是Altera Excalibur嵌入處理器計劃中的第一個產品,是第一款用于可編程邏輯器件的可配置軟核處理器。
2004年6月,Altera公司在第一代Nios取得巨大成功的基礎上,又推出了更加強大的Nios II嵌入式處理器。它采用32位的RISC指令集,32位數據通道,5級流水線技術,可在一個時鐘周期內完成一條指令的處理。與Nios相比,Nios II處理器擁有更高的性能和更小的FPGA占用率,并且提供了強大的軟件集成開發環境Nios II IDE,所有軟件開發任務包括編輯、編譯、調試程序和下載都可以在該環境下完成。
Altera公司將Nios II處理器以IP( Intellectual Property知識產權)核的方式提供給設計者,有快速型(Nios II/f)、經濟型(Nios II/e)和標準型(Nios II/f)三種處理器內核,每種內核都對應不同的性能范圍和資源成本。設計者可以根據實際的情況來選擇和配置處理器內核,輕松的創建一款“完美”的處理器。
2 Nios II系統的開發流程
Nios II系統的開發主要可以分為兩大步:搭建硬件平臺和針對目標平臺編寫應用軟件程序。
Altera公司設計的開發工具SOPC Builder,將所有和處理器子系統相關的底層詳細資料集中到這個工具中,讓用戶完全置身于直觀的圖形界面下添加和配置所需的處理器和功能部件,并自動完成包含定義存儲器映射、中斷控制和總線控制在內的系統配置工作,使得開發工作簡單化,設計者能夠更加著眼于系統的功能而無須拘泥于過多的細節。
集成于SOPC Builder中的Nios II IDE,采用絕大部分設計者非常熟悉的標準GNU環境,能夠讓設計者在其中完成所有的軟件開發任務。
搭建硬件平臺所需的工作如下:
(1) 硬件開發的主要工作是構建Nios II系統模塊。在SOPC Builder中選取合適的CPU、存儲器以及外圍器件(如片內存儲器、PIO、UART和片外存儲器接口),并通過參數的設計定制它們的功能。
部件選擇完成后,使用Quartus II軟件選取具體的Altera可編程器件系列,并對SOPC Builder生成的HDL設計文件進行布局布線,生成Nios II系統模塊;
(2) 將生成的Nios II系統模塊加入到Quartus II工程下的頂層設計文件,為Nios II系統模塊的I/O端口分配管腳或者連接FPGA內部邏輯。I/O管腳分配后,進行編譯,系統生成配置文件;
(3) 使用Quartus II編程器和Altera下載電纜,下載配置文件到開發板。當硬件設計校驗完成后,可以將配置文件下載到開發板上的非易失存儲器里。
下載完硬件配置文件后,軟件開發者就可以把此開發板作為軟件開發的初期硬件平臺對軟件功能進行開發驗證。
軟件開發流程歸納如下:
(1) 在用SOPC Builder進行硬件設計的同時,就可以開始編寫獨立于器件的C/C++軟件,比如算法或控制程序,并可以使用現成的軟件庫和開放的操作系統內核來加快開發進程。
(2) 在NIOS II IDE中建立新的軟件工程,這時,IDE會針對目標硬件平臺自動生成一個定制HAL系統庫,這個庫能為程序和底層硬件的通信提供接口驅動程序。
(3) 使用NIOS II IDE對軟件工程進行編譯、調試,運行。[1]
3 Nios II 在汽車行駛記錄儀中的應用
汽車行駛記錄儀是對車輛行駛速度、時間、里程以及有關車輛行駛的其它狀態信息進行記錄、存儲并可通過接口實現數據輸出的數字式電子記錄裝置。
采用基于嵌入式處理器Nios II的SOPC技術來設計汽車行駛記錄儀的優勢如下:
汽車行駛記錄儀需要存儲、傳輸數據,必要時還需具備顯示和警報功能,系統接口較多,SOPC Builder提供了大量的接口IP核供用戶選擇,使得設計方便快捷,能夠大大的縮短開發工期。
汽車行駛記錄儀因其特殊的工作環境,要求盡可能的減小產品體積并提高系統的可靠性,SOPC的特點就是在FPGA上高度集成,盡量減少芯片外部連線,十分符合汽車行駛記錄儀對體積和可靠性的要求。
汽車行駛記錄儀應該具備適應用戶需求變化的能力,具備良好的可擴展性和升級特性。可編程邏輯器件FPGA以及Nios II的特點使得通過對軟件代碼的更新就可以完成系統的維護和升級。
3.1 硬件平臺的搭建
根據汽車行駛記錄儀的功能,將整個系統劃分為四個部分,如圖1所示。
圖1 系統整體框圖
圖1中各部分的功能如下:
Nios II系統模塊:中央控制單元。包含Nios II處理器,Avalon總線,中斷時鐘以及與外設的接口。控制程序由運行在Nios II CPU上的軟件完成,負責對信號的采集,處理和存儲操作,并控制通信過程;信號輸入部分:接收外部傳感器和開關量信號,并進行處理,將處理后的數據送到Nios II系統模塊的數據采集端口PIO);
存儲器部分:存儲采集的數據;
通信模塊:采用RS-232,負責與分析儀之間的通信。
根據各個部分的功能和開發板的配置(本項目所用的開發板為Stratix 1s10,FPGA的型號為:EP1S10F780C6),需要用到的外圍器件有:對模擬輸入信號進行模數轉換的ADC0809;用于試驗中存儲數據的SRAM存儲器;用于試驗數據備份的Flash存儲器;裝載軟件程序、異常處理的SDRAM存儲器;記錄儀與分析儀之間的通信接口RS232;用于超速報警的LED;等等。
按照系統的硬件規劃,在SOPC Builder需要添加如下IP模塊:
3.2 軟件實現
汽車行駛記錄儀的各種應用功能是由C/C++語言編寫的軟件程序來完成。在Nios II IDE中新建一個工程時,系統會針對目標硬件平臺自動生成硬件抽象層的應用程序接口(HAL API)供程序編寫人員調用。
汽車行駛記錄儀的工作過程如下:
1. 汽車行駛過程中,記錄儀每0.2秒采集并記錄事故疑點數據;每分鐘記錄行駛狀態數據;在記錄的過程中要記錄較高車速。
2. 汽車停駛時,記錄儀并沒有停止工作,但此時不進行數據的采集和記錄。在停車過程中,分析儀可以采集記錄儀的數據。
3. 車輛,駕駛員基本信息采取系統初始化時預置進記錄儀的形式。
4. 記錄儀是否采集數據用鑰匙門控制,接收到鑰匙門啟動車輛的信號,記錄儀開始記錄;接收到鑰匙門的熄火信號,停止記錄。
5. 記錄儀掉電,備份數據,停止工作。
根據上述記錄儀的工作過程,軟件程序整體流程設計如圖2所示。
圖2 汽車行駛記錄儀工作整體流程圖
結論:本文所介紹的新一代汽車行駛記錄儀,采用了基于嵌入式處理器Nios II的SOPC設計技術,能夠更完整,更精確,更多樣化的記錄汽車在行駛過程中的各種數據,符合國家標準,取得了較滿意的效果。在設計過程中大量復用成熟的IP軟核,很大程度上提高了系統的穩定性,大大節省了系統開發時間,充分體現了IP復用技術帶來的好處。
參考文獻
1 任愛鋒 初秀琴 常存 孫肖子. 基于FPGA的嵌入式系統設計. 西安:西安電子科技大學出版社,2004年10月
2 彭澄廉 周博等. 挑戰SOC-- 基于Nios的SOPC設計與實踐. 北京:清華大學出版社.2004年7月
3王金明 楊吉斌. 數字系統設計與Verilog HDL. 北京:電子工業出版社, 2003年6月
4 GB/T 19056—2003 汽車行駛記錄儀國家標準
5朱運航 李雪東. 基于IP核復用的SoC設計技術探討. 微計算機信息. 2006 年3-2. 2
6 司利增. 汽車計算機控制. 北京 人民交通出版社,2000年2月
相關閱讀:
- ...2015/01/21 17:14·基于嵌入積分滑模策略的船舶運動控制
- ...2010/06/11 15:15·一種基于嵌入式系統和Internet的FPGA動態配置方案
- ...2010/04/01 15:41·基于嵌入式DSP應用的低功耗優化策略
- ...2009/09/27 16:30·基于嵌入式系統的虛擬儀器設計
- ...2009/09/27 15:49·基于嵌入式系統的機械車載監控終端研究
- ...· Efinix® 全力驅動AI邊緣計算,成功推出Trion™ T20 FPGA樣品, 同時將產品擴展到二十萬邏輯單元的T200 FPGA
- ...· 英飛凌亮相進博會,引領智慧新生活
- ...· 三電產品開發及測試研討會北汽新能源專場成功舉行
- ...· Manz亞智科技跨入半導體領域 為面板級扇出型封裝提供化學濕制程、涂布及激光應用等生產設備解決方案
- ...· 中電瑞華BITRODE動力電池測試系統順利交付北汽新能源
- ...· 中電瑞華FTF系列電池測試系統中標北京新能源汽車股份有限公司
- ...· 中電瑞華大功率高壓能源反饋式負載系統成功交付中電熊貓
- ...· 中電瑞華國際在電動汽車及關鍵部件測評研討會上演繹先進測評技術