羅 鈞, 李 華, 付 麗, 侍寶玉
(重慶大學 光電技術(shù)及系統(tǒng)教育部重點實驗室, 重慶 400030)
為了培養(yǎng)學生的工程設(shè)計和動手能力,特為重慶大學研究生開設(shè)了“嵌入式微處理器原理及應用開發(fā)”課程,并設(shè)計了本實驗來提升學生動手能力。
為了平衡功耗與性能,德州儀器在2015年推出了基于ARM Cortex-M4F內(nèi)核兼有低功耗、高性能特點的新型32位MSP432處理器。 本實驗系統(tǒng)以MSP432微處理器為核心,模擬現(xiàn)代農(nóng)業(yè)中的大棚環(huán)境無線檢測。通過本次實驗,學生不僅能掌握好無線數(shù)據(jù)采集的相關(guān)的原理,而且更重要的是掌握一款先進的高性能、低功耗處理器的開發(fā)與應用。
大棚環(huán)境對于大棚農(nóng)作物的生長極其重要,它直接影響農(nóng)作物的產(chǎn)量和質(zhì)量[1]。傳統(tǒng)農(nóng)業(yè)都是通過人力定期檢測,效率低,而且檢測的實時性不能保證。為了適應現(xiàn)代農(nóng)業(yè)的發(fā)展,農(nóng)業(yè)自動化將成為未來潮流[2]。目前常見短距離無線環(huán)境監(jiān)測大多數(shù)都以ZigBee為主,其主要特點是距離短,功耗低,速度低,對于主處理器的選擇多以STC89C52或STM32為主,功耗較高,不適合長時間監(jiān)測[3]。
為了克服這些缺點,本實驗系統(tǒng)以MSP432超低功耗、高性能微處理器為核心,配合TI的CC1101低功耗射頻模塊,溫濕度傳感器、LCD顯示屏實現(xiàn)遠距離低功耗長時間監(jiān)測。
本系統(tǒng)的組成包含溫濕度與光照傳感器、無線傳輸模塊、MSP432微處理器及其外圍電路、按鍵和LCD顯示屏。系統(tǒng)的原理圖見圖1。

圖1 系統(tǒng)原理圖
學生A和學生B擁有相同的硬件實驗設(shè)備,包括傳感器、按鍵、MSP432超低功耗微處理器、LCD顯示器和無線模塊,學生A或者B通過按鍵切換自身作為發(fā)送端還是接收端。發(fā)送端負責傳感器的數(shù)據(jù)采集和發(fā)送,接收端負責把采集到的數(shù)據(jù)顯示在LCD顯示器上。
實驗的硬件系統(tǒng)主要包括MSP432超低功耗微處理器、溫濕度和光照采集傳感器、無線通信模塊以及LCD顯示模塊4個部分。
MSP432是德州儀器(TI)最新推出的32位超低功耗、高性能微處理器[4],它包含了一個基于ARM Cortex-M4F內(nèi)核的新型32位處理器,且具有浮點單元和儲存器保護單元[5]。MSP432的串行通信有eUSCI_A和eUSCI_B 2個模塊,其中eUSCI_A模塊支持UART串口和SPI兩種模式;eUSCI_B支持I2C和SPI兩種模式,也就是說系統(tǒng)擁有4路串口、4路I2C和8路SPI,可以很好地作為多路數(shù)據(jù)采集和傳輸[6]。圖2列出了MSP432微處理器的部分電路圖。

圖2 MSP432微處理器的部分電路圖
由于MSP432時鐘最大能運行在48 MHz,所以系統(tǒng)的高速時鐘選擇了一個48 MHz的有源晶振,而系統(tǒng)的低速時鐘選取了32.768 kHz無源晶振。系統(tǒng)采用3.3 V供電。此外,為了仿真系統(tǒng)和下載程序,把SWCLKTCK、SWDIOTMS兩個口作為SWD調(diào)試。為了采樣光照度和驅(qū)動液晶屏顯示,把系統(tǒng)的ADC口和SPI口都引出,這樣可以更好地作為其他實驗的系統(tǒng)擴展。
溫濕度傳感器采用HDC1080,光照度采集采用光敏電阻。HDC1080是一款具有集成溫度傳感器的數(shù)字濕度傳感器,其相對濕度精度為±2%(典型值),其溫度精度為±0.2℃(典型值)[7]。光敏電阻RM采用PGM5506,亮電阻(10 lx)為2~5 kΩ,暗電阻為0.2 MΩ。圖3為傳感器的采集電路。

