實(shí)際應用系統往往需要進(jìn)行高精度的測量,同時(shí)還必須進(jìn)行實(shí)時(shí)快速控制,提高其開(kāi)發(fā)效率。為此人們常采用高精度A/D芯片加帶ISP開(kāi)發(fā)功能的單片機系統來(lái)實(shí)現。德州儀器(TI)的MSC1210單片機解決了上述問(wèn)題。它集成了一個(gè)增強型8051內核、高達33 MHz的時(shí)鐘周期、8路24位高精度∑-△A/D轉換器、Flash存儲器等,其系統功能和結構框圖如圖1所示。 MSC1210具有以下主要特性: ◇ 3個(gè)16位的定時(shí)器,16位PWM波輸出; ◇ 多達21個(gè)中斷源; ◇ 32個(gè)數字輸入/輸出端口,帶有看門(mén)狗; ◇ 8路ADC提供24位分辨率可編程的無(wú)丟失碼解決方案; ◇ 可編程增益放大(PGA)在1~128之間可調,極大提高了ADC精度; ◇ 供電電源2.7"5.25 V,在3 V時(shí)功耗低于4 mW,停止方式電流小于1μA; ◇ 內核兼容8051,指令與8051完全兼容,可以使用原有8051開(kāi)發(fā)系統; ◇ 時(shí)鐘頻率可達33 MHz,單周期指令執行速度達8 MIPS,執行速度比標準8051快3倍; ◇ 高達32 KB的Flash存儲器,SRAM達1.2 KB,外部可擴展至64 KB存儲器; ◇ Flash在電壓低達2.7 V時(shí)仍可串行或并行編程,可10萬(wàn)次擦除/寫(xiě)操作; ◇ 具有32位累加器; ◇ 有電源管理功能,能夠進(jìn)行低電壓檢測,在片上電復位; ◇ 帶FIFO的SPI端口,雙UART; ◇ 64TQFP封裝,MSC1210系列的硬件和引腳完全兼容,必要時(shí)可以互換。 1 內核兼容8051但速度更快功能更強 MSC1210系列的所有指令功能與標準8051相同,對位、標志和寄存器的影響相同,但時(shí)序不同。MSC120單片機使用精簡(jiǎn)的8051內核,在同樣的外部時(shí)鐘作用下,其執行速度比標準8051快1.5"3倍(每條指令有4個(gè)時(shí)鐘周期與12個(gè)時(shí)鐘周期的區別)。在同樣的指令和時(shí)鐘下,速度提高到2.5倍以上。因此,一個(gè)時(shí)鐘為33 MHz的MSC1210執行速度與一個(gè)時(shí)鐘為82.5 MHz的標準8051相同,其區別可以從圖2看出;而且MSC1210的定時(shí)器和計數器可以選擇每12個(gè)或4個(gè)時(shí)鐘周期計數一次。 MSC1210提供了雙數據指針(DPTR)加速數據塊的移動(dòng)速度,它能根據外部存儲器的速度調節讀寫(xiě)速度,在2~9個(gè)指令周期之間變化;它還提供給外部存儲器16位地址總線(xiàn)(P0和P2)。低位地址通過(guò)P0口復用得到,硬件可以控制P0和P2口是作為地址線(xiàn)還是作為通用的I/O。 為了更好地提高效率,外圍設備也在8051基礎上作了改進(jìn)。如SPI端口就增加了FIFO,使得傳輸數據有了緩沖區間。32位累加器的使用在處理ADC采樣或其它數據源來(lái)的多字節數據時(shí)將大大減輕CPU的負擔,使得24位加法和移位可以在幾個(gè)指令周期內完成,而無(wú)需通過(guò)軟件用數百個(gè)指令周期來(lái)完成。 MSC1210系列的硬件和引腳完全兼容,對用戶(hù)而言,唯一的區別在于內存配置不同。MSC1210Y2上編寫(xiě)的程序代碼可以直接在MSC1210Y3、MSC1210Y4、MSC1210Y5上執行。用戶(hù)可以在軟件功能上增減并配以不同的CPU型號,MSC1210已成為一個(gè)擁有幾個(gè)不同應用平臺的標準設備。 MSC1210的開(kāi)發(fā)工具與8051的開(kāi)發(fā)系統完全兼容,用戶(hù)可以使用原有的8051開(kāi)發(fā)系統,也可以使用DEMO板帶的開(kāi)發(fā)系統或者第三方支持者提供的開(kāi)發(fā)工具。 2 24位高分辨率ADC通道 (1)ADC的輸入多路復用器及輸入緩沖 輸入多路復用器允許不同輸入信號通過(guò)選擇輸入通道進(jìn)行組合,如AIN0被選為ADC輸入正端,其它任何通道可以選為ADC輸入負端。用這種方式可以組成8個(gè)完整的ADC輸入通道,也可以在差分輸入通道間切換極性。片上的二極管可以提供溫度測量,當輸入多路復用器的寄存器置為全“1”時(shí),二極管被接入ADC通道的輸入端開(kāi)始測量溫度。 MSC1210在沒(méi)有緩沖區時(shí)輸入電阻為5M/PGA,緩沖區由ADC控制寄存器中的BUF位控制。當沒(méi)有選擇輸入緩沖區時(shí),模擬輸入阻抗與時(shí)鐘頻率(ACLK)和增益(PGA)有關(guān),其關(guān)系式為 其模擬輸入通道的等效結構如圖3所示。 (2)可編程增益放大器PGA ① PGA:可編程增益放大PGA可以設為1、2、4、8、16、32、64、128,使用PGA確實(shí)能提高ADC的分辨率。當PGA=1,量程范圍為5 V時(shí),ADC能分辨到1μV;當PGA=128,量程范圍為40 mV時(shí),ADC能分辨到75 nV;而在PGA=1時(shí),在5 V量程范圍內需要一個(gè)26位的ADC才能分辨到76 nV。 ② PGA偏移DAC:ODAC寄存器是8位,它能將輸入到PGA的模擬信號偏移PGA滿(mǎn)量程的一半,其最高位為符號位,低7位提供偏移量。由于ODAC給PGA引入的是模擬量而不是數字量偏移,所以并不影響測量結果的精度。 (3)電壓參考基準 MSC1210的電壓參考可以是內部的也可是外部的,上電復位以后的電壓參考是內部的2.5 V,參考電壓的選擇通過(guò)ADCON0控制。片上內部參考電壓有1.25 V和2.5 V兩種可選,其精度可達0.2 %,溫漂僅為5%26;#215;10-6/℃,可大大提高測量精度。如果沒(méi)有用到內部參考電壓,就應該將其關(guān)掉以減少噪聲和功耗。VREFOUT引腳處應該放一個(gè)0.1μF去耦電容。外部參考電壓為REF IN+與REF IN-之間的差值,引腳上的絕對電壓在A(yíng)GND與AVDD之間,但其差分電平不能超過(guò)2.6 V。 3 片內存儲器 MSC1210包括片上1.2 KB SRAM ,256字節DARAM,2KB啟動(dòng)ROM,32 KB Flash存儲器。 MSC1210用內存尋址表來(lái)區分程序存儲空間和數據存儲空間。程序空間由單片機自動(dòng)讀取,通過(guò)指令MOVC來(lái)讀程序空間;數據空間通過(guò)指令MOVX來(lái)讀寫(xiě)。當片上存儲使能時(shí),在片內范圍內的讀寫(xiě)將在片內存儲器上進(jìn)行,片外存儲器通過(guò)P0和P2尋址來(lái)實(shí)現。HCR1寄存器的第0位和第1位設為0就可以訪(fǎng)問(wèn)外部存儲器,此時(shí)可以通過(guò)P0和P2口訪(fǎng)問(wèn)所有片內和片外存儲空間。為了安全起見(jiàn),在訪(fǎng)問(wèn)片內存儲器期間,P0口全部置位為0。 MSC1210包含1.2 KB片上SRAM。SRAM起始地址位“0”,通過(guò)MOVX指令讀寫(xiě)。SRAM也可以從8400H開(kāi)始,既可作程序空間又可作數據空間。 MSC1210有256字節DARAM,地址為0000H"00FFH,其中128字節為128個(gè)SFR,地址為0080H"00FFH。SFR寄存器用做控制和狀態(tài),標準的8051功能和MSC1210的附加功能是通過(guò)SFR實(shí)現的。從沒(méi)有定義的SFR寄存器將得到“0”,寫(xiě)入沒(méi)有定義過(guò)的SFR得到的結果無(wú)法確定。DARAM的另一個(gè)用途,是通過(guò)SFR的堆棧指針作為堆棧使用。 在串行或并行編程時(shí),有2KB啟動(dòng)ROM控制運行。在用戶(hù)模式下,BOOT ROM位于F800H"FFFFH;在編程模式下,BOOT ROM位于程序空間的起始2K。 Flash存儲器既可用做程序存儲空間又可用做數據存儲空間,用戶(hù)可以靈活配置程序和數據存儲空間的大小。分區大小通過(guò)硬件配置位來(lái)確定,可以通過(guò)串行或并行的方式來(lái)編程確定。在用戶(hù)應用模式下,程序和數據Flash存儲空間都可讀可寫(xiě)。 4 Flash編程應用 可編程的Flash存儲器分為4個(gè)部分:128字節的配置部分、復位向量、程序存儲空間、數據存儲空間。 Flash編程模式有串行和并行兩種模式,通過(guò)上電復位過(guò)程當中的ALE和信號狀態(tài)確定。當ALE=1,=0時(shí),選擇串行編程模式;當ALE=0,=1時(shí),選擇并行編程模式。當ALE和都為高電平時(shí),MSC1210運行在用戶(hù)模式下;當ALE和都為低電平時(shí),MSC1210沒(méi)有定義。 MSC1210的Flash存儲器初始值全部為“1”,并行編程模式包括一個(gè)專(zhuān)用的編程器,串行編程方式通常為在線(xiàn)編程,用戶(hù)應用模式允許對Flash程序和數據存儲器編程。對Flash編程的實(shí)際代碼不能從Flash執行,而必須從BOOT ROM或RAM處開(kāi)始執行。 MSC1210有兩個(gè)硬件配置存儲器(HCR0、HCR1),在Flash編程模式下可編程。用戶(hù)通過(guò)對這兩個(gè)存儲器編程可以在程序存儲空間(PM)和數據存儲空間(DM)之間定義分區,如表1所列。 表1 MSC1210的Flash分區 HCR0 MSC1210Y2 MSC1210Y3 MSC1210Y4 MSC1210Y5 DFSEL PM/KB DM/KB PM/KB DM/KB PM/KB DM/KB PM/KB DM/KB 000 0 4 0 8 - - - - 001 0 4 0 8 - - 0 32 010 0 4 0 8 0 16 16 16 011 0 4 0 8 8 8 24 8 100 0 4 4 4 12 4 28 4 101 2 2 6 2 14 2 30 2 110 3 1 7 1 15 1 31 1 111(缺省) 4 0 8 0 16 0 32 0 注:當程序空間選擇0KB時(shí),程序在片外執行;"一"表示保留。 用戶(hù)可以通過(guò)MOVX指令來(lái)讀寫(xiě)Flash存儲器,而不論Flash存儲器是被定義為程序存儲器還是數據存儲器。這意味著(zhù)用戶(hù)可以將全部空間分為程序存儲空間,并將程序空間當數據存儲空間用。當PC指針指向的程序空間實(shí)際上存放的是數據時(shí),將會(huì )導致不可預知的后果。因此,當要用Flash存儲數據時(shí),一定要求使用Flash分區,Flash分區禁止在數據存儲空間執行程序。同樣,也禁止程序空間的擦寫(xiě)而允許在數據存儲空間讀寫(xiě)。 5 結 論 MSC1210作為一款高性能的內核兼容8051的單片機,其開(kāi)發(fā)的方便、靈活和高精度ADC的使用滿(mǎn)足了使用者的要求,其指令執行速度更是實(shí)時(shí)系統所渴求的,可廣泛用于工業(yè)過(guò)程控制、醫療儀器、智能傳感器等各個(gè)領(lǐng)域。 |