侯鳳云
洛陽師范學院 信息技術(shù)學院 河南 洛陽 471934
隨著云計算、大數(shù)據(jù)、人工智能、物聯(lián)網(wǎng)等新型信息技術(shù)的發(fā)展,物理世界和信息世界被有機融合在一起,針對不同應用場合的要求,實現(xiàn)智能化控制。物聯(lián)網(wǎng)技術(shù)得益于云計算、大數(shù)據(jù)、人工智能的支持,發(fā)展迅速。《嵌入式系統(tǒng)》是物聯(lián)網(wǎng)工程專業(yè)的主干課程之一,通過緒論對課程和相關(guān)信息技術(shù)有個整體的把握和了解,為課程后續(xù)理論知識的學習奠定基礎(chǔ)。
物聯(lián)網(wǎng)、云計算、大數(shù)據(jù)和人工智能是一脈相承的,構(gòu)成了一個完整的閉環(huán)控制系統(tǒng)。云計算,即管理數(shù)據(jù)中心,主要管理計算資源、存儲資源和網(wǎng)絡資源,實現(xiàn)資源的靈活配置;大數(shù)據(jù),從各種各樣的數(shù)據(jù)中,快速獲得有價值信息的能力,就是大數(shù)據(jù)技術(shù),它是數(shù)據(jù)分析的利器;人工智能,根據(jù)大量的歷史資料和實時觀察找出對于未來預測性的洞察,可以處理和從中學習的數(shù)據(jù)越多,預測越準確;物聯(lián)網(wǎng),將傳感器和智能處理結(jié)合,進行資料收集工作。嵌入式系統(tǒng)運用于物聯(lián)網(wǎng)系統(tǒng)分層架構(gòu)的各個部分,利用嵌入式系統(tǒng)構(gòu)建并實現(xiàn)了物聯(lián)網(wǎng)系統(tǒng),諸如智能交通、智能家居、智能農(nóng)業(yè)等。
《嵌入式系統(tǒng)》是物聯(lián)網(wǎng)工程專業(yè)偏硬件方向的課程,內(nèi)容涉及面廣,包括計算機軟、硬件技術(shù)、通信技術(shù)和電子技術(shù)等專業(yè)知識,課程實踐性強。課程以STM32系列微控制器為研究對象,在閱讀并熟悉STM32使用說明的前提下,通過大量的實驗,動手調(diào)試,才能掌握微控制器(微控制器是嵌入式系統(tǒng)的核心)片內(nèi)外設的使用,進一步理解STM32的相關(guān)基本原理。
什么是嵌入式系統(tǒng)?從技術(shù)角度定義:以應用為中心,以計算機技術(shù)為基礎(chǔ),軟、硬件可裁剪,適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。從系統(tǒng)角度定義:嵌入式系統(tǒng)是設計完成復雜功能的硬件和軟件,并使其緊密耦合在一起的計算機系統(tǒng)。定義表明一些嵌入式系統(tǒng)通常是更大系統(tǒng)中的一個完成部分,稱為嵌入的系統(tǒng)。嵌入式系統(tǒng)是專用計算機系統(tǒng),核心是微控制器。手機是典型的嵌入式系統(tǒng)產(chǎn)品,其主要功能當然是通信和娛樂,從手機的體積、操作系統(tǒng)、內(nèi)存到功耗,和通用的個人計算機相比較,其具有專用、功耗低、體積小和操作系統(tǒng)和內(nèi)存容量小等特點。
提及嵌入式系統(tǒng),必須要談到ARM。ARM有兩重意思:一是指公司名,ARM公司1991年成立于英國劍橋,只設計芯片,但不生產(chǎn)芯片,出售半導體知識產(chǎn)權(quán)(IP)給芯片生產(chǎn)商;二是指一類處理器的通稱,或一種技術(shù)。ARM技術(shù)占有超高的市場份額,世界上95%以上的智能手機和平板電腦都采用ARM架構(gòu),基于ARM技術(shù)的微處理器(32位,RISC)占75%的市場份額,課程的研究對象STM32系列微控制器也是基于ARM技術(shù)、32位、RISC(精簡指令集計算機)的產(chǎn)品。
世界著名的芯片生產(chǎn)商,如IBM、Motorola、ST、PHILIPS、INTEL、SAMSUNG、SHARP、ATMEL等,購買 ARM 技術(shù)后,把內(nèi)核和外設做好,就是微控制器。生產(chǎn)商根據(jù)需要可裁剪內(nèi)核,ARM公司也給芯片生產(chǎn)商提供外設技術(shù),前面提到的ARM是處理器,加上輸入/輸出端口、中斷控制器、DMA、定時器、A/D和D/A、串行接口等片內(nèi)外設,即做成了微控制器,如STM32系列。STM32是意法半導體有限公司(ST公司)推出,基于ARM Cortex-M內(nèi)核的一系列微控制器。
ARM處理器是基于低功耗、低成本、高性能的需求而設計的,按照應用特征主要介紹以下幾個ARM微處理器系列:
(1)ARM7TDM1系列,用于工業(yè)微控制器
(2)ARM9E系列,用于高性能實時系統(tǒng)
(3)ARM11系列,高端應用處理器
(4)Cortex系列(又分為Cortex-A、Cortex-R和Cortex-M系列)
2010年之前,ARM7TDM1、ARM9E、ARM11系列處理器應用于各種用途的嵌入式系統(tǒng)。隨著ARM技術(shù)的不斷完善和發(fā)展,功能更強,使用更加方便。2010年以后,Cortex系列逐漸擔當了重任,Cortex-M、Cortex-R、Cortex-A系列分別取代了ARM7TDM1、ARM9E、ARM11系列,其中Cortex-M系列,針對工業(yè)控制,有 M0、M3、M4、M7,具有很高的性價比;Cortex-R系列,用于高性能實時控制,如硬盤控制器、移動通信的基帶控制器;Cortex-A系列是高端應用處理器,用于智能手機、平板電腦等。
ARM微處理器的應用領(lǐng)域:
(1)工業(yè)控制領(lǐng)域,如工業(yè)機器人、機械手。
(2)無線通信領(lǐng)域,85%的無線通信設備用到ARM技術(shù)。
(3)網(wǎng)絡應用,如通信基站的交換機、路由器等。
(4)消費類電子產(chǎn)品,如手機、機頂盒等。
(5)成像和安全產(chǎn)品,如數(shù)碼相機、打印機、油煙機等。
ARM微處理器有以下特點:
(1)體積小、低功耗、低成本、高性能。
(2)支持Thumb/ARM雙指令集,能很好的兼容8位/16位器件。
(3)大量使用寄存器,指令執(zhí)行速度更快。
(4)大多數(shù)數(shù)據(jù)操作都在寄存器中進行。
(5)尋址方式靈活簡單,執(zhí)行效率高。
(6)指令長度固定(32位或16位)。
課程以STM32F103ZET6(Cortex-M3內(nèi)核)為研究對象,這款微控制器用于工業(yè)控制,Cortex-M3是主流內(nèi)核,資源豐富,性價比高,可完成各種復雜的控制任務。課程的主要內(nèi)容如下:
這部分內(nèi)容相當于是STM32微控制器的使用說明書,ST公司根據(jù)不同的微控制器系列在官方網(wǎng)站發(fā)布了使用手冊。教材上介紹的只是最基礎(chǔ)的部分,詳細內(nèi)容可參考STM32使用手冊,那么理論課上首先要弄懂最基礎(chǔ)部分,獲得使用STM32的入門知識。
介紹實驗用開發(fā)板的硬件電路圖,包括微控制器的管腳圖、時鐘電路、復位電路、BOOT管腳接線、各元器件所需的穩(wěn)壓電源電路;片外外設的接口電路,如LCD、FLASH、ROM等,涉及微控制器的顯示、通信接口、DMA的使用;外接的用于輸入信號的按鍵開關(guān)電路、用于輸出驅(qū)動的LED燈和蜂鳴器電路等;用于下載和調(diào)試的JTAG接口電路。開發(fā)板的各電子電路涉及電子技術(shù)和通訊技術(shù)方面的知識,讀懂這些電路,是片內(nèi)外設的使用和軟件開發(fā)的鋪墊。
利用Keil5集成開發(fā)環(huán)境,介紹STM32微控制器的各個片內(nèi)外設的應用,也就是如何使用C語言編寫程序。片內(nèi)外設主要包括GPIO通用輸入輸出接口、中斷控制器、DMA、定時器、ADC、DAC、通信接口(IIC、SPI、USART)。
為了方便使用STM32系列產(chǎn)品,Keil5集成開發(fā)環(huán)境可以安裝板級支持開發(fā)包(PACK包),PACK包里包含底層操作封裝好的各種函數(shù)和文件,軟件開發(fā)時直接使用,容易上手。
STM32(包括其它微控制器)上是不能運行開發(fā)環(huán)境的,嵌入式系統(tǒng)的開發(fā)和調(diào)試方法如圖1所示:
圖1 嵌入式系統(tǒng)開發(fā)和調(diào)試流程
集成開發(fā)環(huán)境運行在個人計算機上,也稱為上位機,STM32上運行的是可執(zhí)行文件,STM32可稱為下位機或目標板,通過集成開發(fā)環(huán)境可以監(jiān)控STM32的執(zhí)行情況。
通過理論和實驗的學習,應實現(xiàn)教學目標如下:
(1)了解Cortex-M3的架構(gòu)。
(2)掌握MDK Keil集成開發(fā)環(huán)境下STM32系列(Cortex-M3)微控制器(外設組件)的使用,實現(xiàn)簡單的控制要求。
《嵌入式系統(tǒng)》課程實踐性強,學習STM32的基本原理,最終是為了使用,比如設計一個具有避障功能的智能小車、設計一個語音燈光控制系統(tǒng)等。STM32的一些理論抽象難懂,必須通過實驗,動手調(diào)試,針對出現(xiàn)的問題,深入分析,多多交流,充分利用網(wǎng)絡資源,比如ST、ARM、Keil、CSDN的官方網(wǎng)站,提供了許多學習的案例、問題解決方案等。