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系列单片机仪表的升级换代。
参考文献
[1]张毅刚,彭喜源,谭晓昀MCS51单片机应用设计[M]. 哈尔滨:哈尔滨工业大学出版社,1997
[2]Cygnal C8051Fxxx数据手册[DB/OL]