新聞中心

EEPW首頁 > 設(shè)計應(yīng)用 > 基于ARM Cortex-M3的SoC系統(tǒng)設(shè)計

基于ARM Cortex-M3的SoC系統(tǒng)設(shè)計

作者:楊斌 韓瑞欣 董蘇惠 時間:2019-01-29 來源:電子產(chǎn)品世界 收藏

作者 楊斌1,2,韓瑞欣3,董蘇惠4(1.中科院微電子研究所,北京 100029;2.中國科學(xué)院大學(xué),北京 100049;3.中科院聲學(xué)所,北京 100190;4.中科院空間中心,北京 100190)

本文引用地址:http://m.butianyuan.cn/article/201901/397273.htm

  摘要:本項目實現(xiàn)了一種基于CM3內(nèi)核的,并且利用該實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)獲取、溫度傳感器數(shù)據(jù)獲取及數(shù)據(jù)顯示等功能。在Keil上進行軟件開發(fā),通過ST-LINK/V2調(diào)試器進行調(diào)試,調(diào)試過程系統(tǒng)運行正常。在Quartus-II上進行Verilog HDL的硬件開發(fā)設(shè)計,并進行的集成,最后將生成的二進制文件下載到開發(fā)平臺。該系統(tǒng)使用AHB總線將CM3內(nèi)核與片內(nèi)存儲器和GPIO進行連接,使用APB總線連接UART、定時器、看門狗等外設(shè)。

  關(guān)鍵詞;;;

  0 緒論

  項目背景與意義

  現(xiàn)今,單片機的發(fā)展速度特別快,種類越來越多,而對于單片機的選擇主要是根據(jù)具體的應(yīng)用情況來定,在性能、功耗、成本上做折中。

  目前,的集成度越來越高,價格也越來越便宜,所以可以以較低的成本來構(gòu)建專用的片上系統(tǒng)。單片機作為片上系統(tǒng)的一種,可以很容易的在FPGA上實現(xiàn),并且架構(gòu)和片上外設(shè)都可以根據(jù)具體的應(yīng)用情況隨時做出更改,這極大的降低了成本,也規(guī)避使用通用單片機所帶來的風(fēng)險。綜上,在某些領(lǐng)域,以FPGA作為平臺構(gòu)建專用片上系統(tǒng)是最合適的選擇,這也是以后單片機應(yīng)用領(lǐng)域的發(fā)展趨勢。研究SoC的設(shè)計方法和工程應(yīng)用對于未來單片機應(yīng)用領(lǐng)域的革新具有深刻的意義。

  內(nèi)容及章節(jié)安排

  本項目實現(xiàn)了一種基于CM3內(nèi)核的SoC,并且利用該SoC實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)獲取、溫度傳感器數(shù)據(jù)獲取及數(shù)據(jù)顯示等功能。

  本文共分為五部分,第一部分緒論簡單介紹了本項目的背景及意義。第二部分說明了本項目的整體框架設(shè)計。第三部分介紹了SoC設(shè)計的總體思路。第四部分討論了軟件開發(fā)的大體流程。第五部分對未來項目的方向做出了展望。

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

  1.1系統(tǒng)設(shè)計流程分析

  本系統(tǒng)采用的FPGA板卡芯片由Intel PSG(英特爾可編程解決方案事業(yè)部,前身為Altera公司,Altera于2015年被Intel收購)生產(chǎn),所以需要在Quartus-II專用開發(fā)平臺上進行SoC的硬件設(shè)計。Keil軟件開發(fā)平臺界面友好,功能強大,兼容ARM公司發(fā)布的所有內(nèi)核庫,包括本系統(tǒng)使用的CM3內(nèi)核庫,并且其支持多種硬件調(diào)試和下載器,所以在本項目中使用Keil進行軟件開發(fā)。軟件編譯成功后生成二進制可執(zhí)行文件,并通過ST-LINK/V2調(diào)試器進行下載及調(diào)試,調(diào)試過程系統(tǒng)功能正常。CM3內(nèi)核使用AHB總線與外設(shè)連接,所以該SoC的設(shè)計采用AHB總線將內(nèi)核與片內(nèi)存儲器和GPIO進行連接,使用APB總線連接UART、定時器、看門狗等外設(shè),而APB總線上的外設(shè)通過AHB-APB總線橋接器與內(nèi)核進行數(shù)據(jù)交互與應(yīng)答。在 DesignStart Eval開發(fā)套件中提供了本系統(tǒng)用到的基本總線外設(shè),使用Verilog HDL編寫了其他組件來實現(xiàn)整個系統(tǒng)的集成。片上系統(tǒng)設(shè)計框圖如圖1所示,功能框圖如圖2所示。

  本項目的功能框圖如圖2所示。

  1.2 模塊選擇

  根據(jù)系統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)獲取及室內(nèi)溫度顯示等功能要求,本項目選擇特定模塊來實現(xiàn)相應(yīng)功能。網(wǎng)絡(luò)模塊需要從廣域網(wǎng)絡(luò)中獲取數(shù)據(jù),并將獲得的數(shù)據(jù)傳給SoC平臺,該網(wǎng)絡(luò)模塊的默認接口應(yīng)該是串口,從網(wǎng)絡(luò)中獲取的數(shù)據(jù)主要是溫度數(shù)據(jù),數(shù)據(jù)的傳輸速率要求不高,盡量選擇價格便宜、低功耗的網(wǎng)絡(luò)模塊。室內(nèi)溫度的獲取依賴于溫度傳感器,本系統(tǒng)對于溫度的測量精度要求不高,所以溫度傳感器需具有接口簡單、價格便宜、性能穩(wěn)定等特點。為了做到系統(tǒng)數(shù)據(jù)的可視化,在設(shè)計時候考慮添加OLED顯示模塊,OLED模塊選擇具有功耗低、屏幕小、價格便宜等特點的型號。

  2 系統(tǒng)硬件設(shè)計

  2.1 存儲器設(shè)計

  存儲器映射

  CM3的尋找空間大小是4 GB,代碼段和數(shù)據(jù)段在存儲空間上是分開的,外設(shè)相關(guān)的寄存器也有相應(yīng)的地址段,內(nèi)核操作相關(guān)的寄存器也占據(jù)部分地址空間。本系統(tǒng)采用把程序放到代碼區(qū)的設(shè)計,從而使取指和數(shù)據(jù)訪問操作使用自己的總線。

  CM3只有一個單一固定的存儲器映射。在預(yù)定義的存儲器地址映射中,Code區(qū)的地址從0x00000000到0x1FFFFFFF,本系統(tǒng)使用的地址空間從0x00000000開始,結(jié)束地址是0x0000FFFF,大小為64KB。內(nèi)部SRAM區(qū)的地址空間從0x20000000到0x3FFFFFFF,本系統(tǒng)使用的地址從0x20000000開始,結(jié)束地址是0x20000FFFF,大小為64 KB。

  該子系統(tǒng)是基于APB總線,內(nèi)部涵蓋系統(tǒng)用到的大部分外設(shè),內(nèi)部外設(shè)的地址劃分見下表1。

  nEO_IMG_b1.jpg

  2.2 Cortex-M3的結(jié)構(gòu)

  Cortex-M3微處理器的內(nèi)部結(jié)構(gòu)如圖3所示。ARM Cortex-M3微處理器包括:處理器核、嵌套向量中斷控制器(NVIC)、調(diào)試子系統(tǒng)、AHB LITE總線接口以及連接這些單元的內(nèi)部總線系統(tǒng)。

