?
基于ARM的流量計(jì)數(shù)據(jù)采集處理系統(tǒng)設(shè)計(jì)
◆臧紫薇 劉宏展通訊作者
(華南師范大學(xué) 廣東 510006)
4-20mA是當(dāng)前工業(yè)儀器的標(biāo)準(zhǔn)信號(hào)之一。針對(duì)工業(yè)流量計(jì)的接口電流無法實(shí)現(xiàn)無線采集的問題,本文設(shè)計(jì)了一種基于ARM處理器的無線數(shù)據(jù)采集處理系統(tǒng)。整個(gè)系統(tǒng)由主控芯片STM32,信號(hào)調(diào)理電路,A/D模塊,無線通信模塊,無線Web服務(wù)器組成。在嵌入式單片機(jī)內(nèi)搭建的Web 服務(wù)器可以實(shí)現(xiàn)對(duì)輸出電流值的采集的同時(shí),將采集到的數(shù)據(jù)通過服務(wù)器無線傳輸。
電流采集;STM32;LwIP協(xié)議;Web服務(wù)器
針對(duì)工廠的能效測(cè)試,需要對(duì)多種能效測(cè)試儀器的共同使用得以實(shí)現(xiàn)?,F(xiàn)場(chǎng)安裝的能效測(cè)試儀器根據(jù)其自身的數(shù)據(jù)傳輸條件可以分為三類。其中一類儀器自身具備信號(hào)發(fā)射與接收功能,可以實(shí)現(xiàn)測(cè)量數(shù)據(jù)的傳輸;二類儀器雖帶有數(shù)據(jù)串口,但受接口條件所限,無法自行實(shí)現(xiàn)儀表數(shù)據(jù)傳輸;三類儀器不具備數(shù)據(jù)串口。在工業(yè)儀表上,除RS232接口外,通常將測(cè)量流速、氣壓、氣體濃度等的儀表測(cè)量得到的物理量變送為標(biāo)準(zhǔn)4-20mA模擬電流輸出。
德國(guó)FLUXUS F601超聲波流量計(jì)是通過超聲波信號(hào)對(duì)于工業(yè)管道中的氣、液體流速進(jìn)行精密測(cè)量的儀器。該儀器具有標(biāo)準(zhǔn)化的電流輸出接口,可以將所測(cè)得的流量值線性轉(zhuǎn)化為4-20mA的電流信號(hào)。目前來講,由于該儀器僅自帶串口及模擬量輸出接口,并不具備無線收發(fā)功能,對(duì)其的數(shù)據(jù)采集仍然只能依賴于串口數(shù)據(jù)采集或人工讀表,這大大限制了數(shù)據(jù)采集的靈活性并增加了工作人員的工作負(fù)擔(dān)。因此,本文介紹了一種針對(duì)上述儀器模擬量接口的基于ARM的流量計(jì)數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì)。
圖1 系統(tǒng)硬件總體結(jié)構(gòu)圖
系統(tǒng)的總體框架結(jié)構(gòu)如圖1所示。
系統(tǒng)的主控模塊選擇的是基于ARM內(nèi)核的STM32芯片。流量計(jì)讀取的流速值被輸出顯示為與其線性對(duì)應(yīng)的標(biāo)準(zhǔn)4-20m直流電流信號(hào)。該信號(hào)經(jīng)過電流環(huán)接收器芯片RCV420進(jìn)行放大和處理后成為0-5V的電壓信號(hào)。該電壓信號(hào)經(jīng)A/D轉(zhuǎn)換芯片變成可被STM32單片機(jī)讀取并處理的數(shù)字信號(hào)。STM32RGTb通過SPI通訊方式讀取A/D轉(zhuǎn)換結(jié)果,并通過SDIO方式驅(qū)動(dòng)WIFI芯片,實(shí)時(shí)處理并存儲(chǔ)得到的電流值信息。在單片機(jī)內(nèi)搭建形成一個(gè)基于STM32微處理器的Web服務(wù)器,帶有WIFI功能的計(jì)算機(jī)作為子設(shè)備連接WIFI,并可直接獲取單片機(jī)的采集數(shù)據(jù)。
系統(tǒng)的主控模塊選擇美國(guó)ST公司生產(chǎn)的基于ARM內(nèi)核的STM32F103RGTb芯片。該芯片是一個(gè)基于M3核的32位處理器,具有1MB的Flash容量,9KB的SRAM容量。其外設(shè)資源豐富,支持SDIO、SPI、UART及I2C等外設(shè)接口。因此它可以高度滿足本設(shè)計(jì)的需求。
為了將4-20mA的小信號(hào)輸出電流轉(zhuǎn)換為單片機(jī)可讀的電壓信號(hào),本設(shè)計(jì)中選用了集成的高精度電流環(huán)接收芯片RCV420。該芯片是美國(guó)BURR-BROWN公司生產(chǎn)的一款針對(duì)小電流信號(hào)采集的接收轉(zhuǎn)換芯片,它內(nèi)部有精密的內(nèi)電阻網(wǎng)絡(luò)、運(yùn)算放大器及10V基準(zhǔn)電壓[1],可以用于將4-20mA的電流信號(hào)轉(zhuǎn)換為0-5V的輸出電壓,且理論誤差僅有0.1%。應(yīng)用RCV420芯片時(shí)不需添加其他外圍電路,因此它大大降低了維護(hù)成本。
該芯片的應(yīng)用電路圖如圖2。
16,4引腳分別為該芯片的正、負(fù)電源引腳。需要在其引腳旁各并接一個(gè)1μF的退交連電容,可濾除其直流電源中的其他成分,減小電源帶來的波紋干擾。
圖2 RCV芯片的應(yīng)用電路
經(jīng)電流環(huán)接受芯片轉(zhuǎn)換后的電壓值為0-5V,無法直接被單片機(jī)采集,故選用一個(gè)外置的AD轉(zhuǎn)換模塊。本設(shè)計(jì)中選用MAX187作為A/D轉(zhuǎn)換芯片。MAX187芯片是一款12位的逐次逼近A/D 轉(zhuǎn)化器,為單+5V電源供電,可將外部參考電壓設(shè)置為+5V。MAX144與SPI,Micro Wire等多種串口標(biāo)準(zhǔn)兼容[2]。其外圍電路連接簡(jiǎn)單,如圖3所示。
圖3 ADC芯片與其外圍接線
本設(shè)計(jì)中選用的WIFI芯片的是Marvell公司生產(chǎn)的marvellw8801。該芯片是一款低功耗,高性能,體積小的無線SoC芯片。它符合IEEE802.11e的標(biāo)準(zhǔn),并且它的兼容性很高,能夠向下兼容多種通信協(xié)議。它可通對(duì)等(Ad hoc)或集中控制(Infrastructure)的工作模式與無線設(shè)備快速聯(lián)通。本W(wǎng)IFI芯片與單片機(jī)通過SDIO口進(jìn)行通訊。由于芯片內(nèi)部具有單次可編程內(nèi)存OTP(One-time Programmable)可以減少對(duì)外部EEPROM的需求。圖4為WIFI芯片的接線圖。
圖4 WIFI模塊
一個(gè)Web服務(wù)器是一個(gè)由因特網(wǎng)、微處理器,以及相應(yīng)的軟硬件組合的套件,可以被用來監(jiān)測(cè)和控制相關(guān)的系統(tǒng)[3]。服務(wù)器的硬件與協(xié)議的關(guān)系如圖5所示。
圖5 系統(tǒng)軟件設(shè)計(jì)
單片機(jī)通過SDIO方式驅(qū)動(dòng)該WIFI模塊。SDIO設(shè)備的初始化在main.c內(nèi)通過調(diào)用SD_Init()函數(shù)實(shí)現(xiàn),使得其處于就緒狀態(tài)。SDIO設(shè)備的初始化過程完成后,通過調(diào)用init_wifi()實(shí)現(xiàn)WIFI的初始化。
WIFI模塊內(nèi)部有一個(gè)微處理器,對(duì)其的驅(qū)動(dòng)需要在其內(nèi)部寫入程序。Marvell的官網(wǎng)上可以下載到該程序的二進(jìn)制固件。當(dāng)固件下載完成后,可掃碼連接一個(gè)熱點(diǎn)或自己建立一個(gè)熱點(diǎn),這是能夠?qū)崿F(xiàn)在數(shù)據(jù)鏈路層上對(duì)數(shù)據(jù)幀的傳輸?shù)奈锢砘A(chǔ)。無線網(wǎng)卡與其他設(shè)備的通訊除需要鏈路層外,同時(shí)需要網(wǎng)絡(luò)協(xié)議棧的支持。
μC/ OS2-II操作系統(tǒng)是可在Micrium官網(wǎng)下載的開源C語言操作系統(tǒng),已經(jīng)被運(yùn)用在很多的32位以下的MCU中,具有很好的穩(wěn)定性[3]。LwIP協(xié)議是由瑞士計(jì)算機(jī)科學(xué)院在TCP/IP協(xié)議的基礎(chǔ)上進(jìn)行裁剪的輕量級(jí)通信協(xié)議。它是針對(duì)低配置CPU設(shè)計(jì)的,因此適合在嵌入式流量計(jì)采集系統(tǒng)之中進(jìn)行應(yīng)用。LwIP協(xié)議??梢灾С諸CP、UDP、HTTP、IP等協(xié)議,支持多線程操作[4],且在無操作系統(tǒng)或有操作系統(tǒng)下均可運(yùn)行[5]。
LwIP協(xié)議在μC/ OS2-II系統(tǒng)上的移植的實(shí)質(zhì)就是調(diào)用μC/ OS的函數(shù)實(shí)現(xiàn)系統(tǒng)的初始化、任務(wù)同步、時(shí)間管理和內(nèi)存管理[5]。其移植的步驟如下:
( 1 ) 在初始系統(tǒng)源文件夾下新建os子文件夾,內(nèi)移植必備的os_core.c,os_cpu_a.asm,os_cup_c.c,app_cfg.c文件,并根據(jù)需求添加如下文件,如圖6。
圖6 添加文件
在文件夾中添加完成源文件后,在Keil4.12中打開Manage Components,在工程內(nèi)添加源文件,并依次按照對(duì)應(yīng)的文件夾添加.h頭文件。
( 2 ) 分別按照ARM型號(hào),和對(duì)函數(shù)的調(diào)用情況修改移植的源文件。
( 3 ) 利用μC/ OS2-II操作系統(tǒng)的函數(shù)完成LwIP功能的實(shí)現(xiàn)。
a. 建立并根據(jù)平臺(tái)類型等建立相關(guān)的頭文件Lwipopts.h,cc.h,perf.h,sys_arch.h;
b. 建立RTOS的抽象層文件sys_arch.c;
c. 根據(jù)網(wǎng)卡的驅(qū)動(dòng)和LwIP的接口修改ethernetif.c等文件里的對(duì)應(yīng)的static struct pbuf *low_level_input(struct netif *netif,void *p_buf,int size),low_level_init(struct netif *netif)函數(shù);
d. 在μC/ OS2-II啟動(dòng)后初始化LwIP。
在嵌入式網(wǎng)頁服務(wù)器中,網(wǎng)頁是用戶與其進(jìn)行交互的媒介,屬于LwIP的應(yīng)用層[6]。用戶通過在瀏覽器的地址欄輸入服務(wù)器地址即可打開服務(wù)器網(wǎng)頁,并向網(wǎng)頁發(fā)送并接收來自網(wǎng)頁的信息。Web服務(wù)器與網(wǎng)頁有以下七個(gè)流程:
(1)建立TCP連接。由于HTTP是應(yīng)用層協(xié)議,根據(jù)規(guī)則,需在TCP協(xié)議建立完成的基礎(chǔ)上實(shí)現(xiàn)高層協(xié)議的連接。
(2)瀏覽器向Web服務(wù)器發(fā)送請(qǐng)求命令。這個(gè)過程在建立TCP連接后即發(fā)生。
(3)瀏覽器發(fā)送請(qǐng)求頭信息。瀏覽器用一個(gè)空白行
(4)Web服務(wù)器產(chǎn)生應(yīng)答。
(5)Web瀏覽器發(fā)送請(qǐng)求頭信息。
(6)Web服務(wù)器向?yàn)g覽器發(fā)送數(shù)據(jù)。
(7)Web服務(wù)器關(guān)閉TCP連接。
本文設(shè)計(jì)了一種能夠?qū)崿F(xiàn)數(shù)據(jù)無線傳輸?shù)臒o線電流數(shù)據(jù)采集系統(tǒng),用戶可將移動(dòng)端連接至由單片機(jī)搭建的Web熱點(diǎn),從而實(shí)現(xiàn)采集電流的實(shí)時(shí)顯示。不同于傳統(tǒng)的通過串口通信的電流采集模塊,本設(shè)計(jì)中對(duì)于無線網(wǎng)卡的應(yīng)用使得系統(tǒng)擺脫了串口通信的限制,用戶可在信號(hào)范圍內(nèi)的任意位置對(duì)數(shù)據(jù)進(jìn)行采集和讀取。本文中采用的ARM處理器不僅成本低,性能優(yōu)良,其內(nèi)存空間大,可以運(yùn)行針對(duì)嵌入式處理器設(shè)計(jì)的μC/ OS2-II操作系統(tǒng)及LwIP協(xié)議棧,保證了傳網(wǎng)絡(luò)傳輸?shù)姆€(wěn)定性和可靠性。設(shè)計(jì)中選用的Marvell8801無線模塊,支持對(duì)等或集中控制的工作模式,為系統(tǒng)的應(yīng)用環(huán)境提供了更多的選擇。
[1]龔京.電流環(huán)接收器 RCV420及其應(yīng)用[J].國(guó)外電子元器件,2000(2).
[2]張?jiān)罎?,史?12位A/D轉(zhuǎn)換器MAX187原理及應(yīng)用[J].國(guó)外電子元器件,2007(3).
[3]Allafi,I. and T. Iqbal. Design and implementation of a low cost web server using ESP32 for real-time photovoltaic system monitoring. in 2017 IEEE Electrical Power and Energy Conference (EPEC).2017. IEEE.
[4]楊俊,呂建平,徐峰柳.基于μC/OS-Ⅱ和LwIP的嵌入式Web服務(wù)器實(shí)現(xiàn)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2011.
[5]闕大順.LwIP 協(xié)議在 μC/OS2II系統(tǒng)上的移植和實(shí)現(xiàn)[J].艦船電子工程,2006(4).
[6]林.J.基于Cortex-M3的嵌入式WEB 服務(wù)器監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].太原理工大學(xué),2013,201(3):5.
國(guó)家自然科學(xué)基金,項(xiàng)目編號(hào):61875057,61475049。
網(wǎng)絡(luò)安全技術(shù)與應(yīng)用2019年5期