基于双C8051F020微控制器的应用系统_第1页
基于双C8051F020微控制器的应用系统_第2页
基于双C8051F020微控制器的应用系统_第3页
基于双C8051F020微控制器的应用系统_第4页
基于双C8051F020微控制器的应用系统_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于双C8051F020微控制器的应用系统张厚武,姚凯学(贵州大学计算机科学与技术学院,贵州 贵阳 )摘要:本文使用2片C8051F020微控制器,通过其自身的SMBus总线进行扩展,实现了多路模拟量和数字量的输入与输出的应用系统。应用系统使用了USB-UART桥接电路,实现了虚拟串口的USB传输。文中首先简要介绍了C8051F020 MCU与CP2101桥接电路的特点,然后详细阐述了SMBus的总线协议,并说明了上下位机的通信协议以及两片下位机的基于SMBus的数据通信,最后给出了主下位机的程序流程图。关键词:应用系统;C8051F020;SMBus;串行通信;USB中文图书分类号:TP21

2、6 文献标识码:B A Application System Based On Double C8051F020 MCUZHANG Hou-wu,YAO Kai-xue(College of Computer Science & Technology, Guizhou University,Guiyang ,China)Abstract: The paper implemented a application system based on double C8051F020 MCU whose data communication were complete by SMBus, includi

3、ng of multiple channel analog input and digital input/output. Using CP2101 USB-UART electric circuit, the application system realized USB transfer of virtual serial port. The paper first introduced C8051F020 and CP2101s characters in brief, then detailed protocol of SMBus, and explained communicatio

4、n protocol of master/slave computer and data communication of two C8051F020 based on SMBus, finally presented program flow chart for first slave computer.Key Words: Application System; C8051F020; SMBus; Serial Communication; USB0 引言由于MCU(微控制器)在可靠性、体积、功耗、性价比等方面都具有明显的优势,所以由其组成的上下位机形式的仪器(下位机部分),已经在许多工业

5、控制和数据采集系统中得到广泛应用。在实际应用中,如果一片MCU芯片的功能不能满足实际需求时,就需要进行扩展。在本文中,我们使用两片C8051F020微控制器通过SMBus(System Management Bus)系统管理总线进行扩展,使其满足了15路模拟量输入(AD)、6数字量输入、2路开关量输出以及1路PWM波输出的设计要求。1 系统硬件构成整个系统的装置示意图如图1所示。我们选择美国Silicon公司的微控制器(MCU)C8051F020(简称F020)作为应用系统的CPU。F020是一种混合信号SOC型8位单片机,它有一个8通道的、转换速率为100Kbps的12位ADC,以及一个8通

6、道的、转换速率为500Kbps的8位ADC;2个12位DAC;64KB FlashRom,4KB RAM;有22个中断源和5个定时器/计数器;内部有两个增强型全双工UART、SPI总线和SMBus总线1。CP2101是美国Silicon公司推出的USB-UART桥接电路。该电路的集成度高,内置USB2.0全速功能控制器、USB收发器、晶开关量输出模拟量输入C8051F020主下位机(1)C8051F020从下位机(2)模拟量输入数字量输入PC机(上位机)PWM图1 系统硬件构成示意图SDASLAVDDCP2101USB口UARTSDASCL主器件从器件1从器件2图2 典型的SMBus配置VDD

7、=5VVDD=3VVDD=5VVDD=3V体振荡器、EEPROM及异步串行数据总线(UART),支持调制解调器全功能信号,全部功能集成在一个5mm 5mm IC中。在PC机上安装CP2101的驱动程序以后,CP2101就作为PC机的一个虚拟 COM 口 (VCP),对它的操作与对PC机的COM口操作完全一样,因此无需修改现有的 COM 口应用就可以实现通过 USB 向基于CP2101 的器件传输数据,保证了对已有的串口通讯程序的兼容。其数据传输的波特率范围为300b/s921.6kb/s2。2 SMBus总线SMBus总线标准最早由Intel公司于1995年发布,它以Philips公司的I2C

8、总线为基础,面向于“不同系统组成芯片与系统其他部分间的通讯”3。SMBus接口的工作电压可以在(3.05.0)V之间,总线上不同器件的工作电压可以不同。SCL串行时钟线和SDA串行数据线是双向的,因此两条线上都需要上拉电阻或类似电路将它们连到电源电压,在没有数据传输时,两条线都处于高电平。典型的SMBus配置如图2所示。SMBus采用多种线路条件作为器件的握手信号。在一次数据传输过程中,SDA只能在SCL为低电平时改变。在SCL为高电平时,SDA发生改变则开始和停止信号。SMBus协议有两种可能的数据传输类型:从主发送器到所寻址的从接收器(写)和从被寻址的从发送器到主接收器(读)。这两种数据传

9、输都由主器件启动,主器件还提供串行时钟。一次典型的SMBus数据传输包括一个起始条件(START)、一个地址字节(位7-1:7 位从地址;位0:R/W 方向位)、一个或多个字节的数据和一个停止条件(STOP)。每个接收的字节(由一个主器件或从器件)都必须用SCL高电平期间的SDA低电平来确认(ACK)。如果接收器件不确认,则发送器件将读到一个“非确认”(NACK),这用SCL 高电平期间的SDA高电平表示。所有的数据传输都由主器件启动,可以寻址一个或多个目标从器件。主器件产生一个起始条件,然后发送地址和方向位。在数据传输结束时,主器件产生一个停止条件,结束数据交换并释放总线。图3示出了一次典型

