周 瑋,董全德,宋啟祥
(宿州學院 信息工程學院,安徽 宿州 234000)
基于STM32的物聯(lián)網底層平臺研究與測試
周 瑋,董全德,宋啟祥
(宿州學院 信息工程學院,安徽 宿州 234000)
為了解決物聯(lián)網底層的數據收發(fā)問題,以STM32增強型系列控制器為基礎,結合CC2541低功耗片載系統(tǒng)設計了物聯(lián)網底層無線數據收發(fā)系統(tǒng)。該系統(tǒng)可以與手機一樣進行短信編輯操作,機器能夠通過自定義用戶名來區(qū)別其他用戶,實現了任意兩節(jié)點之間的短信數據通信以及串口對PC的數據通信。設計了數據收發(fā)的硬件結構、CC2541片載通信、PC通信的USART驅動和連接MCU與CC2541的SPI驅動。經測試,該系統(tǒng)能夠實現物聯(lián)網底層數據通信需求,有一定應用價值。
STM32;底層平臺;物聯(lián)網
隨著社會經濟的發(fā)展,物聯(lián)網(Internet of things)[1]已經在人們的日常生活中扮演著越來越重要的作用。目前,物聯(lián)網研究的熱點主要在WSN、協(xié)議棧、無線射頻識別和無線短距離通訊上,而對于基礎平臺的無線傳感器網絡操作系統(tǒng)研究很少,因此相關研究亟待進行。
STM32增強型系列控制器[2]采用ARM Cortex-M3內核設計,可提供72 MHz時鐘頻率,配置512 kB 存儲,控制器運行功耗低,可靠性高。片載通信系統(tǒng)采用CC2541的SoC[3]系統(tǒng),CC2541具有低功耗、高傳輸率的特性,并且支持多個頻段的數據通信速率。
該系統(tǒng)采用增強型的STM32F103C8控制器,設計并實現物聯(lián)網底層平臺數據收發(fā)功能。
物聯(lián)網(IoT)技術是從傳統(tǒng)的傳感器網絡發(fā)展而來,采用RFID射頻識別,采集到物體的數據并進行處理的技術。IoT采用面向服務的體系架構,各上層應用的開發(fā)可不涉及底層的驅動和接口,因此對物聯(lián)網底層數據通信模塊接口的設計能對上層應用提供有效的支持。
圖1是物聯(lián)網體系架構圖,整個物聯(lián)網體系結構采用ISO/IEC標準,從上到下分成服務層、網絡層和感知層。
服務層將網絡采集到的數據經過數據處理、數據挖掘和數據融合等技術提供給用戶使用,包括對物聯(lián)網用戶的設備管理、服務管理、業(yè)務管理和安全管理等。服務層是用戶開發(fā)應用最多的一層。
圖1 物聯(lián)網體系結構
網絡層將底層硬件采集到的數據經由本地局域網絡或廣域網絡通過數據通信發(fā)送給服務層。廣域網的接入可以采用公用電話網、核心接入網和無線傳感網等實現數據交換和路由。對網絡層的安全管理和網絡服務的提供也是物聯(lián)網架構的研究重點。
感知層通過傳感器節(jié)點、RFID射頻等從物體中采集數據,根據用戶的需要將數據進行處理和識別,通過特征提取、數據匯聚等技術將采集到的數據匯聚到中心節(jié)點,并進一步交付上層使用。無線通信采用的技術主要有ZigBee、802.11b等。
2.1 底層平臺定時器設計
高性能總線AHB將STM32F103C8控制器系統(tǒng)時鐘分成多個頻段,該系統(tǒng)采用預先分頻的APB1和APB2兩個時段,片上外設總線APB1和APB2競爭頻段號,預留1,2,4,8,16的時隙,STM32F103C8控制器定時時鐘設計如圖2所示。
對于片上外設總線定時器T1,當預分頻等于1時,原樣輸出信號參數,最高能夠產生36 MHz信號,與電路上20個外設時鐘使能后經PCLK1時鐘接入APB總線外設;否則,如果片上外設總線1得到大于1的時隙時,將信號放大2倍輸出,產生T2~T7的TIMXCLK時鐘接入APB總線外設。對于片上外設總線定時器T2來說,如果片上外設總線定時器T2使用其他預留分頻,則將信號放大2倍,會產生最大72 MHz信號,與電路上15個外設時鐘使能后經PCLK2時鐘接入APB總線外設;否則,放大2倍信號產生T1~T8的TIMXCLK時鐘接入APB總線外設。
通過以上設置STM32F103C8控制器使能通道,能夠根據普通定時器產生多路相同周期,根據預先分頻的APB1和APB2兩個時段,計算向上計數溢出參數,得到定時時鐘。
圖2 STM32F103C8控制器定時時鐘設計
2.2 USART模塊電路設計
USART模塊采用串行通信模式進行數據收發(fā)。模塊通常分為三個部分:數據發(fā)送模塊、數據接收模塊和時鐘模塊。所有的模塊共享控制寄存器。時鐘模塊包括PWB波形生成器和同步信號發(fā)生器,在同步模式下由外部時鐘輸入驅動。
USART模塊工作時與波特率存儲器USARTDRR同步連接,當計時器到時或有信息載入到USARTDRR存儲器時,信號自動載入到波特率存儲器USARTDRR中。系統(tǒng)時鐘由內部模式和外部模式共同驅動,為了防止數據漂移,提高系統(tǒng)的穩(wěn)定性采用1個CPU時鐘時延。使用同步時鐘時, 將USM置為使能,外接引腳XCK可用于數據發(fā)送和接收。
信號發(fā)送器部分由寫入緩存SEDBFF、信號校驗模塊、串行移位寄存器和幀模塊產生器等部分組成,對要發(fā)送的幀數據先保存在SEDBFF緩存中,支持9個數據位并從上位機獲取時鐘同步信息,能夠實現連續(xù)數據發(fā)送。支持數據檢測和幀錯誤校驗,對發(fā)送結束采用中斷響應。
信號接收器部分由接收模塊、數據通信模塊和存儲模塊組成,當系統(tǒng)檢測到信號位時,啟動數據接收模塊。信號位以先前設置的時鐘PCLK進行接收,并載入接收緩存RECBUFF,當收到停止位RXC后產生中斷停止數據接收。讀取數據時從寄存器高位進行讀取,當接收緩存數據為空時,更新接收緩存直到中斷產生或讀取到緩存數據。對于STM32F103C8控制器定時時鐘設計如圖3所示。
圖3 USART模塊電路設計
3.1 SPI設計
CC2541通過串行外設接口USART模塊微處理單元進行通信。SPI有三種寄存器:控制寄存器(SPI_CR)、狀態(tài)寄存器(SPI_SR)、數據寄存器(SPI _DR)。該系統(tǒng)采用SPI環(huán)形總線結構,雙向寄存器控制數據收發(fā)。當系統(tǒng)檢測到上升信號時,置位sdo電壓,準備數據發(fā)送;當系統(tǒng)檢測到下行信號時,置位sdi電壓,準備數據接收,進行雙向數據通信。
系統(tǒng)設計SPI設置為同步收發(fā)模式,時鐘頻率CLK置位,當系統(tǒng)檢測到MOSI標志位,系統(tǒng)從外設進行數據的輸入;當收到MISO標志位時,系統(tǒng)輸出數據到外設。SPI上電后初始化參數:設置標志位CPHA使能,當系統(tǒng)檢測到數據時檢測時鐘信號。配置SPI接口定時信息,由于該系統(tǒng)采用同步模式進行數據收發(fā),設備間是對等的關系,對等設備SDO接口與SDI接口進行互聯(lián),P1的SDO接收P2設備SDI傳送過來的信號,在進行時鐘配置時,反方向設置設備P1和P2的時序。SPI通信設計如圖4所示。
圖4 SPI通信設計
3.2 數據收發(fā)設計
CC2541上電后同步時鐘信號,初始化各參數信息,配置參數CPOL=0并設置同步通信模式進行通信。調用函數init()完成各參數配置,設置CPU延遲時間和電頻模式,設置發(fā)射功率和接收功率。設置初始連接信息,設置RSTN為輸出模式,設置CCA進入接收模式。
CC2541片上系統(tǒng)數據發(fā)送流程如圖5所示。
1)在準備發(fā)送數據前檢測發(fā)送前導工作是否完成,判斷TX-FRM-DONE標志位,如果沒有進入發(fā)送周期,則停止數據發(fā)送,進入準備狀態(tài),檢測發(fā)送緩存直到系統(tǒng)異常排除。
2)進入發(fā)送狀態(tài),關閉接收數據中斷并封裝數據包,將要發(fā)送的數據寫入TXFIFO,并打開接收數據中斷,等待數據發(fā)送。
3)讀取SEDBFF中的數據發(fā)送,進入等待狀態(tài)。如果在規(guī)定時間內接收方發(fā)來的ACK確認,在basicRfRxFrmDoneIsr中處理接收ACK包。如果沒有收到ACK確認,超時重傳,當重傳次數超過門限值時,退避一段時間后再次進入準備發(fā)送狀態(tài),準備發(fā)送數據,直到數據發(fā)送成功。
圖5 數據發(fā)送流程
系統(tǒng)采用串口通信測試,CC2541收發(fā)模塊發(fā)送數據,由主機接收數據并返回消息由收發(fā)模塊接收。配置通信模塊和主機的IP地址,封裝幀數據包括節(jié)點的DSN信息。在廣播和單播兩種模式下測試片上系統(tǒng)數據收發(fā)性能,能夠進行很好的數據通信。
針對物聯(lián)網感知層對節(jié)點數據收發(fā)通信的需求設計了基于CC2541片載系統(tǒng)的無線通信收發(fā)模塊。為了實現系統(tǒng)功能,給出底層硬件平臺電路設計和USART模塊電路設計,USART模塊和SPI通信同步的設計,并實現了數據收發(fā)的流程。由于CC2541片載系統(tǒng)具有可靠性高、能耗低的特點,基于CC2541的物聯(lián)網底層通信系統(tǒng)更加節(jié)能可靠,有一定的實際應用價值。
[1] 朱近康.無線傳感器網絡技術[J].中興通信技術,2004(S1):14-15,20.
[2] 張 樂,邵峰晶,孫仁誠.嵌入式系統(tǒng)開發(fā)平臺硬件抽象層的研究與設計[J].青島大學學報:工程技術版,2007,22(01):20-25.
[3] 韓 立,郭永偉,羅佳偉.基于ATmega88的USART多處理機通信[J].電腦與信息技術,2010,18(6):49-51.
[3] 陳宇恒,肖 竹,王 洪.LTE協(xié)議棧與信令分析[M].北京:人民郵電出版社,2013.
[4] ELBERS J P,AUTENRIETH A.From static to software-defined optical networks [C]//2012 16th International Conference on Optical Network Design and Modeling(ONDM),Colchester,2012:1-4.
[5] 林一多.基于IEEE 802.15.4的無線傳感器網絡MAC協(xié)議機制的改進與實現[D].北京:北京交通大學,2011.
[6] 陳 杰.基于ZigBee的家居安防系統(tǒng)的設計[D].武漢:華中科技大學,2010.
[7] 李佳旭.基于ARM7的嵌入式μC/TCP-IP協(xié)議棧的研究與實現[D].西安:西安電子科技大學,2010.
[8] 喻琪家,王艷秋.基于STM32的降壓型直流開關穩(wěn)壓電源的設計[J].沈陽工程學院學報:自然科學版:2016,12(4):349-352.
[9] Zhao Z,Lee W C,Shin Y,et al.An optimal power scheduling method for demand response in home energy management system[J].IEEE Transactions on Smart Grid,2013,4(3):1391-1400.
[10]Kau LJ,Dai BL,Chen C,et al.A cloud network-based power management technology for smart home systems[C]//Proc.of IEEE International Conference on Systems,Man and Cybernetics,SMC,2012,2(1):2527-2532.
ResearchandTestonLowLevelPlatformofInternetofThingsBasedonSTM32
ZHOUWei,DONGQuan-de,SONGQi-xiang
(CollegeofInformationEngineering,SuzhouUniversity,Suzhou234000,AnhuiProvince)
In order to solve the data sending and receiving at the bottom of Internet of things,this paper designed an underlying wireless data transceiver system based on the STM32 enhanced series controller,combined with the CC2541 low-power consumption chip system. The system can be operated like the mobile phone SMS edit operation and the machine can customize the user name to distinguish other users to achieve the technology between any two nodes of message data communication and serial data communication of PC. The hardware structure of data receiving and sending,CC2541 chip communication,USART drive and connection of PC communication and the design of SPI driver for MCU and CC2541 were designed. Test results showed that the system could realize the data communication requirements of the Internet of things and had certain application value.
STM32;Low level platform;Internet of things
TP393.2
A
1673-1603(2017)04-0370-06
(責任編輯魏靜敏校對張凱)
2017-07-01
安徽省教育廳自然科學項目(KJ2016A769);2016宿州學院重點科研項目(2016yzd10)
周 瑋(1985-),女(土家族),湖南永順人,助教,碩士。
10.13888/j.cnki.jsie(ns).2017.04.014