nEO_IMG_3.jpg

  2.2.1 處理器核

  處理器核是Cortex-M3最核心的功能部件,它負責(zé)對數(shù)據(jù)進行處理。

  本項目Cortex-M3處理器內(nèi)核采用3級流水線操作。流水線的3級分別是:取指,解碼和執(zhí)行。

  2.2.2 嵌套向量中斷控制器

  專用的 NVIC用于對中斷進行管理,并且向處理器核發(fā)出中斷請求信號,包含最多240個中斷請求,以及1個不可屏蔽中斷。NVIC是與CPU緊密耦合的,它還包含了若干個系統(tǒng)控制寄存器。

  2.2.3 總線系統(tǒng)

  總線系統(tǒng)用于將Cortex-M3內(nèi)部的各個功能部件連接在一起。總線系統(tǒng)包括:①內(nèi)部總線系統(tǒng);②處理器核內(nèi)部的數(shù)據(jù)通道;③AHB Lite接口單元。

  2.2.4 調(diào)試子系統(tǒng)

  作為Cortex-M3處理器重要的一部分,調(diào)試子系統(tǒng)提供下面的功能。

 ?、俟芾碚{(diào)試控制、程序斷點、以及數(shù)據(jù)監(jiān)控點。

 ?、诋敭a(chǎn)生調(diào)試事件時,它將處理器核設(shè)置為停止狀態(tài)。此時,可以在該點分析處理器的狀態(tài),如寄存器值和標志。

  2.3 異常處理與中斷向量表設(shè)計

  Cortex-M3在內(nèi)核水平上搭載了一個異常響應(yīng)系統(tǒng),支持為數(shù)眾多的系統(tǒng)異常和外部中斷。

  向量中斷控制器(NVIC)以存儲器映射的方式來訪問,除了包含控制寄存器和中斷處理的控制邏輯之外,NVIC還包含了MPU的控制寄存器、SysTick定時器以及調(diào)試控制。

  2.4 地址譯碼器和多路復(fù)用器設(shè)計

  本系統(tǒng)基于AHB-Lite所構(gòu)建的Cortex-M3 SoC系統(tǒng)設(shè)計包含了地址譯碼器和多路復(fù)用器。

  在系統(tǒng)中,來自不同從設(shè)備的響應(yīng)信號,包括:HRDATA、HREADY和HRESP連接到多路復(fù)用器的輸入,根據(jù)地址譯碼器所生成的選擇信號,多路復(fù)用器將選擇的從設(shè)備響應(yīng)信號送給主設(shè)備。其中HRDATA[31:0]是來自多路復(fù)用器到主設(shè)備的讀數(shù)據(jù),由多路復(fù)用器指向主設(shè)備;HREADY是來自多路復(fù)用器到主設(shè)備的準備信號,由多路復(fù)用器指向主設(shè)備和從設(shè)備,當該位為高時,該信號表示到主設(shè)備和先前完成傳輸?shù)乃脧脑O(shè)備。

  2.5 APB子系統(tǒng)

  該APB子系統(tǒng)的頂層是AHB-Lite總線接口,可以與內(nèi)核的AHB總線進行連接。子系統(tǒng)內(nèi)部包括的外設(shè)有定時器、UART、雙輸入定時器、看門狗電路、AHB到APB的橋接器、異步中斷信號等。表2為APB系統(tǒng)IRQ分配表。

  nEO_IMG_b2.jpg

  2.6 時鐘和復(fù)位電路設(shè)計

  本系統(tǒng)片上SoC系統(tǒng)主要包含HCLK、PCLK、PCLKG等三個時鐘,HCLK時鐘主要用于內(nèi)核的工作時鐘以及驅(qū)動片內(nèi)高性能總線上掛載的外設(shè)。PCLK時鐘主要用于驅(qū)動APB子系統(tǒng)內(nèi)掛載在高性能外設(shè)總線上的大部分外設(shè)。PCLKG時鐘是當子系統(tǒng)內(nèi)部的外設(shè)無任何活動的時候,通過子系統(tǒng)的APBACTIVE信號可以控制該信號的輸出,以實現(xiàn)降低功耗的目的。

  系統(tǒng)的復(fù)位信號有兩種,第一種是系統(tǒng)采用FPGA外部管腳控制系統(tǒng)復(fù)位,低電平復(fù)位的方式;第二種是系統(tǒng)異常請求復(fù)位,該復(fù)位發(fā)生在系統(tǒng)程序運行錯誤或者硬件錯誤的情況下。

  3 軟件系統(tǒng)設(shè)計

  3.1 CMSIS原理及設(shè)計

  CMSIS提供了標準的軟件接口,如庫函數(shù)。

  使用CMSIS后,一切都標準化了,主要體現(xiàn)在以下幾點:

  一是使用標準化函數(shù)訪問NVIC、系統(tǒng)控制塊(SCB),以及系統(tǒng)滴答定時器SysTick。

  二是使用標準化函數(shù)訪問特殊寄存器。

  三是使用標準化函數(shù)訪問特殊指令。

  四是標準化的系統(tǒng)初始化函數(shù)名字。

  3.2 SoC外設(shè)驅(qū)動設(shè)計

  如圖4所示,設(shè)計AHB外設(shè)驅(qū)動的要求包括以下幾點:①為每個外設(shè)編寫軟件驅(qū)動程序;②不需要操作系統(tǒng)支持;③軟件驅(qū)動程序應(yīng)該提供基本的功能,用于簡化外設(shè)的訪問。

