陳富,周梓發(fā),涂虬,方小紅
(1.上饒師范學(xué)院 物理與電子信息學(xué)院,江西 上饒 334001;2.江西省電動汽車部件智能化工程研究中心,江西 上饒 334001)
在控制領(lǐng)域,集中控制設(shè)備要向現(xiàn)場執(zhí)行器輸出控制信號,如調(diào)節(jié)閥、變頻器等,需要有模擬量信號持續(xù)、穩(wěn)定,高精度的輸出。模擬輸出信號可能是電壓信號,也可能是電流信號。其中,電壓模擬量輸出信號大小一般為0~10 V,主要用于短距離傳輸;電流模擬量輸出信號大小一般為0~20 m A或者4~20 m A,主要用于遠(yuǎn)距離傳輸[1]。目前,市場上大多數(shù)模塊只針對某一種信號類型進(jìn)行了設(shè)計,而現(xiàn)場設(shè)備往往具有多種需求,特別是需要更多通道、通用性更強(qiáng)的模擬量輸出模塊[2]。針對模擬量輸出模塊多通道多功能化的需求,本文設(shè)計了一種基于STM32的便攜式、多功能模擬量輸出模塊,可同時提供4通道電流或電壓的模擬量輸出。模塊采用模塊化,抗干擾硬件設(shè)計,具有結(jié)構(gòu)簡單、高精度、可靠性高、低成本等優(yōu)點(diǎn)。
該模塊的功能框圖如圖1所示,電源電路、晶振電路和復(fù)位電路確??刂菩酒琒TM32工作的穩(wěn)定性。模擬量信號由控制芯片STM32的SPI接口發(fā)出,經(jīng)過光耦電氣隔離并轉(zhuǎn)換驅(qū)動電壓后,控制AD5623芯片,完成DA變化和處理。通過LM358D組成的電壓運(yùn)放調(diào)理電路,完成0~10 V的電壓持續(xù)輸出給現(xiàn)場信號。通過INA132和LM358D組成電流輸出運(yùn)放調(diào)理電路,完成(0~20)m A/(4~20)m A的電流連續(xù)輸出。同時,由接線端子輸入外部24 VDC電壓,通過TPS5410和ICL7600組成的電壓變換電路,給相關(guān)的電路模塊供電。該模塊還集成了RS485通訊模塊,可以通過標(biāo)準(zhǔn)Modbus協(xié)議進(jìn)行遠(yuǎn)程信號通信。模塊也可通過按鍵設(shè)置模擬量輸出并由LCD顯示。
圖1 系統(tǒng)功能框圖
模塊的單片機(jī)控制電路如圖2所示。綜合性能、成本等各方面考慮,采用STM32系列的32位RISC架構(gòu)ARM CortexTM-M3內(nèi)核STM32F101C6T6為控制芯片,其最高工作主頻可達(dá)36 MHz,內(nèi)部含有32 Kb Flash存儲器及6 Kb SRAM[3]。提供標(biāo)準(zhǔn)通信接口(一個I2C、一個SPI和兩個USART)、一個12位ADC和最多兩個通用16位定時器,具備豐富的外設(shè)資源[4]??商峁┧?、停機(jī)和待機(jī)3種省電模式。具有可靠性高、封裝尺寸小而且低成本等特點(diǎn),滿足該模塊功能需求。
模塊中單片機(jī)STM32工作電源為+3.3 V,因此需要將+5 V電源轉(zhuǎn)換為+3.3 V電壓。模塊采用Sipex公司的LDO電源芯片SPX1117M3-L-3.3產(chǎn)生+3.3 V電壓,其輸出電流能達(dá)0.8 A,最大峰值電流可達(dá)1 A。
采用12 MHz晶振為STM32提供外部時鐘。其中電容C3起去耦作用;磁珠L1將+3.3 V電源與晶振的供電隔離,用于抑制信號線、電源線上的高頻噪聲和尖峰干擾,還具有吸收靜電脈沖的能力;電容C13起到旁路及儲能作用;R2、C2構(gòu)成低通濾波器,平滑時鐘信號的邊沿,抑制高頻干擾的產(chǎn)生。
復(fù)位芯片選用MICROCHIP公司的TCM809。該芯片是一款用于數(shù)字系統(tǒng)的低成本電壓監(jiān)控芯片,它用于監(jiān)視+3.3 V電源電壓,可防止由外部干擾產(chǎn)生的電源瞬變引起的系統(tǒng)復(fù)位,外圍電路無需過多器件,功能實現(xiàn)簡單。其中C20為旁路去耦電容,R3、C1構(gòu)成低通濾波器,平緩化復(fù)位信號的邊沿,避免產(chǎn)生高頻干擾。
基于性能、成本等因素考慮,RS485通信芯片選用ZT13085LEEN,其通訊速率最高可達(dá)2.5 Mbps。圖3為RS485收發(fā)器電路圖,ZT13085LEEN的收發(fā)控制端T/R通過電阻R10下拉,將ZT13085LEEN初始狀態(tài)置為接收,防止在多節(jié)點(diǎn)網(wǎng)絡(luò)中,上電時沖擊RS485總線狀態(tài);C10為去耦電容,抑制干擾通過電源網(wǎng)絡(luò)傳輸;R11、R12為RS485差分信號線上的匹配電阻,抑制信號反射產(chǎn)生振鈴。
圖3 RS485收發(fā)器電路圖
為了完成4通道的模擬量信號輸出,模塊采用2片AD5623RBRMZ數(shù)模轉(zhuǎn)換器。AD5623RBRMZ屬于nanoDAC系列,是具有低功耗、雙通道、12緩沖電壓輸出的數(shù)模轉(zhuǎn)換器,采用2.7 V至5.5 V單電源供電,通過設(shè)計保證電路單調(diào)性[5]。STM32通過控制AD5623RBRMZ完成0~2.5 V的輸出。
如圖4所示,電壓輸出驅(qū)動電路完成0~2.5 V到0~10 V的轉(zhuǎn)換。其中運(yùn)算放大器LM358D、三極管FCX493TA等組成了電壓串聯(lián)負(fù)反饋放大電路,對輸出電壓進(jìn)行精確的放大、實現(xiàn)0~2.5 V到0~10 V電壓信號的轉(zhuǎn)換。電路中R16用于短路保護(hù),0.1%精密電阻R13和R14用于決定放大倍數(shù),R17、C12組成濾波電路,雙向瞬變電壓抑制二極管SMBJ10CA可用于端口的浪涌保護(hù)。
圖4 電壓輸出驅(qū)動電路原理圖
如圖5所示,電流輸出驅(qū)動電路完成電流輸出0~2.5 V到0~20 m A的轉(zhuǎn)換。該電路選用TI的低功耗單電源差分放大器INA132,該芯片用+24 V單電源供電。將INA132的2端接地,3端接DA芯片電壓輸出端,精密電阻R31兩端的電壓等于3、2兩端的電壓之差,可計算輸出電流為輸入電壓與R31之商。選用運(yùn)算放大器LM358D組成電壓跟隨電路,可以使得該電路精度滿足設(shè)計要求。用晶體管FCX493TA擴(kuò)流,電流輸出電路可以最大外接電阻負(fù)載600Ω以上。R33為輸出限流電阻,C33、C34組成輸出濾波電路。二極管D7可以確保輸出為正值,還可以起輸出端誤接保護(hù)作用[6]。
圖5 電流輸出驅(qū)動電路原理圖
模擬量輸出模塊的軟件系統(tǒng)主要通過RS485端口接收上位機(jī)的配置信息,并完成模擬量信號的輸出。系統(tǒng)初始化包括硬件初始化、變量初始化。其中硬件初始化包括系統(tǒng)時鐘、GPIO引腳、定時器、中斷配置、串口初始化、SPI口初始化、LCD初始化等;變量初始化主要是上電后從FLASH中讀取配置參數(shù)和模擬量校準(zhǔn)數(shù)據(jù)。驅(qū)動輸出通過控制器讀取上位機(jī)通過標(biāo)準(zhǔn)Modbus協(xié)議發(fā)送的指令后要根據(jù)自定協(xié)議解析出輸出電流或電壓的模式及模擬量值,然后根據(jù)AO函數(shù)按模數(shù)轉(zhuǎn)換芯片AD5623RBRMZ的協(xié)議要求,通過SPI口寫入對應(yīng)的控制字。為了提高控制效率,控制器讀取指令后先與上一包的指令進(jìn)行對比,對于沒有變化的指令不再重復(fù)寫入[7]。
RS485通訊主要通過UART2和定時器TIM2中斷配合來完成,當(dāng)有上位機(jī)有數(shù)據(jù)下發(fā)時,系統(tǒng)觸發(fā)UART2中斷,接收上位機(jī)下發(fā)的相關(guān)指令。同時STM32的定時器TIM2開始計時,設(shè)置定時器TIM2的定時常量為T1=72μs,用于幀檢測。當(dāng)時間超過T1時,則認(rèn)為數(shù)據(jù)為下一幀。并在定時器TIM2中斷中對得到的數(shù)據(jù)進(jìn)行解析,提取出相關(guān)的功能碼,針對不同的功能碼,在主程序中完成不同的AO功能函數(shù),其流程圖如圖6所示。
圖6 TIM2中斷函數(shù)流程圖
基于STM32的多通道、多功能模擬量輸出模塊,同時實現(xiàn)4路0~10 V電壓連續(xù)輸出或(0~20)m A/(4~20)m A電流連續(xù)輸出。對模塊的4路通道進(jìn)行大量數(shù)據(jù)測試,通過實驗表明模塊電壓電流輸出誤差均<0.5%F.S。電壓穩(wěn)定時間在輸出外接電阻時<300μs,在輸出外接1μF電容時<750μs。電流穩(wěn)定時間在輸出外接1 m H電感時<600μs,在輸出外接10 m H電感時<2 ms。電壓驅(qū)動能力最小2 000Ω,電流驅(qū)動能力最大600Ω。表1為對第一路輸出通道的測試數(shù)據(jù)。
表1 通道1的精度測試數(shù)據(jù)
通過對模塊的環(huán)境測試,證明模塊可以在不同的工業(yè)環(huán)境中均能正常工作。其判斷依據(jù)為功能通訊及指示燈狀態(tài)正常、AO通道輸出功能正常、三次低溫啟動正常;性能判據(jù)為AO通道輸出誤差<0.5% FS。其中隔離方式(現(xiàn)場和模塊間)為500 VAC@1min,漏電流5 m A。其測試結(jié)果如表2所示。
表2 環(huán)境測試結(jié)果
通過EMC的測試,證明模塊可以工作于復(fù)雜的電磁環(huán)境。其測試判據(jù)是通訊及指示燈狀態(tài)正常和AO通道輸出功能正常,性能要求為AO通道輸出誤差<0.5%FS;其測試結(jié)果如表3所示。
表3 EMC測試結(jié)果
本文設(shè)計了基于STM32的多通道、多功能模擬量輸出模塊,由STM32微控制器控制數(shù)模轉(zhuǎn)換芯片AD5623,通過電壓電流輸出驅(qū)動電路實現(xiàn)4路0~10 V電壓連續(xù)輸出或(0~20)m A/(4~20)m A電流連續(xù)輸出。實驗表明,該模塊具有高精度、響應(yīng)快、高可靠性等特點(diǎn)。本模塊可以與大多數(shù)執(zhí)行器接口,應(yīng)用于自動化控制系統(tǒng)的模擬量輸出場合,可增加系統(tǒng)的總體可靠性,具有較大的實用價值。