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