APP下载

基于I2C总线多步进电机实验平台的开发

2015-10-18潘贞汝中国农业大学信息与电气工程学院北京100083

网络安全与数据管理 2015年12期
关键词:器件音频总线

晏 亮,潘贞汝,常 华(中国农业大学 信息与电气工程学院,北京100083)

基于I2C总线多步进电机实验平台的开发

晏亮,潘贞汝,常华
(中国农业大学信息与电气工程学院,北京100083)

描述了基于I2C总线多步进电机平台的设计,介绍了I2C总线通信协议的特点,给出了I2C总线在1片主MSP430G2553和8片从MSP430G2553之间数据传输程序流程图和整个平台的硬件结构框架,完成了基于I2C总线的单主多从通信,最终实现了对多路步进电机的控制。

I2C总线;MSP430G2553;单主多从;步进电机

0 引言

I2C总线是两线式串行总线,用于连接微控制器及其外围设备,是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少、控制方式简单、器件封装形式小、通信速率较高等优点。本文介绍一种利用I2C总线协议,通过单主多从模式,利用1段音频信号控制8个单片机实现不同方向、速率的转动。

1 I2C总线技术

1.1I2C总线接口

本文所用的芯片主要为TI公司的MSP430G2553芯片,其中的I2C模式是通过USCI_Bx模块来进行配置的,本文主要应用了USCI_B0模块[1]。在I2C模式中,USCI通过两线式I2C串行总线提供了MSP430与I2C兼容器件的连接。外部器件串行依附在I2C总线上,通过2-线I2C接口为USCI模块发送数据或从USCI接收数据。如图1所示,I2C总线由时钟线SCL和数据线SDA构成,在时钟线SCL保持高电平期间,数据线SDA上的电平被拉低(即负跳变),为I2C的开始信号[2]。在时钟线 SCL保持高电平期间,数据线SDA被释放,是I2C的终止信号。

图1 I2C模块数据传输图

如图2所示,进行数据传送时,在SCL呈现高电平期间,SDA上的电平必须保持稳定,只有在SCL为低电平期间,才允许SDA上的电平改变状态。

图2 I2C总线上数据转变图

关于传输速度,I2C总线在标准模式最高为100kb/s,高速模式最高为400kb/s。

1.2I2C总线数据传输

I2C总线传输数据必须遵循规定的数据传输格式[2],主机给每个数据传输位产生一个时钟脉冲,I2C模式对数据位进行操作。在主机设置好I2C为发送模式后,USCI模块会检测总线是否可用,产生START条件。本文中将音频信号依据频率分为8段,并且每段对应不同的从机地址,如此便可依据不同频率将音频信号发送给不同的从机。I2C模式支持7位和10位寻址模式[3],本文运用了7位寻址模式。如图3所示,在7位寻址模式中,第一个字节是7位从机地址和R/W位。接收器在每个字节结束后发送ACK位。

图3 I2C模式7位寻址格式

所有挂到I2C总线的外围器件各自都有一个唯一确定的地址[2]。任何时刻总线上只有一个主控器件对总线实行控制权,分时实现点对点的数据传送。I2C总线上所有外围器件都有规范的器件地址,器件地址由7位组成,它和1位方向位(R/W)构成了I2C总线器件的寻址字节SLA,格式如图4所示。

图4 I2C总线器件的寻址字节格式

其中高4位(A6、A5、A4、A3)是I2C总线外围接口器件固有地址编码,器件出厂时已固化好。A0~A2是对从机分配的不同地址,本文中MSP430G2553的高4位为0100[1],一共可以挂接 8个单片机。而最低位R/W为数据方向位,当R/W为0时,主机发送数据,当R/W为1时,主机接收数据。本文中主机只用于发送数据,故R/W位一直为0。本文中的8个从机地址分别为:40H、42H、44H、46H、48H、4AH、4CH和4EH。

