- 勇敢的芯伴你玩轉Nios II(電子設計與嵌入式開發實踐叢書)
- 吳厚航編著
- 2242字
- 2021-04-02 22:08:04
第1章 基于Nios Ⅱ處理器的嵌入式系統
1.1 片上系統概述
數字電路高度集成化是現代電子發展的大勢所趨,片上系統(SOPC)的概念也就應運而生。它是指在單個芯片上集成一個完整的系統,一般包括系統級芯片控制邏輯模塊、微處理器/微控制器內核模塊、數字信號處理器模塊、存儲器或存儲器控制模塊、與外部通信的各種接口協議模塊、含有ADC/DAC的模擬前端模塊、電源及功耗管理模塊,它是一個具備特定功能、應用于特定產品的高度集成電路。
片上系統其實就是系統小型化的代名詞。如圖1.1所示,一個相對復雜的系統采用傳統的設計方案可能需要一個CPU做整體控制,一個FPGA做接口的邏輯粘合和一些信號的預處理,還需要一個DSPs做復雜的算法實現,Flash和SDRAM分別作為程序存儲器和數據緩存器,此外還會有一些專用的外設模塊,這些器件都放置在一塊或者數塊電路板上。這樣一個系統顯得相當繁雜,不僅調試難度大,而且系統維護也不方便。

圖1.1 傳統的復雜系統
基于FPGA的片上系統提出了這樣一種解決方案:如圖1.2所示,FPGA內部集成了CPU、DSPs以及各種接口控制模塊,對有些存儲量要求不大的系統甚至集成了外部的Flash和SDRAM。

圖1.2 基于FPGA的片上系統
可以看出,SOPC就是一顆比MCU更強大的MCU。它的偉大之處在于系統的完全自主定制性,有了SOPC,設計者就不需要再拿著選型手冊海選既必須具有這個外設又必須滿足那個條件的處理器了;甚至有時都不需要考慮處理器都能夠掛上什么樣的存儲器來讀寫數據、運行程序。只要有SOPC,一切就能輕松搞定,想加什么外設就加什么,一切由你做主。這就是SOPC相對于以往的嵌入式系統設計最大的特點和優勢。
SOPC需要一個強大的系統開發工具。Altera的FPGA開發工具Quartus Ⅱ中集成的Qsys可以幫助用戶定義并生成一個完整的片上可編程系統(System-on-Programmable-Chip),它比傳統的手動集成方式要方便得多。Qsys中可以添加各種Altera FPGA器件可以使用的硬核或軟核處理器、常用外設以及用戶自定義的定制外設,非常靈活方便。Qsys使用起來就如同小朋友們的樂高積木一樣簡單,并沒有傳說中的那么“高深”,只要大家跟著教程一步一個腳印往下走,相信大家很快就可以玩轉基于Qsys的Nios Ⅱ嵌入式處理器系統。
用戶可以使用Qsys生成一個基于Nios Ⅱ處理器的嵌入式系統。然而,Qsys遠不止一個Nios Ⅱ處理器而已,它還可以生成一個不包含處理器或者包含Nios Ⅱ以外的軟核處理器的系統。
使用傳統的設計方法,用戶必須手動編寫HDL代碼用于連接各個子系統。而使用Qsys,用戶只要通過傻瓜的圖形界面接口(GUI)就可以自動生成各個組件的互連邏輯。Qsys生成了系統所有組件的HDL文件,頂層的HDL文件則例化好系統的所有組件。Qsys既能夠生成Verilog代碼也能夠生成VHDL代碼。
再看一個更接近實際應用的嵌入式系統板卡,如圖1.3所示。在這塊PCB(Printed Circuit Board)上,單論芯片可能只有一片FPGA、一片作為協處理器(Co-Processor)的CPU、兩片DDR2 SDRAM存儲器分別掛在FPGA和協處理器上,還有一個叫作總線橋(Bus Bridge)的接口(也許只是簡單的連線,也許是一塊協議芯片)。這個系統中,看似簡單,其實不然,FPGA里大有文章可做。
從總線橋開始說,通俗地理解,橋就是用來連接河兩岸的,比如主板上的南橋和北橋(CPU和內存居然還隔著條河?)。CPU很好很強大,可以處理海量數據,但是再強大也沒法發出聲音、顯示圖像,術業有專攻,CPU就是負責數據運算和控制,別的基本不管。因此,CPU需要通過橋和外圍設備進行信息交互,把需要進行處理的數據接收進來,把處理完的數據發送出去,可能說得不是很專業,但是基本就是這樣。那么總線又是什么?CPU的引腳終歸是有限的,如果一個CPU要和所有外設都搭個“獨木橋”,恐怕CPU要像巴掌那么大才夠在肚子底下容下那么多“腳”了。這么看,這個橋真不能是獨木橋,至少該是一座縱橫南北的“立交橋”,再形象一點說,這座立交橋的交錯中心點是貫通的,處于這個中心點的車可以通過處于任何高度的道路駛向四面八方。那么,CPU就處于這樣的核心位置。這里不再深入,總線其實就是CPU的一組滿足一定協議的引腳的集合,這組引腳可以和多個同樣滿足這個特定協議的不同外設進行連接。當CPU要用這個總線和某個外設交互信息時,就會在它們之間搭起一座獨木橋,其他外設就只能望橋興嘆。總線從某種意義上看就是為了節約引腳而出現的,當然從另一種意義上看,也是為了統一信息交互方式。這里FPGA外面掛了個“總線橋”,用于這個系統和外部設備交互,其實FPGA內部的SOPC也有個總線橋,它的名字叫作Avalon,Avalon總線,以后大家越使用它越會發現它的強大。上面提到Nios Ⅱ只是一個處理器,而Avalon總線就是要把Nios Ⅱ和所有其他在FPGA內(如圖1.3中的PIO)甚至FPGA外定制的外設(如圖1.3中的DDR2存儲器)連接起來。當然也可以理解那個系統互連邏輯(System Interconnect Fabric)就是Avalon,但是Avalon只是系統互連邏輯的一種形式而已,想了解其他的形式就得讀者自己參考數據手冊。

