I2C总线在神经元芯片中的应用

时间:2007-04-18
0 引 言
    I2C总线是一种连接简单、使用方便的总线方式,更重要的是对于LONWORK现场控制来说,需要测量的物理量很多,而它的I/O输入出口是有限的,如果用这种两线制的总线方式无疑是可以节省I/O引脚的使用,减少了节点数,节约了开支。
1 LONWORKS神经元芯片
    神经元芯片选用的是TOSHIBA的64脚的TMPN3150B1AF,它通过11只I/O引脚与指定的外部硬件相连,这11只引脚可配置多种工作方式,从而借助于的外接电路实现灵活的输入输出功能。其中I2C属串行I/O对象,它可以应用的引脚是IO-8(14脚)和IO-9(15脚),IO-8用作时钟总线,IO-9用作数据总线。
2 I2C总线
    I2C (Inter Intergrated Circuit)总线是由Philips公司开发并获得的一种用于IC器件之间连接的二线制总线,它通过两根线:一根串行数据线(SDA)和一根串行时钟线(SCL)在连到总线上的器件之间传送信息,它通过对器件进行软件寻址来识别每个器件,而避免了硬件片选寻址,节省了通信线数目,根据器件的功能可以工作于发送或接收方式。SDA和SCL都是双向I/O线,通过上拉电阻接正电源,当总线空闲时,2根线都是高电平。连接总线器件的输出级必须是开漏或集电极开路,以具有线“与”功能。I2C总线上数据传送的速率为100Kb/s,连到总线上器件数量仅受总线电容400pF的限制 。送到SDA线上的每个字节必须为8位,每次传送的字节数不限,每个字节后面必须跟1个响应位。数据传送过程中,确认数据是必须的。I2C总线控制完全由竞争的主器件送出的地址和数据决定。
3 LONWORKS神经元芯片与AD7416利用I2C总线进行数据通信的硬件连接
    AD7416 是低功耗10位数字温度传感器,它包括一个带隙温度传感器、一个10位AD转换器和一个门限可编程的用来比较测量温度的比较器。AD7416有5个内部寄存器,其中四个是数字寄存器(我们用到了温度寄存器),一个是地址指针寄存器。地址指针寄存器是一个8位寄存器,它储存指向四个数据寄存器之一的地址。对于每串行写操作的个数据字节是数据寄存器的地址,这就是随后的数据字节要写入的地址。
    为实现LONWORKS神经元芯片与AD7416之间进行I2C总线数据通信,将神经元芯片上特许的I2C总线引脚IO9与AD7416的SDA相接,IO8 与AD7416的SCL相接,通过编程产生操作时序从而实现Neuron芯片对AD7416有关寄存器的写入和读出,完成对AD7416工作参数的设定以及温度值的读取。AD7416串行总线地址的三位是可选的,这就可以在一条总线上连接多达8个AD7416,这里只用到了一个AD7416片子,因此把A0、A1、A2全接地,如果不止一个AD7416,那么就要把A0~A2接不同的信号来选择要通信的片子。如所有的兼容器件一样,有一个7位串行地址,这个地址的高4位设定为1001,而低三位就是由A2~A0来设置。要特别注意的是:为了避免端口吸收太大的电流,使芯片发热而影响温度读数,数据总线和时钟总线一定要接足够大的上拉电阻。
    其硬件连接原理图如所示。
                        
4 LONWORKS神经元芯片与AD7416利用I2C总线进行数据通信的软件编程
    AD7416是作为I2C 总线上的从设备,在对AD7416寄存器进行写操作时,Neuron芯片为主设备发送器,AD7416为从设备接收器;在对AD7416寄存器进行读操作时,Neuron芯片为主设备接收器,AD7416为从设备发送器,Neuron芯片对AD7416读写操作的地址分别为48H、C8H,内部四个数字寄存器的地址为00H~04H,在进行操作时作为子地址使用。
    Neuron芯片与AD7416进行数据通信的软件编程语言是Neuron C。Neuron C是专门为Neuron芯片设计的编程语言,它是从ANSIC中派生出来的并进行了增删,使其直接支持的固件,Neuron C编程主要是Neuron芯片的事件调度、I/O对象、网络变量以及显示消息。LONWORKS神经元芯片和AD7416的通信过程如下:首先通过完成一个单字节的写操作向地址指针寄存器写入温度寄存器的地址,然后通过两个字节的读操作从温度寄存器中读取10位温度值。
    LONWORKS神经元芯片通过对AD7416进行读写操作的源程序如下:
                             
                  
5 结束语
    本文论述的虽然是针对Neuron芯片的I2C总线的编程方法,但可作为在单片机、微处理器及PC机等多种应用系统中对I2C总线编程的详细参考。
  
上一篇:智能射频芯片nRF9E5设计无线温、湿度测量电路
下一篇:利用RS-485通讯协议实现PC机与单片机的多点通讯

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料