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