自从美国国家仪器公司(NI)提出基于计算机技术的虚拟仪器概念以来,电子仪器得到了较大的发展。现在的虚拟仪器大多使用基于NI公司的LabView专用的PCI总线的数据采集卡,但是受PC机箱和总线限制,电源功率不足,机箱内部的噪声电平较高,机箱内无屏蔽等诸多缺点,限制了虚拟仪器的推广与使用。文中使用主从式虚拟仪器用以代替传统的PCI总线的数据采集卡,主从式虚拟仪器由主机和从机两部分组成,从机即为该振动检测电路,完成数据的处理和数据的显示。
1 从机硬件结构
设计基于主从式虚拟仪器的设计思想,使用单片机作为从机的控制系统,由于STC89C52RC性价比高并且应用技术成熟等特点,故采用其作为从机的控制芯片。单片机用于接收传感器信号并进行数据处理,通过串行口发送到主机进行数据分析和显示。这种设计的优点是既可以与笔记本计算机相连,方便野外作业,又可与台式PC机相连,实现台式和便携式两用,使用方便。基本设计思想框图如图1所示。
1.1 传感器及其外围电路设计
MMA8451数字式三轴加速度传感器是飞思卡尔公司新推出的一款低电压供电,电容式微机械传感器,其最高精度可达14位。传感器采用QFN封装,灵活的可编程选项,拥有两个可配置的中断端口。其模式可选,在嵌入式系统中可大幅地节省电量,传感器内部自带低通滤波器功能,在作振动检测时可以快速作出反应。在嵌入式系统应用中,静止状态时可以保持功耗状态,并且器件可以由中断信号唤醒。
作为一款数字式输出的传感器,相比于传统的输出模拟信号的传感器而言,无需添加A/D转换器,并且传感器的集成电路自带高通滤波器,大幅简化了外围电路的设计,其典型电路如图2所示。
I2C协议:由于MMA8451默认使用I2C协议,所以,在此将对I2C的工作方式进行解释。I2C总线使用3根信号线进行通信,分别是SCL、SDA和SA0,外部上拉电阻需要将SDA和SCL接到VDD的IO上,当总线空闲时,这两根线表现为高电平状态。MMA8451的I2C接口可工作在快速模式400 kHz或普通模式100 kHz。
总线传输开始由START信号触发,START信号定义为,当数据线从高电平跳变到低电平,而时钟线SCL仍然保持高电平。由主机发送START信号后,I2C总线被认为从空闲状态进入忙状态。紧接着START信号后主机发送的字节,前7位用于指示从机地址,第8位用于指示数据方向是读出还是写入。地址发送完毕后,总线上的所有从机将自己的地址和总线上接收到的地址进行比较,地址匹配的设备即为主机选中设备。第9个脉冲为应答响应,发送设备必须在这个ACK周期内释放数据线,而接收设备则需要在ACK周期的时钟高电平期间将数据线拉低。
SCL线是高电平时,SDA线由低电平向高电平切换,这个情况表示停止条件。停止条件将终止发送器的发送。
1.2 单片机STC89C52RC
从机的核心部件采用宏晶科技推出的新一代高速、低功耗、超强抗干扰的单片机STC89C52RC,指令代码完全兼容传统8051单片机,其性能与可靠性完全满足本次设计的需求。工作时的基本参数为:工作频率范围,0~40 MHz,相当于普通8051的0~80 MHz,实际工作频率可达48 MHz;用户应用程序空间为8 kByte;12时钟/机器周期和6时钟/机器周期可以任意选择;片上集成512 Byte RAM;ISP/IAP,无需专用编程器,无需专用仿真器,可通过串口直接下载用户程序,具有EEPROM功能;具有看门狗功能;共3个16位定时器/计数器。
1.3 5 V转3.3 V电源电路
由于现今晶体管尺寸在持续减小,电路集成度越来越高,晶体尺寸也随之减小。导致晶体管击穿电压也变更低,但当击穿电压低于电源电压时,则要求减小电源电压。对于MMA8451电路而言,就是用3.3 V电源。
由于单片机的速度和复杂性,使之达到了足以要求降低电源电压的程度,并正在向5 V电源电压以下转换。但绝大多数接口电路仍然是为5 V电源而设计的。为使MMA8451电路正常工作,需要将5 V电源转换为3.3 V。另外,这个任务不仅包括逻辑电平转换,同时还包括为3.3 V系统供电、电压电流稳定问题、转换模拟信号使之避开从5~3.3 V的障碍。
设计采用LM1117电路,LM1117是一个低压差三端可调稳压集成电路。其压差在1.2 V输出,电流为800 mA时为1.2 V。LM1117有可调电压的版本,通过两个外部电阻可实现1.25~13.8 V输出电压范围。另外还有5个固定电压输出的型号。
LM1117的典型应用如图3所示,在电路中,输出端需要一个至少10μF的钽电容来改善瞬态响应和稳定性。
1.4 通信电平转换电路的选择
由于MMA8451的输出数据速率为1.56~800 Hz,所以在这种速率的传输模式下,使用这种接口简单、使用方便、价格低廉的串口通信方式,成为一种合理的选择,由于单片机STC89C52RC采用TTL电平,但PC机的串行口使用RS-232的电平,所以单片机与电脑不能直接连接,首先必须进行RS-232电平与TTL电平的转换。所以在本设计中使用MAX232作为通信电平转换芯片。
2 振动检测电路的软件设计
从机按照主机的指令,完成数据采集,并且将数据暂时存储,在串口空闲的时候将数据发送给主机。主程序的工作流程如图4所示,图5为串口发送程序的流程图。在图5中,连续发送FF的原因在于选择上位机显示程序中的示波器功能。
3 测试结果
上位机显示软件为软件开发采用VS2010的集成开发环境,使用C#语言模块化编程,为系统调试带来极大的方便。由于传感器输出为数字信号,单片机经过处理后送入示波器,示波器采数字上位机软件示波器。图6为示波器界面显示的测试结果。
4 结束语
设计实现了振动检测的几个基本功能。而且它摆脱了LabView的束缚,所以具有较高开放性和扩展空间。当然,本设计还有许多需要改进的地方,如提高通信的速度和可靠性,提高从机的数据处理速度,除此之外,还需在软件算法上作进一步优化,以提高测试精度,减小数据误差。