文献标识码:B
近年来随着传感器技术和信息处理技术的快速发展,工程应用中对传感器的测量精度、数据传输距离和信息处理能力都提出了更高的要求。为了克服普通力敏、光敏传感器抗干扰能力差、传输距离短、调零难、测量节点无法直接与上位机通信等缺点,本文设计了一种以FreescaleMC9S08SH4单片机[1]和AD7705为核心构成的智能传感器系统,在普通传感器上增加了软件调零、浮点数据处理、自动补偿、与上位机双向通讯、标准化数字输出等功能,可以很方便地实现上位机对数据的实时采集和处理,并具有测量精度高、结构紧凑、抗干扰能力强等特点。
1 系统组成
智能传感器系统由信号调理电路、A/D转换电路、主控电路、调零电路、RS-485通信电路和电源电路等模块组成。其中信号调理模块负责对传感器输出的mV级差分信号进行调理和放大;A/D转换模块将信号调理模块输出的模拟信号转换为数字信号供MCU处理;调零模块可以在任意时刻将当前的输入值设置为参考零点;RS-485通信模块实现主控电路与上位机之间的通信;电源模块为主控电路、传感器、信号调理模块和RS-485通信模块提供电源。系统结构如图1所示。
2 功能模块设计
2.1 信号调理和A/D转换模块
传感器的输出信号一般为mV级的差分信号,传统的信号调理电路是在A/D转换前加一级或多级高精度的放大电路,这样不但增加了成本,电路也较为复杂。而AD7705具有完整的模拟前端,内置增益可编程放大器(PGA)和可编程数字滤波器[2],能直接对传感器输出的mV级信号进行调理、滤波、放大和A/D转换,然后串行输出,无需使用外部仪表放大器,极大地简化了电路设计。
AD7705的A/D转换功能也很强,其采用的Σ-Δ转换技术最高可实现16位无误码传输[3]。在本次设计中,AD7705的两个全差分模拟输入通道可以同时满足两路传感器输出信号的输入,通过软件编程可以方便地对信号增益、极性、输入通道、数据输出更新率和数字滤波器进行设置。AD7705电路模块如图2所示。其中,传感器输出信号直接接入AD7705的差分模拟输入通道AIN1端。
2.2 主控模块
智能传感器系统的主控MCU选用的是MC9S08SH4,属于Freescale公司S08系列8位单片机[4],具有体积小、速度快,片上资源丰富、数据处理能力强等特点。其最大时钟频率为20 MHz,片上资源包括4 KB Flash、512 B RAM、8路键盘中断、SCI接口、SPI接口、IIC总线等模块,采用TSSOP16封装,尺寸很小,非常适用于本系统。为了尽量减小电路板面积,本次设计中MC9S08SH4的编程接口没有使用标准的6芯BDM接口,而采用自定义的4芯接口,最小系统如图3所示。
2.3 调零模块
调零模块有两个作用,一是在每次测量前让传感器归零,二是在测量过程中即时设置参考零点。
传统的机械调零方法是在电路中增加一个电位器,利用改变分压值的方法进行调零。这种方法调节速度很慢,准确性也比较差。本设计中采用的是软件调零方法,首先利用键盘中断采集传感器零输入时的A/D转换结果作为参考零点,并存放到一个全局变量中;以后每次A/D转换的值都与全局变量中的参考零点相比较,即可得到校正后的结果。软件调零方法准确度高、调节速度非常快,特别适用于在测量过程中即时设置参考零点。
2.4 RS-485通信模块
系统与上位机之间的通信采用RS-485通信协议。在实际应用中,一台上位机需要拖挂多个传感器,并且对传输距离有较高的要求。RS-485串行总线接口采用平衡发送和差分接收的方式进行数据通信,较RS-232提高了抗共模干扰能力和传输距离;并且RS-485总线能用于多个带有RS-485接口的设备互连,实现数据的高速远距离传送[5]。本系统中采用的RS-485通信芯片为MAX1487,输入口DI和输出口RO分别和MC9S08SH4的串行数据发送端TXD和串行数据接收端RXD相连。读写使能端连接在一起,由MC9S08SH4的PTA1引脚控制。当PTA1输出高电平时,传感器系统向上位机发送数据;当PTA1输出低电平时,传感器系统从上位机接收数据,如图4所示。
2.5 电源模块
电源模块采用24 V直流输入,除了为传感器预留24 V、12 V供电接口外,还为AD7705、MAX1487、MC9S08SH4提供5 V工作电压。为使系统结构紧凑、体积小,电源模块中使用的稳压芯片为小电流的78L12、78L05和LM1117(SOT-223封装)各一片。经现场测试后发现,由于系统功率很小,所以电源模块发热量并不大,能够保证长时间稳定工作。
3 软件设计
软件设计部分主要包括MC9S08SH4初始化、A/D转换结果的中值滤波和均值滤波、设置参考零点进行数据校正、数据的浮点化处理、校对数据帧格式、通过SCI模块和RS-485通信模块将数据帧发送到上位机。具体流程如图5所示。
上位机软件采用LabVIEW结合SQL编写,通过串口和RS485通信协议对智能传感器系统的运行状态进行监控,必要时上位机软件可以重新设置数字传感器的通信地址、A/D转换位数、数据帧格式和串口波特率等参数,并将采集到的运行数据存储在数据库中,便于日后分析整理。
本设计实现的基于Freescale MC9S08SH4和AD7705的智能传感器系统,充分利用MC9S08SH4体积小、速度快,片上资源丰富、数据处理能力强等特点,结合AD7705内置的信号处理电路和高精度?撞-?驻 A/D转换器,在普通传感器上增加了软件调零、浮点数据处理、多点测量、RS-485双向通信、标准化数字输出等功能,克服了普通力敏、光敏传感器数据传输距离短、零点调节困难、测量节点无法直接与上位机通信、抗干扰能力差等缺点。经现场测试,该系统具有体积小、测量精度高、运行稳定可靠等优点。
参考文献
[1] 王宜怀. 嵌入式技术基础与实践[M]. 北京:清华大学出版社,2007.
[2] 张景春,孙丽英,史彩娟. 高精度AD转换器AD7705/06在单片机数据采集系统中的应用[J]. 电气自动化,
2008,30(3):47-48.
[3] 嵇晓强,戴明. 基于AD7705的在线激光功率检测系统设计[J]. 现代电子技术,2009,32(6):165-167.
[4] 邵贝贝. 单片机嵌入式应用的在线开发方法[M].北京:清华大学出版社,2004.
[5] 梅广益,俞红祥,张克华. 基于RS485总线的感应加热电源并列运行系统[J]. 机电工程,2009,26(5):38-40.