圖3 傳感器采集電路
HDC1080采用IIC協(xié)議,把它的SDA管腳接到MSP432的IIC管腳,本文選的是eUSCI_A0。采樣光敏電阻串聯(lián)一個10 kΩ的電阻、實現(xiàn)分壓,然后將光敏電阻上的電壓值通過一個低通濾波器輸出至微處理器的AD0管腳實現(xiàn)采樣。低通濾波器的截止頻率為
由于光照度的變化一般比較慢,所以截止頻率在1 kΩ左右能實現(xiàn)信號的不失真采集。
無線通信模塊是系統(tǒng)數(shù)據(jù)傳輸?shù)年P(guān)鍵,關(guān)鍵指標有通信距離、通信速度和功耗。CC1101的通信距離與射頻放大的倍數(shù)有關(guān),放大倍數(shù)越大,通信距離越遠,功耗越高[8]。CC1101主要是針對低于1 GHz超低功耗設(shè)計,它可工作在315、433、868、915 MHz,也可通過編程使其工作在300~348 MHz、387~464 MHz和779~928 MHz[9]頻段。
傳輸?shù)淖畲笏俣雀哌_600 kbit/s,由于系統(tǒng)的數(shù)據(jù)傳輸不需要太快,數(shù)據(jù)量也不大,通信距離通過實驗證明能達到100 m左右,如需進一步擴大距離,需進一步進行射頻放大,故設(shè)計能滿足要求[10]。在功耗方面,CC1101在睡眠模式時工作電流只有200 nA[11]。圖4為CC1101的原理圖。

圖4 CC1101原理圖
CC1101與外圍設(shè)備的通信采用SPI傳輸方式,將CC1101對應管腳接到微處理器的SPI0口即可實現(xiàn)通信。為了消除電源對它的影響,在其附近對電源進行濾波、減小噪聲。
為了顯示數(shù)據(jù),在本次實驗中加入了LCD屏。本次實驗采用61 mm(2.4英寸)的液晶顯示器,分辨率為320×240,驅(qū)動芯片為ILI9341,背光為白色,邏輯電壓為2.8 V[12]。LCD的顯示主要是靠驅(qū)動電路對其顯示,圖5為LCD的驅(qū)動電路圖。

圖5 LCD驅(qū)動電路
LCD液晶屏有兩種方式驅(qū)動:一種是串行,另一種是并行。串行驅(qū)動的優(yōu)點是省IO口,但是速度相對來說慢一點;并行驅(qū)動的優(yōu)點是速度快,但是缺點就是比較浪費IO口。由于顯示的更新速度不是特別快,而MSP432的很多管腳都是有專門用途,故設(shè)計成串行驅(qū)動。串行傳輸?shù)膮f(xié)議是SPI協(xié)議,與CC1101類似,LCD驅(qū)動是用的eUSCI_B1。
軟件設(shè)計是本實驗設(shè)計的核心,主機包括系統(tǒng)初始化、無線通信模塊設(shè)置、傳感器數(shù)據(jù)采集、無線發(fā)送,從機不同的是在位檢測后進入接收狀態(tài),把接收的數(shù)據(jù)顯示在LCD液晶屏上。系統(tǒng)的工作流程圖如圖6所示。

圖6 系統(tǒng)軟件工作流程
無線模塊作為系統(tǒng)的重要組成部分,也是軟件部分的難點之一。該模塊主要有SPI參數(shù)配置、CC1101在位檢測、發(fā)送或者接收模式設(shè)置、數(shù)據(jù)發(fā)送或者接收。
SPI的參數(shù)配置包括SPI的讀寫速度,由于MSP432的SPI的最大讀寫速度為24 MHz,所以設(shè)置為最大速度;接下來設(shè)置讀寫順序,依據(jù)CC1101的協(xié)議設(shè)置為高位在前,連續(xù)讀寫模式;然后進入在位檢測狀態(tài),在位檢測主要是往CC1101的RAM里寫一個固定的數(shù)組,之后讀取該段RAM空間的這一個固定數(shù)組,如果全部和之前寫入的數(shù)組一樣,則通過在位檢測;然后進入到工作模式設(shè)置,工作模式設(shè)置有主從機設(shè)置、通信通道設(shè)置、增益設(shè)置,增益的大小影響模塊的傳輸距離,也影響系統(tǒng)的功耗;最后是進入數(shù)據(jù)的傳送狀態(tài),主機主要負責數(shù)據(jù)的發(fā)送,從機負責數(shù)據(jù)的接收,數(shù)據(jù)的發(fā)送接收根據(jù)兩者的應答來確認發(fā)送的數(shù)據(jù)是否正確。圖7 無線通信軟件工作流程。

圖7 無線通信軟件工作流程
傳感器數(shù)據(jù)采集主要負責溫濕度和光照度的采集,采集程序主要分為IIC的初始化參數(shù)配置、AD模塊參數(shù)配置、HDC1080數(shù)據(jù)讀取、光照度數(shù)據(jù)讀取。圖8為傳感器數(shù)據(jù)采集的軟件工作流程。

