陳旭
(北京航天創(chuàng)智科技有限公司 北京市 100089)
隨著電子技術(shù)的發(fā)展,在各種電子設(shè)備中,對功耗的要求越來越嚴(yán)格,已知電壓和電流的話即可計(jì)算出器件功耗。本文介紹一種簡便的電流檢測方法,通過精密電阻將電流值轉(zhuǎn)換為電壓值,然后通過電流傳感放大電路,將電壓值放大,再將放大后的電壓值通過A/D 芯片轉(zhuǎn)換為數(shù)字信號,A/D 芯片數(shù)字端的接口為常用的SPI 接口,CPLD 處理器可以通過SPI 總線方便的讀取出量化后的數(shù)值,進(jìn)而推算出相應(yīng)的電流值,然后通過串口反饋給上位機(jī)。
如圖1所示,電源轉(zhuǎn)換芯片輸出端和負(fù)載電源輸入端之間串聯(lián)一個10mΩ 的精密電阻,因?yàn)殡娏饕话爿^小,所以經(jīng)過一個信號放大芯片MAX4173,將信號放大20 倍,再經(jīng)過一個運(yùn)算放大器LM124J 實(shí)現(xiàn)隔離,最后接到ADC 芯片ADS8661 上。ADS8661 通過SPI 總線與CPLD 連接,CPLD 通過串口轉(zhuǎn)USB 芯片CP2103 與主機(jī)連接,在主機(jī)上通過上位機(jī)軟件方便的讀取電流值。
電流傳感放大電路如圖2所示,選用的芯片型號為MAX4173。MAX4173 是一種低成本、高精度的電流傳感放大器,采用小型SOT23-6 封裝,增益為20 倍。 MAX4173 采用+3V 至+28V 單電源供電,通常只消耗420uA 的電源電流。
為了實(shí)現(xiàn)電流傳感放大電路和后級A/D 電路的隔離,中間加了運(yùn)算放大器電路實(shí)現(xiàn)信號的隔離,運(yùn)算放大器選擇常用的TI 公司的LM124J,按照電壓跟隨器的解法進(jìn)行連接。
電壓跟隨器的輸入阻抗高,而輸出阻抗低。一般來說,輸入阻抗可以達(dá)到幾兆歐姆,而輸出阻抗低,通常只有幾歐姆,甚至更低。電壓隔離器輸出電壓近似輸入電壓幅度,并對前級電路呈高阻狀態(tài),對后級電路呈低阻狀態(tài),因而對前后級電路起到隔離作用。
模數(shù)轉(zhuǎn)換芯片選擇TI 公司的ADS8661,該芯片量化位數(shù)為12bit,采樣率1.25MSPS,輸入幅度范圍可選,器件采用5V電源供電,最大可達(dá)±12.288 V。
ADS8661 屬于基于逐次逼近模數(shù)轉(zhuǎn)換器轉(zhuǎn)換器。具有過壓保護(hù)功能,最高可耐受±20V,片內(nèi)基準(zhǔn)電壓為4.096V,溫度漂移極低。根據(jù)實(shí)際輸入信號的大小,設(shè)置內(nèi)部寄存器選擇合適的輸入范圍。器件采用SPI(Serial Peripheral Interface)接口,只需要四根信號線與處理器相連,大大減少了信號線的數(shù)量,降低電路板布線難度。
圖1:電流檢測電路組成
圖2:電流傳感放大電路
處理器選用ALTERA 公司的CPLD 芯片,型號為5M570ZT 100。CPLD(Complex Programmable Logic Device)即復(fù)雜可編程邏輯器件,是從PAL 和GAL 器件發(fā)展出來的器件,相對而言規(guī)模大,結(jié)構(gòu)復(fù)雜,屬于大規(guī)模集成電路范圍。是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其基本設(shè)計(jì)方法是借助集成開發(fā)軟件平臺,用原理圖、硬件描述語言等方法,生成相應(yīng)的目標(biāo)文件,通過下載電纜將代碼傳送到目標(biāo)芯片中,實(shí)現(xiàn)設(shè)計(jì)的數(shù)字系統(tǒng)。CPLD 比FPGA 使用起來更方便。CPLD 的編程采用E2PROM 或FASTFLASH 技術(shù),無需外部存儲器芯片,使用簡單。在編程方式上,CPLD 主要是基于E2PROM 或FLASH 存儲器編程,編程次數(shù)可達(dá)1 萬次,優(yōu)點(diǎn)是系統(tǒng)斷電時編程信息也不丟失。
如圖3所示,本系統(tǒng)中CPLD 實(shí)現(xiàn)與A/D 之間的SPI 通信,讀取A/D 量化后的數(shù)值,并且將該數(shù)值經(jīng)過計(jì)算轉(zhuǎn)換為電流值后通過UART 接口發(fā)送給USB 轉(zhuǎn)串口芯片,進(jìn)而發(fā)送給主機(jī)。5M570ZT100 屬于ALTERA 公司的MAX V 系列,具有570 個邏輯單元,最大主頻152MHZ,可以滿足系統(tǒng)的設(shè)計(jì)需求。
圖3:CPLD 電路連接示意圖
采用USB/RS232 橋接器件CP2103 進(jìn)行設(shè)計(jì),計(jì)算機(jī)通過USB 接口虛擬一個RS232 接口,與傳統(tǒng)設(shè)備器件連接,設(shè)備對計(jì)算機(jī)接口的形式為USB 接口。
CP2103 是一款高度集成的USB-UART 橋接器,提供一個使用最小化元件和PCB 空間來實(shí)現(xiàn)RS232 轉(zhuǎn)換USB 的簡便解決方案。CP2103 包含了一個USB 功能控制器、USB 收發(fā)器、振蕩器和帶有全部調(diào)制解調(diào)器控制信號的異步串行數(shù)據(jù)總線。
本系統(tǒng)中軟件共包括兩部分,即運(yùn)行在電路板上的CPLD 軟件和運(yùn)行在主機(jī)上的上位機(jī)軟件。
CPLD 軟件包括三個模塊,即SPI 通信模塊、串口通信模塊以及電流值計(jì)算模塊。使用常用的Verlog HDL 語言進(jìn)行CPLD 軟件的開發(fā),開發(fā)工具是Quartus II。SPI 通信模塊和串口通信模塊分別用于實(shí)現(xiàn)CPLD 與ADC 和主機(jī)之間的通信。電路值計(jì)算模塊將計(jì)算得到的電流值通過串口通信模塊發(fā)送給上位機(jī)。
本系統(tǒng)SPI接口設(shè)計(jì)中,CPLD為SPI主設(shè)備,A/D為SPI從設(shè)備,模式設(shè)置CPOL=0,CPHA=0。CPLD 采用輪詢的方式讀取A/D 量化后的數(shù)值,CPLD 內(nèi)置計(jì)時器,每間隔一定的時間,CPLD 拉低A/D 的片選信號CS,然后SCLK 上升沿去讀取SDO 上輸出的數(shù)據(jù),RVS 是從設(shè)備狀態(tài)顯示信號。
CPLD 和USB/RS232 之間采用異步串行通信,本系統(tǒng)中波特率設(shè)置為9600bps,每一幀包括起始位、數(shù)據(jù)位、校驗(yàn)位和停止位。CPLD 將計(jì)算后的電流值通過異步串行接口發(fā)送給USB/RS232 芯片。
電流值計(jì)算模塊將采樣后的電壓值轉(zhuǎn)換為電流值。假設(shè)電流值為I(單位為A),由歐姆定律可知,則電壓值為10*I mV,經(jīng)過放大電路后變?yōu)?0*20*I 即200*I mV,ADC 的量程選擇為0 到5.12V,則ADC 的分辨率為1.25mV,量化后的數(shù)字量為十進(jìn)制N,則200*I=1.25*N,I 為6.25*NmA。N 的取值范圍是1 到4096,則I 的相應(yīng)取值范圍是6.25mA-25.6A,可以滿足絕大多數(shù)常用電子設(shè)備的電路檢測需求。
上位機(jī)軟件主要包括串口通信模塊和顯示界面模塊,采用效率較高的C++語言進(jìn)行開發(fā),串口通信模塊接收到CPLD 反饋的電流值后,顯示界面模塊將電流值顯示在界面上,用戶可以實(shí)時觀測到電流值。
電流檢測系統(tǒng)設(shè)計(jì)完成后,為了驗(yàn)證系統(tǒng)的使用效果對系統(tǒng)進(jìn)行實(shí)際測試,選取了6 種常用的電流值,實(shí)際電流測試情況如表1所示。其中相對誤差=(檢測電流值-實(shí)測電流值)*100%/實(shí)測電流值。
從表1 可知,在500mA 以內(nèi)誤差較大,500mA 以上誤差較小,但基本都在1%以內(nèi),達(dá)到了精確測量電流的要求。
表1:實(shí)際測試記錄表
本文提出了一種基于CPLD 的簡單的電流檢測系統(tǒng),輸入電流經(jīng)過精密電阻轉(zhuǎn)換為電壓值,再經(jīng)過電流傳感放大電路和隔離電路,輸入給模數(shù)轉(zhuǎn)換電路,CPLD 通過SPI 接口輪詢模數(shù)轉(zhuǎn)換芯片的量化值,然后經(jīng)過邏輯運(yùn)算計(jì)算出電流值,通過異步串行接口傳輸給USB/RS232 芯片,進(jìn)而上傳給主機(jī)并在上位機(jī)軟件上實(shí)時顯示。經(jīng)過實(shí)際測試發(fā)現(xiàn)電流測試精度可達(dá)1%以內(nèi),能夠滿足大部分電子設(shè)備的需求,并且系統(tǒng)簡單合理,穩(wěn)定可靠,可以廣泛應(yīng)用在各類工業(yè)電子設(shè)備中。