孟群升,郭書軍
(北方工業(yè)大學(xué) 信息學(xué)院,北京 100144)
隨著人們生活水平的不斷提高,越來越多的智能儀器開始出現(xiàn)在公眾的視野中。智能儀器是將人工智能的理論、方法和技術(shù)應(yīng)用在普通儀器上[1],而為了實(shí)現(xiàn)這種特性或者是功能,智能儀器中一般都具有嵌入式微處理器,實(shí)現(xiàn)硬件軟件相結(jié)合。并且隨著社會的發(fā)展,往往還需要同時間測量不同地點(diǎn)、不同測量量是否工作在正常的范圍內(nèi),進(jìn)行數(shù)據(jù)收集。所以分布式測量監(jiān)測系統(tǒng)應(yīng)用而生,每個設(shè)備與主機(jī)進(jìn)行通信,實(shí)現(xiàn)數(shù)據(jù)的收集與設(shè)備運(yùn)行狀態(tài)的監(jiān)測。但是,目前測量監(jiān)測系統(tǒng)缺乏集成性,大多采用傳統(tǒng)一對一、點(diǎn)到點(diǎn)的傳輸方式,不能夠同時間監(jiān)測到不同點(diǎn)的數(shù)值,無法滿足要求。
圖1 系統(tǒng)拓?fù)鋱DFig.1 System topology
針對測量監(jiān)測系統(tǒng)存在的以上問題,綜合運(yùn)用有線通信技術(shù)以及嵌入式軟硬件技術(shù),設(shè)計一套硬件電路,支持CAN 總線傳輸數(shù)據(jù),量程自動切換、數(shù)據(jù)保存,報警等功能,實(shí)現(xiàn)可廣泛應(yīng)用在工廠電壓監(jiān)測、設(shè)備數(shù)據(jù)監(jiān)測的系統(tǒng)。
為了增強(qiáng)系統(tǒng)可維護(hù)性,系統(tǒng)采用了模塊化設(shè)計思想,減少系統(tǒng)之間的耦合性[2]。各模塊與主控芯片相結(jié)合,實(shí)現(xiàn)數(shù)據(jù)的測量、存儲和實(shí)時傳輸?shù)裙δ堋?/p>
設(shè)計中對系統(tǒng)提出以下要求:
1)處理器具有高速運(yùn)算處理能力,能夠滿足對數(shù)據(jù)處理與后續(xù)開發(fā)的要求。
2)具有實(shí)時數(shù)據(jù)傳輸,對多個點(diǎn)的設(shè)備可進(jìn)行同時監(jiān)測與數(shù)據(jù)通信。
3)具有記憶存儲功能,可通過設(shè)備進(jìn)行查看,也可通過上位機(jī)訪問數(shù)據(jù)庫進(jìn)行歷史數(shù)據(jù)查看。
4)具有擴(kuò)展機(jī)制,預(yù)留接口,方便加入擴(kuò)展設(shè)備。
5)具備報警機(jī)制,上位機(jī)可查看出現(xiàn)問題的設(shè)備,進(jìn)行預(yù)警操作。
本文所研究的基于CAN 總線的儀器運(yùn)行監(jiān)測系統(tǒng),以混合MCU-STM32F303 為核心,結(jié)合各獨(dú)立模塊組成終端設(shè)備,實(shí)現(xiàn)數(shù)據(jù)的采集與處理。數(shù)據(jù)傳輸采用CAN 總線的方式,具有高可靠性、高實(shí)時性和配置靈活等特點(diǎn),在工業(yè)控制領(lǐng)域應(yīng)用非常廣泛。本系統(tǒng)拓?fù)浣Y(jié)構(gòu)如圖1 所示。
從圖1 可以看出,基于CAN 總線的儀器運(yùn)行監(jiān)測系統(tǒng)分下位機(jī)和上位機(jī)兩部分組成。下位機(jī)通過功能切換與量程自動識別實(shí)現(xiàn)對各個電參量數(shù)據(jù)地采集,并通過CAN 總線的方式對數(shù)據(jù)進(jìn)行實(shí)時傳輸。上位機(jī)可同時獲取不同地點(diǎn)的設(shè)備的信息,并且上位機(jī)可下發(fā)指令,實(shí)現(xiàn)對下位機(jī)的控制與數(shù)據(jù)監(jiān)測。
圖2 系統(tǒng)硬件結(jié)構(gòu)框圖Fig.2 System hardware block diagram
本系統(tǒng)采用STM32F303 主控芯片,對設(shè)備進(jìn)行控制與數(shù)據(jù)采集,使用了CAN 總線的方式對數(shù)據(jù)進(jìn)行傳輸。其中,系統(tǒng)還具有存儲模塊、測量模塊(模擬前端)、按鍵模塊、LCD 顯示模塊、功能選擇模塊、報警模塊和通信模塊。其中,測量模塊中包括直流電壓模塊,交流電壓模塊、直流電流模塊、交流電流模塊、量程自動切換模塊和保護(hù)模塊。各模塊之間互不影響,并將各種電參量轉(zhuǎn)換為STM32 可識別的電壓信號,供STM32 的ADC 進(jìn)行采集。系統(tǒng)硬件結(jié)構(gòu)框圖如圖2 所示。
測量模塊中包括直流電壓模塊、交流電壓模塊、直流電流模塊、交流電流模塊、量程自動切換模塊和保護(hù)模塊等6 部分組成。
其中直流電壓模塊、交流電壓模塊用一套分壓電阻,模擬開關(guān)選用MAX4638 芯片,實(shí)現(xiàn)量程自動切換,其內(nèi)阻小,對測量的準(zhǔn)確性影響較小。交直流電壓轉(zhuǎn)換采用TL082 實(shí)現(xiàn)線性半波整流,采用RC 濾波電路,得到處理后的直流電壓值供STM32 的ADC 采集,由于STM32 自帶ADC 輸入內(nèi)阻小,而電壓分壓器的輸入電阻為1MΩ,造成無法采集到實(shí)際數(shù)據(jù),所以在ADC 采集前加一級電壓跟隨器,保持輸出電壓的同時,減小輸入電阻,以免造成數(shù)據(jù)采集不準(zhǔn)確。
電流模塊將電流信號通過小電阻轉(zhuǎn)換為直流電壓信號供ADC 進(jìn)行采集,量程轉(zhuǎn)換采用電磁繼電器進(jìn)行切換,由于模擬開關(guān)的輸入電流不宜過大,所以采用電磁繼電器進(jìn)行量程地切換。
圖3 直流電壓模塊電路圖Fig.3 Circuit diagram of DC voltage module
保護(hù)模塊,在ADC 采集管腳與模擬開關(guān)輸入引腳前加入鉗位二極管,保證輸入電壓不大于3.3V,以免燒壞芯片。測量模塊中,直流電壓模塊為基礎(chǔ)模塊,任何電信號都要轉(zhuǎn)換為STM32 可識別的電壓信號進(jìn)行AD 采集,其中直流電壓模塊電路圖如圖3 所示。
STM32F3 系列有CAN 2.0B 通信接口,結(jié)合SJA1040芯片實(shí)現(xiàn)數(shù)據(jù)傳輸。通過CAN 總線連接各個網(wǎng)絡(luò)節(jié)點(diǎn),形成分布式控制系統(tǒng)。傳輸介質(zhì)采用雙絞線、同軸電纜或光纖。CAN 總線有兩個ISO 國際標(biāo)準(zhǔn),本文采用ISO11898的高速CAN 通信協(xié)議,屬于閉環(huán)總線,傳輸速率可達(dá)1Mbps。總線拓?fù)鋱D如圖4 所示。
節(jié)點(diǎn)兩端要加入120Ω 電阻,注意阻抗匹配,否則無法實(shí)現(xiàn)傳輸。同時CAN 總線具有硬件過濾機(jī)制,配置過濾器可以在硬件上實(shí)現(xiàn)是否接收數(shù)據(jù),減少主CPU 對軟件處理的負(fù)擔(dān)。
電池正極分為兩路,第一路接入到LM1117-3.3 的輸入端,LM1117-3.3 是三端集成穩(wěn)壓芯片,其輸出端輸出恒定的3.3V 作為單片機(jī)的系統(tǒng)電源與基準(zhǔn)電壓。另一路接入到LM1117-5.0,其輸出穩(wěn)定的+5V 電壓。-5V 電壓由LM2663 產(chǎn)生,供給模擬放大器芯片和模擬器件等工作。
系統(tǒng)的軟件設(shè)計主要包括終端軟件編程和上位機(jī)C#設(shè)計。
圖4 總線拓?fù)鋱DFig.4 Bus topology
圖5 系統(tǒng)軟件流程圖Fig.5 System software flow chart
終端軟件設(shè)計:對終端設(shè)備進(jìn)行系統(tǒng)初始化,處理包括識別控制信號和數(shù)據(jù)采集等工作。主要實(shí)現(xiàn)對模擬前端轉(zhuǎn)換后產(chǎn)生的電壓信號進(jìn)行ADC 采集與數(shù)據(jù)處理,得到的數(shù)據(jù)采用中值濾波算法,減少小部分ADC 采集不準(zhǔn)確造成的偏差。數(shù)據(jù)傳輸由CAN 總線實(shí)現(xiàn),接收以及解析上位機(jī)發(fā)送的指令,然后按照雙方規(guī)定好的協(xié)議進(jìn)行相應(yīng)的操作。軟件流程圖如圖5 所示。
系統(tǒng)初始化主要包括:按鍵、蜂鳴器、LCD 屏、ADC、EEPROM、USART、CAN、RTC、DSP 等。
圖6 圖形化展示界面Fig.6 Graphical display interface
處理包括監(jiān)測供電電壓是否過低,過低LCD 提示電量不足。通過功能選擇模塊選擇測量功能,產(chǎn)生控制信號由STM32 識別,進(jìn)行采集控制。量程模塊選擇合適的輸入電壓,進(jìn)行AD 采集,如果采集值超出報警閾值,進(jìn)行報警處理,如果未到報警閾值,檢測是否符合量程設(shè)定值,如果采集的值較小,切換到下一量程進(jìn)行ADC 采集,直到符合采集范圍。采集一定的數(shù)據(jù)進(jìn)行軟件濾波處理,得到的結(jié)果進(jìn)行LCD 顯示。同時終端可以通過人為按鍵的方式主動數(shù)據(jù)上傳,也可接收上位機(jī)命令進(jìn)行數(shù)據(jù)存儲和數(shù)據(jù)上傳等工作。
上位機(jī)軟件設(shè)計:采用主從查詢方式通信。上位機(jī)向下位機(jī)發(fā)查詢命令、下位機(jī)針對上位機(jī)發(fā)來的命令作出相應(yīng)的動作。如果是查詢數(shù)據(jù)命令,將響應(yīng)數(shù)據(jù)發(fā)送給上位機(jī);如果是查詢測量功能命令,則完成查詢功能任務(wù)。數(shù)據(jù)上傳后顯示數(shù)據(jù),并將數(shù)據(jù)保存到數(shù)據(jù)庫,完成數(shù)據(jù)記錄和時間記錄;上位機(jī)還可查詢歷史數(shù)據(jù),添加歷史數(shù)據(jù)、刪除歷史數(shù)據(jù),實(shí)時監(jiān)測數(shù)據(jù)等功能,通過折線圖的形式直觀顯示,實(shí)現(xiàn)監(jiān)測、報警等操作。圖形化展示界面如圖6 所示。
本文所設(shè)計的基于CAN 總線的儀器工作監(jiān)測系統(tǒng),可廣泛應(yīng)用在工廠設(shè)備監(jiān)測,電器設(shè)備監(jiān)測等領(lǐng)域。通過CAN 總線傳輸信息,實(shí)時性強(qiáng)、可靠性強(qiáng)。本系統(tǒng)還采用了STM32F3 系列,主要應(yīng)用于模擬測量,電表設(shè)計等應(yīng)用。數(shù)據(jù)采集處理精度較高、使用方便、成本低等優(yōu)點(diǎn),具有廣泛的應(yīng)用前景。