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