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