摘要:以微控制器LPC1768為核心控制AD7656的采樣電路,,實(shí)現(xiàn)了電力系統(tǒng)監(jiān)測(cè)數(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)測(cè)系統(tǒng)中有良好的應(yīng)用前景。
關(guān)鍵詞:時(shí)間標(biāo)示,;LPC1768,;AD7656;RTC;SSP
引言
監(jiān)測(cè)系統(tǒng)中,,對(duì)被測(cè)對(duì)象的監(jiān)測(cè)時(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)測(cè)系統(tǒng)中有十分廣闊的應(yīng)用前景,。
1 硬件設(shè)計(jì)
1.1 芯片簡(jiǎn)介
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)在市場(chǎng)上多數(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)測(cè)單元的同時(shí)采樣,,并且實(shí)際達(dá)到的分辨率也只有9位半,不能滿足現(xiàn)場(chǎng)監(jiān)測(cè)的需要,。使用外擴(kuò)ADIAD7656芯片來實(shí)現(xiàn)多路監(jiān)測(cè)采樣,,可廣泛應(yīng)用于輸電線路監(jiān)測(cè)系統(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ò)誤的測(cè)量結(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)測(cè)中,,許多時(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)測(cè),。由于工業(yè)現(xiàn)場(chǎng)的應(yīng)用環(huán)境,,該系統(tǒng)在精度和穩(wěn)定性方面有待于提高。