1、单片机 C8051F020 及其在仪器和仪表中的应用第 5 卷第 3 期2003 年 3 月电子元嚣件主用ElectronicComponentDeviceApplicationsVo1.5No.3March2003单片机 C8051F020 及其在仪器和仪表中的应用孟臣,李敏(八一农垦大学信息技术学院,黑龙江密山 158308)摘要:介绍 1 种适用于复杂,高性能智能化仪器仪表的单片机 C8051F020,该单片机内部集成了众多的功能部件,是真正的混合信号在片系统,且与国内广为流行的 MCS 一 51单片机完全兼容,本文对该单片机的功能和特点做了详细介绍,并以 1 个实际的仪器仪表系统即电子
2、配料秤为例,给出具体应用方法.关键词:单片机;仪器仪表;电子配料秤Single-chipMicrocomputerC8051F020andItsApplicationinInstrumentandMeterMENGChen.LIMinAbstract:ThispaperintroducesC8051F020singlechipmicrocomputerforcomplexandhighcapabilityintelligentinstrumentandmeter.Itisagenuinemixsignalsystemonchipforitsnumerousintegratedfunctionp
3、arts,andisfullycompatiblewithMCS 一 51singlechipmicrocomputer.ThefunctionsandcharacteristicsofC8051F020isintroducedinthisarticle,andthedetailappliedmethodsofpracticalapplianceexampleofinstrumentandmetersystemandelectronicsteelyardformixmaterialalsoaregiven.Keywords:Singlechipmicrocomputer;Instrumenta
4、ndmeter;Electronicsteelyard中图分类号:TM931 文献标识码:B 文章编号:1563 4795(2003)030045041 引言当前,随着科学技术及工农业生产水平的不断提高,对相应的仪器仪表也提出越来越高的要求,因此,仪器仪表需扩展大量的外围功能部件来满足仪器仪表复杂性,高性能及智能化的要求,这种方法虽然满足了仪器的复杂性要求,但随之而来的问题是由于系统扩展的过于复杂而造成系统可靠性降低,故障率增加,查找故障困难,从而失去了智能化仪器仪表的优势,如果能够将功能复杂的众多外围功能部件全部或大部分集成到系统所使用的单片机内部,则可大大提高仪器仪表系统的可靠性,同时又使
5、系统的成本得以降低,还可利用单片机片内资源在不增加硬件成本的情况下增强仪器的性能,因而该方案是提高仪器仪表收稿日期:2003 一 O102可靠性及性能的行之有效的方法,而美国 Cygnal 公司的 C8051F020 单片机便是 1 款可满足复杂高性能仪器仪表要求的单片机.C8051F020 单片机是集成在 1 块芯片上的混合信号系统级单片机,具有与 MCS 一 51 内核及指令完全兼容的微控制器.除了具有标准 8051 机的数字外设部件外,片内还集成了数据采集与控制系统中常用的模拟部件和其它数字外设及功能部件,主要包括模拟多路选择器,可编程增益放大器,ADC,DAC,电压比较器,电压基准,温
6、度传感器,SMBus/IC,UART,SPI,可编程计数器/定时器阵列,定时器,I/O 端口,电源监视器,看门狗定时器和时钟振荡器等,且该单片机内部具有 JTAG 和调试电路,通过 JATG 接口可以使用安装在最终应用系统产品上的单片机进行非侵入,全速及在系统调试.o第 5 卷第 3 期2003 年 3 月电手元器件盔用ElectronicComponentDeviceApplicationsV01.5No.3March20032 功能与特点(1)25MIPS 高速流水线式与 8051 机完全兼容的CIP 一 51 内核 .(2)真正 12 位 100KBps,8 通道带可编程增益放大器的 A
7、DC.(3)真正 8 位 500KBps,带可编程增益放大器的ADC.(4)5 个 16 位通用定时器 .(5)具有 5 个捕捉 /比较模块的可编程计数 /定时器阵列.(6)内部电压基准.(7)内置温度传感器(3C).(8)片内看门狗定时器,时钟源及 V.监视器.(9)64 个通用数字 I/O 端口.(10)具有 VC/SMBUSSPI 及两路 UART,串行接口.(11)64KB 系统可编程 FLASH 存储器.(12)4352(4096+256)Byte 片内 RAM.(13)64KB 地址的外部存储器接口.(14)内部 FLASH 存储器可实现在系统编程,即可作程序存储器也可作非易失性数
8、据存储器.(15)工作电压为 2.7V3.6V,典型值为 3V,I/O,RST,JTAG 引脚均允许 5V 输入电压.(16)全系列工业级电路 (一 45C 一十 85C).(17)片内 JTAG 仿真电路,提供全速的电路内仿真,不占用片内用户资源,支持断点,单步,观察点,运行和停止等调试命令,支持存储器和寄存器校验和修改.3 内部功能部件3.1CPUC8051F020CPU 的主要特点如下:(1)与标准 8051 机完全兼容,支持标准的 ASM.51,KeilC 高级语言;(2)具有高速指令处理能力,机器周期由 MCS.51 标准的 12 个系统时钟周期降为 1 个系统时钟周期,且 70%的
9、指令时间为 12 个机器周期,指令处理能力大大提高;(3)增加了中断源,由 MCS.51 标准 7 个中断源增加至 22 个中断源;(4)增加了复位源,标准的 MCS.51 只有外部引脚复位,而 C8051F020 增加了 7 种复位源,使系统可0靠性大大提高;(5)增加了内部能独立工作的时钟源.3.2 存储器3.2.1 数据存储器C8051F020 具有标准 8051 机的程序和数据地址配置,包括 256 字节的 RAM,其中高 128 字节为 2 个地址空间,用间接寻址访问的高 128 字节和用直接寻址访问的 SFR 地址空间,低 128 字节用户可用直接或间接寻址方式访问,此外,C805
10、1F020 还具有位于外部数据存储器地址空间的 4KB 的 RAM 和外部数据存储器接口(EMIF),这个 4KB 的 RAM 可以只映射到片内也可以映射到 64KB 外部数据存储器地址空间 ,还可同时映射到片内和片外(4KB 地址以内在片内存储器空间访问,4KB 以上经过 EMIF 访问).外部数据存储器接口用于访问最多 64KB 的外部扩展 RAM.3.2.2 程序存储器C8051F020 的程序存储器包含 64KB 的 FLASH,该存储器以 512B 为 1 个扇区,可以在系统编程,且无需在片外提供编程电压,该程序存储器未用到的扇区均可由用户按扇区作为非易失性数据存储器使用.3.3I/
11、O 与数字交叉开关C8051F020 单片机除具有标准的 8051 机端口POP3 外,还具有附加的 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 位的通用定时/计数器外,
12、C8051F020 还提供 1 个片内编程的计数器 /定时器阵列(PCA),PCA 包括 1 个专用的 16 位计数器/ 定时器,5 个可编程的捕捉比较模块,时间基准可以是下面的 6 个时钟源之一:系统时钟/12;系统时钟/4;定时器 0 溢出;外部时钟输入;系统时钟和外部振荡频率/8.每个捕捉模块都有 6 种工作方式:边沿触发捕捉,软件定时器,高速输出,8 位脉冲宽度调制器,频单片机 C8051F020 及其在仪器和仪表中的应用率输出,16 位脉冲宽度调制器.3.5 多类型串行总线端口C8051F020 内部具有 2 个全双工 UART,SM.BUS/I:C 总线和 SPI 总线,每种串行总
13、线都完全用硬件实现,都能向 CIP.51 产生中断 ,这些串行总线不共享定时器,中断或 I/O 端口,所以允许用户全部同时使用.3.6A/D 转换器C8051F020 内部有 2 个 ADC 子系统.3.6.112 位 A/D 转换器 ADC0该转换器由逐次逼近型 ADC,多通道模拟输入选择器和可编程增益放大器组成,ADC 工作在100KBPS 的最大采样速率时可提供真正的 12 位精度,ADC0 的 8 个外部输入通道都可被配置为两个单端输入或 1 个差分输入,ADC0 的第 9 个输入通道为内部温度传感器,同时内部提供 1 个 2.34V 基准电压,可编程增益放大器的增益可用软件设置,从
14、0.516 以 2 的整数次幂递增,允许用软件事件,硬件信号触发转换或进行连续转换.3.6.28 位 A/D 转换器 ADC1除了 12 位的 ADC 子系统 ADC0 外,C8051F020还有 1 个 8 位 ADC 子系统,即 ADC1,它有 1 个 8 通道输入多路选择器和可编程增益放大器,该 ADC 工作在 500KBps 的最大采样率时可提供真正的 8 位精度,ADC 的基准电压可在电源电压引脚(AV+)和外部 V 哪引脚之间选择,ADC1 的可编程增益放大器的增益可被编程为 0.5,1,2 或 4,ADC1 也有灵活的转换控制机制,允许用软件命令,定时器溢出或外部信号输入启动 A
15、DC1 转换,用软件可以使 ADC1 与ADC0 同步转换.3.7D/A 转换器C8051F020 内部有 2 个 12 位电压 DAC,每个DAC 的输出摆幅均为 0VV 哪一 1LSB,CPU 可通过SFRS 控制数模转换和比较器,CPU 可将任何 1 个DAC 置于低功耗关断方式,DAC 为电压输出模式,与ADC 共用参考电压,允许用软件命令和定时器 2,定时器 3 及定时器 4 的溢出信号更新 DAC 的输出.3.8JTAGC8051F020 片内具有 JTAG 接口和逻辑,为生产和在系统测试 FLASH 存储器的读和写操作 ,以及非侵入式在电路调试提供边界扫描功能,片内接口完全符合
16、IEEE1149.1 规范.4C8051F020 单片机在仪器仪表中的应用C8051F020 是 1 种集成了众多功能部件 ,功能强大的单片机,适合于要求硬件功能强大,运算速度快,工作环境恶劣,可靠性高,扩展功能强及低功耗的应用系统.下面以 1 个实际的仪器仪表系统即电子配料秤为例给出 C8051F020 在仪器仪表中的具体应用方法.电子配料秤是 1 种广泛应用于食品加工,饲料,添加剂,农药,化工,冶金等行业中的配料称重仪器.对电子配料秤的主要要求是具有高速,高精度,高可靠性及高稳定性,而且在整个生产过程中需要动态连续或间歇性动态连续运行,称重配料系统均以单片机为核心,其硬件电路框图如图 1
17、所示.805l单片机图 1 电子配料秤的硬件电路框图图 1 所示的电子配料秤虽然基本能满足生产的需要,但是由于系统扩展的外围功能器件较多,造成系统的电路复杂,故障率高,调试困难,编程复杂.经反复分析论证,我们以 C8051F020 为核心重新设计了电子配料秤,如图 2 所示.C805lF020称重传 II 增益放 IRAM 串口-_1 通讯 l感器 r_1 大器广._WDTCPUl 垒旦卜_时钟 I/O开关电路咽 l 键盘 I 量称重配 1-圊可编料控制 l 程的输入输出 lFLASHI/O 口 I 隔离 I图 2 以 C8051F020 为核心的电子配料硬件框图使用 C8051F020 可使
18、系统扩展的外围电路及接口电路数量大大减少,提高了系统的可靠性及稳定性,同时为系统的功能扩展及软硬件升级提供了方便.系统中利用了 C8051F020 的以下资源以简化原电路设计.(1)可编程增益放大器 PGA电子配料秤将被测物体的重量通过拉或压等形.第 5 卷第 3 期2003 年 3 月电子元器件盔用ElectronicComponentDeviceApplicationsV01.5NO.3March20o3式将重量传递给称重传感器,称重传感器通常采用电阻应变桥式,其输出电压摆幅均为 0V 一数百 mV,故需将此信号放大后才能提供给 A/D 转换器,可编程增益放大器的增益可根据称重传感器的满量
19、程值和A/D 转换器的参考电压值设置.(2)A/D 转换器C8051F020 单片机具有 12Bit 分辨率的 ADC 和10Bit 分辨率的 ADC,这里使用 12Bit 分辨率的 ADC,12Bit 分辨率 ADC 的采样速率高达 lOOKBps,利用C805117020 片内的 ADC,一方面简化了原外围扩展的ADC,另一方面,其 12Bit 的精度和 100KBps 的采样速率使得本系统的测量精度和测量实时性大为提高,满足了本系统的动态精度要求和实时性要求,从而使本系统的前向通道更加稳定.(3)程序和数据存储器C8051F020 单片机片内具有 64KByte 的大容量FLASH 程序
20、存储器和 4305Byte 的数据存储器.这样可以满足电子配料秤存储复杂算法程序及大量数据的要求,同时为系统的软件升级预留了足够的空间,且简化了原外扩的程序及数据存储器.由于 C8051F020 支持在系统编程使得本系统的软件升级极为方便.(4)具有丰富的可编程数字 I/0 资源本系统无须进行任何的外部 I/0 扩展即能满足本系统对 I/O 的需求,同时可使系统的人机通道和输入/输出开关量与 CPU 的联系更加通畅,而片内的12BitDAC 更加完善了本系统的后向通道.(5)具有丰富的软件资源为本系统使用 C51 等高级语言编程创造了良好的环境,高级语言编程环境可使本系统软件实现真正(上接第 41 页)6.2 命令错误处理主要针对控制命令和字符数据的修改过程,Pc有修改请求时首先必须通过 51 的权限检测,在数据传输过程中,为保证传输有效性,设定单字节数据传输时间上限为 3ms,从单片机回传 RRDY 标志开始,一旦时间超时则终止等待,重新回传 RRDY 标志.Pc机在发送过程中连续收到两次 RRDY 标志,必须转到传输错误子程序对传输进行校验.由于控制命令和字符数据总的字节数都为偶数,因此传输结束后 51 对收的字节总数进行校验,若错误,则整个命令和数据信息作废.0的模块化,也可使各种编程算法变得简单容易,同时也更加完善,因而大大改善了本系统的软件升级能