黎 堅(jiān)
(深圳軟通動(dòng)力信息技術(shù)有限公司,廣東深圳 518000)
大多數(shù)的數(shù)據(jù)采集系統(tǒng)都會(huì)用到A/D轉(zhuǎn)換器[1],但對(duì)它的讀寫(xiě)控制完全依賴MCU微控制器讀取的方法,通常有延時(shí)等待法、查詢法、中斷法。但這些方法需要通過(guò)軟件的指令的控制和支持,效率比ISP[2]器件低很多。本文采用STM32 MCU作為主控制器,IspPAC-POWR1014A芯片作為終端產(chǎn)品對(duì)外接口線路監(jiān)控和報(bào)警單元的系統(tǒng)設(shè)計(jì)方案,對(duì)于自動(dòng)化產(chǎn)線如何高效檢出問(wèn)題產(chǎn)品有著重要和積極的意義。
本系統(tǒng)工作原理如圖1所示,遠(yuǎn)端的上位PC機(jī)通過(guò)USB接口與數(shù)據(jù)采集板進(jìn)行數(shù)據(jù)通信,下位機(jī)STM32則通過(guò)IIC輪詢檢查POWR1014A采集的10路接口數(shù)據(jù)線電壓數(shù)據(jù)。
1.2.1 POWR1014A
圖1 系統(tǒng)數(shù)據(jù)采集網(wǎng)絡(luò)結(jié)構(gòu)示意圖
IspPAC-POWR1014A是Lattice公司生產(chǎn)的電源監(jiān)控芯片,擁有10路輸入管腳,12路輸出管腳,高達(dá)10bit ADC來(lái)監(jiān)控輸入信號(hào)的狀態(tài),A/D分辨率可以配置成2 mV和6 mV兩種模式。芯片內(nèi)部集成了24個(gè)CPLD[3-4]邏輯宏單元可以完成各種時(shí)序邏輯功能,比如監(jiān)控輸入管腳、控制數(shù)出管腳、輸出告警中斷信號(hào)等。所以,芯片可以稍微改變其電源監(jiān)控的用途,就可以轉(zhuǎn)變成消費(fèi)類產(chǎn)品接口數(shù)據(jù)線的監(jiān)控芯片。同時(shí),芯片的JTAG接口可以方便擴(kuò)展和級(jí)聯(lián)POWR1014A芯片,這樣可以監(jiān)控更多路的輸入信號(hào)以適應(yīng)不同類型的終端產(chǎn)品接口測(cè)試的需要。
POWR1014A有48個(gè)引腳,TQFP封裝,內(nèi)部結(jié)構(gòu)如圖2所示。這些引腳大致分為以下幾類。
(1)電源類。其中核心電源VCCD和模擬電源VCCA,JTAG電源VCCJ各自需要通過(guò)0.1μF電容到數(shù)字地。
(2)模擬類信號(hào)。VMON1~VMON10為10路模擬輸入信號(hào)。
(3)數(shù)字類信號(hào)。OUT3~OUT14為12路數(shù)字?jǐn)?shù)出信號(hào)。
(4)控制類信號(hào)。IIC Slave接口可以通過(guò)MCU的IIC Master接口來(lái)訪問(wèn)芯片內(nèi)部AD采樣結(jié)果以及內(nèi)部CPLD宏單元內(nèi)容。
圖2 POWR1014A芯片封裝圖
POWER1014芯片內(nèi)部結(jié)構(gòu)框圖如圖3所示。
圖3 POWR1014A內(nèi)部結(jié)構(gòu)框圖
1.2.2 MCU控制單元
本系統(tǒng)采用STM32F072CBT作為數(shù)據(jù)采集單元的控制器,該處理器采用Cortex?-M0架構(gòu),低成本,低功耗,容易操作。并具有64~128 kb Flash容量,16 kb的SRAM容量,100引腳LQFP封裝,最高工作頻率可以達(dá)到48 MHz。
該芯片的優(yōu)點(diǎn)有:(1)支持精簡(jiǎn)指令集32-bit RISC core;(2)兩路IIC接口可以支持到快速模式1 Mbit/s的傳輸速率;(3)可以最多支持到87路I/O端口;(4)兩路SPI信號(hào)可以支持到18 Mbit/s的傳輸速率。
芯片封裝圖如圖4所示。SMT32F072CBT6的引腳圖如圖5所示。
圖4 STM32芯片封裝圖
圖5 STM32F072CBT6引腳圖
1.2.3 接口短路測(cè)試儀整體硬件架構(gòu)
圖6 整體硬件測(cè)試示意原理圖
整體硬件測(cè)試示意原理如圖6所示。終端設(shè)備的對(duì)外接口通過(guò)數(shù)據(jù)線連接至測(cè)試儀的測(cè)量端口,之后測(cè)試儀的端口數(shù)據(jù)線經(jīng)過(guò)上下拉電阻偏置到固定電平,最后,通過(guò)POWR1014A的10路A/D中進(jìn)行數(shù)據(jù)采集,并通過(guò)內(nèi)部CPLD邏輯單元[5]進(jìn)行判斷,如果有數(shù)據(jù)線短路等異?,F(xiàn)象,就通過(guò)POWR1014A的輸出端口驅(qū)動(dòng)LED燈來(lái)進(jìn)行報(bào)警指示。短路分成兩種情況:(1)數(shù)據(jù)線與地之間的短路,一旦發(fā)生此種情況輸入至A/D的電壓就會(huì)拉低至低電平0V;(2)數(shù)據(jù)線路之間短路,此種情況下,可以將PWR1014A各路輸入的上下拉電阻配置成不同的電壓值。比如:第一路上下拉電阻分別為2 kΩ、2 kΩ,第二路上下拉電阻分別為2 kΩ、4 kΩ,當(dāng)線間短路發(fā)生時(shí),輸入至各路A/D的電壓也會(huì)偏離預(yù)設(shè)值電壓數(shù)值,從而可以判斷出來(lái)發(fā)生線間短路。
構(gòu)建了測(cè)試儀的硬件采集模塊和控制模塊之后,需要對(duì)STM32[6]控制模塊與數(shù)據(jù)采集模塊POWR1014A進(jìn)行程序設(shè)計(jì)。數(shù)據(jù)采集傳輸過(guò)程:POWR1014A通過(guò)10路A/D電路采樣通道采集終端產(chǎn)品接口的電壓的狀態(tài),然后通過(guò)IIC接口同步上傳給MCU控制器,最后MCU控制器將數(shù)據(jù)通過(guò)UART-USB接口芯片傳輸至上位機(jī)。
主程序流程圖如圖7所示。系統(tǒng)復(fù)位之后,先判斷獨(dú)立工作按鍵是否按下,如果按下就進(jìn)入POWR1014A自行獨(dú)立工作模式,這個(gè)時(shí)候STM32在不工作的狀態(tài)。此時(shí)完全由POWR1014A的邏輯進(jìn)行接口線路的狀態(tài)判斷,如果有短路情況發(fā)生,立即點(diǎn)亮對(duì)應(yīng)的LED燈。如果沒(méi)有按下獨(dú)立工作按鍵就會(huì)進(jìn)入MCU初始化狀態(tài),接著在上位機(jī)中等待測(cè)試人員鍵入線路測(cè)試的命令,當(dāng)鍵入正確的測(cè)試命令后,MCU就會(huì)控制POWR1014A的ISP_EN管腳以啟動(dòng)內(nèi)部CPLD的邏輯功能,接著CPLD邏輯就會(huì)從第1路開(kāi)始查詢線路狀態(tài)到第10路結(jié)束。如此不斷輪詢反復(fù)查詢接口線路狀態(tài)。
圖7 MCU程序流程圖
POWR1014A邏輯代碼輪詢檢查通道1~10的接口線路狀態(tài),如果沒(méi)有短路現(xiàn)象發(fā)生,就會(huì)關(guān)閉輸出,此時(shí)所有LED燈不亮。當(dāng)輪詢到其中一路或多路通道狀態(tài)異常,就對(duì)點(diǎn)亮對(duì)應(yīng)的LED燈,并發(fā)出硬件異常中斷信號(hào)至STM32 MCU芯片。圖8所示是利用ABEL語(yǔ)言實(shí)現(xiàn)的程序代碼。
通過(guò)對(duì)本系統(tǒng)的研究表明:基于lattice POWR1014A的消費(fèi)產(chǎn)品接口短路測(cè)試儀具有體積小,實(shí)時(shí)性強(qiáng),穩(wěn)定性能好的優(yōu)點(diǎn)??梢员WC接口狀態(tài)數(shù)據(jù)能夠高效傳輸至上位,同時(shí)由于POWR1014A具有JTAG接口,可以實(shí)現(xiàn)將多個(gè)芯片級(jí)聯(lián)擴(kuò)展多路接口通道,從而避免了系統(tǒng)布置分散和資源浪費(fèi)的弊端??傊疚臑槿绾螌?shí)現(xiàn)快速診斷消費(fèi)類產(chǎn)品接口線路狀態(tài)提供一種新的方法,也為該類產(chǎn)品自動(dòng)化測(cè)試提供新的解決思路。
圖8 程序代碼