Cygnal在片系統(tǒng)單片機(jī)的特點(diǎn)與應(yīng)用
1引言
Cygnal C8051F系列是全集成混合信號(hào)在片系統(tǒng)單片機(jī)。在片系統(tǒng)隨著半導(dǎo)體生產(chǎn)技術(shù)的不斷發(fā)展,集成度越來(lái)越高,對(duì)嵌入式控制技術(shù)可靠性要求也越來(lái)越高而產(chǎn)生的新概念,即SOC(System on chip),意思是整個(gè)系統(tǒng)都高度集成在一個(gè)芯片上。本文通過(guò)使用Cygnal C8051F000制作一個(gè)智能故障分析報(bào)警儀,介紹Cygnal C8051Fxxx系列全集成混合信號(hào)在片系統(tǒng)單片機(jī)的特點(diǎn),及其在智能儀器中的一般使用方法,和一些需要注意的問(wèn)題。
故障分析報(bào)警儀的原理:從4個(gè)不同點(diǎn)采集電壓和電流數(shù)據(jù),綜合分析,得出故障的原因和位置,相應(yīng)地提供報(bào)警、顯示和電路切除。?
2C8051F000單片機(jī)簡(jiǎn)介
2.1片內(nèi)資源概況
(1)12 位8通道輸入ADC;
(2)2路12位DAC;
(3)2路電壓比較器;
(4)電壓基準(zhǔn)(內(nèi)部、外部);
(5)內(nèi)置溫度傳感器(±3 ℃);
(6)16位可編程定時(shí)計(jì)數(shù)器(PCA)可用于(PWM);
(7)4個(gè)通用16位定時(shí)器;
(8)32個(gè)通用I/O口;
(9)帶有I2C/SMBus,SPI,UART串行總線(xiàn);
(10)32 k Flash存貯器;
(11)256數(shù)據(jù)RAM
(12) 片內(nèi)電源監(jiān)測(cè)片內(nèi)看門(mén)狗定時(shí)器片內(nèi)時(shí)鐘源。?
2.2主要特點(diǎn)
(1)高速的(20~25 MIPS)與8051全兼容的微控制器內(nèi)核;
(2)Flash存貯器可實(shí)現(xiàn)在線(xiàn)編程和用于非易失性數(shù)據(jù)存貯(E2 PROM的作用);
(3)工作電壓典型值為3 V (2.7~3.3 V), 全部I/O,RST,JTAG引腳均允許5 V電壓輸入;
(4)全系列芯片均為工業(yè)級(jí)(溫度范圍-45~+85 ℃);
(5)片內(nèi)JTAG仿真電路提供全速、非插入式(不使用在片資源)的電路內(nèi)仿真。支持?jǐn)帱c(diǎn)、單步觀察點(diǎn)、運(yùn)行和停止等調(diào)試命令,支持存貯器和寄存器校驗(yàn)和修改。?
3系統(tǒng)設(shè)計(jì)?
3.1硬件設(shè)計(jì)
由在片系統(tǒng)單片機(jī)構(gòu)成故障分析報(bào)警儀的硬件電路非常簡(jiǎn)單,系統(tǒng)硬件組成框圖如圖1所示。?
系統(tǒng)的核心是一片8051F000微處理器。由于沒(méi)有復(fù)雜的數(shù)字信號(hào)處理,8051F000內(nèi)部的256b RAM已夠使用,因此沒(méi)有擴(kuò)展外部數(shù)據(jù)存儲(chǔ)器,當(dāng)然也可以選用帶有大容量外部RAM的8051Fxxx系列單片機(jī),來(lái)應(yīng)對(duì)復(fù)雜的數(shù)字信號(hào)處理。32 k的內(nèi)部Flash ROM也足夠程序存儲(chǔ)和配置參數(shù)等非易失性信息的存儲(chǔ)。
外接100 kHz RC方式外部時(shí)鐘,用于低功耗設(shè)計(jì)。
4個(gè)按鍵:由于I/O口很多,而鍵盤(pán)數(shù)目又很少,因此采用簡(jiǎn)單的非編碼鍵盤(pán),工作于中斷方式。
LCD顯示(16字符×2行):采用由HD44780構(gòu)成的液晶顯示模塊。
輸入電路由測(cè)量變壓器、精密檢波電路構(gòu)成:電壓互感器和電流互感器將被測(cè)電壓和電流變換至精密檢波電路所能接受的信號(hào),然后經(jīng)精密檢波電路傳送給8051F000的A/D。
輸出控制電路由P1口輸出控制信號(hào),控制8路固態(tài)繼電器的接通和短開(kāi)。?
3.2軟件設(shè)計(jì)
軟件設(shè)計(jì)有幾點(diǎn)需要注意:
3.2.1如何從應(yīng)用程序?qū)慒lash
(1)要點(diǎn)
在線(xiàn)編程允許將Flash像E2PROM一樣用于非易失性信息的存儲(chǔ),用MOVC指令讀?。∕OVC a,@A+DPTR),用MOVX指令寫(xiě)入(MOVX @A+DPTR, a)。Flash 是按一系列512 k的頁(yè)組織的,另外還有一個(gè)128 k的頁(yè),該頁(yè)位于Flash的頂部,起始地址為0x8000 。由于寫(xiě)操作只能寫(xiě)入0, 因此在寫(xiě)一個(gè)Flash字節(jié)之前,包含該字節(jié)的頁(yè)必須首先被擦除(使該頁(yè)中的所有位都為1),該字節(jié)必須被初始化為0xFF,一個(gè)Flash 擦除操作將一頁(yè)內(nèi)的所有字節(jié)初始化為0xFF。含有讀鎖定字節(jié)和寫(xiě)/擦除鎖定字節(jié)的Flash 頁(yè)不能由用戶(hù)軟件擦除(但是,該頁(yè)可以由用戶(hù)軟件寫(xiě)入),該頁(yè)只能通過(guò)JTAG 接口擦除。
(2)擦除一個(gè)Flash頁(yè)
在進(jìn)行Flash寫(xiě)或擦除之前,必須根據(jù)當(dāng)前的系統(tǒng)時(shí)鐘設(shè)置FLSCL中的FLASCL位,在進(jìn)行寫(xiě)之前必須將PSWE置1。在進(jìn)行Flash擦除之前,必須將PSWE和PSEE置1。
一個(gè)Flash頁(yè)可以通過(guò)下述過(guò)程擦除:
?、俑鶕?jù)當(dāng)前系統(tǒng)時(shí)鐘頻率值按C8051F000數(shù)據(jù)表的說(shuō)明設(shè)置FLSCL(當(dāng)使用缺省的2 MHz內(nèi)部振蕩器時(shí),FLSCL=0x86)。
②通過(guò)向PSCTL寫(xiě)入03 H使PSWE和PSEE置1。
?、苋绻辉龠M(jìn)行擦除操作,將PSEE設(shè)置為‘0’。
擦除每個(gè)頁(yè)需要10~20 ms的時(shí)間。注意CPU內(nèi)核在Flash擦除過(guò)程中停止工作,但外設(shè)(像ADC,UART,SMBus和定時(shí)器)仍然工作。在擦除過(guò)程中產(chǎn)生的任何中斷都將被掛起,直到該過(guò)程結(jié)束。在寫(xiě)一個(gè)Flash字節(jié)期間CPU的工作情況與此相同。
(3)寫(xiě)一個(gè)Flash字節(jié)
(4)更新Flash 中的數(shù)據(jù)
當(dāng)保存一組配置信息時(shí),經(jīng)常需要在一組字節(jié)中單獨(dú)改變某個(gè)字節(jié)的數(shù)值。單獨(dú)更新某個(gè)字節(jié)(或字節(jié)子集)的一般過(guò)程如下:
?、賹lash頁(yè)拷貝到一個(gè)臨時(shí)存儲(chǔ)區(qū)(RAM或一個(gè)已被擦除的‘臨時(shí)’Flash頁(yè))。
?、诓脸鼺lash頁(yè)的數(shù)據(jù)。
?、蹖⑶懊娲鎯?chǔ)在臨時(shí)存儲(chǔ)區(qū)的內(nèi)容復(fù)制到Flash頁(yè)中。?
3.2.2模擬開(kāi)關(guān)和PGA的編程
AMUX中的8個(gè)通道用于外部測(cè)量,而第9通道在內(nèi)部被接到片內(nèi)溫度傳感器(溫度傳輸函數(shù)如圖2所示)。?
注意,PGA的增益對(duì)溫度傳感器也起作用??梢詫MUX輸入對(duì)編程為工作在差分或單端方式。這就允許用戶(hù)對(duì)每個(gè)通道選擇最佳的測(cè)量技術(shù),甚至可以在測(cè)量過(guò)程中改變方式,在系統(tǒng)復(fù)位后AMUX的默認(rèn)方式為單端輸入。
有2個(gè)與AMUX相關(guān)的寄存器:通道選擇寄存器AMX0SL和配置寄存器AMX0CF。PGA對(duì)AMUX輸出信號(hào)的放大倍數(shù)由ADC配置寄存器ADC0CF中的AMPGN20確定。PGA增益可以用軟件編程為0.5,1,2,4,8或16。復(fù)位時(shí)的增益為1。
3.2.3ADC可編程窗口檢測(cè)器
ADC可編程窗口檢測(cè)器在很多應(yīng)用中非常有用。他不停地將ADC輸出與用戶(hù)編程的極限值進(jìn)行比較,并在檢測(cè)到越限條件時(shí)通知系統(tǒng)控制器。這在一個(gè)中斷驅(qū)動(dòng)的系統(tǒng)中尤其有效,既可以節(jié)省代碼空間和CPU帶寬又能提供快速響應(yīng)時(shí)間。窗口檢測(cè)器中斷標(biāo)志(ADC0CN中的ADWINT位)也可被用于查詢(xún)方式。參考字的高和低字節(jié)被裝入到ADC下限(大于)和ADC上限(小于)寄存器(ADC0GTH,ADC0GTL,ADC0LTH,ADC0LTL)。需要注意一點(diǎn),窗口寄存器標(biāo)志既可以在測(cè)量數(shù)據(jù)位于用戶(hù)編程的極限值以?xún)?nèi)時(shí)有效,也可以在測(cè)量數(shù)據(jù)位于用戶(hù)編程的極限值以外時(shí)有效,這取決于ADC0GTx和ADC0LTx的編程值。?
3.3抗干擾對(duì)策
C8051F000內(nèi)部集成了WATCHDOG電路,使用非常方便。在設(shè)計(jì)程序時(shí),應(yīng)該采用軟件陷阱。同時(shí),應(yīng)對(duì)突發(fā)干擾,采用滑動(dòng)平均濾波法,去除最大值和最小值,再求平均值。
3.4低功耗設(shè)計(jì)
C8051F000單片機(jī)有內(nèi)部獨(dú)立的時(shí)鐘源,同時(shí)可接外部時(shí)鐘,并可在程序運(yùn)行時(shí)實(shí)現(xiàn)內(nèi)、外部時(shí)鐘的切換,此功能在低功耗應(yīng)用系統(tǒng)中非常有用。設(shè)置一個(gè)低頻外部時(shí)鐘,在程序空閑或需節(jié)能時(shí),使OSCICN寄存器中的CLKSL位置1,切換到外部時(shí)鐘。當(dāng)然,也可以通過(guò)改變OSCICN寄存器中的IFCN1,IFCN0位的值來(lái)改變系統(tǒng)內(nèi)部時(shí)鐘的頻率。同時(shí),MCU可以關(guān)閉單個(gè)或全部外設(shè)以節(jié)省功耗。巧妙地設(shè)計(jì)程序,節(jié)能效果非常好。
4結(jié)語(yǔ)
總的來(lái)說(shuō),Cygnal C8051Fxxx系列全集成混合信號(hào)在片系統(tǒng)單片機(jī)是一種性?xún)r(jià)比非常高的新型51系列單片機(jī),非常適合老式模擬儀器數(shù)字化改造和舊51系列單片機(jī)儀表的升級(jí)換代。
評(píng)論
查看更多