摘要:以微控制器LPC1768為核心控制AD7656的采樣電路,實現(xiàn)了電力系統(tǒng)監(jiān)測數(shù)據(jù)帶上準確時間標記的設(shè)計方案。系統(tǒng)采用LPC1768片內(nèi)資源SSP0控制AD7656進行采樣,并使用片內(nèi)資源RTC,以獲得帶有實時時間標示的采樣數(shù)據(jù)。帶時標采樣系統(tǒng)在工業(yè)實時監(jiān)測系統(tǒng)中有良好的應(yīng)用前景。
關(guān)鍵詞:時間標示;LPC1768;AD7656;RTC;SSP
引言
監(jiān)測系統(tǒng)中,對被測對象的監(jiān)測時常需要帶時標。過去常外擴實時時鐘芯片PCF8563,使用I2C接口與控制器相連,來獲得時間。該設(shè)計需要外擴硬件資源,并且消耗控制器資源,使用效果不佳。恩智浦(NXP)公司的基于最新ARMv7內(nèi)核的LPC1768,內(nèi)嵌實時時鐘計數(shù)器,系統(tǒng)
掉電仍可繼續(xù)運行,可由自帶的電源引腳VBAT供電,進行不間斷地計時。數(shù)模采樣模塊采用ADI公司的AD7656,高精度、高速度、高信噪比、良好的實用性等特點使其成為模/數(shù)轉(zhuǎn)換的極佳選擇。使用LPC1768為控制核心,配合高效的AD7656模/數(shù)芯片,構(gòu)成采樣數(shù)據(jù)帶時標的實時采樣系統(tǒng),在工業(yè)實時監(jiān)測系統(tǒng)中有十分廣闊的應(yīng)用前景。
1 硬件設(shè)計
1.1 芯片簡介
Correx系列基于ARM公司的架構(gòu)ARMv7,包括Cortex-A(應(yīng)用處理器)、Cortex-R(實時處理器)、Cor-tex-M(微控制器)三個系列,Cortex-M3是面向低成本、小引腳數(shù)目以及低功耗應(yīng)用,并且具有極高運算能力和中斷響應(yīng)能力的處理器內(nèi)核。NXP的LPC1768便是基于Cortex-M3的處理器。
如同現(xiàn)在市場上多數(shù)控制器,LPC1768只內(nèi)建了1個帶8通道的12位的模/數(shù)轉(zhuǎn)換(少數(shù)芯片如TMS320F2812,帶有2個8通道12位的模/數(shù)轉(zhuǎn)換),不能實現(xiàn)對多個監(jiān)測單元的同時采樣,并且實際達到的分辨率也只有9位半,不能滿足現(xiàn)場監(jiān)測的需要。使用外擴ADIAD7656芯片來實現(xiàn)多路監(jiān)測采樣,可廣泛應(yīng)用于輸電線路監(jiān)測系統(tǒng)、儀表和控制系統(tǒng)等。
1.2 LPCI768芯片電路
硬件系統(tǒng)中,LPC1768FBD1OO作為主控芯片,其主頻最高為100 MHz。LPC1768有3種時鐘來源:
①osc-clk,片外時鐘(主振蕩器)輸入,外部晶振工作在(1~25 MHz)。
②rtc-clk,實時時鐘頻率輸入,實時時鐘本身需要1個外部晶振(1~32.768 kHz)。
③irc-clk,內(nèi)部振蕩時鐘(標稱頻率4 MHz),在上電和片上復位時使用irc時鐘,待軟件配置其他時鐘輸入;irc-clk達不到USB接口時間基準精度要求,要使用USB功能,必須外接更高精度晶振。
圖1為RTC時鐘時域的總體設(shè)計框圖。使用12MHz的外部晶振,通過鎖相環(huán)倍頻后,以96MHz運行。RTC時鐘輸入RTCXl、RTCX2,外接32.768 kHz晶振,采用獨立3.3 V電池供電,Vbat輸入端接二極管,防止電池反接造成芯片燒毀。芯片采用3.3 V供電,數(shù)字和模擬之間用O Ω電阻或者合適值的電感(電感值大小和電路設(shè)計本身有關(guān))隔開。
JTAG仿真口接法如圖2所示。
ADI公司的AD7656有多種數(shù)據(jù)傳輸方式可供配置,相對于LPC1768豐富的串行傳輸方式和很少的I/0數(shù)量,并行傳輸要占用16位或8位數(shù)據(jù)線,占用資源太多。使用帶有8幀4~16位可配置FIFO的SSP總線,使其運行在SPI模式下。
LPCI768的SSP同步串行控制器,占用4個引腳:
①SCK,串行時鐘線。作為同步時鐘信號,主機驅(qū)動,從機接收,可配置高、低有效只在傳輸過程中有效;對應(yīng)引腳為P0.15或P1.20(SSP0使用),PO.7或P1.31(SSPl使用)。
②SSEL,幀同步/從機選擇信號。主機在數(shù)據(jù)傳輸開始和結(jié)束時都會驅(qū)動該信號,在多個從機情況下,可作為片選信號使用;對應(yīng)引腳為P0.16或P1.21(SSP0使用),P0.6(SSP1使用)。
③MISO,Master In Slave Out。當SSPn作為主機時,該引腳作為串行數(shù)據(jù)輸入;SSPn作為從機時,該引腳作為串行數(shù)據(jù)輸出線;SSPn是從機且未被SSEL選擇時,引腳處于高阻態(tài)。對應(yīng)引腳為PO.17或Pl.23(SSP0使用),P0.8(SSP1使用)。
④MOSI,Master Out Slave In。SSPn是主機時,串行數(shù)據(jù)從該引腳輸出;SSPn是從機時,該引腳接收主機輸入的數(shù)據(jù)。對應(yīng)引腳為PO.18或P1.24(SSP0使用),P0.9(SSPl)。
1.3 AD7656芯片電路
AD7656工作電路如圖3所示,VDD與VSS是芯片模擬量輸入部分的電源,使用+12 V和-12 V(可用電壓范圍為9.5~16.5 V的電源)供電,并使用0.1μF電容和10μF電解電容與模擬地隔開;AVCC與AGND是芯片ADC核心的工作電源,使用+5 V電源供電,兩者之間同樣要用0.1 μF電容和10μF電解電容隔開;AVCC與DVCC相差不能大于0.3 V,就算短時間內(nèi)相差大于O.3 V,也會出現(xiàn)錯誤的測量結(jié)果;VDRIVE引腳是邏輯電源輸入,可以根據(jù)不同的控制芯片或總線電平,來接不同的邏輯電平,配合LPC1768芯片3.3 V的電平,使用3.3 V電源,并用0.1μF電容和10 μF電解電容與DGND隔開;REFCAPC/B/A分別用O.1 μF電容和10 μF電解電容與模擬地隔開。
RANGE接高電平,量程為±2×VREF,接低電平,量程為±4×VREF;選擇串行模式下,接高電平3.3V,接DGND;串行數(shù)據(jù)只使用A口傳輸,SEL-A接高電平3.3 V,SEL-B、SEL-C接DGND;不使用菊花鏈功能,將DCIN-C、DCIN-B、DCIN-A引腳接DGND;引腳接高電平3.3 V,持續(xù)工作在標準模式下,接低電平為待機狀態(tài);CONVST-A/B/C接LPC1768的MATl.1,有定時器1的比較器輸出翻轉(zhuǎn)電平控制A/D轉(zhuǎn)換;BUSY引腳在轉(zhuǎn)換開始到結(jié)束為高電平,接LPC1768的EINT3,捕獲轉(zhuǎn)換結(jié)束下降沿;SCLK接LPC1768的SSP0的SCK0引腳(選用P1.20);SDATA接LPC1768的SSP0的MISO0引腳(選用P1.23)。
2 軟件設(shè)計
在電力系統(tǒng)監(jiān)測中,許多時候要用到三相電壓電流采樣,并對每個周期取128個采樣值。使用定時器1產(chǎn)生比較中斷,使用比較中斷的引腳翻轉(zhuǎn)功能,比較值為20 ms/(128×2),即實際采樣周期為2×20 ms/(128×2)=20ms/128。當比較輸出翻轉(zhuǎn)至高電平時,CONVST-A/B/C
置高,開始采樣,同時BUSY引腳電平置高;轉(zhuǎn)換結(jié)束,BUSY引腳置低,EINT3設(shè)置下降沿中斷,捕獲其下降沿,進入中斷;中斷服務(wù)程序讀取RTC值和打開SSP0讀取ADC值,程序流程如圖4所示。
2.1 RTC實時時鐘程序
LPC1768 RTC擁有秒、分、小時、日期值(周期為月、值1~31)、星期值、日期值(周期為年、值1~365)、月值、年值寄存器,對每個寄存器設(shè)置需要的值。RTC中斷分為2種——計數(shù)器增量中斷(CIIR)和報警中斷。
計數(shù)器增量中斷:RTC中8個寄存器,使能任意一個時間值的中斷(秒中斷、分中斷等),那么該時間值計數(shù)器每增加1次,就產(chǎn)生1次中斷;
報警中斷:使能8個寄存器的任意一個或者幾個計數(shù)中斷使能,當所有未屏蔽寄存器的值與當前時間寄存器的值匹配時,產(chǎn)生中斷。
RTC功能模塊框圖如圖5所示。
下面是秒增量中斷的例子。
2.2 AD7656與LPC1768 SSPO通信程序
配置LPC1768 SSP0為SPI模式,每幀傳輸16位數(shù)據(jù),自動接收6幀數(shù)據(jù)。程序如下:
結(jié)語
本文介紹了基于ARM Cortex-M3的芯片LPC1768FBl00和16位A/D芯片AD7656的工作原理,設(shè)計了基于AD7656與LPC1768串行通信的采樣系統(tǒng),實現(xiàn)對采樣數(shù)據(jù)帶上時標的設(shè)計,對監(jiān)控系統(tǒng)獲得實時狀態(tài)提供了可行方案。本系統(tǒng)可廣泛應(yīng)用于電力系統(tǒng)在線監(jiān)測。由于工業(yè)現(xiàn)場的應(yīng)用環(huán)境,該系統(tǒng)在精度和穩(wěn)定性方面有待于提高。