理工大学学士学位论文
图3.5 ADXL345的SPI通信4线连接方式
图3.6 ADXL345的SPI通信3线连接方式
在执行不同不连续寄存器的读取或写入时,传输之间CS必须失效,新寄存器进行另行处理。
(2) I2C通信接口设计
简单性和有效性是I2C总线最主要的优点[11]。一方面,由于接口直接再组件之上,因此它占用的空间很小,减少了电路板的空间和芯片管脚数量。另一方面,总线的长度最长可以达到7.6米,能够支持40个组件并以10KBPS的最大传输速率传输数据。I2C另一个优点是支持多主控,其中任何能够进行发送和接受的设备都可以成为主总线,并控制信号的传输和系统时钟频率。
ADXL345的I2C通信过程:将CS引脚拉高至VDDI/O,通过简单的2线式连接,ADXL345便处于I2C模式。连线方式如图3.6所示。如果满足I2C总线协议规定和用户手册,便能支持标准100kHz和快速400kHz数据传输模式。同时它还支持单个或者多个字节的读取/写入。当ALT ADDRESS引脚处于高电平时,ADXL345的7位I2C地址
17
理工大学学士学位论文
是0x1D,读写地址分别为0x3B和0x3A。当ALT ADDRESS接地时,可以选择备用的I2C地址0x53,读写地址分别为0xA7和0xA6。使用该方式时,CS引脚必须连接至VDDI/O,ALT ADDRESS引脚必须连接至任一VDDI/O或接地,否则任何已知状态或默认状态将不存在。
图3.7 ADXL345的I2C通信连接方式
3.1.4 ADXL345加速度传感器模块
DXL345芯片共有14个管脚,管脚描述如表3.2所示。在前面已经详细叙述了I2C通信的基本原理,以及ADXL345与单片机I2C通信的连线方式,按照图3.7和引脚说明,就能进行ADXL345的接口设计,如图3.8所示。VDDI/O和VS接3.3V电压,3脚和11脚的RESERVED悬空,8脚和9脚接单片机的中断源,10脚NC悬空。12脚接地,其余3个引脚都接地。I2C通信需要上拉电阻,因此11脚SCL、13脚SDA、7脚CS都接上10K的电阻。另外,需要在电源上接两个电容,大小分别为10uF和0.1uF。最后,利用跳线将SDA和SCL脚与单片机I/O连接即可。
18
理工大学学士学位论文
表3.2 ADXL345引脚描述
引脚编号 1 2 3 4 5 6 7 8 9 10 11 12 引脚名称 VDDI/O GND RESERVED GND GND VS 描述 数字接口电源电压 该引脚必须接地 保留,该引脚必须连接到VS或保持断开 该引脚必须接地 该引脚必须接地 电源电压 片选 中断1输出 中断2输出 内部不连接 保留,该引脚必须接地或保持断开 串行数据输出(SPI 4线)/备用I2C地址选择 CS INT1 INT2 NC RESERVED SDO/ALT ADDRESS SDA/SDI/SDIO 13 I2C数据/ SPI 4线数据输入/SPI 3线数据输入和输出 14 SCL/SCLK 串行通信时钟。SCL为I2C时钟,SCLK为SPI时钟
图3.8 ADXL345电路模块
19
理工大学学士学位论文
由于ADXL345的正常工作电压是2.0V—3.6V,而89C52单片机的工作电压是5V,为了使ADXL345连接到系统电路中能正常工作,必须设计一个电平转换电路。在本毕业设计中,利用芯片RT9161将5V输入电压转换成3.3V输出电压,电路图如图3.9所示
图3.9 电平转换电路
图3.10 ADXL345模块
3.2 水平仪软件设计
如果说硬件是系统的“躯体”,那么软件就是系统的“灵魂”。一套系统的智能化在很
大程度上是通过软件表现出来的。在具有稳定可靠硬件基础的条件下,软件对硬件系统各部件进行统一调度,对从加速度传感器部分采集到的数据信息进行综合计算处理,最终实现设计的各种功能。
对于本毕业设计而言,从硬件模块的角度来讲,软件部分可以分为液晶显示驱动程序、单片机模块初始化、ADXL345加速度传感器模块。模块化的程序设计提高了程序的可读性和可移植性,便于程序的调试,程序流程图如图3.11所示。
20
理工大学学士学位论文
单片机编程是使用Keil C51软件,它是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,提供了丰富的库函数和功能强大的集成开发调试工具。同时,程序烧录软件是STC官方烧录工作。单片机是整个系统的“心脏”,全部的软件设计都要在单片机上运行。但是在单片机模块程序设计中,主函数设计的较为简单,主要内容是单片机、LCD屏幕和ADXL345加速度传感器的初始化,以及利用I/O端口模拟I2C读写数据,下面详细介绍I2C通信协议和另外两个模块的程序设计。
图3.11 软件设计流程图
3.2.1 I2C总线协议分析
I2C总线类型是由飞利浦半导体公司在八十年代初设计出来的,主要用来连接整体
电路。随着大规模集成电路技术的发展,单片机和外围设备需要进行扩展,扩展方式一种是并行总线,另一种是串行总线。由于串行总线连线少,结构简单,因此飞利浦公司在十几年前就推出I2C串行总线。I2C协议是单片机与ADXL345加速度传感器通信的协
21