一种防酒驾和防疲劳功能的汽车安全系统设计—朱正清 18
(3)CH1:模拟输入通道1,当差分输入时,可作IN+或IN-使用。 (4)DI:选择通道控制,数据信号输出。 (5)DO:转换数据输出,数据信号输出。 (6)CLK:芯片时钟信号,串行时钟输入端。
(7)Vcc/Vre:电源输入端以及参考基准电压输入端,可复用。 (8)GND:电源地。
3.1.5.5 单片机对ADC0832的控制
在一般情况下,ADC0832与单片机之间的接口有4条数据线,分别是CS、DO、DI、CLK。但DO端与DI端在通信时,并不是同时有效且与单片机的接口是双向的,所以,在电路设计时可将DO和DI 并联在同一根数据线上使用。
当ADC0832没有工作时,CS输入端接高电平,芯片被禁用,DO/DI 和CLK的电平信号可任意选择。当需要进行A/D转换时,首先将CS端设置为低电平并且保持到转换全部结束。芯片开始进行转换工作,与此同时,处理器向芯片时钟输入端提供时钟脉冲信号,DO/DI端则使用DI端输入通道功能选择的数据信号。在第1个时钟脉冲信号到来之前DI端必须为高电平,该表示启动位。当在第2、第3个时钟脉冲到来之前DI端应该要输入2位数据用于选择通道功能,其具体功能项见下图3-23:
图3-23 ADC0832配置位
如图3-23所示,当配置2位数据是0、0时,将CH0设置为正输入端IN+、CH1设置为负输入端IN-进行输入。当配置2位数据是0、1时,将CH0设置为负输入端IN-、CH1 设置为正输入端IN+进行输入。当配置位2位数据是1、0时,只需要对CH0 进行单通道转换。当配置2位数据是1、1时,只需要对CH1进行单通道转换。
当第3个时钟脉冲到来后,DI端输入的电平信号就没有了输入作用,之后DO/DI端就开始利用数据输出DO端口进行转换数据信号的读取。从第4个时钟脉冲开始,由DO端口输出转换数据最高位D7,之后每一个脉冲DO端则输出下一位数据信号。当第11个脉冲发出最低位数据D0时,这一字节的数据信号输出宣告完成。也正是从此位开始,输出下一相反字节的数据,即从第11个时钟脉冲输出D0,之后输出8位数据,直到第19 个脉冲时数据才输出完成,这标志着一次A/D转换的全部结束。最后只需要将CS置高电平禁止使用芯片,将转换后的直接数据处理就可以。
一种防酒驾和防疲劳功能的汽车安全系统设计—朱正清 19
图3-24 时序图
3.1.6 IIC存储芯片的选择
本设计选用的IIC存储芯片是AT24C02。该是美国Atmel公司生产的低功耗CMOS型E2PROM,其内含256X8位存储空间,具有的工作电压宽为2.5V~5.5V,其具有小于10ms快速的写入速度和大于10000次的擦写次数、数据不易丢失、抗干扰能力强、体积小等特点。此外,它还采用了I2C总线式的进行数据读写串行操作,只需要占用很少的I/O线和资源。
AT24C02还有一个16字节页的写缓冲器,该芯片通过I2C总线接口进行操作,具有一个专门写保护功能。
3.1.6.1 AT24C02的主要参数 (1)工作电压:1.8V~5.5V。 (2)输入/输出引脚兼容5V。 (3)二线串行接口。
(4)输入引脚经施密特触发器滤波抑制噪音。 (5)支持硬件写保护。 (6)采用双向数据传输协议。 3.1.6.2 AT24C02的引脚说明
图3-25 AT24C02引脚图
一种防酒驾和防疲劳功能的汽车安全系统设计—朱正清 20
(1)A0、A1、A2:器件地址的输入端。这些输入引脚可用于多个器件级联接时设 置器件地址,当悬空时默认为低电平。AT24C02最大可以级联8个器件,如果仅有一个24C02被总线寻址,则这三个地址输入脚可悬空或接地。
(2)SCL:串行时钟输入引脚,被应用于产生器件所有数据接收或发送的时钟。 (3)SDA:双向串行数据/地址引脚,被应用于器件所有数据的接收或发送。 (4)WP:写保护。如果WP引脚连接到地或悬空,允许器件进行正常的读/写操 作。如果WP引脚连接到电源,所有内容都会被写保护,只能读取。 (5)VCC:电源电压5V。 (6)VSS:电源地。
图3-26 AT24C02结构框图
3.1.6.3 ADC0832的操作控制
(1)起始命令:当 SCL是高,SDA由高变低这一过程被视为起始命令,以起始 命令作为任何一次读/写操作命令的开始。
(2)停止命令:当 SCL是高,SDA 由高变低这一过程被视为结束命令,在一个读 操作后,停止命令将使 EEPROM 进入等待状态的低功耗模式。
(3)时钟及数据传输:SDA引脚一般会被外围器件拉高。其引脚的数据应在 SCL 为低电平时变化;当数据在SCL 为高电平时变化,被认为是下文所述的一个起始或停止命令。
(4)等待模式:24C02特有一个低功耗等待模式。
(5)应答:所有的数据和地址字节都以 8 位为一组串行输出和输入。每当收到一 组 8 位数据后,EEPROM都会在第9 个时钟周期返回应答信号。当收到该应答信号之
一种防酒驾和防疲劳功能的汽车安全系统设计—朱正清 21
后,EEPROM 会继续输出下一组8 位数据。如果此时没有收到主控器件的应答信号,EEPROM 将会停止数据的读出,直到主控器件返回一个停止命令才能结束读周期。 (6)器件复位:在协议下电、中断或系统复位后,器件可以通过以连续输入 9个 时钟、在每个时钟周期中确保当SCL 为高电平时SDA 也为高电平、建立起始条件实现。
图3-27 AT24C02总线时序图
3.1.7 LCD液晶显示器的选择
液晶显示器具有微功耗、显示内容丰富、体积小、超薄轻巧等诸多优点,本设计选用的液晶显示器是LCD1602。该液晶显示模块可以显示两行,每行有16个字符,采用5V直流电源供电,其外围电路配置简单,因此具有很高的性价比。 3.1.7.1 LCD1602的参数 (1)显示容量:16×2个字符。 (2)模块最佳工作电压:5.0V。 (3)字符尺寸:2.95×4.35(W×H)mm。 (4)芯片工作电压:4.5~5.5V。 (5)工作电流: 5.0V电压下2.0mA。 3.1.7.2 LCD1602的引脚说明
该模块采用标准的14脚(无背光)接口,其模块结构与引脚如下图下图3-29所示:
图3-28 模块实物图
一种防酒驾和防疲劳功能的汽车安全系统设计—朱正清 22
图3-29 模块结构与引脚示意图
(1)第1脚:VSS接地。 (2)第2脚:VDD接5V电源。
(3)第3脚:VL为液晶显示器的对比度调整端,接地时对比度最高,接电源时对 比度最低,如果对比度过高时就会产生“鬼影”,在实际应用中应通过一个10K的电位器调整其对比度。
(4)第4脚:RS为寄存器选择端,当为低电平则选择指令寄存器,当为高电平则 选择数据寄存器。
(5)第5脚:R/W为读写信号线,低电平时进行写操作、高电平时进行读操作。当 R/W和RS都为低电平时则可以写入指令或者显示地址,当RS为低电平而R/W为高电平时则可以读忙信号,当RS为高电平而R/W为低电平时则可以写入数据。
(6)第6脚:E端(使能端)。当E端从高电平跳变为低电平时,该模块执行命令。 (7)第7~14脚:D0~D7为8位双向数据线。 3.1.7.3 LCD1602时序图
图3-30 LCD1602读操作时序