周 瑞,李時(shí)維,李紹成,郭曉磊
(南京林業(yè)大學(xué) 材料科學(xué)與工程學(xué)院,江蘇 南京 210037)
近幾十年來(lái),隨著移動(dòng)設(shè)備、軟體機(jī)器人、物聯(lián)網(wǎng)、新材料的發(fā)展,具有類似人體皮膚特性(觸感、彈性、自愈、可伸縮等)的柔性可穿戴設(shè)備倍受關(guān)注[1~4]。作為新一代的電子產(chǎn)品,柔性可穿戴設(shè)備可以通過(guò)與人體結(jié)合,實(shí)現(xiàn)對(duì)人體的感知,實(shí)時(shí)提供人體健康的相關(guān)信息。壓阻式柔性觸覺(jué)傳感器,是由壓阻式柔性壓力傳感器構(gòu)成的陣列,由于其結(jié)構(gòu)簡(jiǎn)單、成本低、功耗低、信號(hào)易采集等優(yōu)點(diǎn),已經(jīng)成為最具吸引力的電子皮膚之一[5~8]。
采用不同功能材料設(shè)計(jì)的壓阻式柔性傳感器其阻值范圍不同,為了提高信號(hào)采集系統(tǒng)的實(shí)用性,需要研制一種阻值測(cè)量范圍較大的信號(hào)采集系統(tǒng),為此,本文基于STM32單片機(jī),采用分檔分壓與恒流源相結(jié)合的方法設(shè)計(jì)了一種壓阻式柔性壓力傳感器陣列信號(hào)采集系統(tǒng)。
為了實(shí)時(shí)采集傳感器陣列信號(hào),并且便于信號(hào)的處理與分析,本文采用基于下位機(jī)和上位機(jī)相結(jié)合的方式進(jìn)行信號(hào)采集與分析,如圖1所示。壓阻式柔性壓力傳感器陣列檢測(cè)壓力信號(hào),下位機(jī)對(duì)壓力信號(hào)進(jìn)行A/D轉(zhuǎn)換與數(shù)據(jù)采集,上位機(jī)通過(guò)通信方式接收下位機(jī)采集的數(shù)據(jù),對(duì)其進(jìn)行處理、分析、顯示和保存。
圖1 信號(hào)采集系統(tǒng)方案
本文研究的信號(hào)采集系統(tǒng)是針對(duì)結(jié)構(gòu)組成如圖2所示的壓阻式柔性壓力傳感器陣列檢測(cè)需求。該陣列由16個(gè)壓阻材料薄片構(gòu)成,每個(gè)傳感器敏感材料的上面和下面分別與橫向?qū)Ь€和縱向?qū)Ь€相接觸,并采用聚四氟乙烯薄膜進(jìn)行封裝。
圖2 柔性壓力傳感器陣列結(jié)構(gòu)
為了提高數(shù)據(jù)采集的實(shí)時(shí)性,采用STM32F103R8T6作為主控芯片,它是意法半導(dǎo)體(ST)公司研制的基于Cortex—M3內(nèi)核的32位RISC處理器,擁有64 kB閃存、兩個(gè)12位模數(shù)轉(zhuǎn)換器、一個(gè)脈寬調(diào)制定時(shí)器和一個(gè)DMA控制器,并帶有多種通信接口。工作頻率為72 MHz,是普通51單片機(jī)的8倍左右。具有低功耗、高速度、高精度、綜合性價(jià)比高等優(yōu)點(diǎn),能夠滿足本傳感器陣列的數(shù)據(jù)采集要求。
根據(jù)傳感器陣列檢測(cè)的實(shí)際需求,設(shè)計(jì)了圖3所示的傳感器陣列掃描式信號(hào)檢測(cè)系統(tǒng),行、列檢測(cè)端均采用模擬開(kāi)關(guān)控制不同的行、列接入電阻檢測(cè)電路。
圖3 4×4傳感器陣列信號(hào)采集原理
電流在模擬開(kāi)關(guān)的流通是雙向的,為保證電路結(jié)構(gòu)的對(duì)稱性,減少不同類型芯片帶來(lái)的干擾,本方案采用具有雙向?qū)üδ艿?ADG1604 芯片作為模擬開(kāi)關(guān)。ADG1604芯片是單刀四擲模擬開(kāi)關(guān),具有通過(guò)電壓范圍寬、低功耗(<16 nW)、供電電壓與通過(guò)電壓之間軌對(duì)軌、導(dǎo)通電阻小、通道建立速度快(<0.4 μs)等優(yōu)點(diǎn)。
電路的選通是通過(guò)STM32控制IO口實(shí)現(xiàn)的,具體是通過(guò)PA10控制行選通的ADG1604芯片工作,通過(guò)控制PA8、PA9輸出高低電平來(lái)控制行的通斷;通過(guò)PD2控制列選通的ADG1604芯片工作,通過(guò)控制PC11、PC12輸出高低電平來(lái)控制列的通斷;將列選通的ADG1604的D引腳輸出接入分檔分壓電路,將行選通的ADG1604的D引腳接地。
當(dāng)兩個(gè)ADG1604工作時(shí),形成串聯(lián)分壓電路,通過(guò)采集電阻間的電壓值,實(shí)現(xiàn)傳感器陣列的單點(diǎn)掃描,并將信號(hào)輸入到電壓跟隨器以增加輸入阻抗,然后輸入到STM32的PA1模擬量接口,經(jīng)過(guò)A/D轉(zhuǎn)換模塊實(shí)現(xiàn)模數(shù)轉(zhuǎn)換。
為了提高信號(hào)采集精度,設(shè)計(jì)了兩種阻值測(cè)量方法相結(jié)合的采集方案:一種方法是采用恒流法測(cè)量電阻,另一種方法是采用分壓法測(cè)量電阻。恒流法適用于電阻較小時(shí)使用,分壓法適用于電阻較大時(shí)使用。為了進(jìn)一步提高阻值的測(cè)量精度,設(shè)計(jì)了分檔分壓法。
2.4.1 恒流源電路
采用恒流法測(cè)量電阻時(shí),由于電流需要通過(guò) ADG1604芯片,因此,恒流源的驅(qū)動(dòng)電流應(yīng)小于ADG1604的最大可通過(guò)電流315 mA??紤]到在最大電壓的限定下,恒流源驅(qū)動(dòng)電流越大,可帶動(dòng)的電阻越小,為此,本系統(tǒng)恒流源驅(qū)動(dòng)電流設(shè)定為50 mA。
為了提高恒流源性能,采用電流串聯(lián)負(fù)反饋的結(jié)構(gòu)設(shè)計(jì)恒定輸出的恒流源,其原理圖如圖4所示。該電路主要由運(yùn)放、調(diào)整管、采樣電阻以及基準(zhǔn)電壓構(gòu)成,采樣電阻電壓反饋到運(yùn)放的反相端,與基準(zhǔn)電壓進(jìn)行比較,將誤差電壓通過(guò)放大后輸入調(diào)整管,使通過(guò)采樣電阻的電流始終保持恒定,即在負(fù)載發(fā)生變化后,仍能保持電流恒定。通過(guò)式(1)可以計(jì)算出輸出的恒定電流為50 mA,該電路可以通過(guò)修改R3的電阻得到不同的輸出電流
圖4 恒流源電路原理
I0=2×2.5/R3
(1)
2.4.2 分檔分壓電路
分檔分壓法檢測(cè)電路如圖5所示,按 10 倍遞減法設(shè)置的串聯(lián)分壓標(biāo)準(zhǔn)電阻分別為100,10,1 kΩ電阻三個(gè)檔次。通過(guò)改變串聯(lián)的電阻值,結(jié)合恒流源電路,可以提高傳感器的阻值測(cè)量范圍。
圖5 分檔分壓法檢測(cè)電路示意
3.1.1 主程序設(shè)計(jì)
首先進(jìn)行初始化操作(開(kāi)啟定時(shí)器中斷;配置GPIO口;初始化ADC,DMA以及串口等)。在完成所有初始化操作后,系統(tǒng)進(jìn)行一次完整的行列掃描。在掃描過(guò)程中,每掃描一個(gè)點(diǎn),進(jìn)行一次電阻比較與數(shù)據(jù)采集,對(duì)采集到的數(shù)據(jù)進(jìn)行初步處理后,通過(guò)串行接口將數(shù)據(jù)發(fā)送到上位機(jī)。
3.1.2 行列選通程序設(shè)計(jì)
行列選通程序工作流程如圖6所示。在初始化后,對(duì)行和列的初始值進(jìn)行賦值,對(duì)第一行和第一列的第一個(gè)傳感點(diǎn)進(jìn)行選通檢測(cè),以坐標(biāo)、壓力的形式輸出行和列信息及相應(yīng)的阻值。然后依次檢測(cè)第一行其它列的傳感器輸出。第一行檢測(cè)完成后,依次檢測(cè)第二、三、四行中各列傳感器的信號(hào)值。系統(tǒng)默認(rèn)的采樣頻率為100 Hz,可以通過(guò)上位機(jī)設(shè)置更改采樣頻率,由于STM32芯片性能限制,最高采樣頻率不能超過(guò)1 MHz。
圖6 行列選通程序流程圖
3.1.3 A/D轉(zhuǎn)換程序設(shè)計(jì)
A/D轉(zhuǎn)換程序的工作流程如圖7所示。首先進(jìn)行初始化,然后進(jìn)行A/D 轉(zhuǎn)換,并將轉(zhuǎn)換后的數(shù)據(jù)采用DMA傳輸?shù)酱鎯?chǔ)器上。DMA可以將A/D轉(zhuǎn)換后的數(shù)據(jù)通過(guò)總線傳送至內(nèi)存,減輕CPU的負(fù)擔(dān),因此,適合連續(xù)采樣。
圖7 A/D采集程序流程圖
3.1.4 電阻檢測(cè)程序設(shè)計(jì)
電阻檢測(cè)程序工作流程如圖8所示。具體的工作流程如下所述:1)首先將傳感器電阻與分壓的最大電阻(100 kΩ)進(jìn)行串聯(lián),然后進(jìn)行A/D轉(zhuǎn)換。對(duì)A/D轉(zhuǎn)換后的值U1,采用式(2)計(jì)算傳感器電阻間的電壓,最后,采用式(3)計(jì)算傳感器的電阻值。2)當(dāng)測(cè)量阻值大于50 kΩ時(shí),測(cè)量結(jié)果直接作為有效檢測(cè),直接輸出傳感器電阻值。3)當(dāng)測(cè)量阻值在5~50 kΩ之間時(shí),通過(guò)選通開(kāi)關(guān)將傳感器與10 kΩ電阻串聯(lián)進(jìn)行電壓采樣,然后按照式(2)、式(3)計(jì)算電阻值。4)當(dāng)測(cè)量阻值小于等于5 kΩ時(shí),通過(guò)選通開(kāi)關(guān)將傳感器與1 kΩ電阻串聯(lián)進(jìn)行電壓采樣和電阻計(jì)算。測(cè)量阻值大于50 Ω時(shí),測(cè)量結(jié)果直接作為有效檢測(cè);測(cè)量阻值小于等于50 Ω時(shí),采用恒流源方法測(cè)量傳感器的電阻值。式(2)、式(3)如下
圖8 電阻檢測(cè)電路流程圖
U=3.3×U1/2n
(2)
R=R0×U/(3.3-U)
(3)
式中 系數(shù)3.3為A/D轉(zhuǎn)換使用的參考電壓值;n為A/D轉(zhuǎn)換位數(shù),本文系統(tǒng)n值為12;R0為分壓串聯(lián)電阻阻值。
3.2.1 上位機(jī)軟件功能
采用C#軟件設(shè)計(jì)開(kāi)發(fā)的上位機(jī)軟件功能。主要由以下4個(gè)功能模塊組成:1)用戶管理:當(dāng)用戶為新用戶時(shí),需要注冊(cè)新用戶后才能登錄,若忘記密碼,需要修改密碼。2)信號(hào)讀取:上位機(jī)通過(guò)串口通信讀取下位機(jī)信號(hào),需要配置串口通信參數(shù)(數(shù)據(jù)位、停止位、校驗(yàn)位、波特率等),當(dāng)參數(shù)一致時(shí)才能進(jìn)行數(shù)據(jù)的收發(fā)。3)數(shù)據(jù)顯示:數(shù)據(jù)可以實(shí)時(shí)顯示,并且能夠查看歷史數(shù)據(jù)。4)數(shù)據(jù)存儲(chǔ):可以將數(shù)據(jù)存入SqlServer數(shù)據(jù)庫(kù)中。
3.2.2 上位機(jī)軟件工作流程
首先進(jìn)行初始化,然后與數(shù)據(jù)庫(kù)進(jìn)行連接,從數(shù)據(jù)庫(kù)中檢測(cè)輸入的用戶名和密碼是否正確。信息正確時(shí),打開(kāi)主界面窗口,設(shè)置相關(guān)參數(shù),發(fā)送指令,與下位機(jī)進(jìn)行通信,接收下位機(jī)傳送的數(shù)據(jù)。然后對(duì)接收到的數(shù)據(jù)進(jìn)行處理、分析和顯示,同時(shí)將數(shù)據(jù)存儲(chǔ)到SqlServer數(shù)據(jù)庫(kù)中。
圖9為研制開(kāi)發(fā)的壓阻式柔性壓力傳感器陣列信號(hào)采集系統(tǒng),其性能檢測(cè)方法與步驟如下:將系列標(biāo)準(zhǔn)電阻分別接入信號(hào)采集系統(tǒng)中,得到實(shí)際測(cè)量的電壓值和電阻值。由于電阻值是通過(guò)測(cè)量的電壓計(jì)算得到的,因此測(cè)量電壓的誤差直接影響電阻的測(cè)量精度,可以根據(jù)式(4)計(jì)算出串聯(lián)分壓電路的理論電壓值,根據(jù)式(5)計(jì)算出恒流源電路的理論電壓值
圖9 采集系統(tǒng)實(shí)物
U2=3.3R/(R0+R)
(4)
U3=R×0.05
(5)
式中R為標(biāo)準(zhǔn)電阻,R0為分壓電阻。
對(duì)檢測(cè)實(shí)驗(yàn)數(shù)據(jù)分析結(jié)果為:電壓檢測(cè)誤差在1 %以內(nèi),系統(tǒng)測(cè)量的電阻值與實(shí)際電阻值的誤差也在1 %以內(nèi)。表明本系統(tǒng)信號(hào)檢測(cè)精度較高,滿足傳感器性能檢測(cè)要求。
本文基于STM32單片機(jī),采用分檔分壓和恒流源相結(jié)合的方法研制了一種壓阻式柔性壓力傳感器陣列信號(hào)采集卡;基于C#語(yǔ)言和串口通信技術(shù)設(shè)計(jì)了上位計(jì)算機(jī)信號(hào)讀取與分析系統(tǒng)。本信號(hào)采集與分析系統(tǒng)實(shí)時(shí)性好,檢測(cè)精度高,滿足觸覺(jué)傳感檢測(cè)要求,具有較好的實(shí)際應(yīng)用前景。