郭珍珍,郭前崗,周西峰
(南京郵電大學(xué) 自動(dòng)化學(xué)院,江蘇 南京 210046)
太陽(yáng)能路燈系統(tǒng)配置得不理想,將影響太陽(yáng)能LED路燈的推廣。而其光電池的輸出功率和蓄電池的容量及負(fù)載功率等搭配,僅靠理論計(jì)算是不夠的。只有采取自動(dòng)跟蹤監(jiān)測(cè)的系統(tǒng)才能確定太陽(yáng)能電池在不同季節(jié)、不同時(shí)間、不同方位的最大功率輸出,以此為依據(jù)確定其蓄電池和負(fù)載才可靠。傳統(tǒng)的太陽(yáng)能LED路燈監(jiān)控系統(tǒng)采用單一的通信方式,通信方式不夠靈活。為此,本文設(shè)計(jì)了基于Measurement Studio的太陽(yáng)能LED路燈自動(dòng)跟蹤監(jiān)控系統(tǒng)。該系統(tǒng)不僅能實(shí)時(shí)顯示太陽(yáng)能路燈當(dāng)前環(huán)境下的系統(tǒng)參數(shù)數(shù)值和參數(shù)變化曲線,還能利用GPRS和CAN總線構(gòu)成的區(qū)域網(wǎng)絡(luò)對(duì)照明節(jié)點(diǎn)進(jìn)行集中管理。
Measurement Studio 是美國(guó) NI(National Instrument)公司推出的虛擬儀器軟件。現(xiàn)有的虛擬儀器開發(fā)平臺(tái)主要有基于G語(yǔ)言開發(fā)平臺(tái)的LabVIEW(文獻(xiàn)中關(guān)于虛擬儀器介紹的也多是基于LabVIEW平臺(tái)的),然而LabVIEW作為一種圖形化開發(fā)語(yǔ)言,缺乏開發(fā)的靈活性。而集成式C語(yǔ)言開發(fā)環(huán)境Measurement Studio,分別為ANSIC、Visual Basic、Visual C++用戶提供了建立自動(dòng)化測(cè)試系統(tǒng)以及實(shí)驗(yàn)室應(yīng)用所需的各種測(cè)試、測(cè)量工具包[1-2]。本文充分利用C語(yǔ)言的邏輯運(yùn)算和Measurement Studio的圖形化顯示的優(yōu)點(diǎn),運(yùn)用Measurement Studio和Vsual C++搭建了太陽(yáng)能LED路燈監(jiān)控系統(tǒng)。
系統(tǒng)采用GPRS和CAN總線結(jié)合的通信模式,這種模式不僅能夠穩(wěn)定完成底層終端數(shù)據(jù)的傳輸,更能高效地實(shí)現(xiàn)與上位機(jī)之間的信息通信。同時(shí)也避免了單一節(jié)點(diǎn)采用GPRS模塊所造成的資源浪費(fèi)[3]。底層局域網(wǎng)結(jié)構(gòu)如圖1所示,太陽(yáng)能控制終端通過(guò)CAN通信形成了一個(gè)初級(jí)局域通信網(wǎng)。而每個(gè)局域網(wǎng)中都有一個(gè)帶GPRS的終端節(jié)點(diǎn),它是上位機(jī)與底層終端之間的數(shù)據(jù)傳輸?shù)募~帶,其通過(guò)無(wú)線網(wǎng)絡(luò)接收用戶發(fā)送的控制和查詢命令,并通過(guò)CAN網(wǎng)絡(luò)將其轉(zhuǎn)發(fā)給相應(yīng)的終端節(jié)點(diǎn)。而終端采集的數(shù)據(jù)信息也都通過(guò)它轉(zhuǎn)發(fā)給上位機(jī)軟件。