10、的SMBus数据传输过程1。SCLSDASTARTSLA6SLA5-0R/WD7D6-0ACK从地址R/W数据字节NACKSTOP图3 一次典型的SMBus数据传输过程3 系统通信的设计系统的任务主要对模拟量进行AD转换,对数字量进行计数,并将这些数据最终要传给上位微机进行显示与数据处理,上位机根据其处理结果控制PWM波的频率及占空比。3.1 上下位机的数据通信4-5由于我们使用了USB-UART桥接电路CP2101,因而上下位机的程序仍是按照UART形式编写。为保证双方传输的数据准确可靠,程序中使用软件握手:上位机首先给下位机传波特率参数,其值为600H,300H,180H,C0H,60H,

11、0CH之一,下位机对收到波特率参数进行验证,如果为其中之一,则发送字节AAH给上位机,并更新下位机波特率,反之认为是噪声干扰,丢弃此数据,再重新等待接收。上位机收到AAH字节后,就更新新的波特率,然后向下位机发送控制命令子,如采样通道选择,单端方式还是差分方式,开关量的状态,采样周期和采样时间等,以及是否要求从下位机工作,如果要求从下位机工作,还要正确建立主从下位机的通信,之后再向上位机发应答字节55H。协议还采用超时重发功能,可自动连接5次。3.2 主从下位机的SMBus通信6为使SMBus通信程序便于编写,我们规定第1片为主片,第二片为从片。SMBus的工作由下列寄存器中的内容决定:状态寄

12、存器(SMB0STA)、控制寄存器 (SMB0CN)、地址寄存器(SMB0ADR)和数据寄存器(SMB0DAT)。要通过SMBus通讯协议实现两片芯片之间的数据通信,关键在于如何利用单片机中的状态寄存器中的状态码,通过软件编程来实现对状态码的查询。每一个状态码都对应一个当前的通信状态和将要执行的操作,因此,根据所得到的状态码来确定当前的通信状态,以实现相互间的通信。在编程时,SMBus通信协议是利用中断查询状态码的方式实现的,为使双方的通信可靠,也规定了软件握手:初始化后,从片等待主片的命令字节33H,从片收到33H后给主片发CCH应答字节,主片收到CCH字节后,根据上位机要求给从片发送相应的

13、命令字节(采样周期,采样时间,采样通道,开关量状态等),然后发送BBH字节个主片,并启动相应AD转换,主片收到BB后才进行AD转换,保证主片与从片对模拟量的同步采样。4 系统软件设计考虑到系统灵活性,我们编程使得通道选择、采样时间、采样周期、数字量输入、开关量的控制、PWM波的频率及占空比、从下位机的工作情况等由用户在上位机上指定,然后以命令字传给下位机,具体为:用4个字节分别表示两片MCU的AD通道是否被选中,每个字节位上为1表示该通道被选中,否则不选该通道。用3个字节存放采样周期,其最小单位为10微妙,5个字节存放采样时间,一个字节用于开关量,2个字节用于存放PWM波的频率,2个字节用于存

14、放占空比值,1个字节用于表示数字量输入是否被选中。对于输入的数字量,输入是涡轮流量计来的脉冲,输入脉冲数的确定是采样引脚电平变化的方法来确定的。为保证小流量时的精度,按4秒钟所计脉冲数,通过其转换关系来确定流量。其中引脚电平采样的时间设为100微妙。为减轻下位机的任务,其采集的原始数据直接送给上位机进行处理,保证下位机有高的采样速率和高的传输速率。图4给出了下位机主片的工作流程图。软件复位收到波特率参数?YN以查询方式对所选择通道进行采样采样周期到?把采集的数据送NYYN采集数据传送完?把采集的数据送Y开始、初始化接收命令参数从片工作?主从片通信成功?软件复位NYY设定采样周期、采样时间、采样

15、通道、开关量、PWM等参数、设置从片工作参数有数据要传?上位机(1个字节)以SMBus接受从片采样数据采样时间到?上位机(1个字节)N图3 主下位机工作流程图5 结束语我们使用了自身带有AD转换电路及SMBus通信总线接口C8051F020微控制器,实现了两片MCU之间数据的高速可靠的数据通信。而且还使用了USB-UART桥接电路,保证了下位机与上位机有高的数据传输率。并且,在上位机软件设计时考虑到应用系统的通用性,可根据实际需求选用不同的传感器,并在上位机上进行相应的选择,就能得到所需的测量数据及曲线,使得该应用系统有较强的通用性。参考文献:1 潘琢金,施国君. C8051FXXX高速SOC单片机原理及应用. 北京:北京航空航天大学出版社,2002.2 CP2101数据手册. /xhl/downfile/CP210x.pdf.3谢瑞和.串行技术大全.北京:清华大学出版社,2003.4 .4 陈建平,姚凯学,等. 通用动态测试系统的设计与实现. 贵州大学学报(自然科学版), 2004,21(1):79-82. 5 范逸之 陈立元. Visual Basic 与RS-232串行通信控制M,北京:中国青年出版社,2002.6 王力,王开和,等. 基于C8051F的SMBus实现多点测温系统. 天津科技大学学报,2004,19(3):39-4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论