單片機(jī)C8051F020簡介及其在儀器和儀表中的應(yīng)用
1引言
當(dāng)前,隨著科學(xué)技術(shù)及工農(nóng)業(yè)生產(chǎn)水平的不斷提高,對(duì)相應(yīng)的儀器儀表也提出越來越高的要求,因此,儀器儀表需擴(kuò)展大量的外圍功能部件來滿足儀器儀表復(fù)雜性、高性能及智能化的要求。
這種方法雖然滿足了儀器的復(fù)雜性要求,但隨之而來的問題是由于系統(tǒng)擴(kuò)展的過于復(fù)雜而造成系統(tǒng)可靠性降低,故障率增加,查找故障困難,從而失去了智能化儀器儀表的優(yōu)勢(shì),如果能夠?qū)⒐δ軓?fù)雜的眾多外圍功能部件全部或大部分集成到系統(tǒng)所使用的單片機(jī)內(nèi)部,則可大大提高儀器儀表系統(tǒng)的可靠性,同時(shí)又使系統(tǒng)的成本得以降低,還可利用單片機(jī)片內(nèi)資源在不增加硬件成本的情況下增強(qiáng)儀器的性能,因而該方案是提高儀器儀表可靠性及性能的行之有效的方法,而美國Cygnal公司的C8051F020單片機(jī)便是1款可滿足復(fù)雜高性能儀器儀表要求的單片機(jī)。
C8051F020單片機(jī)是集成在1塊芯片上的混合信號(hào)系統(tǒng)級(jí)單片機(jī),具有與MCS?51內(nèi)核及指令完全兼容的微控制器。除了具有標(biāo)準(zhǔn)8051機(jī)的數(shù)字外設(shè)部件外,片內(nèi)還集成了數(shù)據(jù)采集與控制系統(tǒng)中常用的模擬部件和其它數(shù)字外設(shè)及功能部件,主要包括模擬多路選擇器、可編程增益放大器、ADC、DAC、電壓
比較器、電壓基準(zhǔn)、溫度傳感器、SMBus/I2C、UART、SPI、可編程計(jì)數(shù)器/定時(shí)器陣列、定時(shí)器、I/O端口、電源監(jiān)視器、看門狗定時(shí)器和時(shí)鐘振蕩器等,且該單片機(jī)內(nèi)部具有JTAG和調(diào)試電路,通過JATG接口可以使用安裝在最終應(yīng)用系統(tǒng)產(chǎn)品上的單片機(jī)進(jìn)行非侵入、全速及在系統(tǒng)調(diào)試。
2功能與特點(diǎn)
?。?)25MIPS高速流水線式與8051機(jī)完全兼容的CIP-51內(nèi)核。
?。?)真正12位100KBps、8通道帶可編程增益放大器的ADC。
?。?)真正8位500KBps,帶可編程增益放大器的ADC。
?。?)5個(gè)16位通用定時(shí)器。
?。?)具有5個(gè)捕捉/比較模塊的可編程計(jì)數(shù)/定時(shí)器陣列。
?。?)內(nèi)部電壓基準(zhǔn)。
?。?)內(nèi)置溫度傳感器(±3℃)。
?。?)片內(nèi)看門狗定時(shí)器,時(shí)鐘源及VDD監(jiān)視器。
?。?)64個(gè)通用數(shù)字I/O端口。
?。?0)具有I2C/SMBUSSPI及兩路UART、串行接口。
?。?1)64KB系統(tǒng)可編程FLASH存儲(chǔ)器。
?。?2)4352(4096+256)Byte片內(nèi)RAM。
?。?3)64KB地址的外部存儲(chǔ)器接口。
?。?4)內(nèi)部FLASH存儲(chǔ)器可實(shí)現(xiàn)在系統(tǒng)編程,即可作程序存儲(chǔ)器也可作非易失性數(shù)據(jù)存儲(chǔ)器。
?。?5)工作電壓為2.7V~3.6V,典型值為3V,I/O、RST、JTAG引腳均允許5V輸入電壓。
(16)全系列工業(yè)級(jí)電路(-45℃-+85℃)。
?。?7)片內(nèi)JTAG仿真電路,提供全速的電路內(nèi)仿真,不占用片內(nèi)用戶資源,支持?jǐn)帱c(diǎn)、單步、觀察點(diǎn)、運(yùn)行和停止等調(diào)試命令、支持存儲(chǔ)器和寄存器校驗(yàn)和修改。
3內(nèi)部功能部件
3.1CPU
C8051F020CPU的主要特點(diǎn)如下:
?。?)與標(biāo)準(zhǔn)8051機(jī)完全兼容,支持標(biāo)準(zhǔn)的ASM51、KeilC高級(jí)語言;
?。?)具有高速指令處理能力,機(jī)器周期由MCS51標(biāo)準(zhǔn)的12個(gè)系統(tǒng)時(shí)鐘周期降為1個(gè)系統(tǒng)時(shí)鐘周期,且70%的指令時(shí)間為1-2個(gè)機(jī)器周期,指令處理能力大大提 高;
?。?)增加了中斷源,由MCS-51標(biāo)準(zhǔn)7個(gè)中斷源增加至22個(gè)中斷源;
?。?)增加了復(fù)位源,標(biāo)準(zhǔn)的MCS?51只有外部引腳復(fù)位,而C8051F020增加了7種復(fù)位源,使系統(tǒng)可靠性大大提高;
?。?)增加了內(nèi)部能獨(dú)立工作的時(shí)鐘源。
3.2存儲(chǔ)器
3.2.1數(shù)據(jù)存儲(chǔ)器
C8051F020具有標(biāo)準(zhǔn)8051機(jī)的程序和數(shù)據(jù)地址配置,包括256字節(jié)的RAM,其中高128字節(jié)為2個(gè)地址空間,用間接尋址訪問的高128字節(jié)和用直接尋址訪問的SFR地址空間,低128字節(jié)用戶可用直接或間接尋址方式訪問,此外,C8051F020還具有位于外部數(shù)據(jù)存儲(chǔ)器地址空間的4KB的RAM和外部數(shù)據(jù)存儲(chǔ)器接口(EMIF),這個(gè)4KB的RAM可以只映射到片內(nèi)也可以映射到64KB外部數(shù)據(jù)存儲(chǔ)器地址空間,還可同時(shí)映射到片內(nèi)和片外(4KB地址以內(nèi)在片內(nèi)存儲(chǔ)器空間訪問,4KB以上經(jīng)過EMIF訪問)。外部數(shù)據(jù)存儲(chǔ)器接口用于訪問最多64KB的外部擴(kuò)展RAM。
3.2.2程序存儲(chǔ)器
C8051F020的程序存儲(chǔ)器包含64KB的FLASH,該存儲(chǔ)器以512B為1個(gè)扇區(qū),可以在系統(tǒng)編程,且無需在片外提供編程電壓,該程序存儲(chǔ)器未用到的扇區(qū)均可由用戶按扇區(qū)作為非易失性數(shù)據(jù)存儲(chǔ)器使用。
3.3I/O與數(shù)字交叉開關(guān)
C8051F020單片機(jī)除具有標(biāo)準(zhǔn)的8051機(jī)端口P0~P3外,還具有附加的4個(gè)8位I/O口。這樣,I/O口總數(shù)可達(dá)64個(gè),每個(gè)端口I/O引腳都可設(shè)置為推挽或開漏輸出。最為獨(dú)特的功能是引入了數(shù)字交叉開關(guān),它可將內(nèi)部數(shù)字系統(tǒng)資源分配給P0、P1、P2和P3端口的I/O引腳,并可將片內(nèi)計(jì)數(shù)器/定時(shí)器、串行總線、中斷源、A/D轉(zhuǎn)換輸入、比較器輸出以及微控制器的其它數(shù)字信號(hào)配置為在上述I/O引腳輸出,這就允許用戶根據(jù)自己的特定應(yīng)用選擇通用I/O和所需數(shù)字資源的組合。
3.4可編程計(jì)數(shù)陣列
除了內(nèi)部提供5個(gè)16位的通用定時(shí)/計(jì)數(shù)器外,C8051F020還提供1個(gè)片內(nèi)編程的計(jì)數(shù)器/定時(shí)器陣列(PCA),PCA包括1個(gè)專用的16位計(jì)數(shù)器/定時(shí)器,5個(gè)可編程的捕捉比較模塊,時(shí)間基準(zhǔn)可以是下面的6個(gè)時(shí)鐘源之一:系統(tǒng)時(shí)鐘/12;系統(tǒng)時(shí)鐘/4;定時(shí)器0溢出;外部時(shí)鐘輸入;系統(tǒng)時(shí)鐘和外部振蕩頻率/8。每個(gè)捕捉模塊都有6種工作方式:邊沿觸發(fā)捕捉、軟件定時(shí)器、高速輸出、8位脈沖寬度調(diào)制器,頻率輸出、16位脈沖寬度調(diào)制器。
3.5多類型串行總線端口
C8051
F020內(nèi)部具有2個(gè)全雙工UART、SMBUS/I2C總線和SPI總線,每種串行總線都完全用硬件實(shí)現(xiàn),都能向CIP?51產(chǎn)生中斷,這些串行總線不共享定時(shí)器、中斷或I/O端口,所以允許用戶全部同時(shí)使用。
3.6A/D轉(zhuǎn)換器
C8051F020內(nèi)部有2個(gè)ADC子系統(tǒng)。
3.6.1 12位A/D轉(zhuǎn)換器ADC0
該轉(zhuǎn)換器由逐次逼近型ADC、多通道模擬輸入選擇器和可編程增益放大器組成,ADC工作在100KBPS的最大采樣速率時(shí)可提供真正的12位精度,ADC0的8個(gè)外部輸入通道都可被配置為兩個(gè)單端輸入或1個(gè)差分輸入,ADC0的第9個(gè)輸入通道為內(nèi)部溫度傳感器,同時(shí)內(nèi)部提供1個(gè)2.34V基準(zhǔn)電壓,可編程增益放大器的增益可用軟件設(shè)置,從0.5~16以2的整數(shù)次冪遞增,允許用軟件事件、硬件信號(hào)觸發(fā)轉(zhuǎn)換或進(jìn)行連續(xù)轉(zhuǎn)換。
3.6.2 8位A/D轉(zhuǎn)換器ADC1
除了12位的ADC子系統(tǒng)ADC0外,C8051F020還有1個(gè)8位ADC子系統(tǒng),即ADC1,它有1個(gè)8通道輸入多路選擇器和可編程增益放大器,該ADC工作在500KBps的最大采樣率時(shí)可提供真正的8位精度,ADC的基準(zhǔn)電壓可在電源電壓引腳(AV+)和外部VREF引腳之間選擇,ADC1的可編程增益放大器的增益可被編程為0.5、1、2或4,ADC1也有靈活的轉(zhuǎn)換控制機(jī)制,允許用軟件命令,定時(shí)器溢出或外部信號(hào)輸入啟動(dòng)ADC1轉(zhuǎn)換,用軟件可以使ADC1與ADC0同步轉(zhuǎn)換。
3.7D/A轉(zhuǎn)換器
C8051F020內(nèi)部有2個(gè)12位電壓DAC,每個(gè)DAC的輸出擺幅均為0V~VREF-1LSB,CPU可通過SFRS控制數(shù)模轉(zhuǎn)換和比較器,CPU可將任何1個(gè)DAC置于低功耗關(guān)斷方式,DAC為電壓輸出模式,與ADC共用參考電壓,允許用軟件命令和定時(shí)器2、定時(shí)器3及定時(shí)器4的溢出信號(hào)更新DAC的輸出。
3.8JTAG
C8051F020片內(nèi)具有JTAG接口和邏輯,為生產(chǎn)和在系統(tǒng)測(cè)試FLASH存儲(chǔ)器的讀和寫操作,以及非侵入式在電路調(diào)試提供邊界掃描功能,片內(nèi)接口完全符合IEEE1149.1規(guī)范。
4 C8051F020單片機(jī)在儀器儀表中的應(yīng)用
C8051F020是1種集成了眾多功能部件、功能強(qiáng)大的單片機(jī),適合于要求硬件功能強(qiáng)大,運(yùn)算速度快,工作環(huán)境惡劣,可靠性高,擴(kuò)展功能強(qiáng)及低功耗的應(yīng)用系統(tǒng)。下面以1個(gè)實(shí)際的儀器儀表系統(tǒng)即電子配料秤為例給出C8051F020在儀器儀表中的具體應(yīng)用方法。電子配料秤是1種廣泛應(yīng)用于食品加工、飼料、添加劑、農(nóng)藥、化工、冶金等行業(yè)中的配料稱重儀器。對(duì)電子配料秤的主要要求是具有高速、高精度、高可靠性及高穩(wěn)定性,而且在整個(gè)生產(chǎn)過程中需要?jiǎng)討B(tài)連續(xù)或間歇性動(dòng)態(tài)連續(xù)運(yùn)行,稱重配料系統(tǒng)均以單片機(jī)為核心,其硬件電路框圖如圖1所示。
圖1 電子配料秤的硬件電路框圖
圖1所示的電子配料秤雖然基本能滿足生產(chǎn)的需要,但是由于系統(tǒng)擴(kuò)展的外圍功能器件較多,造成系統(tǒng)的電路復(fù)雜,故障率高,調(diào)試?yán)щy,編程復(fù)雜。經(jīng)反復(fù)分析論證,我們以C8051F020為核心重新設(shè)計(jì)了電子配料秤,如圖2所示。
圖2 以C8051F020為核心的電子配料硬件框圖
使用C8051F020可使系統(tǒng)擴(kuò)展的外圍電路及接口電路數(shù)量大大減少,提高了系統(tǒng)的可靠性及穩(wěn)定性,同時(shí)為系統(tǒng)的功能擴(kuò)展及軟硬件升級(jí)提供了方便。系統(tǒng)中利用了C8051F020的以下資源以簡化原電路設(shè)計(jì)。
(1)可編程增益放大器PGA
電子配料秤將被測(cè)物體的重量通過拉或壓等形式將重量傳遞給稱重傳感器,稱重傳感器通常采用電阻應(yīng)變橋式,其輸出電壓擺幅均為0V~數(shù)百mV,故需將此信號(hào)放大后才能提供給A/D轉(zhuǎn)換器,可編程增益放大器的增益可根據(jù)稱重傳感器的滿量程值和A/D轉(zhuǎn)換器的參考電壓值設(shè)置。
(2)A/D轉(zhuǎn)換器
C8051F020單片機(jī)具有12Bit分辨率的ADC和10Bit分辨率的ADC,這里使用12Bit分辨率的ADC,12Bit分辨率ADC的采樣速率高達(dá)100KBps,利用C8051F020片內(nèi)的ADC,一方面簡化了原外圍擴(kuò)展的ADC,另一方面,其12Bit的精度和100KBps的采樣速率使得本系統(tǒng)的測(cè)量精度和測(cè)量實(shí)時(shí)性大為提高,滿足了本系統(tǒng)的動(dòng)態(tài)精度要求和實(shí)時(shí)性要求,從而使本系統(tǒng)的前向通道更加穩(wěn)定。
?。?)程序和數(shù)據(jù)存儲(chǔ)器
C8051F020單片機(jī)片內(nèi)具有64KByte的大容量FLASH程序存儲(chǔ)器和4305Byte的數(shù)據(jù)存儲(chǔ)器。這樣可以滿足電子配料秤存儲(chǔ)復(fù)雜算法程序及大量數(shù)據(jù)的要求,同時(shí)為系統(tǒng)的軟件升級(jí)預(yù)留了足夠的空間,且簡化了原外
擴(kuò)的程序及數(shù)據(jù)存儲(chǔ)器。由于C8051F020支持在系統(tǒng)編程使得本系統(tǒng)的軟件升級(jí)極為方便。
?。?)具有豐富的可編程數(shù)字I/O資源
本系統(tǒng)無須進(jìn)行任何的外部I/O擴(kuò)展即能滿足本系統(tǒng)對(duì)I/O的需求,同時(shí)可使系統(tǒng)的人機(jī)通道和輸入/輸出開關(guān)量與CPU的聯(lián)系更加通暢,而片內(nèi)的12BitDAC更加完善了本系統(tǒng)的后向通道。
?。?)具有豐富的軟件資源
為本系統(tǒng)使用C51等高級(jí)語言編程創(chuàng)造了良好的環(huán)境,高級(jí)語言編程環(huán)境可使本系統(tǒng)軟件實(shí)現(xiàn)真正的模塊化,也可使各種編程算法變得簡單容易,同時(shí)也更加完善,因而大大改善了本系統(tǒng)的軟件升級(jí)能力。
?。?)在線調(diào)試
由于片內(nèi)具有JTAG和調(diào)試電路,通過JTAG可在生產(chǎn)現(xiàn)場(chǎng)對(duì)電子配料秤進(jìn)行現(xiàn)場(chǎng)調(diào)試,因而便于解決生產(chǎn)中遇到的各種實(shí)際問題。
?。?)串行通信
C8051F020提供了UART、I2C、SPI等多種串行總線,故允許以多種方式來進(jìn)行外部設(shè)備的擴(kuò)展,同時(shí)更有利于構(gòu)成多級(jí)分布式測(cè)控系統(tǒng)。
利用C8051F020片內(nèi)提供的功能強(qiáng)大、種類繁多的模擬與數(shù)字功能部件,可在基本不用進(jìn)行外圍電路擴(kuò)展的情況下構(gòu)成1個(gè)高速、高精度、易于擴(kuò)展升級(jí)的連續(xù)動(dòng)態(tài)配料稱重電子秤系統(tǒng)。
5結(jié)束語
C8051F020是目前8位單片機(jī)中功能較強(qiáng)的1種,利用其強(qiáng)大的功能,無論是進(jìn)行現(xiàn)有儀器儀表的升級(jí)換代還是復(fù)雜高性能的智能儀器儀表設(shè)計(jì),都是非常理想的,因而該電路是智能儀器儀表的核心“單片機(jī)系統(tǒng)”的理想選擇。