(武漢軟件工程職業(yè)學(xué)院,湖北武漢 430205)
基于ARM內(nèi)核的STM32處理器在國(guó)內(nèi)系統(tǒng)設(shè)計(jì)中得到了較廣泛的使用,在各種控制系統(tǒng)設(shè)計(jì)中,都會(huì)見到它的身影。本設(shè)計(jì)基于意法半導(dǎo)體公司的微處理器,配合ADI公司的模數(shù)轉(zhuǎn)換芯片ADC976,設(shè)計(jì)了多通道的數(shù)據(jù)采集系統(tǒng),經(jīng)過實(shí)際應(yīng)用,可靠性高,能實(shí)現(xiàn)設(shè)計(jì)所要求的性能。
本設(shè)計(jì)以STM32F103R8T6處理器數(shù)據(jù)采集系統(tǒng)主控制器,采用輸入光耦隔離,輸出繼電器隔離,實(shí)現(xiàn)8路PLC控制器,具有RS232/RS485通訊接口,實(shí)現(xiàn)梯形圖下載指令程序??刂平Y(jié)構(gòu)可靠,抗通訊干擾能力強(qiáng),運(yùn)行穩(wěn)定??蛇\(yùn)用于工業(yè)控制設(shè)備機(jī)器程序化運(yùn)行,利于工業(yè)現(xiàn)場(chǎng)安裝。系統(tǒng)總體設(shè)計(jì)框圖如圖1所示。
圖1 系統(tǒng)總體設(shè)計(jì)框圖
處理器外圍電路由STM32F103R8T6最小系統(tǒng)和外設(shè)組成,STM32F103R8T6最小系統(tǒng)包含電源模塊、時(shí)鐘和復(fù)位電路、存儲(chǔ)系統(tǒng)(ROM、RAM、Flash),外設(shè)包含USB、結(jié)構(gòu)框圖如圖2。
圖2 硬件電路結(jié)構(gòu)框圖
本設(shè)計(jì)采用超低功耗芯片STM32F103R8T6為主處理器,從整個(gè)系統(tǒng)的性價(jià)比及功能需求方面來看,STM32處理器是合適的選擇。STM32F103R8T6處理器是CM3架構(gòu),性能強(qiáng),穩(wěn)定可靠,內(nèi)部有20K的閃存、64K FLASH、51個(gè)通用IO端口、3路UART的單片機(jī),中心控制模塊采用STM32F103R8T6單片機(jī)已完全滿足設(shè)計(jì)需要,實(shí)現(xiàn)整個(gè)PLC系統(tǒng)控制[2]。處理器電路圖如圖3所示。
AD976模數(shù)轉(zhuǎn)換器具有速度快、功耗低的特點(diǎn),轉(zhuǎn)換速率可為100 ksps。該芯片內(nèi)部為逐次逼近型模數(shù)ADC,單電源5V工作電壓?;鶞?zhǔn)電壓源為2.5V,最大功耗100毫瓦。該ADC芯片通過出廠驗(yàn)證,其線性誤差很小,模擬滿量程輸入電壓是正負(fù)10V區(qū)間。與處理器通過并行接口相連。AD976處理電路如圖4所示。
圖3 處理器電路圖
圖4 A/D轉(zhuǎn)換處理電路圖
由OPA333構(gòu)建的信號(hào)調(diào)理電路共有8個(gè),分別對(duì)應(yīng)8個(gè)輸入數(shù)據(jù)通道,從CH1到CH8。這些多路信號(hào)再通過MAX4598構(gòu)建的低電壓?jiǎn)味?選1多路復(fù)用器電路后,會(huì)選擇一路信號(hào)由COMA引腳輸入到AD976轉(zhuǎn)換電路中。圖5為信號(hào)調(diào)理及多路復(fù)用器電路。
圖5 信號(hào)調(diào)理及多路復(fù)用器電路
圖6 R/和信號(hào)控制時(shí)序
電源部分采用線性穩(wěn)壓電源,得到兩路5V的電源。采用1片ASM1117將輸入的數(shù)字5V電源轉(zhuǎn)換為3.3V,電路圖如圖7所示。輸入的模擬5V電源用于給A/D轉(zhuǎn)換電路供電。
圖7 5V轉(zhuǎn)3.3V電路圖
選用STN型256中色彩的LCD顯示屏,LCD電路設(shè)計(jì)主要是LCD顯示控制和LCD電源部分設(shè)計(jì)。
圖8 液晶顯示器電路圖
本數(shù)據(jù)采集系統(tǒng)的軟件功能包括:嵌入式操作系統(tǒng)引導(dǎo)和內(nèi)核啟動(dòng),實(shí)時(shí)顯示8個(gè)通道的數(shù)據(jù)曲線,實(shí)時(shí)顯示采集的8個(gè)通道數(shù)據(jù),以文件的形式保存采樣的數(shù)據(jù),通過USB總線或串口與上位機(jī)傳送數(shù)據(jù)等。
本數(shù)據(jù)采集系統(tǒng)使用嵌入式μC/OS操作系統(tǒng),μC/OS操作系統(tǒng)實(shí)時(shí)性強(qiáng),代碼全部公開,采用C代碼書寫。為了適應(yīng)架構(gòu)不同的MCU,操作系統(tǒng)內(nèi)部有少量代碼由匯編語言書寫,具有移植性強(qiáng),可裁剪,具有任務(wù)堆棧,可存儲(chǔ)在閃存中等特點(diǎn)。該操作系統(tǒng)可廣泛使用在各種應(yīng)用環(huán)境中。軟件的主流程圖如圖9所示。
圖9 軟件主流程圖
系統(tǒng)引導(dǎo)及內(nèi)核啟動(dòng)由Bootloader程序負(fù)責(zé),該程序包含板級(jí)支持包的一些功能,可以更好地支持操作系統(tǒng)工作。μC/OS操作系統(tǒng)可以根據(jù)已用外圍設(shè)備情況,設(shè)置相應(yīng)的驅(qū)動(dòng)程序,并將該設(shè)備硬件特性傳輸給文件系統(tǒng),文件系統(tǒng)會(huì)提供該硬件設(shè)備操作端口,供用戶使用該硬件設(shè)備。
應(yīng)用程序?qū)又苯用嫦蛴脩簦ㄟ^嵌入式系統(tǒng)外圍設(shè)備鍵盤功能鍵的輸入,實(shí)現(xiàn)流場(chǎng)校測(cè)所用通道模擬數(shù)據(jù)的采集、顯示、處理以及傳輸?shù)裙δ?。軟件各?xiàng)功能的實(shí)現(xiàn)均是通過實(shí)時(shí)操作系統(tǒng)的消息機(jī)制完成的。數(shù)據(jù)采集的程序流程說明如下:
(1)數(shù)據(jù)采集。當(dāng)需要采集的數(shù)據(jù)信號(hào)穩(wěn)定后,系統(tǒng)通過接收鍵盤上傳送來的消息,開始進(jìn)行數(shù)據(jù)采集,連續(xù)采集8次數(shù)據(jù)后取平均值,所得數(shù)據(jù)存儲(chǔ)到flash中,以備上位機(jī)使用。
(2)數(shù)據(jù)輸出。得到的數(shù)據(jù)是通過液晶顯示器顯示出來,有兩種顯示方式,即直接顯示數(shù)據(jù)數(shù)值和根據(jù)數(shù)值繪制曲線。每屏顯示某個(gè)通道的數(shù)值和對(duì)應(yīng)的曲線,通過通道選擇按鍵確定要顯示的數(shù)據(jù)或曲線的通道。
(3)數(shù)據(jù)保存。采集結(jié)束后,程序把連續(xù)八次采集到的數(shù)據(jù)數(shù)值求平均值后暫存,當(dāng)用戶按下存儲(chǔ)鍵后,系統(tǒng)會(huì)將暫存的數(shù)據(jù)以TXT或BIN格式保存在閃存的指定文件中。
(4)數(shù)據(jù)傳輸。當(dāng)數(shù)據(jù)采集保存后,用戶通過鍵盤上的傳送鍵,使得系統(tǒng)獲得相應(yīng)的消息,從而通過串口或者USB總線與上位機(jī)通信將本次實(shí)驗(yàn)所保存的數(shù)據(jù)傳送到上位機(jī)。
本系統(tǒng)設(shè)計(jì)采用STM32為主處理器,具有性價(jià)比高,可靠性強(qiáng)、適用性廣等特點(diǎn),實(shí)現(xiàn)了高精度、多通道數(shù)據(jù)采集功能。文中詳細(xì)說明了系統(tǒng)各電路模塊的設(shè)計(jì),包括STM32電路、模數(shù)轉(zhuǎn)換電路、 電源電路、抗干擾電路等。該數(shù)據(jù)采集系統(tǒng)已試制完成,進(jìn)入批量生產(chǎn)并進(jìn)入銷售環(huán)節(jié)。在產(chǎn)品實(shí)際使用過程中,系統(tǒng)的數(shù)據(jù)采集及可靠性等方面獲得了客戶的認(rèn)可。