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