1 引言
当前,随着科学技术及工农业生产水平的不断提高,对相应的仪器仪表也提出越来越高的要求,因此,仪器仪表需扩展大量的外围功能部件来满足仪器仪表复杂性、高性能及智能化的要求,这种方法虽然满足了仪器的复杂性要求,但随之而来的问题是由于系统扩展的过于复杂而造成系统可靠性降低,故障率增加,查找故障困难,从而失去了智能化仪器仪表的优势,如果能够将功能复杂的众多外围功能部件全部或大部分集成到系统所使用的单片机内部,则可大大提高仪器仪表系统的可靠性,同时又使系统的成本得以降低,还可利用单片机片内资源在不增加硬件成本的情况下增强仪器的性能,因而该方案是提高仪器仪表可靠性及性能的行之有效的方法,而美国Cygnal公司的C8051F020单片机便是1款可满足复杂高性能仪器仪表要求的单片机。
C8051F020单片机是集成在1块芯片上的混合信号系统级单片机,具有与MCS51内核及指令完全兼容的微控制器。除了具有标准8051机的数字外设部件外,片内还集成了数据采集与控制系统中常用的模拟部件和其它数字外设及功能部件,主要包括模拟多路选择器、可编程增益放大器、ADC、DAC、电压比较器、电压基准、温度传感器、SMBus/I2C、UART、SPI、可编程计数器/定时器阵列、定时器、I/O端口、电源监视器、看门狗定时器和时钟振荡器等,且该单片机内部具有JTAG和调试电路,通过JATG接口可以使用安装在最终应用系统产品上的单片机进行非侵入、全速及在系统调试。
2 功能与特点
(1)25MIPS高速流水线式与8051机完全兼容的CIP-51内核。
(2)真正12位100KBps、8通道带可编程增益放大器的ADC。
(3)真正8位500KBps,带可编程增益放大器的ADC。
(4)5个16位通用定时器。
(5)具有5个捕捉/比较模块的可编程计数/定时器阵列。
(6)内部电压基准。
(7)内置温度传感器(±3℃)。
(8)片内看门狗定时器,时钟源及VDD监视器。
(9)64个通用数字I/O端口。
(10)具有I2C/SMBUSSPI及两路UART、串行接口。
(11)64KB系统可编程FLASH存储器。
(12)4352(4096+256)Byte片内RAM。
(13)64KB地址的外部存储器接口。
(14)内部FLASH存储器可实现在系统编程,即可作程序存储器也可作非易失性数据存储器。
(15)工作电压为2.7V~3.6V,典型值为3V,I/O、RST、JTAG引脚均允许5V输入电压。
(16)全系列工业级电路(-45℃-+85℃)。
(17)片内JTAG仿真电路,提供全速的电路内仿真,不占用片内用户资源,支持断点、单步、观察点、运行和停止等调试命令、支持存储器和寄存器校验和修改。
3 内部功能部件
3.1 CPU
C8051F020CPU的主要特点如下:
(1)与标准8051机完全兼容,支持标准的ASM51、KeilC高级语言;
(2)具有高速指令处理能力,机器周期由MCS51标准的12个系统时钟周期降为1个系统时钟周期,且70%的指令时间为1-2个机器周期,指令处理能力大大提高;
(3)增加了中断源,由MCS-51标准7个中断源增加至22个中断源;
(4)增加了复位源,标准的MCS51只有外部引脚复位,而C8051F020增加了7种复位源,使系统可靠性大大提高;
(5)增加了内部能独立工作的时钟源。
3.2 存储器
3.2.1 数据存储器
C8051F020具有标准8051机的程序和数据地址配置,包括256字节的RAM,其中高128字节为2个地址空间,用间接寻址访问的高128字节和用直接寻址访问的SFR地址空间,低128字节用户可用直接或间接寻址方式访问,此外,C8051F020还具有位于外部数据存储器地址空间的4KB的RAM和外部数据存储器接口(EMIF),这个4KB的RAM可以只映射到片内也可以映射到64KB外部数据存储器地址空间,还可同时映射到片内和片外(4KB地址以内在片内存储器空间访问,4KB以上经过EMIF访问)。外部数据存储器接口用于访问最多64KB的外部扩展RAM。
3.2.2 程序存储器
C8051F020的程序存储器包含64KB的FLASH,该存储器以512B为1个扇区,可以在系统编程,且无需在片外提供编程电压,该程序存储器未用到的扇区均可由用户按扇区作为非易失性数据存储器使用。
3.3 I/O与数字交叉开关
C8051F020单片机除具有标准的8051机端口P0~P3外,还具有附加的4个8位I/O口。这样,I/O口总数可达64个,每个端口I/O引脚都可设置为推挽或开漏输出。最为独特的功能是引入了数字交叉开关,它可将内部数字系统资源分配给P0、P1、P2和P3端口的I/O引脚,并可将片内计数器/定时器、串行总线、中断源、A/D转换输入、比较器输出以及微控制器的其它数字信号配置为在上述I/O引脚输出,这就允许用户根据自己的特定应用选择通用I/O和所需数字资源的组合。
3.4 可编程计数阵列
除了内部提供5个16位的通用定时/计数器外,C8051F020还提供1个片内编程的计数器/定时器阵列(PCA),PCA包括1个专用的16位计数器/定时器,5个可编程的捕捉比较模块,时间基准可以是下面的6个时钟源之一:系统时钟/12;系统时钟/4;定时器0溢出;外部时钟输入;系统时钟和外部振荡频率/8。每个捕捉模块都有6种工作方式:边沿触发捕捉、软件定时器、高速输出、8位脉冲宽度调制器,频率输出、16位脉冲宽度调制器。
3.5 多类型串行总线端口
C8051F020内部具有2个全双工UART、SMBUS/I2C总线和SPI总线,每种串行总线都完全用硬件实现,都能向CIP51产生中断,这些串行总线不共享定时器、中断或I/O端口,所以允许用户全部同时使用。
3.6 A/D转换器
C8051F020内部有2个ADC子系统。
3.6.1 12位A/D转换器ADC0
该转换器由逐次逼近型ADC、多通道模拟输入选择器和可编程增益放大器组成,ADC工作在100KBPS的最大采样速率时可提供真正的12位精度,ADC0的8个外部输入通道都可被配置为两个单端输入或1个差分输入,ADC0的第9个输入通道为内部温度传感器,同时内部提供1个2.34V基准电压,可编程增益放大器的增益可用软件设置,从0.5~16以2的整数次幂递增,允许用软件事件、硬件信号触发转换或进行连续转换。
3.6.2 8位A/D转换器ADC1
除了12位的ADC子系统ADC0外,C8051F020还有1个8位ADC子系统,即ADC1,它有1个8通道输入多路选择器和可编程增益放大器,该ADC工作在500KBps的最大采样率时可提供真正的8位精度,ADC的基准电压可在电源电压引脚(AV+)和外部VREF引脚之间选择,ADC1的可编程增益放大器的增益可被编程为0.5、1、2或4,ADC1也有灵活的转换控制机制,允许用软件命令,定时器溢出或外部信号输入启动ADC1转换,用软件可以使ADC1与ADC0同步转换。
3.7 D/A转换器
C8051F020内部有2个12位电压DAC,每个DAC的输出摆幅均为0V~VREF-1LSB,CPU可通过SFRS控制数模转换和比较器,CPU可将任何1个DAC置于低功耗关断方式,DAC为电压输出模式,与ADC共用参考电压,允许用软件命令和定时器2、定时器3及定时器4的溢出信号更新DAC的输出。
3.8 JTAG
C8051F020片内具有JTAG接口和逻辑,为生产和在系统测试FLASH存储器的读和写操作,以及非侵入式在电路调试提供边界扫描功能,片内接口完全符合IEEE1149.1规范。
4 C8051F020单片机在仪器仪表中的应用
C8051F020是1种集成了众多功能部件、功能强大的单片机,适合于要求硬件功能强大,运算速度快,工作环境恶劣,可靠性高,扩展功能强及低功耗的应用系统。下面以1个实际的仪器仪表系统即电子配料秤为例给出C8051F020在仪器仪表中的具体应用方法。电子配料秤是1种广泛应用于食品加工、饲料、添加剂、农药、化工、冶金等行业中的配料称重仪器。对电子配料秤的主要要求是具有高速、高精度、高可靠性及高稳定性,而且在整个生产过程中需要动态连续或间歇性动态连续运行,称重配料系统均以单片机为核心,其硬件电路框图如图1所示。
图1 电子配料秤的硬件电路框图
图1所示的电子配料秤虽然基本能满足生产的需要,但是由于系统扩展的外围功能器件较多,造成系统的电路复杂,故障率高,调试困难,编程复杂。经反复分析论证,我们以C8051F020为核心重新设计了电子配料秤,如图2所示。
图2 以C8051F020为核心的电子配料硬件框图
使用C8051F020可使系统扩展的外围电路及接口电路数量大大减少,提高了系统的可靠性及稳定性,同时为系统的功能扩展及软硬件升级提供了方便。系统中利用了C8051F020的以下资源以简化原电路设计。
(1)可编程增益放大器PGA
电子配料秤将被测物体的重量通过拉或压等形式将重量传递给称重传感器,称重传感器通常采用电阻应变桥式,其输出电压摆幅均为0V~数百mV,故需将此信号放大后才能提供给A/D转换器,可编程增益放大器的增益可根据称重传感器的满量程值和A/D转换器的参考电压值设置。
(2)A/D转换器
C8051F020单片机具有12Bit分辨率的ADC和10Bit分辨率的ADC,这里使用12Bit分辨率的ADC,12Bit分辨率ADC的采样速率高达100KBps,利用C8051F020片内的ADC,一方面简化了原外围扩展的ADC,另一方面,其12Bit的精度和100KBps的采样速率使得本系统的测量精度和测量实时性大为提高,满足了本系统的动态精度要求和实时性要求,从而使本系统的前向通道更加稳定。
(3)程序和数据存储器
C8051F020单片机片内具有64KByte的大容量FLASH程序存储器和4305Byte的数据存储器。这样可以满足电子配料秤存储复杂算法程序及大量数据的要求,同时为系统的软件升级预留了足够的空间,且简化了原外扩的程序及数据存储器。由于C8051F020支持在系统编程使得本系统的软件升级极为方便。
(4)具有丰富的可编程数字I/O资源
本系统无须进行任何的外部I/O扩展即能满足本系统对I/O的需求,同时可使系统的人机通道和输入/输出开关量与CPU的联系更加通畅,而片内的12BitDAC更加完善了本系统的后向通道。
(5)具有丰富的软件资源
为本系统使用C51等高级语言编程创造了良好的环境,高级语言编程环境可使本系统软件实现真正的模块化,也可使各种编程算法变得简单容易,同时也更加完善,因而大大改善了本系统的软件升级能力。
(6)在线调试
由于片内具有JTAG和调试电路,通过JTAG可在生产现场对电子配料秤进行现场调试,因而便于解决生产中遇到的各种实际问题。
(7)串行通信
C8051F020提供了UART、I2C、SPI等多种串行总线,故允许以多种方式来进行外部设备的扩展,同时更有利于构成多级分布式测控系统。
利用C8051F020片内提供的功能强大、种类繁多的模拟与数字功能部件,可在基本不用进行外围电路扩展的情况下构成1个高速、高精度、易于扩展升级的连续动态配料称重电子秤系统。
5 结束语
C8051F020是目前8位单片机中功能较强的1种,利用其强大的功能,无论是进行现有仪器仪表的升级换代还是复杂高性能的智能仪器仪表设计,都是非常理想的,因而该电路是智能仪器仪表的核心“单片机系统”的理想选择。