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