基于Modbus协议的线性霍尔传感器编程器设计
扫描二维码
随时随地手机看文章
引言
线性霍尔传感器是一种重要的磁场测量元件,它可以将磁场强度信号转化为电压信号输出,并可与磁钢配合进行精确的位置测量。随着汽车电子控制器对位置测量精度要求的不断提高,这一测量结构被广泛地应用在很多汽车零部件中,如电子油门踏板的行程测量和节气门开度测量。但是,为了让线性霍尔传感器能够配合磁钢的磁场,正确地输出期望的电压信号,还需要事先对线性霍尔传感器进行标定。
此外,很多此类传感器中都会预先设计一些存储单元,以用来保存标定数据。本课题针对英飞凌TLE4997霍尔传感器,并使用英飞凌XC2000型单片机,设计了一种集标定和存储数据为一体的编程工具。通过操作上位机界面,这种工具可以读取传感器采集的磁场强度信号和输出电压,并根据要求计算标定数据,最后将数据永久保存到传感器内的E2PROM内。
1 项目主要任务
本课题以英飞凌单片机作为开发平台来完成霍尔元件编程器的设计。该编程器能对霍尔元件进行标定。其主要工作有三个方面:一是用英飞凌16位单片机作为主芯片实现霍尔元件编程器的硬件电路,并开发相应的软件系统;二是计算霍尔元件偏移量和增益;第三,由于磁场强度会因为温度变化而变化,本文对此进行了温度补偿;并给出了存储油门踏板位置和输出电压等多组数据的方法。
2 英飞凌霍尔传感器TLE4997
TLE4997的应用非常广泛。它在汽车领域的应用包括踏板与节气门定位、悬架控制、扭矩传感与变速杆位置检测等。在工业领域,这两款传感器是机器人和自动化应用、医疗器械以及高电流传感应用的理想选择。
采用模拟输出的TLE4997的额定输出噪声较低,而且整个温度范围内(一40°C-150°C)的偏置漂移稳定性高。TLE4997在整个工作温度范围内具有较低的比率转换误差。TLE4997具备矽PROM可编程参数,包括偏置、带宽、极性、输出位、磁体温度漂移补偿系数和内存锁,这使它可适用于广泛的线性与角度位置传感应用。该传感器具有三个可选测量范围,包括士50、士100或±200mT,同时具备高达16位分辨率(取决于输出方案)的精确输出。此外,TLE4997还具备先进的温度补偿功能。
TLE4997共有VDD、OUT和GND三个引脚。其中VDD和OUT引脚既可作为供电电源输入和信号输出,也可分别作为编程模式时的两个接口。在编程模式的状态下,VDD为时钟信号接口,而OUT则可作为数据的I/O口。此时,将允许多个连接的设备作为一个输入,每个设备既可以独立,也可以并行地存取数据。这对于E2PROM的编程尤为重要。图1所示是TLE4997的外形图。
2.1 TLE4997的主要功能
TLE4997具有20位数字信号处理功能以及具有温度补偿功能;工作温度范围达一40°C-150°C;同时具有可编程E2PROM,并能完成位错误校正。TLE4997可重复编程,直至存储器被锁住,并带有输出短路电流保护功能,同时可对所有引脚进行过压及防反接保护。
2.2 TLE4997的编程方法
TLE4997内部有一组由寄存器和E2PROM组成的存储器,其中包含了传感器工作的所有信息。这些存储器可以通过连续地址的方式组织起来,每个存储单元的大小为16位。表1所列是TLE4997中的E2PROM存储器。
在编程时,编程器可以通过规定的读写命令对这些存储器的内容进行读出或修改。TLE4997使用一种特殊的同步通讯方式与编程器交换数据,这是一种半双工的通讯方式。通讯以帧为单位,长度固定为21bit,它的任何一个有效帧的长度均为21bit,通常在时钟信号的上升沿发送新的位,最先发送数据的最低位。而且每一帧都包含一个奇校验位和偶校验位。
本设计在硬件上采用了端口复用的方式,在编程时,传感器的5V电源输入引脚则作为同步通讯的时钟信号,而其信号输入引脚作为同步通讯的输入输出端口。同步时钟时钟信号由编程器提供,电平为8.5V/5V。通讯的波特率由并联在电源和地之间的电容决定。其编程器通讯波特率与电容的关系如表2所列。图2所示是编程器通讯波特率与电容的关系曲线。
在进行一次通讯之前,必须先向传感器发送一组有效的命令,以激活传感器的通讯端口。这个用于激活端口的帧在波形上与其他帧略有不同。图3所示是TLE4997激活端口的帧形式。
图3TLE4997激活端口的帧形式
通常可以使用一个读取状态寄存器的命令帧去激活传感器的通讯端口。TLE4997的命令帧波形如图4所示。在成功激活端口之后,编程器可以通过发送同步时钟信号,来在Vout引脚上读取到一个有效的反馈帧。
而当端口打开之后,发送数据时就不必再采用激活帧的波形,而使用正常的通讯波形就可以了。图5所示是TLE4997的正常通讯波形图。
通常情况下,用于与传感器通讯的帧可以分为数据帧和命令帧两种。其中命令帧只由编程器发出,可用于对制定地址的存储单元进行确定的操作,其帧格式如图6所示。
通常命令帧可以携带表3所列的几种可能的命令。
数据帧主要用于携带数据,其中包括从编程器发出,需要被写入传感器存储单元的数据;也包括了由传感器发出的、被读出的数据。图7所示是TLE4997的数据帧格式。
不管是数据帧还是命令帧,它们都由一个显性电平开始,也都包含了一个奇校验位和一个偶校验位。这两个校验位使帧包含的内容满足以下条件:
bit0 XOR bit2 XOR bit4 XOR...XOR bit20=0
bit0 XOR bit3 XOR bit5 XOR...XOR bit19=0
3 编程器软硬件设计
本设计中,下位机以英飞凌XC2267m单片机为处理核心,主要完成的任务是:采集传感器正常工作输出,读取传感器参数,接受上位机命令,并对传感器进行编程(校验数据存储),以及向上位机反馈数据等。
通过编程接口,可以实现传感器数据的读取和编程;采集传感器输出可通过单片机的模拟数字转换模块来实现;上下位机的数据交流,则是基于模式总线协议(Modbus)的总线通讯系统。所以,在软件上,大致分可以为三个部分:第一是传感器输出电压的AD采样和处理;第二是传感器编程接口的访问、数据读取和对校验数据的存储;第三是Modbus从节点接收发送程序。
本系统的编程工具采用英飞凌专用的图形界面代码生成软件(Digital Application Engineer,DAVE)和Eclipse公司提供的tasking嵌入式系统环境。前者可以迅速高效地生成单片机底层驱动函数,后者则可提供从代码编辑到编译调试下载等的完整开发工具链,这都可大大提高项目的开发进度。
从结构角度分析,编程器分为PC机、PC机软件界面以及以单片机为核心的下位机和嵌入式软件这两大部分。TLE4997的编程器系统框图如图8所示。其中PC机界面通过VB语言编写,主要功能包括传感器输出电压的动态显示,设置和计算传感器标定参数以及控制下位机操作等。
下位机以英飞凌XC2267m单片机为处理核心,主要任务是采集传感器正常工作输出,读取传感器参数,接受上位机命令,对传感器进行编程,以及向上位机反馈数据等。
上位机和下位机之间使用Modbus总线进行通讯,上位机作为总线主节点,下位机作为从节点。上位机通过写入命令来修改下位机Modbus寄存器的值,实现对下位机的控制。同样,也可通过对下位机寄存器的读取来读取希望的数据。
下位机根据其功能可以将硬件分为五个部分:即系统电源、单片机最小系统电路、传感器信号釆样电路、传感器通讯电路、Modbus通讯电路等。图9所示是编程器下位机的结构简图。
4 结语
本设计完成了针对线性霍尔传感器TLE4997编程器的软硬件设计;设计分为由PC机及其软件界面和以单片机为核心的下位机及嵌入式软件这两大部分。本课题的硬件设计主要针对下位机进行。基于英飞凌的XC2267m单片机用于实现编程器功能的硬件设计。软件方面,本课题对英飞凌线性霍尔编程器TLE4997进行了标定,还进行了温度补偿。此外,本课题还设计了Modbus通讯功能和CAN总线通讯功能。在当今汽车行业电子产品的各种通讯方式中,CAN总线以其高可靠性、实时性、传输距离远等特点已得到广泛的应用,并已经成为许多高档汽车车电系统的总线标准。所以,本设计在传感器编程器的硬件设计中,预留了CAN总线接口,以便将来的应用可以进一步实现多编程器的协同工作,这对于油门踏板的大规模自动化生产意义巨大。同时也可以通过CAN总线对传感器编程器进行程序的升级下载以及编程器自身的参数标定等功能,以便使编程器的功能更加灵活和强大。