新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于嵌入式處理器軟核Nios II的IP復(fù)用技術(shù)及應(yīng)用

基于嵌入式處理器軟核Nios II的IP復(fù)用技術(shù)及應(yīng)用

作者: 時(shí)間:2017-05-25 來(lái)源:網(wǎng)絡(luò) 收藏

  引言:

本文引用地址:http://m.butianyuan.cn/article/201705/359676.htm

  處理器是系統(tǒng)的核心,有硬核和軟核之分。其中,處理器軟核以其更大的使用靈活性,更低廉的成本,受到了研發(fā)人員和市場(chǎng)的廣泛歡迎。Altera公司最新推出的嵌入式處理器軟核Nios II更是軟核處理器中的先進(jìn)代表,它已經(jīng)快速的滲透到教學(xué)、科研以及生產(chǎn)等各個(gè)方面,積極的推動(dòng)著嵌入式技術(shù)、SOPC(可編程片上系統(tǒng))的發(fā)展。

  1 Nios II 簡(jiǎn)介

  二十世紀(jì)九十年代末,可編程邏輯器件(PLD)的復(fù)雜度已經(jīng)能夠在單個(gè)可編程器件內(nèi)實(shí)現(xiàn)整個(gè)系統(tǒng),可編程片上系統(tǒng)(SOPC)已成為現(xiàn)實(shí)。Altera將可編程器件的優(yōu)勢(shì)拓展到嵌入處理器的開(kāi)發(fā)設(shè)計(jì)中,推出了成功的產(chǎn)品。

  2000年,Altera發(fā)布了Nios處理器,這是Altera Excalibur嵌入處理器計(jì)劃中的第一個(gè)產(chǎn)品,是第一款用于可編程邏輯器件的可配置軟核處理器。

  2004年6月,Altera公司在第一代Nios取得巨大成功的基礎(chǔ)上,又推出了更加強(qiáng)大的Nios II嵌入式處理器。它采用32位的RISC指令集,32位數(shù)據(jù)通道,5級(jí)流水線(xiàn)技術(shù),可在一個(gè)時(shí)鐘周期內(nèi)完成一條指令的處理。與Nios相比,Nios II處理器擁有更高的性能和更小的FPGA占用率,并且提供了強(qiáng)大的軟件集成開(kāi)發(fā)環(huán)境Nios II IDE,所有軟件開(kāi)發(fā)任務(wù)包括編輯、編譯、調(diào)試程序和下載都可以在該環(huán)境下完成。

  Altera公司將Nios II處理器以IP( Intellectual Property知識(shí)產(chǎn)權(quán))核的方式提供給設(shè)計(jì)者,有快速型(Nios II/f)、經(jīng)濟(jì)型(Nios II/e)和標(biāo)準(zhǔn)型(Nios II/f)三種處理器內(nèi)核,每種內(nèi)核都對(duì)應(yīng)不同的性能范圍和資源成本。設(shè)計(jì)者可以根據(jù)實(shí)際的情況來(lái)選擇和配置處理器內(nèi)核,輕松的創(chuàng)建一款“完美”的處理器。

  2 Nios II系統(tǒng)的開(kāi)發(fā)流程

  Nios II系統(tǒng)的開(kāi)發(fā)主要可以分為兩大步:搭建硬件平臺(tái)和針對(duì)目標(biāo)平臺(tái)編寫(xiě)應(yīng)用軟件程序。

  Altera公司設(shè)計(jì)的開(kāi)發(fā)工具SOPC Builder,將所有和處理器子系統(tǒng)相關(guān)的底層詳細(xì)資料集中到這個(gè)工具中,讓用戶(hù)完全置身于直觀的圖形界面下添加和配置所需的處理器和功能部件,并自動(dòng)完成包含定義存儲(chǔ)器映射、中斷控制和總線(xiàn)控制在內(nèi)的系統(tǒng)配置工作,使得開(kāi)發(fā)工作簡(jiǎn)單化,設(shè)計(jì)者能夠更加著眼于系統(tǒng)的功能而無(wú)須拘泥于過(guò)多的細(xì)節(jié)。

  集成于SOPC Builder中的Nios II IDE,采用絕大部分設(shè)計(jì)者非常熟悉的標(biāo)準(zhǔn)GNU環(huán)境,能夠讓設(shè)計(jì)者在其中完成所有的軟件開(kāi)發(fā)任務(wù)。

  搭建硬件平臺(tái)所需的工作如下:

  (1)硬件開(kāi)發(fā)的主要工作是構(gòu)建Nios II系統(tǒng)模塊。在SOPC Builder中選取合適的CPU、存儲(chǔ)器以及外圍器件(如片內(nèi)存儲(chǔ)器、PIO、UART和片外存儲(chǔ)器接口),并通過(guò)參數(shù)的設(shè)計(jì)定制它們的功能。

  部件選擇完成后,使用Quartus II軟件選取具體的Altera可編程器件系列,并對(duì)SOPC Builder生成的HDL設(shè)計(jì)文件進(jìn)行布局布線(xiàn),生成Nios II系統(tǒng)模塊;

  (2)將生成的Nios II系統(tǒng)模塊加入到Quartus II工程下的頂層設(shè)計(jì)文件,為Nios II系統(tǒng)模塊的I/O端口分配管腳或者連接FPGA內(nèi)部邏輯。I/O管腳分配后,進(jìn)行編譯,系統(tǒng)生成配置文件;

  (3)使用Quartus II編程器和Altera下載電纜,下載配置文件到開(kāi)發(fā)板。當(dāng)硬件設(shè)計(jì)校驗(yàn)完成后,可以將配置文件下載到開(kāi)發(fā)板上的非易失存儲(chǔ)器里。

  下載完硬件配置文件后,軟件開(kāi)發(fā)者就可以把此開(kāi)發(fā)板作為軟件開(kāi)發(fā)的初期硬件平臺(tái)對(duì)軟件功能進(jìn)行開(kāi)發(fā)驗(yàn)證。

  軟件開(kāi)發(fā)流程歸納如下:

  (1)在用SOPC Builder進(jìn)行硬件設(shè)計(jì)的同時(shí),就可以開(kāi)始編寫(xiě)?yīng)毩⒂谄骷腃/C++軟件,比如算法或控制程序,并可以使用現(xiàn)成的軟件庫(kù)和開(kāi)放的操作系統(tǒng)內(nèi)核來(lái)加快開(kāi)發(fā)進(jìn)程。

  (2)在NIOS II IDE中建立新的軟件工程,這時(shí),IDE會(huì)針對(duì)目標(biāo)硬件平臺(tái)自動(dòng)生成一個(gè)定制HAL系統(tǒng)庫(kù),這個(gè)庫(kù)能為程序和底層硬件的通信提供接口驅(qū)動(dòng)程序。

  (3) 使用NIOS II IDE對(duì)軟件工程進(jìn)行編譯、調(diào)試,運(yùn)行。[1]

  3 Nios II 在汽車(chē)行駛記錄儀中的應(yīng)用

  汽車(chē)行駛記錄儀是對(duì)車(chē)輛行駛速度、時(shí)間、里程以及有關(guān)車(chē)輛行駛的其它狀態(tài)信息進(jìn)行記錄、存儲(chǔ)并可通過(guò)接口實(shí)現(xiàn)數(shù)據(jù)輸出的數(shù)字式電子記錄裝置。

  采用基于嵌入式處理器Nios II的SOPC技術(shù)來(lái)設(shè)計(jì)汽車(chē)行駛記錄儀的優(yōu)勢(shì)如下:

  汽車(chē)行駛記錄儀需要存儲(chǔ)、傳輸數(shù)據(jù),必要時(shí)還需具備顯示和警報(bào)功能,系統(tǒng)接口較多,SOPC Builder提供了大量的接口IP核供用戶(hù)選擇,使得設(shè)計(jì)方便快捷,能夠大大的縮短開(kāi)發(fā)工期。

  汽車(chē)行駛記錄儀因其特殊的工作環(huán)境,要求盡可能的減小產(chǎn)品體積并提高系統(tǒng)的可靠性,SOPC的特點(diǎn)就是在FPGA上高度集成,盡量減少芯片外部連線(xiàn),十分符合汽車(chē)行駛記錄儀對(duì)體積和可靠性的要求。

  汽車(chē)行駛記錄儀應(yīng)該具備適應(yīng)用戶(hù)需求變化的能力,具備良好的可擴(kuò)展性和升級(jí)特性??删幊踢壿嬈骷﨔PGA以及Nios II的特點(diǎn)使得通過(guò)對(duì)軟件代碼的更新就可以完成系統(tǒng)的維護(hù)和升級(jí)。

  3.1 硬件平臺(tái)的搭建

  根據(jù)汽車(chē)行駛記錄儀的功能,將整個(gè)系統(tǒng)劃分為四個(gè)部分,如圖1所示。

   