nEO_IMG_4.jpg

  3.3 SoC中斷寄存器管理

  中斷分組設(shè)置函數(shù),void NVIC_ Configuration()中斷配置函數(shù),在這個函數(shù)里面只調(diào)用了固件庫的中斷分組配置函數(shù),整個系統(tǒng)的中斷分組組別為2。這個函數(shù)在系統(tǒng)初始化的時候調(diào)用即可,并且永遠只需要調(diào)用一次,示例如下所示。

  void NVIC_Configuration(void)

  {

  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級

  }

  3.4 系統(tǒng)模塊及程序設(shè)計原理

  3.4.1 溫度模塊

  DS18B20與傳統(tǒng)的熱敏電阻相比,其能夠直接讀出被測溫度并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9~12位的數(shù)字值讀數(shù)方式。

  當DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機可通過單線接口讀到該數(shù)據(jù),讀取時高位在后、低位在前,數(shù)據(jù)格式以0.0625 ℃/LSB形式表示。

  3.4.2 顯示器模塊

  OLED顯示器是一種由有機分子薄片組成的固態(tài)設(shè)備,施加電力之后就能發(fā)光。OLED能讓電子設(shè)備產(chǎn)生更明亮、更清晰的圖像,其耗電量小于傳統(tǒng)的LED顯示屏。

  3.4.3 網(wǎng)絡(luò)模塊

  網(wǎng)絡(luò)模塊采用CH9121,CH9121 是一款網(wǎng)絡(luò)串口透傳芯片。CH9121內(nèi)部集成TCP/IP協(xié)議棧,可實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包和串口數(shù)據(jù)的雙向透明傳輸,具有 TCP CLIENT、TCP SERVER、UDP CLIENT 、UDP SERVER 4 種工作模式,串口波特率最高可支持到 921600bps,可通過上位機軟件或者串口命令輕松配置,方便快捷。

  4 結(jié)論

  在后續(xù)的設(shè)計過程中,我們會在系統(tǒng)中添加指紋模塊,利用指紋識別技術(shù)可以實現(xiàn)現(xiàn)代智能家居的安防。通過指紋識別技術(shù)可以對用戶指紋進行精準識別,防止未注冊陌生人的入侵。同時也會添加攝像頭模塊,利用攝像頭模塊進行人臉識別,可以判斷當前采集的人臉頭像是否在原有的數(shù)據(jù)庫里,與數(shù)據(jù)庫信息進行比對,來判斷是否有非法闖入。

  此外,為了更好地實現(xiàn)智能化,我們會將居家生活中的各種用電器接入系統(tǒng)中來,通過繼電器開關(guān)來實現(xiàn)開關(guān)中斷,這樣可以實現(xiàn)遠程操控用電器的功能。

  參考文獻

  [1]Cortex-M3權(quán)威指南(中文)手冊,2017.

  [2]CM3技術(shù)參考手冊,2017.

  [3]DE10-Lite_User_Manual handbook,2017,1.

  [4]王永虹,徐煒,等.STM32系列ARM?Cortex-M3微控制器原理與實踐.北京航空航天大學(xué)出版社, 2008.

  [5]STM32開發(fā)指南——庫函數(shù)版本手冊,2016.

  作者簡介:

  楊斌 (1994-),男,研究生,主要從事嵌入式系統(tǒng)開發(fā)及信號處理的研究。

  韓瑞欣 (1994-),男,研究生,主要從事射頻RFID的研究。

  董蘇惠 (1994-),女,研究生,主要從事衛(wèi)星組網(wǎng)通信的研究。

本文來源于科技期刊《電子產(chǎn)品世界》2019年第2期第55頁,歡迎您寫論文時引用,并注明出處



關(guān)鍵詞: FPGA IP核 Cortex-M3 SoC 201902

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