圖1 系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)圖
單個(gè)節(jié)點(diǎn)結(jié)構(gòu)圖如圖2所示。其中,太陽(yáng)能LED路燈系統(tǒng)的相關(guān)參數(shù),包括太陽(yáng)能電池電壓和電流、蓄電池端電壓及充電電流等直流信號(hào),經(jīng)過(guò)調(diào)理電路對(duì)信號(hào)進(jìn)行縮小倍數(shù)以滿足STM32的A/D采集通道的輸入電平要求;STM32產(chǎn)生不同占空比的PWM波控制充放電電路,實(shí)現(xiàn)蓄電池的充放電控制。STM32系統(tǒng)主要功能包括A/D采樣、PWM波占空比控制以及與PC進(jìn)行遠(yuǎn)程通信。PC顯示下位機(jī)采集的參數(shù)的數(shù)值、繪制參數(shù)曲線,并存儲(chǔ)、分析數(shù)據(jù)。此外,GPRS無(wú)線通信模塊屬于主節(jié)點(diǎn)特有,其他模塊無(wú)主次節(jié)點(diǎn)之分。

圖2 單節(jié)點(diǎn)結(jié)構(gòu)圖
2.1.1 GPRS網(wǎng)絡(luò)通信的實(shí)現(xiàn)
GPRS內(nèi)置TCP/IP協(xié)議,可以根據(jù)配置進(jìn)行多達(dá)5種網(wǎng)絡(luò)通信協(xié)議的數(shù)據(jù)傳輸,如 TCP、FTP、HTTP、SMTP以及POP3等。這里選用TCP協(xié)議進(jìn)行可靠的數(shù)據(jù)傳輸。
GPRS通信模塊主要由MC52i核心控制芯片、RS232串口通信模塊、SIM卡模塊以及電源四部分組成,其框圖如圖3所示。

圖3 GPRS模塊結(jié)構(gòu)圖
MC52i為西門子公司的產(chǎn)品,它屬于工業(yè)級(jí)別的GPRS模塊,進(jìn)行基于TCP/IP的數(shù)據(jù)傳輸,實(shí)現(xiàn)IP地址設(shè)定、照明信息的無(wú)線傳輸以及報(bào)警通知等。MC52i通過(guò)串口與單片機(jī)通信,實(shí)現(xiàn)信息的交互。
2.1.2 CAN通信接口設(shè)計(jì)
STM32的內(nèi)部集成了CAN控制器,其內(nèi)部的bxCAN模塊支持CAN協(xié)議2.0A和2.0B,位通信比特率可達(dá)1 Mb/s,支持時(shí)間觸發(fā)通信功能。其中包含3個(gè)發(fā)送郵箱,3級(jí)深度的2個(gè)接收FIFO,14個(gè)位寬可變的過(guò)濾器組。報(bào)文的發(fā)送和接收由CAN內(nèi)核自動(dòng)實(shí)現(xiàn)。其波特率公式計(jì)算如下:


CAN驅(qū)動(dòng)電路主芯片選用TJA1050,它是CAN控制器和物理總線之間的接口,是一種標(biāo)準(zhǔn)的CAN收發(fā)器。輸入級(jí)可與STM32的3.3 V輸出電壓兼容,至少可以連接110個(gè)節(jié)點(diǎn)。
2.1.3 采樣調(diào)理電路設(shè)計(jì)
本文利用LM358組成一個(gè)電壓跟隨器,采用電阻分壓法將待測(cè)電壓縮小倍數(shù),轉(zhuǎn)換為STM32的模/數(shù)轉(zhuǎn)換器可以處理的采樣信號(hào)范圍(即0~3.3 V)。電壓調(diào)理電路如圖4所示,其輸出UADC1與輸入U(xiǎn)i的關(guān)系表達(dá)式為:


圖4 電壓調(diào)理電路
電流采樣電路如圖5所示,采用采樣電阻法,由LM358構(gòu)成一個(gè)差分放大器,它的兩輸入電壓差為采樣電阻上的電壓時(shí),則差分放大器輸出UADC1與UR關(guān)系為:

2.2.1 軟件系統(tǒng)設(shè)計(jì)
軟件系統(tǒng)采用模塊化設(shè)計(jì),包括系統(tǒng)登錄模塊、操作員管理模塊、系統(tǒng)基本配置模塊、通信設(shè)置模塊、參數(shù)數(shù)值顯示模塊、參數(shù)曲線繪制模塊、幫助模塊。系統(tǒng)登錄模塊是為了保證操作員的安全登錄和系統(tǒng)數(shù)據(jù)的安全;操作員管理模塊用于增加用戶并設(shè)定密碼,或者刪除非法用戶;系統(tǒng)基本配置模塊記錄路燈節(jié)點(diǎn)的配置信息;參數(shù)顯示模塊可以提供某個(gè)路燈系統(tǒng)參數(shù)查詢;參數(shù)曲線繪制模塊可以更加形象地實(shí)時(shí)繪制參數(shù)曲線。

圖5 電流采樣電路
軟件系統(tǒng)設(shè)計(jì)流程圖如圖6所示,其中 Winsock初始化是為socket網(wǎng)絡(luò)通信做準(zhǔn)備,而初始化OLE/COM庫(kù)是在調(diào)用ADO訪問(wèn)數(shù)據(jù)庫(kù)之前必須要做的工作。
2.2.2 通信協(xié)議的設(shè)計(jì)
系統(tǒng)通信方式主要分為上位機(jī)軟件的socket網(wǎng)絡(luò)通信、底層GPRS模塊封裝了AT指令的串口通信以及CAN通信,在這三種通信方式中,CAN通信發(fā)送的數(shù)據(jù)長(zhǎng)度有一定的限制。在CAN傳輸?shù)囊粠瑪?shù)據(jù)幀中,其數(shù)據(jù)域的長(zhǎng)度最長(zhǎng)為8 B。為了融合CAN通信以及網(wǎng)絡(luò)通信,通信協(xié)議的長(zhǎng)度設(shè)為8 B。具體協(xié)議格式如圖7所示。

圖6 軟件設(shè)計(jì)流程圖

圖7 協(xié)議格式
2.2.3 多線程的性能優(yōu)化
多線程編程技術(shù)避免了某項(xiàng)任務(wù)長(zhǎng)時(shí)間占用CPU時(shí)間,提高了程序的并發(fā)處理數(shù)據(jù)的能力。本文的應(yīng)用軟件優(yōu)化設(shè)計(jì)中,在進(jìn)入主界面之前,創(chuàng)建了管理線程,用于監(jiān)聽線程和工作線程的創(chuàng)建與管理。這樣,不僅有助于提高數(shù)據(jù)的并發(fā)處理能力,也使得程序分工更加明確,調(diào)理更加清晰。監(jiān)聽線程主要負(fù)責(zé)等待GPRS的連接并為連接的GPRS開辟相應(yīng)的空間。工作線程主要負(fù)責(zé)與GPRS通信過(guò)程中的數(shù)據(jù)處理,并將其提交給相應(yīng)的客戶端界面。而管理線程會(huì)在軟件退出時(shí)通知監(jiān)聽線程和工作線程停止工作,并釋放相應(yīng)的資源。此外,通過(guò)函數(shù) GetSystemInfo(&sysInfo)獲得處理器的信息,而創(chuàng)建工作線程的個(gè)數(shù)也會(huì)隨著處理器的個(gè)數(shù)的變化作出相應(yīng)的調(diào)整,這樣也提高了軟件的收縮性。多線程創(chuàng)建流程如圖 8所示[5]。

