基于I2C总线的MSP430单片机应用系统设计
时间:06-20
来源:互联网
点击:
串行护展总线技术是新一代单片机技术发展的一个显著特点。其中PHILIPS公司推出的I2C总线最为著名,它包括一个两端接口,通过一个带有缓冲区的接口,数据可以被I2C发送或接收,控制和状态信息则通过一套内存映射寄存器来传送。与并行扩展总线相比,串行扩展总线有突出的优点:电路结构简单,程序编写方便,易于实现用户系统软硬件的模块化、标准化等。本文是把I2C总线应用到MSP430单片机温度控制系统中的一个典型实例。
I2C总线是用2根双向I/O信号线(串行时钟线SCL和串行数据线SDA)把多种器件连接起来,并实现器件之间的串行通讯。
MSP430是TI公司一种具有超低功耗的功能强大的16位单片机,MSP430F169是该系列中的一种型号。它内部集成2个16位定时器,1个高速12位A/D转换器,12位或8位的双重D/A转换器,2个通用同步/异步通讯接口和1个I2C模块。我们就是利用其I2C模块来对MSP430F169单片机进行扩展。
系统硬件设计
该系统实现对曲轴的热处理进行温度控制。曲轴的热处理工艺为:曲轴放入淬火加热炉以350℃~400℃/h加热,到910℃~930℃保温1.5h,淬火冷却至室温,进炉550℃?600℃回火2.5h。因此,系统需要同时对淬火炉和回火炉进行温度控制。在此系统中,我们需要分别设计键盘模块和LED显示模块,通过键盘实现温度、PID参数、时间周期等参数的人工输入设定,通过LED分别实时显示淬火炉和回火炉的温度。在以往的单片机应用系统中,键盘接口和LED显示接口一般是通过并行总线扩展的,其特点是信息传送速度快,但占用的口线多,电路复杂。有了I2C BUS后,可通过I2CBUS进行系统扩展,这时只要用SCL和SDA两根信号线就可将单片机与外围器件连接起来,使占用的信号线少,电路大大简化,系统电路结构如图1所示。
在该芯片中,A2-A0为地址引脚,由引脚电平确定,在该系统中A0接高电平,A1、A2接地;P0-P7为准双向口;INT为中断请求输出,低电平有效,需要注意的是该端应通过上拉电阻上拉。当单片机主节点对PCF8574进行一个字节的写操作时,即实现了I/O口的数据输出。I2C总线发送到PCF8574中的串行数据,在应答位后出现在I/O端口上,I2C总线不断送数,I/O上的数据不断更迭。当单片机主节点对PCF8574读操作时,即可实现I/O端口数据的输入,读入的数据存放在接收缓冲区MRD中。当PCF8574输入端电平状态改变时,中断请求输出端INT出现低电平,中断输出有效,在对其读写操作后,中断请求复位。I2C总线对PCF8574I/O口的输入操作是一个字节的读出操作,该系统中PCF8574的SLAW/SLAR为42H/43H。
图中SAA1064为4位带小数点的七段LED显示器驱动电路,该器件可静态驱动2位LED、动态驱动4位LED,只有一个地址引脚ADR,但可选择4种电平状态。SAA1064中有动态驱动控制电路,不须外部动态驱动管理。在该芯片中,ADR为地址引脚端,4个模拟电平状态对应4个引脚地址;CEXT为时钟振荡器外接电容,典型值为2.7nF;P1-P16为段驱动输出端口,口锁存器置1时,端口状态为低电平;MX1、MX2为动态显示方式下,公共段驱动输出端,外部应用驱动晶体管。SAA1064的器件地址是0111,地址引脚只有一个,即ADR,引脚地址A2、A1、A0采取ADR模拟电平的比较编址,ADR引脚电平为0、3/8VDD、5/8VDD 、VDD时,相应引脚地址A2、A1、A0为000、001、010、011。
在该系统中,两片SAA1064的ADR一个接地,一个接VDD,按图中接法,左边SAA1064的SLAW/SLAR为70H /71H,右边SAA1064的SLAW/SLAR为76H/77H。应用动态驱动方式在两片SAA1064上分别接3个LED,都采用P1-P8口动态驱动两位LED显示,P9-P16口单独驱动一位LED显示。SAA1064中有5个寄存器单元,分别为1个控制寄存器和4个显示寄存器,地址单元00H的装载内容为控制命令COM,地址单元01H、02H、03H、04H的装载内容分别为显示段码1、显示段码2、显示段码3、显示段码4,在本系统中,只用到前3个显示段码。单片机可从芯片中读出状态字节,该状态字节只用到最高位PR。PR=1表示从上次读状态后出现过掉电和加电,读状态字节后,PR清“0”。单片机也可向芯片写入地址字节、指令字节、控制字节和数据字节,指令字节(00000SC SBSA)中的SC、SB、SA规定指令字节后的数据字节从哪个单元开始写入,以后地址自动增量。
系统软件设计
MSP430F169中的I2C控制器是通用串行同步/异步USART外围模块中的一部分,且只在USART0中具有I2C模式,其个别位的定义与SPI或UART模式不同。U0CTL寄存器的默认值是UART模式,寄存器包含下面这些位:必须设置SYNC位才能选择SPI或I2C模式,当SWRST=1时,设置SYNC位选择SPI模式,当SYNC=1设置I2C位选择I2C模式,对USART0来说,SYNC位和I2C位可以在一条指令中同时设置使其运行在I2C模式。
I2C总线是用2根双向I/O信号线(串行时钟线SCL和串行数据线SDA)把多种器件连接起来,并实现器件之间的串行通讯。
MSP430是TI公司一种具有超低功耗的功能强大的16位单片机,MSP430F169是该系列中的一种型号。它内部集成2个16位定时器,1个高速12位A/D转换器,12位或8位的双重D/A转换器,2个通用同步/异步通讯接口和1个I2C模块。我们就是利用其I2C模块来对MSP430F169单片机进行扩展。
系统硬件设计
该系统实现对曲轴的热处理进行温度控制。曲轴的热处理工艺为:曲轴放入淬火加热炉以350℃~400℃/h加热,到910℃~930℃保温1.5h,淬火冷却至室温,进炉550℃?600℃回火2.5h。因此,系统需要同时对淬火炉和回火炉进行温度控制。在此系统中,我们需要分别设计键盘模块和LED显示模块,通过键盘实现温度、PID参数、时间周期等参数的人工输入设定,通过LED分别实时显示淬火炉和回火炉的温度。在以往的单片机应用系统中,键盘接口和LED显示接口一般是通过并行总线扩展的,其特点是信息传送速度快,但占用的口线多,电路复杂。有了I2C BUS后,可通过I2CBUS进行系统扩展,这时只要用SCL和SDA两根信号线就可将单片机与外围器件连接起来,使占用的信号线少,电路大大简化,系统电路结构如图1所示。
图1 系统硬件电路图
在该芯片中,A2-A0为地址引脚,由引脚电平确定,在该系统中A0接高电平,A1、A2接地;P0-P7为准双向口;INT为中断请求输出,低电平有效,需要注意的是该端应通过上拉电阻上拉。当单片机主节点对PCF8574进行一个字节的写操作时,即实现了I/O口的数据输出。I2C总线发送到PCF8574中的串行数据,在应答位后出现在I/O端口上,I2C总线不断送数,I/O上的数据不断更迭。当单片机主节点对PCF8574读操作时,即可实现I/O端口数据的输入,读入的数据存放在接收缓冲区MRD中。当PCF8574输入端电平状态改变时,中断请求输出端INT出现低电平,中断输出有效,在对其读写操作后,中断请求复位。I2C总线对PCF8574I/O口的输入操作是一个字节的读出操作,该系统中PCF8574的SLAW/SLAR为42H/43H。
图中SAA1064为4位带小数点的七段LED显示器驱动电路,该器件可静态驱动2位LED、动态驱动4位LED,只有一个地址引脚ADR,但可选择4种电平状态。SAA1064中有动态驱动控制电路,不须外部动态驱动管理。在该芯片中,ADR为地址引脚端,4个模拟电平状态对应4个引脚地址;CEXT为时钟振荡器外接电容,典型值为2.7nF;P1-P16为段驱动输出端口,口锁存器置1时,端口状态为低电平;MX1、MX2为动态显示方式下,公共段驱动输出端,外部应用驱动晶体管。SAA1064的器件地址是0111,地址引脚只有一个,即ADR,引脚地址A2、A1、A0采取ADR模拟电平的比较编址,ADR引脚电平为0、3/8VDD、5/8VDD 、VDD时,相应引脚地址A2、A1、A0为000、001、010、011。
在该系统中,两片SAA1064的ADR一个接地,一个接VDD,按图中接法,左边SAA1064的SLAW/SLAR为70H /71H,右边SAA1064的SLAW/SLAR为76H/77H。应用动态驱动方式在两片SAA1064上分别接3个LED,都采用P1-P8口动态驱动两位LED显示,P9-P16口单独驱动一位LED显示。SAA1064中有5个寄存器单元,分别为1个控制寄存器和4个显示寄存器,地址单元00H的装载内容为控制命令COM,地址单元01H、02H、03H、04H的装载内容分别为显示段码1、显示段码2、显示段码3、显示段码4,在本系统中,只用到前3个显示段码。单片机可从芯片中读出状态字节,该状态字节只用到最高位PR。PR=1表示从上次读状态后出现过掉电和加电,读状态字节后,PR清“0”。单片机也可向芯片写入地址字节、指令字节、控制字节和数据字节,指令字节(00000SC SBSA)中的SC、SB、SA规定指令字节后的数据字节从哪个单元开始写入,以后地址自动增量。
系统软件设计
MSP430F169中的I2C控制器是通用串行同步/异步USART外围模块中的一部分,且只在USART0中具有I2C模式,其个别位的定义与SPI或UART模式不同。U0CTL寄存器的默认值是UART模式,寄存器包含下面这些位:必须设置SYNC位才能选择SPI或I2C模式,当SWRST=1时,设置SYNC位选择SPI模式,当SYNC=1设置I2C位选择I2C模式,对USART0来说,SYNC位和I2C位可以在一条指令中同时设置使其运行在I2C模式。
总线 单片机 电路 MSP430 LED 电路图 电阻 显示器 振荡器 电容 相关文章:
- 一种新型防伪读码器的设计(01-01)
- 基于ARM与DSP的嵌入式运动控制器设计(04-25)
- 基于ARM核的AT75C220及其在指纹识别系统中的应用(05-24)
- 基于nRF2401智能小区无线抄表系统集中器设计(04-30)
- 基于FPGA安全封装的身份认证模型研究(05-27)
- 高精度压力测控系统的试验研究(04-08)