Cygnal 51单片机的特点与应用
扫描二维码
随时随地手机看文章
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页)。
外接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页)。