圖8 多線程的創(chuàng)建
2.2.4 圖形控件完成參數(shù)曲線的繪制
CWGraph控件提供了豐富的屬性、方法和事件。在顯示數(shù)據(jù)時(shí)比較常用到的方法有:ClearData(清空數(shù)據(jù)),清除所有CWGraph控件上繪出的采集曲線與標(biāo)尺線;SetYDataAppend:每次調(diào)用該函數(shù)可將一個(gè)點(diǎn)追加到曲線末尾;SetTimer:設(shè)置定時(shí)器編號(hào)和定時(shí)時(shí)間,采集數(shù)據(jù)采用定時(shí)中斷,間隔固定時(shí)間采集信號(hào)。
通過(guò)此系統(tǒng),實(shí)現(xiàn)了Measurement Studio與網(wǎng)絡(luò)內(nèi)各控制主板的通信,此軟件系統(tǒng)的通信方式設(shè)定模塊可以設(shè)定通信信息,連接成功后,在參數(shù)顯示界面可以實(shí)時(shí)查詢網(wǎng)絡(luò)內(nèi)某個(gè)照明節(jié)點(diǎn)的數(shù)值參數(shù)。
本遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)已應(yīng)用于太陽(yáng)能LED路燈系統(tǒng)中,并取得了理想的結(jié)果。通過(guò)GPRS和CAN總線實(shí)現(xiàn)了Measurement Studio監(jiān)控系統(tǒng)與網(wǎng)絡(luò)內(nèi)STM32控制主板的通信。
在下位機(jī)芯片選取上,STM32作為主控芯片,足夠?qū)崿F(xiàn)太陽(yáng)能LED路燈的控制需求,并且成本上較DSP大為降低。CAN總線組成的局域網(wǎng),通信可靠,能夠滿足區(qū)域內(nèi)路燈的網(wǎng)絡(luò)化控制要求。隨著太陽(yáng)能LED路燈的逐步推廣,結(jié)合GPRS組成兩級(jí)式局域網(wǎng)絡(luò),可以監(jiān)控更大范圍的太陽(yáng)能LED路燈,這也是今后的發(fā)展方向。
實(shí)踐證明,基于Measurement Studio的監(jiān)控平臺(tái)具有以下特點(diǎn):操作簡(jiǎn)單,界面友好,使用者可以直觀地觀察照明節(jié)點(diǎn)的參數(shù)數(shù)值和曲線,同時(shí)可以調(diào)節(jié)照明節(jié)點(diǎn)的PWM占空比和照明節(jié)點(diǎn)亮滅時(shí)間等;可移植性強(qiáng),只要更改參數(shù)就可以應(yīng)用在其他分布式系統(tǒng)中;使用起來(lái)靈活,編譯生成.exe文件,可以方便地安裝在沒(méi)有安裝Measurement Studio的機(jī)器上;系統(tǒng)效率高,加入多線程技術(shù),可大大提高系統(tǒng)效率。
[1]陳振興,周建華,陳勇.基于 Measurement Studio的光電信號(hào)數(shù)據(jù)采集系統(tǒng)[J].計(jì)算機(jī)應(yīng)用,2004(2):66-68.
[2]黃豪彩,楊燦軍,陳道華,等.基于 LabVIEW的深海氣密采水器測(cè)控系統(tǒng)[J].儀器儀表學(xué)報(bào),2011,32(1):40-45.
[3]王偉,董超俊.一種新的基于CAN和GPRS網(wǎng)絡(luò)的路燈組網(wǎng)方法研究[J].工業(yè)控制計(jì)算機(jī),2012,25(3):71-72.
[4]陳志旺.STM32嵌入式微控制器快速上手[M].北京:電子工業(yè)出版社,2012:180-186.
[5]楊東升,王高峰.多線程技術(shù)在虛擬儀器開發(fā)軟件LabWindows/CVI中的實(shí)現(xiàn) [J].電測(cè)與儀表,2005,43(3):39-42.
[6]夏鳳仙,陳小平.基于虛擬儀器的交變電流源質(zhì)量分析儀研制[J].電子測(cè)量與儀器學(xué)報(bào),2007,21(3):113-117.