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