圖1.3 FPGA上的SOPC系統實例
其實FPGA系統內和常見的嵌入式系統的架構有著異曲同工之妙,比如協處理器(Co-Proccessor)外面和系統模塊(System Module)內的32位處理器(Proccessor,可認為它就是Nios Ⅱ)一樣,要掛接DDR2存儲器(Memory)。
圖1.3中的系統里最核心的東西就是FPGA。用FPGA搭一個SOPC的最大優勢,就是靈活性。傳統的51單片機系統常常是一個MCU旁邊掛很多諸如74xxx的芯片,而當16位、32位CPU在嵌入式系統中大行其道的時候,用戶依然常常困擾于系統擴展的各種接口之間無法有效的得到控制和管理,甚至會感覺引腳數量受限,大大影響了系統的性能和擴展升級。因此,基于FPGA的SOPC被推上前臺。因為它有足夠的引腳,支持各式各樣不同的電壓標準,可以并行處理各類復雜任務,可以像一張白紙任大家涂畫……這就是大家學習它的理由。其實圖1.1和圖1.2已經完全闡釋了FPGA上SOPC與以往系統的不同,基本上一片FPGA就可以集成大多數常用的外設,無論從BOM成本上還是電路板面積上都有很大的優勢。
- 電腦軟硬件維修大全(實例精華版)
- The Applied AI and Natural Language Processing Workshop
- 單片機原理及應用系統設計
- SiFive 經典RISC-V FE310微控制器原理與實踐
- 筆記本電腦使用、維護與故障排除從入門到精通(第5版)
- 固態存儲:原理、架構與數據安全
- Internet of Things Projects with ESP32
- 超大流量分布式系統架構解決方案:人人都是架構師2.0
- Arduino項目開發:智能生活
- Mastering Machine Learning on AWS
- USB應用開發寶典
- Instant Website Touch Integration
- 計算機組裝與維護
- ARM接口編程
- Learning Microsoft Cognitive Services