故总线上的数据传输过程[4]是:(1)主控制器发送开始信号S;(2)主控制器发送芯片寻址字节;(3)从器件发出应答信号ACK;(4)主控制器发送数据寻址字节;(5)发送者发送数据,接受者接收数据;(6)主控制器发送停止信号P终止数据传输。其流程图如图5所示。

图5 传输流程图

2 I2C的系统硬件结构

图6是本文所研究平台的整体框图,在此系统中8个从机对应8种不同音符频段,分别控制8个电机的转速。系统的主要功能是通过PC由MATLAB对给定音频进行编码[5],产生单片机可用的曲谱编码,然后通过串口将所产生的编码发送给主MSP430G2553,主机在寻址时先判断编码范围,然后通过I2C总线寻址相应的从机,并向被寻址的MSP430G2553发送相应的音频编码。从机将所接收到的音频编码作为定时器的定时周期,利用定时器产生相应的脉冲信号,从而驱动电机转动。

图6 平台整体框图

为实现单主多从单片机MSP430G2553之间的通信,将主机I2C总线上的SCL(P1.6)和SDA(P1.7)分别与从机的SCL(P1.6)和SDA(P1.7)相连接,并且在VCC与SCL、SDA两个信号之间分别接上10kΩ的上拉电阻,如图7所示。由此从机的P1.6就成了时钟接收端,P1.7为数据接收端。通过编程将主机发送的数据送入Buff,从机通过读Buff中的数据将其实时转换为频率改变的方波,并通过P1.5口将其发送给电机驱动器,从而实现控制步进电机的功能。

图7 MSP430G2553连接图

3 I2C单主多从通信

首先将USCI模块初始化,使主机/从机可以进行接收/发送操作,初始化过程如下[6]:将USCI中软件复位位UCSWRST置位来初始化所有的USCI寄存器,配置P1.6和P1.7分别为I2C的SCL端口和SDA端口,通过UCMST和UCMODEx选择I2C模式和主机或从机模式。然后通过置位UCSEEL_2来选择主机时钟为SMCLK(1MHz),并将主时钟12分频为100kHz作为主机中的SCL时钟[1]。上述模块初始化完成后,清除UCSWRST,释放USCI,使能发送中断。

对于主发送模块,初始化之后需要把从地址设置为7bit,再将目标从地址写入寄存器UCB0I2CSA中。本系统将所给的音频信号按照频率分为8段,每段对应不同的从机地址,使主机通过判断与不同的从机地址相匹配。初始化完成后通过置位UCRT和UCTXSTT,使主机工作在发送模式并产生一个起始条件。当地址读入UCB0I2CSA中后,硬件会自动识别并找到与之相对应的从机,一旦地址匹配则UCSTTIFG置位,主机进入LPM0模式并且触发中断,将要发送的数据写入UCB0TXBUF中,当从机地址被应答时UCTXSTT位即刻清零。本文中将音频信号装入数组中,当所有数据发送完毕后产生一个STOP条件,并将UCB0TXIFG清零同时退出低功耗模式。图8为主机发送模式流程图。

对于从接收模块,由于要对主机中读取的数据进行处理,本文中选用定时器A将其数据转换为对应的脉冲波,从而达到控制电机的目的。因此需要先将定时器A初始化[7],为了不影响主机中SMCLK,本文使定时器A工作在ACLK时钟下。随后将其USCI模块设置为I2C接收模式,并且无需设置USCI时钟。一旦从设备中UCB0RXBUF接收到的新数据被读走,从设备即发送一个应答信号给主设备,然后开始下一个数据的接收。定时器A将接收到的数据通过定时器中断产生频率改变的方波,并通过P1.5口输出,从而控制步进电机依据音频信号的不同频率来变速转动。图9为从机接收模式流程图。

图8 主机发送模式流程图

图9 从机接收模式流程图

4 结论

本文介绍的I2C总线单主多从通信系统占用 I/O资源少,功耗低,传输速率高,能够以较高性能控制步进电机随音乐转动。从实验结果来看,主从单片机可以通过该总线系统进行非常可靠的通信,进而可在各个领域取得广泛应用。

