文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2015.08.004
中文引用格式: 朱智星,,白鵬飛,,羅智杰,等. 基于微信公眾平臺的云智能采集系統(tǒng)的設(shè)計[J].電子技術(shù)應用,2015,,41(8):17-19.
英文引用格式: Zhu Zhixing,,Bai Pengfei,Luo Zhijie,,et al. Design of cloud intelligent acquisition system based on WeChat public platform[J].Application of Electronic Technique,,2015,41(8):17-19.
0 引言
智能采集系統(tǒng)完成了對數(shù)據(jù)的實時采集和對傳感設(shè)備的實時控制,,它經(jīng)歷了較長時間的發(fā)展,,并且取得了快速的進步。但是隨著社會的發(fā)展,,網(wǎng)絡(luò)技術(shù)的進步,,特別是物聯(lián)網(wǎng)技術(shù)的發(fā)展,使得人們對智能采集系統(tǒng)也提出了更高的要求,,在追求可視化的同時,,希望可以更加方便快捷地參與到系統(tǒng)的監(jiān)控與操作當中,并且系統(tǒng)可以接入互聯(lián)網(wǎng)進而通過網(wǎng)絡(luò)來控制系統(tǒng),。本文所研究的智能采集系統(tǒng)利用時下十分流行的微信公眾平臺作為媒介,,使用微信便可以可視化地完成對采集設(shè)備的遠程控制和對采集數(shù)據(jù)的收集,從而使用戶實時地參與到了系統(tǒng)之中,,真正意義上實現(xiàn)了云系統(tǒng)的設(shè)計,。
1 基于微信公眾平臺和ZYBO的云智能采集系統(tǒng)
1.1 系統(tǒng)研究背景
當前的嵌入式設(shè)計中,對于高性能,、低功耗且擴展性強的處理器的要求越來越高的同時,,追求軟件和硬件的協(xié)同設(shè)計,、軟件和硬件的協(xié)同調(diào)試以及嵌入式處理器和I/O口在單芯片內(nèi)的完美結(jié)合。傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)大多采用ARM或者FPGA方案,,并不能滿足這樣的設(shè)計要求,。本設(shè)計采用的ZYBO(ZYnq BOard)是一款基于Xilinx-7000系列Z-7010構(gòu)建的高性能、低功耗的嵌入式即用型軟件和數(shù)字電路開發(fā)平臺,。Z-7010是基于Xilinx全可編程片上系統(tǒng)(ALL Programmable System-on-Chip)結(jié)構(gòu),,該結(jié)構(gòu)在單芯片內(nèi)集成了一個雙核ARM Cortex-A9處理器和Xilinx 7系列的FPGA。ARM+FPGA的體系結(jié)構(gòu)提供靈活的通信和外部擴展的功能,,體現(xiàn)了軟硬結(jié)合的設(shè)計思想,,能夠很好地完成處理器在與微信進行通信的同時還能控制外部傳感器外設(shè)的設(shè)計需求。
現(xiàn)存的數(shù)據(jù)采集系統(tǒng)在用戶參與方面存在一些不足,,本設(shè)計創(chuàng)新性地使用了微信公眾平臺,使得用戶參與性更強,,彌補了之前的不足,實現(xiàn)了云系統(tǒng)設(shè)計的概念,。微信是騰訊公司于2011年1月21日推出的一款免費的即時通信軟件,支持跨系統(tǒng)平臺,、跨通信運營商通過網(wǎng)絡(luò)發(fā)送文字,、語音、圖片和視頻等信息,。微信提供公眾平臺,、朋友圈、消息推送等功能,可以通過搖一搖,、搜索號碼,、附近的人、掃二維碼方式添加好友和關(guān)注公眾平臺[1],。微信公眾平臺是騰訊公司在微信連接人與人的基礎(chǔ)上建立的服務(wù)功能模塊,,于2012年8月18日推出。通過微信公眾平臺,,實現(xiàn)了微信與第三方的連接,,也就是實現(xiàn)了人與服務(wù)的連接。通過這一平臺,,每一個人都可以打造屬于自己的一個微信公眾帳號,,從而實現(xiàn)與特定群體的文字、圖片和語音的全方位溝通互動[2],。
1.2 系統(tǒng)實現(xiàn)架構(gòu)
圖1為本設(shè)計的總體實現(xiàn)框圖,。ZYBO主控模塊完成與藍牙模塊和傳感器模塊的互連。主控模塊又可分為處理系統(tǒng)(Processing System,,PS)部分和可編程邏輯(Programmable Logic,,PL)部分。PS部分包括雙核ARM Cortex-A9、存儲器接口以及通用外設(shè)接口等資源,。PL部分也就是常規(guī)的FPGA,,通過PL生成的IP核可以作為ARM內(nèi)核的擴展外圍設(shè)備或者ARM內(nèi)核的加速部件[3]。其中PS部分通過串口與藍牙模塊相連,,本設(shè)計使用的是主從一體TI CC2541藍牙4.0 BLE串口模塊,。在PL部分建立IP核驅(qū)動傳感器模塊,本設(shè)計使用的傳感器是PmodHMT高精度溫濕度傳感器,。該傳感器支持ZYBO板上的Pmod接口,,具有多種分辨率,可以通過用戶寄存器的配置來適應實際應用的需求,。該傳感器模塊完成了本系統(tǒng)的數(shù)據(jù)采集功能,,可對范圍-40 ℃~85 ℃的溫度和0~100%的相對濕度進行測量,溫濕度分辨率分別為14 bit和12 bit,。藍牙模塊與手機微信之間通過4.0 BLE藍牙相連接,,具體協(xié)議為微信藍牙外設(shè)協(xié)“AirSync”。該協(xié)議支持經(jīng)典藍牙和4.0 BLE藍牙,,支持iOS和Android系統(tǒng),。該協(xié)議打通了主控開發(fā)板、藍牙模塊與自己建立的服務(wù)器之間的數(shù)據(jù)通路,,支持將開發(fā)板上的數(shù)據(jù)發(fā)送到自己建立的服務(wù)器,,同時也支持將服務(wù)器中的數(shù)據(jù)發(fā)送到開發(fā)板。不僅如此,,該協(xié)議還打通了開發(fā)板與微信服務(wù)器之間的數(shù)據(jù)通路,,使得開發(fā)板與微信服務(wù)器之間也可以實現(xiàn)數(shù)據(jù)互傳。
2 開發(fā)板端設(shè)計
本設(shè)計的主控開發(fā)板是ZYBO,,由于其本身PS+PL的架構(gòu),,故將開發(fā)板端的設(shè)計分為PS部分的設(shè)計和PL部分的設(shè)計。又因為ZYBO是軟硬件均可進行編程的設(shè)計平臺,,所以開發(fā)板端的設(shè)計同時包括了硬件設(shè)計和軟件設(shè)計,。圖2為開發(fā)板端的設(shè)計框圖。
2.1 PS部分設(shè)計
PS部分以雙ARM Cortex-A9核為主體,,針對本設(shè)計利用UART接口與藍牙串口模塊進行串行通信,。PS內(nèi)部有兩個UART,UART控制器通過APB總線和PS進行內(nèi)部連接[4],,而本設(shè)計僅使用一個UART接口,。同時這部分設(shè)計還包括對于一些存儲器的控制。
由于本設(shè)計使用了PL部分,,而PL可以看成是PS的一個可以重新配置的外設(shè),,所以PS與PL的通信成為一個很重要的問題,。PS與PL之間可以通過使用多個接口和信號實現(xiàn)緊密或者松散的耦合關(guān)系,用于PS與PL數(shù)據(jù)交換的總線接口有2個AXI_GP主設(shè)備接口,、2個AXI_GP從設(shè)備接口,、4個AXI_HP從設(shè)備接口和1個AXI_ACP接口,這些接口屬于功能性接口,,基于AXI總線協(xié)議[4],。PS內(nèi)部的AXI總線是按照AMBA總線協(xié)議[5]來設(shè)計的。本設(shè)計在PS部分采用了AXI_GP主設(shè)備接口M_AXI_GP0,,這就提供了PS對PL的訪問機制,。
2.2 PL部分設(shè)計
PL的本質(zhì)就是Xilinx FPGA,它的加入為傳統(tǒng)的ARM SoC芯片提供了更多的靈活性設(shè)計,,同時也提供了更豐富的可配置資源,。
由于本設(shè)計使用了PmodHMT高精度溫濕度傳感器,從而需要使用Pmod接口,。Pmod接口是由Digilent公司開發(fā)的用于低速LPC外設(shè)與主控板之間的接口協(xié)議[4],,ZYBO上有6個Pmod接口,其中有5個Pmod接口(JA,、JB,、JC、JD,、JE)連接到ZYBO的PL部分,另外一個Pmod接口(JF)連接到PS部分的MIO總線,。PmodHMT只需使用標準Pmod接口(JE),,即把傳感器模塊與PL部分連接起來當作PS的外設(shè)。PS部分使用了AXI_GP接口,,由于本設(shè)計對傳感器的控制所傳輸?shù)臄?shù)據(jù)量較小,,只需要采用AXI_Lite接口即可。
本設(shè)計需要構(gòu)建一個用戶IP核以實現(xiàn)對傳感器的控制,,該IP核基于AXI_Lite規(guī)范,,控制溫濕度傳感器采集環(huán)境的溫度和濕度信息。用戶IP核與PS端的M_AXI_GP0之間的連接需要AXI Interconnect模塊,,但該模塊不需要用戶設(shè)計,,系統(tǒng)會自動生成,同時生成的還有PS端的reset模塊,。
3 微信端設(shè)計
微信端的設(shè)計目的是以“AirSync”為基礎(chǔ),,通過對微信服務(wù)器和自己建立的服務(wù)器的配置以完成開發(fā)板端與微信端的數(shù)據(jù)通信。本設(shè)計的具體功能是用戶使用微信掃描開發(fā)板上的二維碼,,綁定開發(fā)板,;然后進入公眾號,,微信會自動與開發(fā)板端連接,當用戶點擊公眾號中的“采集”菜單時,,傳感器會采集實時的溫濕度信息,,然后將信息發(fā)送到服務(wù)器,服務(wù)器收到消息后,,再將信息發(fā)送到公眾平臺顯示,,內(nèi)容為溫濕度的詳情。微信官方的微信藍牙外設(shè)協(xié)議框圖如圖3,,在本設(shè)計中外設(shè)對應開發(fā)板端,,廠商服務(wù)器對應自己建立的服務(wù)器。
微信端的設(shè)計首先要注冊公眾賬號(服務(wù)號),,然后開通相關(guān)的硬件功能權(quán)限,。自己建立的服務(wù)器需要在公眾平臺中接入,但要注意填寫服務(wù)器地址(URL),、Token和EncodingAESKey,。然后需要把所需的代碼部署到服務(wù)器,但要注意微信公眾號接口只支持80接口[6],。
服務(wù)器的開發(fā)需要完成處理設(shè)備的綁定,、解綁等功能,同時還需要完成和設(shè)備進行消息收發(fā)的功能,。設(shè)計的流程框圖如圖4和圖5,。
圖4為用戶進入公眾平臺并進行關(guān)注和綁定開發(fā)板的過程。當用戶關(guān)注公眾號和綁定時,,微信會把消息推送給服務(wù)器,,服務(wù)器收到消息后會反饋消息給用戶顯示綁定成功。完成綁定后用戶便可以通過微信控和制操作設(shè)備,。在綁定的過程中,,服務(wù)器要將用戶與設(shè)備之間的綁定關(guān)系進行存儲,以便接下來用戶通過微信操作設(shè)備時,,查詢到具體的設(shè)備信息,,然后精確地進行數(shù)據(jù)和控制信息的收發(fā)。
圖5為綁定成功后操作設(shè)備的具體過程,。用戶點擊功能菜單后,,點擊信息會推送給服務(wù)器,然后服務(wù)器會給設(shè)備推送push信息,,設(shè)備收到該消息不需要回復服務(wù)器,,只需要作出相應的動作。本設(shè)計中傳感器會進行溫濕度的測量,。測量后,,設(shè)備會向服務(wù)器發(fā)出一個req消息,,服務(wù)器收到該消息后必須回復一個resp消息給設(shè)備以表示收到設(shè)備的請求。最后服務(wù)器發(fā)送消息給微信端,,內(nèi)容為具體的測量結(jié)果,。
4 結(jié)束語
本設(shè)計采用高性能、低功耗的嵌入式軟硬件協(xié)同設(shè)計的ZYBO設(shè)計平臺,,PS部分利用串口控制藍牙模塊,,PL部分構(gòu)建了一個用戶IP核來控制傳感器模塊,PS部分與PL部分通過AXI總線進行通信,。開發(fā)板端與微信端以微信藍牙外設(shè)協(xié)議為基礎(chǔ)實現(xiàn)數(shù)據(jù)通信,,使得用戶可以通過公眾平臺實時地參與到該云采集系統(tǒng)中來。接下來的工作可以在了解更多微信公眾平臺功能的基礎(chǔ)上優(yōu)化設(shè)計功能和細節(jié),,例如可以加入語音輸入控制和地理位置顯示等功能,。
參考文獻
[1] 肖金華,黃麗紅.基于微信的圖書館信息服務(wù)模式研究[J].現(xiàn)代情報,,2013(6):55-57.
[2] 陳錦波.基于微信的圖書館信息資源推送研究[J].四川圖書館學報,,2013(4):7-10.
[3] 高偉林,曹峰,,佟川,,等.基于Zynq的圖形生成電路設(shè)計與實現(xiàn)[J].液晶與顯示,2014,,29(6):944-949.
[4] 陸佳華,,潘祖龍,彭競宇,,等.嵌入式系統(tǒng)軟硬件協(xié)同設(shè)計實戰(zhàn)指南:基于Xilinx ZYNQ(第2版)[M].北京:機械工業(yè)出版社,,2014.
[5] 何賓.Xilinx All Programmable Zynq 7000 SoC設(shè)計指南[M].北京:清華大學出版社,2013.
[6] 騰訊.微信公眾平臺開發(fā)者文檔[EB/OL].[2015-04-15].http://mp.weixin.qq.com/wiki/home/index.html.