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