2 软件接口程序设计
DS323l采用I2C总线与系统微控制器进行通信,I2C总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备,由于接口直接在组件之上,因此I2C总线占用空间少。减少了电路板的空间和芯片管脚的数量,降低了互联成本。它支持多主控,任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。
I2C总线通过两根连线(串行时钟线SCL和双向传送SDA)实现半双工同步数据传输,确保两器件之间地址和数据信息的双向传输。它采用器件地址的硬件设置方法(即每个器件具有一个确定的ID),通过软件寻址,从而避免器件的片选信号线寻址,使硬件系统扩展灵活简便。为保证通信正常,必须保证I2C总线上的数据能够顺利传送。在数据开始传送前,首先让I2C接口进行初始化。图2为I2C总线初始化流程。
DS3231的I2C接口的初始化操作可通过微控制器在总线上发送一个有效START条件来实现,因为微控制器产生的START信号能够终止DS3231的I2C接口当前的数据收、发过程,并将该接口置于START条件后的待命状态。但要发送一个有效的START条件,必须在DS323l释放SDA数据线时才能实现。如果SDA数据线处于低电平状态,这时,可以让系统微控制器产生一个附加的SCL脉冲来迫使DS323l接口送出下一位数据。假设下一位数据仍然为逻辑“0”,就继续产生附加的SCL脉冲,经过多个SCL脉冲后,DS323l就会释放SDA数据总线。
完成I2C总线的初始化后,接着进行控制和状态寄存器的初始化设置,确定正确的数据范围,就可以运行相应的测控程序。
3 结束语
本文首先简介DS323l的特点、工作原理及引脚功能,设计了高精度时钟器件DS3231与微控制器之间通信的硬件接口与软件接口,本设计具有一定的通用性,对应用DS3231器件进行系统设计有一定的借鉴意义。