18.1.5 实时时钟芯片DS1302数据传输方式
实时时钟芯片DS1302为从器件,只由外部微控制器来控制数据传输。每次传送时由外部控制器向DS1302写入一个命令字节开始,然后是数据字节。DS1302的数据传输则可以采用单
字节方式,或者多字节突发方式进行。
1.实时时钟芯片DS1302命令字节
实时时钟芯片DS1302命令字节的格式如表18.1所示,其中,命令字节各位的含义如下。
❑命令字节的最高位D7固定为1。
❑RAM/CK位为DS1302片内RAM/日期选择位。当RAM/CK=1时,DS1302执行RAM操作;当RAM/CK=0时,DS1302执行日期操作。
❑A4~A0为片内日历时钟寄存器或RAM的地址选择位。
❑RD/W位为DS1302的读写控制位。当RD/W=1时,为读DS1302操作;当RD/W=0时,为写DS1302操作。
在对实时时钟芯片DS1302执行读操作时,DS1302接收到命令字节后,从指定的选择对象及寄存器(或RAM)地址读取数据,并通过I/O引脚传送给外部控制器;在对实时时钟芯片DS1302执行写操作时,DS1302接收到命令字节后,紧跟着接受来自外部控制器的数据,并将其写入到DS1302相应的寄存器或RAM单元中。
2.单字节数据传输
当选择DS1302以单字节方式传送数据时,RST=1,外部控制器先向DS1302发送一个命令字节,紧接着发送一个字节的数据。DS1302在接收到命令字节后,自动将数据写入指定的片内地址或从该地址读取数据。当完成一个字节的传送后,再次重复下一个字节的传送。DS1302单字节数据传输的时序如图18.7所示。
图 18.7 单字节数据传输时序
实时时钟芯片DS1302与外部微处理器之间通过I/O引脚和SCLK引脚传送同步串行数据。其中,SCLK为串行通信时的位同步时钟,一个SCLK脉冲传送一位数据。DS1302在每次数据传送时以字节为单位,先发送低位,再发送高位,因此传送一个字节需要8个SCLK脉冲。
注意DS1302传送数据时先传送低位,再传送高位。
3.多字节数据传输
当选择DS1302以多字节方式传送数据时,RST=1,外部控制器先向DS1302发送的命令字节中A4~A0全为1。DS1302在接收到命令字节后,可以一次完成8个字节日历时钟寄存器数据或者是片内31个字节RAM单元数据的读写操作。DS1302多字节数据传输的时序如图18.8所示。
图 18.8 多字节数据传输时序
从上面的介绍可知,DS1302的单字节方式传送一个字节的数据需要16个脉冲,如果写满8个日历时钟寄存器,需要16×8=128个脉冲;如果写满片内31个字节的RAM,则需要16×31=496个脉冲。而多字节方式完成对8个日历时钟寄存器读写时需要72个脉冲,而对片内RAM单元读写时则最多需要256个脉冲。由此可见,多字节方式大大提高了传输速度。
这两种方式各有优势,DS1302的单字节数据传输方式可保证数据传送时的安全性和可靠性,适用于对单个寄存器或者RAM地址进行操作的情况。DS1302的多字节数据传输方式则可提高数据的传送速度,适用于集中修改各个数据的场合。