1.jpg

  圖1 系統(tǒng)整體框圖

  圖1中各部分的功能如下:

  Nios II系統(tǒng)模塊:中央控制單元。包含Nios II處理器,Avalon總線(xiàn),中斷時(shí)鐘以及與外設(shè)的接口。控制程序由運(yùn)行在Nios II CPU上的軟件完成,負(fù)責(zé)對(duì)信號(hào)的采集,處理和存儲(chǔ)操作,并控制通信過(guò)程;

  信號(hào)輸入部分:接收外部傳感器和開(kāi)關(guān)量信號(hào),并進(jìn)行處理,將處理后的數(shù)據(jù)送到Nios II系統(tǒng)模塊的數(shù)據(jù)采集端口(PIO);

  存儲(chǔ)器部分:存儲(chǔ)采集的數(shù)據(jù);

  通信模塊:采用RS-232,負(fù)責(zé)與分析儀之間的通信。

  根據(jù)各個(gè)部分的功能和開(kāi)發(fā)板的配置(本項(xiàng)目所用的開(kāi)發(fā)板為Stratix 1s10,F(xiàn)PGA的型號(hào)為:EP1S10F780C6),需要用到的外圍器件有:對(duì)模擬輸入信號(hào)進(jìn)行模數(shù)轉(zhuǎn)換的ADC0809;用于試驗(yàn)中存儲(chǔ)數(shù)據(jù)的 SRAM存儲(chǔ)器;用于試驗(yàn)數(shù)據(jù)備份的Flash存儲(chǔ)器;裝載軟件程序、異常處理的SDRAM存儲(chǔ)器;記錄儀與分析儀之間的通信接口RS232;用于超速報(bào)警的LED;等等。

  按照系統(tǒng)的硬件規(guī)劃,在SOPC Builder需要添加如下IP模塊:

  l Nios II 32位CPU 軟核處理器;

  l Interval_timer 中斷時(shí)鐘,每0.2秒發(fā)出中斷;

  l Keydoor_pio 接收鑰匙門(mén)信號(hào)的輸入;

  l Power_off_pio 接收掉電信號(hào)的輸入;

  l Vehicle_speed_pio 連接車(chē)速傳感器輸出脈沖計(jì)數(shù)器的輸出端;

  l Over_speed_alarm_pio連接超速報(bào)警LED;

  l Rotate_speed_pio 連接曲軸傳感器輸出脈沖計(jì)數(shù)器的輸出端;

  l Initial_pio 系統(tǒng)復(fù)位端口;

  l Adc_control_pio ADC 0809控制端口;

  l Adc_eoc_pio連接ADC 0809轉(zhuǎn)換結(jié)束指示引腳;

  l Adc_data_pio 連接ADC 0809的8個(gè)數(shù)據(jù)輸出引腳;

  l Switch_input_pio 接收開(kāi)關(guān)量的輸入;

  l Sdram 軟件程序,異常處理存儲(chǔ)器;

  l Ext_ram_bus 外部存儲(chǔ)器總線(xiàn);

  l Ext_ram 外部RAM接口;

  l Ext_flash 外部flash接口;

  l Uart通用異步接收發(fā)送器,實(shí)現(xiàn)RS_232接口;

  l Jtag_uart 調(diào)試用接口;

  3.2 軟件實(shí)現(xiàn)

  汽車(chē)行駛記錄儀的各種應(yīng)用功能是由C/C++語(yǔ)言編寫(xiě)的軟件程序來(lái)完成。在Nios II IDE中新建一個(gè)工程時(shí),系統(tǒng)會(huì)針對(duì)目標(biāo)硬件平臺(tái)自動(dòng)生成硬件抽象層的應(yīng)用程序接口(HAL API)供程序編寫(xiě)人員調(diào)用。

  汽車(chē)行駛記錄儀的工作過(guò)程如下:

  1.汽車(chē)行駛過(guò)程中,記錄儀每0.2秒采集并記錄事故疑點(diǎn)數(shù)據(jù);每分鐘記錄行駛狀態(tài)數(shù)據(jù);在記錄的過(guò)程中要記錄最高車(chē)速。

  2. 汽車(chē)停駛時(shí),記錄儀并沒(méi)有停止工作,但此時(shí)不進(jìn)行數(shù)據(jù)的采集和記錄。在停車(chē)過(guò)程中,分析儀可以采集記錄儀的數(shù)據(jù)。

  3.車(chē)輛,駕駛員基本信息采取系統(tǒng)初始化時(shí)預(yù)置進(jìn)記錄儀的形式。

  4.記錄儀是否采集數(shù)據(jù)用鑰匙門(mén)控制,接收到鑰匙門(mén)啟動(dòng)車(chē)輛的信號(hào),記錄儀開(kāi)始記錄;接收到鑰匙門(mén)的熄火信號(hào),停止記錄。

  5.記錄儀掉電,備份數(shù)據(jù),停止工作。

  根據(jù)上述記錄儀的工作過(guò)程,軟件程序整體流程設(shè)計(jì)如圖2所示。

   

