郭 静 刘付火 王章瑞
C8051F320是由美国Cygnal公司推出的C8051F系列单片机中的一款小型单片机。它是集成的混合信号片上系统SOC(System on chip),具有与MCS-51内核及指令集完全兼容的微控制器,除了具有标准8051的数字外设部件之外,片内还集成了数据采集和控制系统中常用的模拟部件和其它数字外设及功能部件。内部Flash存储器可实现在系统编程,既可作程序存储器也可作非易失性数据存储。片内JTAG仿真电路提供全速的电路内仿真,不占用片内用户资源。支持断点、单步、观察点、运行和停止等调试命令,并支持存储器和寄存器校验和修改。
C8051F320片内自带有USB收发器和控制处理器是它区别与同一系列产品的一大特点。用C8051F320来进行USB技术开发既方便又快捷。
C8051F320单片机简介
1.功能部件及特点
(1)模拟外设10位的ADC(±1LSB INL):其最大可编程转换速率可达200kbps,可多达17个外部输入,可编程为单端输入或差分输入,内置一个温度传感器(±3℃);2个模拟比较器;2.4V的内部电压基准;精确的Vdd监视器和欠压检测器。
(2)USB功能控制模块 满足USB2.0协议;可在全速(12 Mbps)或低速(1.5 Mbps)下运行;集成有一个时钟恢复源,对于全速或低速传输均可不用外部晶振;支持8个灵活通用的端点;内置一个1K的USB专用缓冲存储器;集成了一个USB接收器,不需要外部电阻。
(3)片内调试模块 片内调试电路提供全速、非侵入式的在系统调试(不需仿真器);支持端点、单步、观察点、堆栈监视器;可以观察/修改存储器和寄存器;比使用仿真芯片、目标仿真头和仿真插座的仿真系统有更好的性能。
(4)工作温度范围:0~70℃
(5)高速8051微控制器内核采用流水线指令结构,其70%的指令的执行时间为一个或两个系统时钟周期;速度可达25 MIPS(时钟频率为25MHz时)。
(6)存储器1280字节的内部数据RAM(1K+256);16K字节的可以在系统编程的Flash闪速存储器。
(7)数字外设 25个字节宽的端点I/O;所有口线均耐5V电压;可同时使用UART串口、硬件SMBusTM、SPITM;带有4个可编程的16位计数器/定时器阵列;带有5个捕捉/比较模块的通用16位计数器/定时器。
(8)时钟源 内部晶振,精度为0.25;支持所有USB和UART模式;外部晶振器:晶体、RC、C或外部时钟;内置一个针对USB控制器的片上时钟乘法器。
(9)供电电压 片上的参考电源校准器支持USB总线电源操作;校准器的Bypass模式支持USB内部电源操作。
(10)性能特点 C8051F320在保持CISC结构及指令系统不变的情况下,对指令运行实行流水作业,推出了CIP-51的CPU模式,从而大大提高了指令运行速度,使8051兼容机系列进入了8位高速单片机行列。
传统的单片机I/O端口大都是固定为某个特殊功能的输入/输出口,可以是单功能或多功能,I/O端口可编程选择为单向/双向以及上拉、开漏等。这种固定方式既占用较多引脚,配置又不够灵活。C8051F320采用开关网络以硬件方式实现I/O端口的灵活配置,如图1所示。在这种通过交叉开关配置的I/O端口系统中,单片机外部为通用I/O口,如P0口、P1口和P2口。内有输入/输出的电路单元通过相应的配置寄存器控制的交叉开关配置到所选择的端口上。
C8051F320还提供了一个完整而先进的时钟系统,如图2所示。在这个系统中,片内设置有一个可编程的时钟振荡器(无需外部器件),可提供2、4、8和16 MHz时钟的编程设定。外部振荡器可选择4种方式。当程序运行时,可实现内外时钟的动态切换。编程选择的时钟输出CYSCLK除供片内使用外,还可从随意选择的I/O端口输出。
C8051F320在8位单片机中率先配置了标准的EC2接口(IEEE1149.1)。在上位机软件支持下,通过串行的EC2接口直接对产品系统进行仿真调试。C8051F的EC2接口不仅支持Flash ROM的读/写操作及非侵入式在系统调试,还为在系统测试提供边界扫描功能。通过边界寄存器的编程控制,可对所有器件引脚、SFR总线和I/O口弱上拉功能实现观察和控制。
C8051F320把80C51单一的外部复位发展成多源复位:上电复位、掉电复位、外部引脚复位、软件复位、时钟检测复位、比较器0复位和引脚配置复位。众多的复位源为保障系统的安全、操作的灵活性以及零功耗系统设计带来极大的好处。
2.引脚及封装
图3为其引脚图。其中,Vdd为数字电源;GND为模拟地;REGIN为5V校准器的输入端;RST/C2CK为设备的复位引脚或EC2调试接口的时钟信号;P3.0/C2D为端口3.0或EC2调试接口的双向信号引脚;VBUS为USB总线输入脚;D+为USB的D+;D-为USB的D-;P0.2/XTAL1为端口0.2或外部晶振输入;P0.3/XTAL2为端口0.3或外部晶振输出;P0.6/CNVSTR为端口0.6或ADC0外部转换开始输入脚;P0.7/VRFF为端口0.7或外部参考电源的输入端或输出端;P0.0、P0.1、P0.4、P0.5、P1.0~P1.7、P2.0~P2.7 均为相应的端口引脚。
3.电气特性
校准器的输入电压(REGIN引脚)为4.0~5.25V;Vdd(电压校准器的输出)为3.0~3.6V(通常取3.3V);VREG偏流(电压校准器有效时)为70μA;CPU和USB运行时的供给电流为18mA(CPU时钟为24MHz,USB时钟为48MHz时)或9mA(CPU时钟为12MHz,USB时钟为6 MHz时);内部晶振频率为12.0MHz;USB时钟频率为48.0MHz(全速)、6.0MHz(低速)。
典型的USB应用
C8051F320是一款完全集成的混合信号系统级芯片,片内集成了数据采集和控制系统中常用的模拟部件和其它数字外设及功能部件。其中值得我们注意的是,它集成有一个USB接口,所以我们也可将其看成是一款带USB接口的微处理器。C8051F320与市场上同类带USB接口的微处理器相比较,它内部强大的功能模块大大简化了USB技术的开发,还能很好地缩短开发周期。下面介绍它的一个典型的USB技术应用。
在这个应用中,主机通过C8051F320芯片中USB接口与C8051F320通讯,来控制信号灯的状态,检测开关按钮的状态,并采集分压器和片内温度传感器中的数据。在整个通讯中,我们还要使用EC2适配器来进行系统调试。系统的电路原理图见图4。
在该应用系统中,SW1按钮开关连接到C8051F320的复位引脚。按一下SW1,设备将进入硬件复位状态。将J15跳线的两引脚连接上后,C8051F320就在外部电源的模式下开始工作。如果要让320在自己供电的模式下运行,就需在断开J15的同时,连接上J12的两个引脚。J4是该应用系统的调试接口。将串行适配器EC2通过该接口连接到C8051F320,可实现在线调试和Flash编程的写入和擦除(EC2的说明和使用请参见Cygnal公司的产品数据手册)。J14是USB(通用串行总线)连接器,通过它就可将USB接口和C8051F320芯片连接起来。我们常将USB电缆的一端接上J14,另一端接在计算机的USB通讯口上。这样就能实现数据传输任务。将J12跳线的两引脚连接上后,外部电容就连接到了C8051F320的P0.7脚。C8051F320的P1.7引脚上连接有一个滑动电阻,只要将J13接上,C8051F320就可从P1.7脚采集到逻辑信号。实际应用中,我们要进行USB技术开发和应用,其硬件部分可在图4的基础上根据需要进行扩展。
完整的USB应用系统除了必要的硬件部分,还包括软件部分,图5、图6为主程序流程图及USB中断服务程序流程图。软件部分分为三大块:在C8051F320设备上运行的固件程序,在主机上运行的USB设备驱动程序,一个主机应用程序。主机应用程序通过USB接口与C8051F320通讯,允许用户观察并改变C8051F320设备上的I/O外设的状态。在运行主机应用程序前,我们要先安装设备的USB驱动程序。当设备通过USB接口与主机连接好后,应用程序就开始枚举,并通过端点0、1和2来完成设备与主机之间的数据传输。在USB协议中,端点0数据包被定义为控制数据包,端点1和2分别用来输入数据和输出数据。数据包用来显示各个端口引脚上的逻辑值。在上述应用系统中,P1.7脚上分压器的输出逻辑值就通过应用程序中的端点1数据包来传输到主机,从而主机读出数据并在用户界面上显示出来。在本刊的网站上给出了源程序,供读者参考。
C8051F320是一款性能优化的SOC高速单片机,也是一个功能强大的USB接口器件。在开发和应用其USB技术时,与同类产品相比,它在性能、速度、方便性以及成本等方面都具有很大的优势。