圖8 傳感器數(shù)據(jù)采集軟件工作流程
IIC的參數(shù)配置包括IIC的時鐘速度,主要是由主時鐘分頻而來,IIC的通信速度最大能達400 kbit/s;然后設(shè)置高低位的順序,再設(shè)置從機地址,設(shè)置為發(fā)送模式;之后進入AD模塊的設(shè)置,和IIC類似,設(shè)置好AD的采樣率、AD的通道設(shè)置、數(shù)據(jù)緩存地址、采樣觸發(fā)模式;然后完成2個傳感器的采集模塊初始化。
初始化后打開2個模塊的中斷,并設(shè)置2個中斷源的優(yōu)先級,實驗中設(shè)置AD的優(yōu)先級高于IIC的接收中斷。 在中斷中讀取HDC1080的數(shù)據(jù)和光照度。
LCD顯示模塊是此實驗中最難的一點,顯示的程序分為SPI參數(shù)配置、LCD顯示模式設(shè)置、顯示字符、顯示變化波形。圖9為LCD顯示模塊的軟件設(shè)計流程。

圖9 LCD顯示模塊的軟件設(shè)計流程
SPI的參數(shù)配置和CC1101的配置一樣,顯示模式設(shè)置包括背景顏色設(shè)置、掃描方式、顯示窗口大小等設(shè)置。背景顏色設(shè)置成白色,掃描方式是自上而下和從左到右。顯示窗口的大小320×240;字符顯示是通過調(diào)用字庫來顯示的,本次設(shè)計的LCD支持2種字體大小:12×6和16×12,具體大小的設(shè)置與自身的喜好有關(guān),字符顯示設(shè)置顯示的起始坐標、顯示內(nèi)容、字體大小、字體顏色,設(shè)置完之后就可以完整的顯示設(shè)置的內(nèi)容。
顯示波形的變化是實驗的難點,通過LCD最底層的描點函數(shù)實現(xiàn)。首先在屏幕的左下角畫出橫縱坐標,畫完橫縱坐標后再畫出小刻度,在小刻度的附近標示小刻度的內(nèi)容,這就完成坐標系的繪制。最后根據(jù)畫出的坐標系,對整個顯示空間定位,將采集到的數(shù)據(jù)轉(zhuǎn)換到坐標空間,根據(jù)從左到右的掃描順序,依次打點,直到最后一列點打完后對顯示的點進行清除,再一次重新打點,循環(huán)操作,即完成了顯示模塊的軟件設(shè)計。
學生A和學生B同時上電后,若學生A作為數(shù)據(jù)采集端,程序正常初始化完成后,采集數(shù)據(jù)并完成傳輸;學生B作為數(shù)據(jù)接收端,完成設(shè)備初始化后進入數(shù)據(jù)接收狀態(tài)。學生A通過用手緩慢遮住光敏電阻,在學生B的液晶顯示器上明顯地能觀察到數(shù)據(jù)的變化,因為光照度變化比溫度和濕度更容易改變。為了實驗有更好的展示度,將光照度的結(jié)果通過波形來顯示,用手遮住光敏電阻,可明顯地觀察到光照的變化。圖10為自制的核心主控板,圖11為最終的實驗效果圖。

圖10 自制的核心主控板

圖11 最終的實驗效果圖
圖11中RL代表相對光照強度,RH為相對濕度,TP為測量溫度,曲線代表相對光照度的變化規(guī)律。縱坐標單位為PCT(百分比),橫坐標代表時間。
本實驗實現(xiàn)了MSP432高性能、低功耗處理器應用于高校學生實驗的基本目的,彌補了目前大部分高校實驗平臺單一化的缺點,實驗完成了基于MSP432微處理器的多傳感器無線數(shù)據(jù)采集以及動態(tài)顯示,設(shè)計了自主開發(fā)的實驗板,實驗板不僅能完成本次實驗,也可以實現(xiàn)藍牙通信、陀螺儀加速度、氣壓數(shù)據(jù)采集、電機驅(qū)動控制等功能。學生能通過本實驗學習IIC、SPI、AD采集等底層驅(qū)動原理,有助于學生對基礎(chǔ)知識的掌握。此外,本次實驗還開發(fā)了液晶屏的動態(tài)波形顯示,這有助于學生掌握目前常用的液晶顯示器的顯示原理。最后,以2個學生配合的方式完成本次實驗,這有助于學生的團隊協(xié)作,也提高了實驗的趣味性,學生能通過彼此交流更好地完成實驗。
實驗還有不足之處,比如傳感器的數(shù)目相對來說還有點少,波形的顯示空間不足等,后期需進一步開發(fā),使實驗的功能更加完善,讓學生對于嵌入式應用開發(fā)技術(shù)有更濃厚的興趣。