任 艷,于海勛,張 磊
(西北工業(yè)大學 電子信息學院,陜西 西安 710129)
在工業(yè)生產(chǎn)過程中,嵌入式數(shù)據(jù)采集系統(tǒng)可用來實現(xiàn)生產(chǎn)過程的實時監(jiān)控,對生產(chǎn)現(xiàn)場的工藝參數(shù)進行采集、監(jiān)視和記錄,為提高產(chǎn)品質(zhì)量、降低生產(chǎn)成本提供信息和手段。
目前市場上的數(shù)據(jù)采集系統(tǒng)大多采用8位或16位單片機,由于位數(shù)小、時鐘頻率低、指令執(zhí)行時間長、內(nèi)存小,已不能滿足數(shù)據(jù)采集的實時性以及各種附加功能的要求,也不能滿足工業(yè)生產(chǎn)與科學試驗的需求。因此,開發(fā)具有低成本、實時性好的數(shù)據(jù)采集系統(tǒng)勢在必行。
針對某工業(yè)現(xiàn)場40路溫度和40路應(yīng)力參數(shù)測量與監(jiān)控的需要,本文設(shè)計了一種基于32位微處理器STM32的嵌入式溫度、應(yīng)力測量系統(tǒng)。STM32以其豐富的外圍模塊、高速的指令執(zhí)行速度、方便的JTAG調(diào)試方式和低功耗等特性為數(shù)據(jù)采集與處理的設(shè)計提供了一個較為完善的平臺。測量系統(tǒng)的遠程上位計算機實時監(jiān)控程序,采用面向計算機測控領(lǐng)域的LabWindows/CVI平臺進行開發(fā)。
系統(tǒng)以意法半導體公司(ST)推出的基于ARM Cortex-M3內(nèi)核的STM32系列微控制芯片為核心,構(gòu)建了一個高性能、低功耗、實時應(yīng)用的嵌入式溫度、應(yīng)力測量系統(tǒng)。本系統(tǒng)在結(jié)構(gòu)上采用模塊化設(shè)計,根據(jù)40路溫度、40路應(yīng)力多路數(shù)據(jù)采集測量的需要,將系統(tǒng)設(shè)計為4個溫度模擬量前端模塊、4個應(yīng)力模擬量前端模塊與主控通信模塊共三部分組成,每個溫度、應(yīng)力模擬量前端模塊處理10路模擬量。其總體結(jié)構(gòu)如圖1所示。
模擬量前端模塊主要負責將工業(yè)現(xiàn)場被測對象的溫度、應(yīng)力參量轉(zhuǎn)換為主控通信模塊可以識別和處理的數(shù)字信號。由于熱電偶和應(yīng)變片電橋電路產(chǎn)生的信號一般在mV級,所以應(yīng)采用濾波降噪和差分放大等方法,提高信噪比,保證待測信號能被準確采集。模擬量前端模塊內(nèi)部單元電路包括RC低通濾波、隔離放大、冷端補償、調(diào)理放大以及A/D轉(zhuǎn)換等;主控通信模塊由STM32微控制器、外圍存儲器接口電路、通信接口電路、撥碼輸入電路、狀態(tài)顯示電路等部分組成。由主控通信模塊負責協(xié)調(diào)和控制80路信號的采集過程,提供統(tǒng)一的采樣節(jié)拍,并負責存儲80個通道的數(shù)據(jù)采集結(jié)果,接收用戶采樣速率的設(shè)置,顯示工作的狀態(tài),并與遠程上位監(jiān)控計算機進行通信。
溫度模擬量前端模塊和應(yīng)力模擬量前端模塊的內(nèi)部單元電路中,有很多相似之處,也有一些差別。差別在于:應(yīng)力信號必須有激勵源進行激勵;溫度電信號的信號幅度值較高,應(yīng)力電信號的信號幅度值較低,所需的放大倍數(shù)有差異。對放大器的要求如下:
(1)傳感器模擬量輸入信號較微弱,放大器應(yīng)該是高精度、低漂移類型。
(2)輸入端有共模干擾等,放大器必須是差動放大器輸入形式。
(3)輸入端要采取吸收電瞬變脈沖和浪涌等措施。
(4)需采用隔離措施。
溫度、應(yīng)力模擬量前端模塊原理圖如圖2所示。
溫度、應(yīng)力模擬量前端模塊選用高精度、低漂移放大器AD8554,其失調(diào)電壓5 μV,失調(diào)電壓的溫漂是0.005 μV/℃。選用的隔離放大器型號為HCPL-7800A,是輸入輸出通過光進行隔離的隔離型放大器,放大倍數(shù)為固定值8左右,隨溫度的漂移 dG/dT=0.001%/℃。隔離放大器HCPL-7800A有兩組電源供電端,電源Vdd1-Gnd1僅供輸入端使用,電源Vdd2-Gnd2僅供輸出端使用。輸入端由隔離電源模塊IB0505與其他電路隔離,IB0505是采用DC-DC變換實現(xiàn)的入端5 V與出端5 V隔離的微型模塊電源。隔離放大器HCPL7800A的Vdd1連接隔離電源模塊IB0505的+Vo,Gnd1連接0 V,信號從隔離放大器 HCPL7800A的2、3腳,即Vin+和Vin-輸入。在信號輸入端,加入浪涌保護電路,如圖3的元件SHOCK。SHOCK兩端的RC電路是用來低通濾波的。完整的帶有隔離的輸入端放大調(diào)理電路如圖3所示。在隔離放大器的輸出一側(cè),用放大器AD8554對信號進行調(diào)理放大、雙端輸出變單端輸入等。經(jīng)過這樣處理后,就可以將代表溫度、應(yīng)力的模擬量送往A/D轉(zhuǎn)換電路進行A/D轉(zhuǎn)換。
A/D轉(zhuǎn)換芯片選用了TI公司的高速、低功耗、6通道可獨立控制的16位A/D轉(zhuǎn)換芯片ADS8364。該芯片模擬信號輸入的動態(tài)范圍在0 V~5 V,對于不符合這個輸入范圍的信號,可以改變放大調(diào)理電路的放大系數(shù)進行幅度調(diào)整。ADS8364內(nèi)部提供了2.5 V參考電壓作為前端放大電路的參考輸入,由于ADS8364模擬輸入是雙極性全差分信號,又提供了2.5 V的參考電壓輸出,因此,對于單端信號輸入的情況,只需要將其中1個輸入端通過驅(qū)動電路連接到2.5 V的參考端即可。ADS8364采用+5 V工作電壓,其6個模擬輸入通道分為3組(A、B、C),每組都有 1個保持信號(、和用來啟動各組的A/D轉(zhuǎn)換。 A/D轉(zhuǎn)換結(jié)果的輸出方式很靈活, 分別由 BYTE、ADD與地址線 A2、A1、A0的組合控制:當 BYTE=0時,從 DB0~DB15以 16位輸出;當BYTE=1時,則轉(zhuǎn)換結(jié)果分2個字節(jié)從DB0~DB7輸出。轉(zhuǎn)換結(jié)果的讀取方式有3種:直接讀取、循環(huán)讀取和FIFO方式。在模擬量前端模塊中,ADS8364的工作模式設(shè)定為 8位,故 BYTE 接高電平;和采用并接的方法對6個通道進行并行采樣和轉(zhuǎn)換。
由于測量的高精度要求,在設(shè)計上還必須考慮溫度以及溫度造成的硬件參數(shù)漂移對精度的影響。在每一個溫度、應(yīng)力前端模塊上增加1路對環(huán)境溫度的測量,利用集成溫度傳感器LM335得到實時的冷端環(huán)境溫度,經(jīng)AD8554調(diào)理放大送A/D轉(zhuǎn)換后的數(shù)字量,通過并行方式傳送給主控通信模塊,以此數(shù)據(jù)作為參考,進行漂移的補償。
主控通信模塊的核心芯片采用意法半導體公司的STM32系列微控制芯片STM32F103RBT6。STM32系列32位閃存微控制器使用來自于ARM公司專為嵌入式領(lǐng)域開發(fā)的具有突破性的Cortex-M3內(nèi)核,具有高性能、低功耗、實時性等特點。STM32F103RBT6是增強型系列,工作頻率為72 MHz,內(nèi)置高速存儲器(高達 128 KB的閃存和20 KB的SRAM),帶豐富的增強I/O端口和連接到2條APB總線的外設(shè)。
主控通信模塊由STM32微控制器、外圍存儲器接口電路、通信接口電路、撥碼輸入電路、狀態(tài)顯示電路等部分組成,STM32微控制器由通用輸入輸出(GPIO)數(shù)據(jù)線與各個外圍接口電路相連接。主控通信模塊電路如圖4所示。
主控通信模塊與模擬量前端模塊的連接包括數(shù)據(jù)線、地址線和控制線。數(shù)據(jù)線是共用的,溫度、應(yīng)力模擬量前端模塊已經(jīng)轉(zhuǎn)變成為16位數(shù)字量的數(shù)據(jù),由ADS8364的低8位輸入STM32的PB8~PB15。地址線PA13、PA14、PA15通過3-8線譯碼器,可分別選中8塊模擬量前端ADS8364的片選信號。為高時,并行輸出引腳處于高阻態(tài);為低時,并行數(shù)據(jù)線反映了輸出緩沖器的當前狀態(tài)。為了正確從模擬量前端的并行數(shù)據(jù)總線讀取數(shù)據(jù),器件必須被片選后才能進行讀操作??刂凭€PB0~PB7也是共用的。
外存儲器FlashROM選用SAMSUNG公司的K9LBG08U0M系列,容量為4 GB。存儲器的地址、命令和數(shù)據(jù)總線均使用同一個8位I/O口,可在片選信號和寫信號為低時寫入命令、地址和數(shù)據(jù),并在信號的上升沿鎖存。通過命令鎖存信號CLE和地址鎖存信號ALE可指示當前I/O口的數(shù)據(jù)是命令還是地址。存儲器按頁進行讀寫,按塊擦除。其I/O0~I/O7與STM32的 PC0~PC7 相 連,CLE、ALE、、分 別 與 STM32 的PC8、PC9、PC10、PD2相連。存儲器的片選端接地,使其一直有效。通過對R/B外接上拉電阻使Flash一直處于就緒狀態(tài)。接高電平,不使用寫保護功能[6]。
通信接口電路的RS422電平轉(zhuǎn)換芯片選用MAX488。MAX488具有限擺率驅(qū)動器,可以減小電磁干擾(EMI),并降低由不恰當?shù)慕K端匹配電纜引起的反射,最高可實現(xiàn)250 Kb/s的無差錯數(shù)據(jù)傳輸[7]。MAX488通過 GPIO的 PA9、PA10與STM32連接,與上位監(jiān)控計算機進行通信。RS422接口主要是解決與上位監(jiān)控計算機相距較遠的問題,上位監(jiān)控計算機因不具備RS422接口,因此選擇了一款智能型USB轉(zhuǎn)單口RS-422的成品,型號為IR-1401BHG。可實現(xiàn)高速:RS-422設(shè)備與具備USB接口的電腦主機在惡劣環(huán)境下的通信,傳輸距離為:RS-422端1 500 m,USB端不超過 5 m。
STM32微控制器接收使用者的撥碼輸入,以控制80路模擬量的采集速率。撥碼開關(guān)與STM32的PC11、PC12和PC13相連,3位撥碼開關(guān)或接地或斷開,斷開時是高電平,接地時為低電平??梢苑謩e代表50次/s、100次/s、200次/s的采樣速率設(shè)置輸入。
系統(tǒng)的運行狀態(tài)及對傳感器等的工作狀態(tài)檢測,由狀態(tài)顯示功能進行實時顯示。狀態(tài)顯示功能采用了TS1620字符型液晶模塊,TS1620可以顯示2行16個字符, 有 8位數(shù)據(jù)總線 D0~D7以及 RS、R/W、EN 3個控制端口,工作電壓為+5 V,并且?guī)в凶址麑Ρ榷日{(diào)節(jié)和背光,通常使用1個10 kΩ的電位器來調(diào)節(jié)對比度。TS1620的 8位數(shù)據(jù)總線 D0~D7與 STM32的 PC0~PC7相連接;RS、R/W、EN 3個控制端口分別與 STM32的PA8、PA11和 PA12相連接。
溫度、應(yīng)力測量系統(tǒng)軟件由主控通信模塊軟件和上位機監(jiān)控軟件兩部分組成。
在主控通信模塊軟件設(shè)計中,根據(jù)不同任務(wù)的優(yōu)先級,將軟件劃分為管理服務(wù)主程序和中斷服務(wù)子程序。管理服務(wù)主程序為用戶服務(wù),負責設(shè)置狀態(tài)標志、設(shè)置中斷速率、啟動上傳數(shù)據(jù)和啟動狀態(tài)顯示等一些非實時性的操作;中斷服務(wù)子程序負責80路數(shù)據(jù)的實時采集,對采集的數(shù)據(jù)進行實時處理、轉(zhuǎn)存與上傳,狀態(tài)顯示動態(tài)刷新等需要實時完成的工作。中斷服務(wù)子程序的流程圖如圖5所示。
圖5 中斷服務(wù)子程序流程圖
上位機監(jiān)控軟件具有下達采集命令及回傳實時數(shù)據(jù)的讀取、數(shù)據(jù)顯示、曲線繪圖、傳感器狀態(tài)顯示等功能。采用面向計算機測控領(lǐng)域的LabWindows/CVI平臺進行開發(fā),利用LabWindows/CVI為GUI準備的專業(yè)控件,可以方便設(shè)計出監(jiān)控軟件程序界面。監(jiān)控軟件的各項功能建立在串行通信的基礎(chǔ)上,利用LabWindows/CVI的 RS232函數(shù)庫,可以方便地實現(xiàn)串行通信。上位機與主控通信模塊的通信過程如下:通信端口成功打開后,上位機向主控通信模塊發(fā)送詢問當前狀態(tài)幀,如果在5 s之內(nèi)主控通信模塊有確認幀,說明通信初始化成功,通信通路建立;主控通信模塊收到上位機讀命令幀后,以數(shù)據(jù)包的形式向上位機發(fā)送包含80路溫度、應(yīng)力采樣數(shù)據(jù)信息的數(shù)據(jù)幀,上位機通過串口回調(diào)函數(shù)實現(xiàn)數(shù)據(jù)的接收功能。
在充分考慮功能與成本的情況下,本文設(shè)計了一種嵌入式溫度、應(yīng)力測量系統(tǒng)。該系統(tǒng)具有體積小、功耗低、操作靈活的特點,其溫度、應(yīng)力參數(shù)設(shè)計精度分別達到了1℃和50微應(yīng)變。工程實際應(yīng)用表明,該系統(tǒng)完全可滿足工業(yè)現(xiàn)場對溫度、應(yīng)力參數(shù)測量與監(jiān)控的需要,為實現(xiàn)溫度、應(yīng)力信號的采集提供了一種良好的解決方案。
[1]Analog Devices,Inc.AD8554 datasheet[Z].1999.
[2]Texas Instruments.ADS8364 datasheet[Z].2002.
[3]王永虹,徐煒,郝立平.STM32系列ARM Cortex-M3微控制器原理與實踐[M].北京:北京航空航天大學出版社,2008.
[4]李寧.基于 MDK的 STM32處理器開發(fā)應(yīng)用[M].北京:北京航空航天大學出版社,2008.
[5]ST Microelectronics.STM32F103XB datasheet[Z].2008.
[6]Samsung.K9LBG08U0M datasheet[Z].2003.
[7]Maxim Integrated Products.MAX488 datasheet[Z].1996.