應(yīng)用模擬微控制器簡化數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
Simplify Data Capture System Design with Analog Microcontroller
ADI公司
在微控制器中加入高精度的模擬外設(shè),這樣的模擬微控制器更能適應(yīng)市場的需求。外設(shè)包括高達(dá)24位的模擬數(shù)字轉(zhuǎn)換器,以及12位的數(shù)字模擬轉(zhuǎn)換器等接口。例如,ADI公司的ADuC800系列產(chǎn)品都集成了∑Δ型模數(shù)轉(zhuǎn)換器,根據(jù)配置的存儲器和外設(shè)的配置不同又分成14種型號。如圖1。
圖1 ADuC800系列產(chǎn)品的結(jié)構(gòu)(略)
這些產(chǎn)品的適用領(lǐng)域包括智能傳感器、過程控制與PLC等工業(yè)領(lǐng)域,以及氣體分析與監(jiān)測、熱成像、金屬探測儀器等在內(nèi)的精密儀器領(lǐng)域。它們可以直接連接傳感器進(jìn)行高精度測量,同時(shí)需要更少的模擬元件。
以ARM7代替8051內(nèi)核的ADuC702x系列產(chǎn)品分成8款,它們之間代碼互相兼容。它們都是基于12位的模數(shù)轉(zhuǎn)換器,最高采樣速率為1MHz,提供卓越的直流和交流性能指標(biāo)以及出色的低噪聲性能。內(nèi)置了20ppm精度的基準(zhǔn)電壓,并提供了一個(gè)溫度傳感器,使控制器可以根據(jù)自身溫度進(jìn)行補(bǔ)償。該ADC采用逐次逼近技術(shù),內(nèi)部的電壓源和DAC決定了其精度。如圖2。但是由于輸入引腳沒有保持電路,需要有較大的驅(qū)動(dòng)電流為電容充電,為了避免誤差,可能需要外部緩沖器。轉(zhuǎn)換器的啟動(dòng)方法有多種,推薦使用外部啟動(dòng)轉(zhuǎn)換引腳觸發(fā),此時(shí)延遲最小,其次是定時(shí)器觸發(fā),精度最低的軟件觸發(fā)或可編程邏輯陣列觸發(fā),可能會(huì)受到中斷響應(yīng)的影響。
圖2 逐次逼近型ADC原理(略)
內(nèi)置的多通道復(fù)用器可以提供多通道以及更多的靈活性。首先可以配置成單端輸入模式,此時(shí)以地為參考端。輸入范圍為地到Vref,需要使用抗混疊濾波器。偽差分輸入模式下,一個(gè)引腳為其它引腳提供參考,偽差分輸入可用于對噪聲環(huán)境要求不是太高的情況,它可抑制共模噪聲電壓。
對于要求最精確測量的應(yīng)用,可使用完全差分模式,特別是信號是以共模電壓為中心的小信號,這種模式最有效。如圖3。另外,器件的偏置和增益系數(shù)可調(diào),以使外部的誤差趨于零。
圖3 完全差分輸入模式(略)
12位的電壓輸出DAC轉(zhuǎn)換器采用電阻串結(jié)構(gòu),內(nèi)置滿擺幅輸出緩沖器,以達(dá)到功能強(qiáng)大和精確的目的。如圖4。電阻串由兩個(gè)獨(dú)立的分壓電阻串組成,可以設(shè)置分壓輸出與后續(xù)輸出電壓,這兩個(gè)電阻串分別輸出最高有效位MSB和最低有效位LSB,所 以稱為 分段DAC。如果負(fù)載在5k?以上,或者信號無需進(jìn)一步放大,無需濾波或者輸出保持單極性的情況下可以不需要附加的輸出緩沖器。最差情況下,有效位數(shù)可達(dá)到11.4位,在負(fù)載5k?以上,同時(shí)選用低于電源電壓100mV以上的基準(zhǔn)電壓時(shí),可以達(dá)到11.7位,進(jìn)一步優(yōu)化可以接近11.9位。
圖4 電壓輸出的12位DAC結(jié)構(gòu)(略)
使用ADC或DAC時(shí)可以采用下列的技巧,首先ADC的輸入信號應(yīng)該在1k?以下,否則需要緩沖器。其次模擬輸入端的電壓可以有一定的余量,甚至可以低于地0.3V,但需小心使用。最后采用外部高精度(高于內(nèi)置帶隙基準(zhǔn)電壓源)基準(zhǔn)電源可以獲得更優(yōu)的性能。如圖5。
圖5 ADC及DAC基準(zhǔn)電壓配置方法(略)
ARM7采用32位的精簡指令集架構(gòu),指令和數(shù)據(jù)復(fù)用32位總線,集成JTAG測試端口,主頻高達(dá)44MHz,單周期32位指令,性能高達(dá)45MIPS。工作在32位ARM模式下非常適合微控制器的SRAM操作,16位THUMB模式下更適合片上FLASH操作,此時(shí)具有更大的代碼密度,但是限制對寄存器的訪問??刂破髯陨硎侨壛魉€結(jié)構(gòu),如果當(dāng)前指令沒有完成,可以設(shè)置后面的指令執(zhí)行,即馮諾伊曼修正的哈弗架構(gòu)模式,指令和數(shù)據(jù)籍由同一總線送達(dá),寄存器地址采用線性預(yù)設(shè),有助于編程的方便性。應(yīng)當(dāng)注意,與SRAM相比,F(xiàn)LASH具有更快的擦寫時(shí)間,以及更多的擦寫次數(shù)和數(shù)據(jù)保存時(shí)間。
圖6 PLA組成的狀態(tài)機(jī)(略)
ADuC7000系列產(chǎn)品時(shí)鐘可以采用內(nèi)置PLL產(chǎn)生和32.768kHz實(shí)時(shí)時(shí)鐘獲得,也可通過外置晶振產(chǎn)生,此時(shí)時(shí)鐘范圍是50kHz~44MHz。存儲器的數(shù)據(jù)寬度決定了最終的MIPS性能,采用預(yù)設(shè)線性地址的寄存器后,尋址變得很容易。部分產(chǎn)品提供與外設(shè)存儲器的接口。
數(shù)字外設(shè)
PLA由2~8個(gè)邏輯單元陣列組成,其中每個(gè)單元的輸入可以是任意一個(gè)GPIO引腳、時(shí)鐘、計(jì)數(shù)器溢出或任意的寄存器位。輸出可以作為另外一個(gè)PLA的輸入或寄存器位。邏輯單元的配置可以通過軟件進(jìn)行。
圖7 PLA的使用實(shí)例(略)
ADuC7000產(chǎn)品提供了常見的數(shù)字端口,包括GPIO、I2C兼容接口以及改進(jìn)的UART接口,它具有小數(shù)分頻器以及網(wǎng)絡(luò)尋址模式,此外還提供了SPI接口。
微 控制器具有四個(gè)以上的定時(shí)器,一個(gè)是倒計(jì)數(shù)的16位實(shí)時(shí)計(jì)數(shù)器,一個(gè)可以捕獲中斷的32位計(jì)數(shù)器,既可以遞增計(jì)數(shù)也可以遞減計(jì)數(shù),一個(gè)32位的喚醒計(jì)時(shí)器,以及一個(gè)16位的看門狗計(jì)時(shí)器。
控制器中還集成了其它一些外設(shè),比如電源監(jiān)視器,具有兩個(gè)可編程電平,在電源電壓降落到這兩個(gè)電平以下時(shí)觸發(fā)中斷。另外有上電復(fù)位以及集成了3相PWM功能。
ADI為AduC系列控制器提供的開發(fā)工具包括Quickstart及Quickstart擴(kuò)展型兩種,前者可以通過串口利 用匯編語言進(jìn)行調(diào)試,而擴(kuò)展型則可以通過C語言和匯編語言進(jìn)行非侵入式調(diào)試。另外還提供一種擴(kuò)展性差的Mini型開發(fā)套件。所有的軟件都是采用Keil uVision進(jìn)行編寫與項(xiàng)目管理。其中包括了IAR測試版。
圖8顯示了AduC7128/9用于驅(qū)動(dòng)直流電機(jī)的設(shè)計(jì)。
控制汽車電池的充電是一件非常重要而且困難的工作,利用模擬控制器的外設(shè)可以簡化這些工作,隨著混合動(dòng)力車的發(fā)展,對汽車電力的監(jiān)控和控制變得非常必要,這種應(yīng)用的環(huán)境惡劣,需要新的高充電率轉(zhuǎn)換器。AduC703x非常適合這種應(yīng)用的需求,它具有3個(gè)ADC,可以進(jìn)行電壓、電流和溫度檢測,采用20MHz的ARM7 TDMI內(nèi)核,而且可以直接工作在12V的電源下,還提供了汽車電氣中常見的LIN2.0接口。
圖8 采用AduC控制器簡化直流電機(jī)驅(qū)動(dòng)電路設(shè)計(jì)(略)
ADE71xx/75xx則更適合進(jìn)行電能的監(jiān)測。它提供了2個(gè)ADC,4MHz的8025內(nèi)核,另外有一個(gè)溫度補(bǔ)償?shù)腁DC,內(nèi)置了50ppm/℃的參考電壓。并且提供108段的LCD驅(qū)動(dòng)。
問答選編
問:在強(qiáng)干擾的情況下, ADI的單片機(jī)還能工作正常嗎?
答:這與系統(tǒng)設(shè)計(jì)有很大關(guān)系。ADI的單片機(jī)在電機(jī)控制等的惡劣環(huán)境都有成功的應(yīng)用。但是,還是需要在這種環(huán) 境下加入標(biāo)準(zhǔn)的抗干擾措施。
問:ADuC845內(nèi)部溫度傳感器可以精確到多少度?如何用它做AD轉(zhuǎn)換溫度補(bǔ)償?
答:ADuC845的精度是+/-2度。你需要測量ADC轉(zhuǎn)換誤差隨溫度的關(guān)系,然后通過當(dāng)時(shí)溫度傳感器測得的溫度來 校正。
問:ADuC800系列中16位或24位sigma-delta ADC與12 位逐次逼近型ADC最大的區(qū)別是什么?各自的應(yīng)用?
答:sigma-delta ADC的精度、線性度更高,但是它的速度很低 。它的典型應(yīng)用如溫度、壓力等低頻信號的測量。但 是SAR ADC的速度會(huì)較高。
問:傳感器小信號時(shí)存在噪音,這一問題采用ADuC7000系列時(shí)如何解決?
答:一方面,可以使用差分的方式進(jìn)行處理,如差分放大。差分接到ADuC產(chǎn)品的差分ADC通道上;另一方面,你可以使用模擬濾波和數(shù)字域的濾波進(jìn)行對噪聲的濾除。
問:如果用C語言開發(fā),代碼量是不是有限制?
答:不同型號的產(chǎn)品其Flash大小會(huì)不同,大部分ADuC系列產(chǎn)品都是62KB Flash。但是如果您使用免費(fèi)版本的開發(fā)軟件,它會(huì)有可編譯的代碼量的限制,要突破此限制, 需要購買相關(guān)的完整版開發(fā)軟件。
問:ADuC7000系列在KEIL軟件下能仿真嗎?有沒有帶USB 接口的芯片?
答:KEIL全面支持ADuC7000系列?;谙到y(tǒng)設(shè)計(jì)成本的考慮,ADuC7000現(xiàn)在還沒有帶USB接口的。ADuC內(nèi)部帶有性能非常優(yōu)越的A DC和DAC,這是相對于其他芯片的優(yōu)勢。
問:為什么ADuC845AD轉(zhuǎn)換在很長時(shí)間后特別是在斷電開機(jī)后,數(shù)據(jù)才能達(dá)到穩(wěn)定?
答:ADuC845中的ADC是Sigma-Delta型的,所以一般需要大約3~4個(gè)采樣周期達(dá)到穩(wěn)定。
問:模擬微控制器從哪些方面簡化了數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)?
答:由 于直接在芯片上集成了多路ADC和DAC,用戶無論是系統(tǒng)成本還是設(shè)計(jì)復(fù)雜度上都得到了有效的降低。而IDE環(huán)境中也提供了相應(yīng)的ADC或DAC的配置功能(甚 至仿真功能),可以讓用戶很直觀地進(jìn)行開發(fā)。
問:如果我需要通過UART或者I2C燒寫程序,可以通過ADI提供的ARMWSD和i2cwsd界面燒寫嗎?和在線燒寫有何區(qū)別?在線燒寫需要編寫bootloader程序嗎?
答:ADuC702x系列擁有2個(gè)不同的啟動(dòng)加載選項(xiàng):1)I2C,主要用于光學(xué)元件市場;2)UART,通用。這些啟動(dòng)加載程 序 被整合到ADuC702x內(nèi)核中。ARMWSD面向 UART 版ADuC702x,而I 2 CWSD面向I 2 C版ADuC702xI。
問:最新的aduc7128和以前的aduc7026的arm內(nèi)核有什 么不同,增加了什么新技術(shù)或新的模塊?
答:ADuC702x和ADuC712x均具有業(yè)內(nèi)標(biāo)準(zhǔn)ARM7TDMI內(nèi) 核。然而,存儲器處于不同的位置,因此需要不同的連接 程 序腳本和啟動(dòng)文件。幾個(gè)外設(shè)也不同,而且這些外設(shè) 的寄存器定義也會(huì)有所不同。
問:對線性采集可以用增益校正和偏移校正來完成,那么對 DAC的電壓設(shè)置中出現(xiàn)的誤差如何校正?
答:ADuC8xx和ADuC702x沒有DAC偏移寄存器。偏移問 題的2種可能的解決方案如下:
1)有效補(bǔ)償
?、?在外部,將DAC輸出連接到ADC輸入通道上。還可 以使用內(nèi)部連接ADC通道9或10。
② 將數(shù)值寫入DAC。
③ 在DAC輸出上進(jìn)行ADC轉(zhuǎn)換,并與期望值比較。
④ 按照要求調(diào)高或降低DAC輸出。
2)DAC“校準(zhǔn)”
利用ADC和DAC定期執(zhí)行下列操作:
?、?從DAC輸出滿標(biāo)度,并利用ADC進(jìn)行轉(zhuǎn)換。
② 從DAC輸出零標(biāo)度,并利用ADC進(jìn)行轉(zhuǎn)換。
?、?計(jì)算斜率,并與理想值比較。
評論