CygnalF020单片机及其应用
李 冰,杨公训,王 磊
1
1
2
(1.中国矿业大学机电与信息工程学院,北京100083;
2.中国科学院声学研究所,北京100080)
摘要:介绍了Cygnal公司的C8051F020单片机,详细论述了以C8051F020单片机为核心控制器的高可靠性陆地远程控制系统的设计方案,该方案具有系统集成度高、硬件简单、工作可靠的特点,能被移植到其它嵌入式系统中,具有很好的应用前景.
关键词:SoC;CygnalF020单片机;SPI总线;FlashRom中图分类号:TP368.2
文献标识码:A
文章编号:1008-8423(2005)01-0056-04
在嵌入式系统低端的单片机领域,80C51系列一直扮演着一个重要角色,近年来,由于80C51的速度低
(每一条指令至少需要12个时钟周期),功耗高(几毫安到几十毫安),功能少(不能直接处理模拟信号)等等,80C51系列单片机似乎已经走道了尽头,然而当前CYGNAL公司推出的C8051F系列单片机又将80C51兼容单片机推上了8位机的先进行列,使80C51系列从MCU时代进入到了SoC(SystemonChip)时代.SoC是随着半导体生产技术的不断发展而产生的新概念,它是集成度越来越高和对嵌入式控制技术可靠性越来
[1]
越高的产物.SoC是指片上系统或系统级芯片,SoC的完整定义为:在同一个芯片上集成了控制部件(微处
[2]
理器,存储器)和执行部件(I/O接口,微型开关,微机械),能够自成体系,独立工作的芯片.因此,C8051F系列单片机功能强大,能够作为嵌入式系统的主控制器.
本文研究的F020就是该系列中的一款单片机,同C8051F系列的其它单片机相比,它的集成度更高.C8051F020单片机内集成了两个多通道ADC子系统(每个子系统包括一个可编程增益放大器和一个模拟多路选择器)、两个电压输出DAC、两个电压比较器、电压基准、SMBus/I2C总线接口、UART、SPI总线接口、5个通用的16位定时器、一个具有5个捕捉/比较模块的可编程计数器/定时器阵列(PCA)、内部振荡器、8个8位通用数字I/O端口、64KBFlash程序存储器和4352B数据RAM,同时还具有片内电源监测、片内看门狗
定时器时钟源,因而是一种高速、高性能单片机.
正是因为F020单片机具有集程度高,功耗低(供电电压为2.7~3.3V,典型工作电流为12mA,并具有多种节电休眠和停机模式),处理能力强(采用流水线结构,机器周期由标准的12个系统时钟周期降为1个系
[4]
统时钟周期,峰值性能可达25MIPS)的特点,使其很适合应用于需要高可靠性,低功耗的控制系统中.本文介绍的就是一个以C8051F020单片机为核心控制器的高可靠性陆地远程控制系统的设计方案,并着重论述单片机应用系统的设计.
[3]
1 高可靠性陆地远程控制系统的组成
高可靠性陆地远程控制系统(如图1所示)由一台PC机,一套单片机应用系统,以及连接PC机和单片机的光纤构成.工作机理:通过RS232串口上的光电转换头,PC机发送的指令变成了不受电场干扰的光信号,经过光纤传输后,在单片机应用系统的光电转换头上,光信号又被转换为相应的电信号指令,单片机根据指令进行相应的处理.该系统能够实现数
收稿日期:2004-08-271
作者简介:李冰(1978-),男(土家族),硕士,主要从事嵌入式系统和计算机控制和仿真方面的研究.
图1 控制系统组成图
Fig.1 TheStructureofcontrolsystem
第1期 李 冰等:CygnalF020单片机及其应用 据的采集,数据的远程传输,以及远程控制等功能.
57
2 单片机应用系统的硬件设计方案
硬件系统的组成见图2.
电源子系统:F020单片机应用系统是模拟和数字电路的混合系统,因此需要模拟电源和数字电源,以及模拟地和数字地.单片机应用系统采用电池供电,电池提供的是5伏直流电压,F020单片机的供电电压是3.3伏,因此使用一片DC/DC变换器将5伏电压变为3.3伏,同时采用去偶电路,分别产生模拟电源3.3伏和数字电源3.3伏.应用系统的印刷电路板(PCB)采用四层板的设计,分为表层和底层,中间
两层为电源层和地层.电源层被剖开,分为模拟电源和数字电源部分.地层也被剖分开,分为模拟地和数字地,模拟地和数字地之间用0欧姆的电阻相连,0欧姆电阻实际上是一个铁氧化体线圈,使模拟地和数字地的电位相等既共地,同时也滤除了数字地对模拟地部分可能带来的高频干扰.光电转换子系统:首先利用一块电平转换电路将输入和输出单片机的信号转换为满足RS232传输协议的电信号,然后利用光电转换模块完成RS232电平到光信号的转换,使电信号能通过长距离的光纤进行传输.光纤传输是宽带传输并且抗干扰能力强.
复位电路:采用常用的RC电路来完成,该电路的实质是利用了电容的冲放电效应.
JTAG电路是为了实现F020单片机的在系统调试功能,以往的单片机应用系统调试时需要首先加挂仿真器,程序在仿真器上调试成功后需要通过烧录器固化到程序存储器中,F020单片机的在系统调试功能使单片机和仿真器合二为一,既单片机本身就是仿真器,这样就大大简化了开发过程,从而缩短了开发周期.
数据采集子系统:F020单片机的片上外部数据存储器只有4K,不能满足在高采样率和长时间采样条件下的数据存储要求,本系统要求采样时间至少为10s,采样频率20K,采样精度12位,因此一次采样产生的数据量至少是10320K32=400K(BYTE).采用通过F020单片机的SPI口外扩存储容量为1M的FlashRom来解决数据存储器容量不足的问题.
3 单片机应用系统的软件设计流程
(1)制定单片机和上位机之间的通讯协议.(2)确定软件的功能方框图,根据方框图编
写相应的主循环程序和子程序模块.
4 软硬件设计的过程
4.1 C8051F020单片机和AT45DB081芯片的
硬件接口方案
SPI(SerialPeripheralInterface———串行外设接口)总线系统是一种同步串行外设接口(见图3),该总线使用4条线:串行时钟线(SCK)、主
机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS.它可以使MCU(微处理器)与具有SPI总线接口功能的各种外围设备进行通信以交换信息.利用SPI接口简单,工作可靠的优点,在F020单片机应用系统上扩展了1片容量为1M
的FlashRom,作为数据存储器来使用,芯片的型
58 湖北民族学院学报(自然科学版) 第23卷
号为ATMEL公司生产的AT45DB081(见图4)1.C8051F020单片机作为SPI总线上的主器件,AT45DB081[5]
芯片作为从器件(见图5).
C8051F020单片机内集成了很多的数字部件,它通过优先权交叉开关译码器,按优先权顺序将端口0~3的引脚分配给数字外设(UART,SPI,定时器等).端口引脚的分配顺序从P0.0
开始,可以一直分配到P3.7.在本应用系统中要用到UART0通用串口,SPI串口(利用UART0
图5 F020单片机和AT45DB081芯片的连接示意图串口和PC机相连,利用SPI串口和外围
Fig.5 TheinterfacebetweenF020andAT45DB081AT45DB081芯片的相连).UART0串口需要占
用2个通用引脚,SPI串口需要占用4个通用引脚,因为通用串口UART0的优先级别比SPI串口高,所以将P0.0和P0.1引脚分配给UART0,P0.2~P0.5引脚分配给SPI.另外,AT45DB081芯片还需要通用端口引脚作为SPI总线上从器件的片选信号,在这里用到P1.1引脚.以下是写入到单片机中的有关端口初始化语[6]句.
XBR0=0x06;//使能UART0和SPI,既将端口P0.0~P0.5分配给UART0和SPIXBR2=0x40;//使交叉开关引脚分配有效.4.2 C8051F020单片机访问AT45DB081芯片的方法:(以对主存储器的读操作为例,其它操作类似)
根据AT45DB081FlashRom芯片使用手册上的说明,一个正确的指令开始于片选信号CS的下降沿,接着通过SI线输入8位(一个字节)正确的操作码,然后输入主存储器或缓存的地址码,在上述操作过程中CS片选信号必须保持为低电平.读FlashRom存储器操作首先需要通过SI线输入0x52(一个字节)的指令码,接着输入24位(3个字节)的地址码,最后输入32位(4个字节)的无关码,这些无关码是为了初始化AT45DB081FlashRom芯片的读操作.在这个32位的无关码之后,SCK线上的额外脉冲将使串行数据通过SO
线输出,在以上过程中,片选信号CS线必须始终保持为低电平,并且第一个额外脉冲使数据从指定地址单元输出,第二个额外脉冲使数据从指定地址的下一个单元输出,其它依此类推.
[7]
AT45DB081芯片主存储器读操作的时序示意图(见图6):
图6 AT45DB081芯片主存储器读操作时序示意图
Fig.6 ThemainmemorypagereadofAT45DB081chip
以下是单片机初始化SPI接口的汇编代码子程序
SPI_Init:
[8]
.
movSPI0CFG,#0c7h //在SCK时钟周期的第二个边沿采样数据
//SCK在空闲的时候处于高电平//数据的长度为8位
movSPI0CKR,#01hmovSPI0CN,#03hret
//设置SCK的时钟周期为系统时钟的4分频//设置单片机工作在主方式,并且使能SPI
以下是单片机读SPIFlashRom中一个字节的汇编程序代码段:
clrCS
movSPI0DAT,#52h//3个时钟周期jbTXBSY,$movSPI0DAT,#80h
//等待上述字节的8位通过SPI总线全部传到AT45DB081芯//片//3/4个时钟周期
//通过SI线输入要读取字节的首地址,总共3个字节//3个时钟周期//使片选信号为低电平//2个时钟周期
//通过SI线输入读指令代码
第1期 李 冰等:CygnalF020单片机及其应用
jbTXBSY,$movSPI0DAT,#00hjbTXBSY,$movSPI0DAT,#00hjbTXBSY,$movSPI0DAT,#00hjbTXBSY,$movSPI0DAT,#00hjbTXBSY,$movSPI0DAT,#00hjbTXBSY,$movSPI0DAT,#00hjbTXBSY,$movSPI0DAT,#00hjbTXBSY,$movACC,SPI0DAT//3/4个时钟周期//3个时钟周期//3/4个时钟周期//3个时钟周期//3/4个时钟周期
//通过SI线输入4个字节的无关码,使AT45DB018芯片完成//读操作,3个时钟周期//操作的初始化//3/4个时钟周期//3个时钟周期//3/4个时钟周期//3个时钟周期//3/4个时钟周期//3个时钟周期//3/4个时钟周期
//本条指令相当于给SCK线上加入了额外的脉冲//3个时钟周期//3/4个时钟周期//在上面的指令执行完以后,要读取的数据已经出现在//单片机的SPI0DAT寄存器中了//3个时钟周期
setbCS//2个时钟周期
[8]
59
//使片选信号为高电平
以上读程序代码段所要用到的时间为40.75个时钟周期,以外接25M晶体振荡器为例,1个时钟周期是40ns,因此上述读SPIFlashRom子程序所用时间为1.63ms,由此可见,CygnalF020单片机能够通过SPI总线快速访问AT45DB081FlashRom.参考文献:
[1]探矽工作室.嵌入式系统开发圣经[M].北京:中国青年出版社,2003.
[2]曾繁泰,王强,盛娜,等.EDA工程的理论与实践-SoC系统芯片的设计[M].北京:电子工业出版社,2003.[3]潘琢金,施国君.C8015FXXX高速SOC单片机原理及应用[M].北京:北京航空航天大学出版社,2002.[4]李刚,林凌.与8051兼容的高性能,高速单片机-C8051Fxxx[M].北京:北京航空航天大学出版社,2002.[5]AtmelCorporation.AT45DB081芯片数据手册[M].沈阳:沈阳新华龙公司,2002.
[6]CygnalIntegratgedProducts,Ins.CygnalF020单片机数据手册[M].沈阳:沈阳新华龙公司,2002.
[7]CygnalIntegratgedProducts,Ins.C8051F单片机应用解析[M].潘琢金,孙德龙,夏秀峰译.北京:北京航空航天大学出版社,2002.[8]马忠梅,籍顺心,张凯,等.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,1999.
CygnalF020Single-chipMicrocomputerandItsApplication
LIBing,YANGGong-Xun,WANGLei
1
1
2
(1.CollegeofMechanicalElectronic&InformationEngineering,ChinaUniversityofMiningandTechnology,Beijing100083,China;
2.InstituteofAcoustics,ChineseAcademyofSciences,Beijing100080,China)
Abstract:ThebriefcharacteristicsofCygnalF020single-chipmicrocomputerareintroduced.Fromahighrelia2bilitylong-distancecontrolsystemonland,adesignschemeisdiscussedemphatically.Theschemeisofhighin2tegration,simplenesshardwaresandhighreliability.Asaresult,itcanbeeasilytransplantedintootherembeddedsystems.
Keywords:SoC;CygnalF020Single-chipmicrocomputer;SPIBus;FlashRom
因篇幅问题不能全部显示,请点此查看更多更全内容