[1]MSP430x2xx Users′guide[Z].2004.

[2]沈建华,杨艳琴,翟骁曙.MSP430系列16位超低功耗单片机原理与应用[M].北京:清华大学出版社,2004.

[3]贾朱红,张晓冬.基于I2C总线的单主多从单片机之间的通信[J].微计算机信息,2009(8):101-102.

[4]邓忠华,李霞,陈浩.I2C总线技术在单片机串行扩展中的应用[J].武汉理工大学学报(交通科学与工程版),2005(2):227-229,247.

[5]孙金中,冯炳军.基于I2C总线控制的音频处理电路设计[J].现代电子技术,2009(18):85-88.

[6]吴小平,李莉,何鑫,等.I2C总线及其数据通信编程[J].微计算机信息,2000(2):11-13.

[7]陈光建,贾金玲.基于单片机的I2C总线系统设计[J].仪器仪表学报,2006(S3):2465-2466,2472.

4 结论

本文提出了一种基于USB接口的数据采集卡的设计方案。该方案主要利用主控制芯片PIC16F8886和USB接口芯片PDIUSBD12来实现,采集卡电路简单、性能稳定,支持即插即用,克服了传统总线的采集卡安装繁琐、传输速率低、可挂载的设备少等问题。该USB接口的数据采集卡适合于高速数据采集系统与主机进行数据通信,同时也可为便携式系统提供方便、可靠的接口解决方案。

参考文献

[1]马宗骏,张博,牛大鹏.基于USB的数据采集卡应用[J].物联网技术,2011(3):68-70.

[2]PIC16F886 Data Sheet[EB/OL].[2008-02-01](2015-01-10). www.microchip.com.

[3]刘铁.基于 USB的数据采集卡设计[J].纺织机械,2010(4):11-12.

[4]周立功.PDIUSBD12 USB固件编程与驱动开发[M].北京:北京航空航天大学出版社,2003.

[5]张明峰.PIC单片机入门与实战[M].北京:北京航空航天大学出版社,2004.

(收稿日期:2015-01-24)

作者简介:

林宏泉(1991-),通信作者,男,硕士研究生,主要研究方向:电路与系统。E-mail:616370970@qq.com。

秦会斌(1961-),男,教授,硕士生导师,主要研究方向:新型材料与器件,抗干扰技术。

I2C bus-based development of test platform for multi-stepper motor

Yan Liang,Pan Zhenru,Chang Hua
(College of Information and Electrical Engineering,China Agricultural University,Beijing 100083,China)

This paper describes the design of multiple stepper motor platform based on I2C bus,introduces the feature of I2C bus communication protocols,and gives the data transmission program flowchart based on I2C bus between the one master MSP430G2553 and eight slave MSP430G2553.It also draws the hardware structure frame of the whole platform and finishes the I2C communication between single-master and multiple-slave.Finally,we complete controling the multiple stepping motor.

I2C bus;MSP430G2553;single-master and multiple-slave;stepper motor

TP273+.5

A

1674-7720(2015)12-0030-03

2015-01-26)

晏亮(1993-),男,本科在读,主要研究方向:自动控制与通信技术。

潘贞汝(1995-),女,本科在读,主要研究方向:自动控制与通信技术。

常华(1958-),男,教授,硕士生导师,主要研究方向:自动化控制系统。

猜你喜欢

器件音频总线
必须了解的音频基础知识 家庭影院入门攻略:音频认证与推荐标准篇
基于Daubechies(dbN)的飞行器音频特征提取
一种基于CAN总线的误码测试方法
音频分析仪中低失真音频信号的发生方法
毫米波高频器件高效加工方法
旋涂-蒸镀工艺制备红光量子点器件
Pro Tools音频剪辑及修正
CAN总线并发通信时下位机应用软件设计
基于CAN总线的水下通信系统设计
一种加载集总器件的可调三维周期结构