2.jpg

  圖2 汽車(chē)行駛記錄儀工作整體流程圖

  結(jié)論:本文所介紹的新一代汽車(chē)行駛記錄儀,采用了基于嵌入式處理器Nios II的SOPC設(shè)計(jì)技術(shù),能夠更完整,更精確,更多樣化的記錄汽車(chē)在行駛過(guò)程中的各種數(shù)據(jù),符合國(guó)家標(biāo)準(zhǔn),取得了較滿(mǎn)意的效果。在設(shè)計(jì)過(guò)程中大量復(fù)用成熟的IP軟核,很大程度上提高了系統(tǒng)的穩(wěn)定性,大大節(jié)省了系統(tǒng)開(kāi)發(fā)時(shí)間,充分體現(xiàn)了IP復(fù)用技術(shù)帶來(lái)的好處。

  參考文獻(xiàn)

  1 任愛(ài)鋒 初秀琴 常存 孫肖子. 基于FPGA的嵌入式系統(tǒng)設(shè)計(jì). 西安:西安電子科技大學(xué)出版社,2004年10月

  2 彭澄廉 周博等. 挑戰(zhàn)SOC-- 基于Nios的SOPC設(shè)計(jì)與實(shí)踐. 北京:清華大學(xué)出版社.2004年7月

  3王金明 楊吉斌. 數(shù)字系統(tǒng)設(shè)計(jì)與Verilog HDL. 北京:電子工業(yè)出版社, 2003年6月

  4 GB/T 19056—2003 汽車(chē)行駛記錄儀國(guó)家標(biāo)準(zhǔn)

  5朱運(yùn)航 李雪東. 基于IP核復(fù)用的SoC設(shè)計(jì)技術(shù)探討. 微計(jì)算機(jī)信息. 2006 年3-2. 2

  6 司利增. 汽車(chē)計(jì)算機(jī)控制. 北京 人民交通出版社,2000年2月



關(guān)鍵詞: 嵌入式 Nios

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