本站小编为你精心准备了一种应用于闸位计的SENT接口设计参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
摘要:设计了一种用于闸位计的单边沿半字节传输(sent)接口,该接口一方面可以减少闸位计的布线,另一方面减少采集器IO口的占用数量。接口采用低功耗可编程逻辑器件CPLD实现。经过逻辑仿真,实际测试该接口设计正确。
关键词:闸位计,单边沿半字节传输协议(SENT),可编程逻辑器件
闸位计是水利行业的常用仪表,闸位计通常有机械码盘型和光电旋转编码器。机械码盘型闸位计通常采用12位并行格雷码输出,光电旋转编码器通常采用SSI(同步串行接口)输出。12位并行格雷码要求采集单元有多个IO口,SSI接口要求采集单元提供高速编码时钟。还用一类通过微控制器将机械码盘型并行接口或光电旋转编码器SSI接口转换成RS485接口的闸位计。在较大的闸门控制现场通常有多个闸位需要测量,这就要求采集设备具有更多的IO口,或者多个SSI接口。对于采用RS485接口的闸位计,采集器通常按照轮询方式采集各个闸位[1-2]。单边沿半字节传输(SingleEdgeNibbleTransmission)协议简称SENT协议,是美国汽车工程师学会(SAE)制定的,旨在提供更精确有效并且低成本的电机控制解决方案。相比于模拟信号输出和PWM输出方式,基于SENT协议的电机控制是一种可以有效降低成本、节省线束、节省插针结头的低成本方案,具有很好的EMC特性,并且能传输故障代码从而使传感器系统具有很强的故障诊断能力[3-5]。SENT协议采用单向传输,仅需要一根信号线就能传输一个传感器的物理量信息和故障代码。鉴于SENT协议的优势,本文设计一种将传统闸位计转换成SENT协议的接口装置。
1SENT协议
SENT协议是一种点对点的单向从传感器到控制器的协议,控制器不需要同步信号。传感器信号以一串脉冲来传送,脉冲下降沿之间时长表示信号的大小。传感器上电后立即发送数据,接收机不需要发送查询信号。一个SENT帧包括同步头、传感器状态、6个半字节数据、CRC校验字段。除同步头外,SENT报文按照半字节传送。半字节传送的时间单位是时钟。SENT协议规定时钟周期在3~10μs之间。SENT报文中每一个半字节被编码成一个正脉冲,脉宽大小取决于半字节的数值。半字节为0,正脉宽7个时钟,半字节数值每增加1,正脉宽增加一个时钟,因此最大正脉宽时间是22个时钟。正脉冲之间采用固定5个时钟的负脉冲间隔。图1中a、b显示的是0和15的半字节SENT脉冲波形。同步头由51个时钟长度的正脉冲表示[3]。
2CPLD实现的闸位计SENT接口
SENT帧格式设计如表1。同步头按照SENT协议规定产生。SENT帧帧中的传输的闸位计状态仅考虑正常/故障2种情况,用0值表示闸位计正常,8值表示闸位计有故障。数据1对应二进制闸位值最高位4比特G11-G8,数据2对应二进制闸位值中间位4比特G7-G4,数据3对应二进制闸位值最低位4比特G3-G0。接着后面的两个半字节分别设计为数据1和数据2的逻辑反,最后一个半字节是一个减计数器,从15到0循环减小。表1用于闸位计的SENT帧设计CPLD逻辑功能如图2所示,可划分为格雷码译码模块、同步字段发生模块、闸位计状态发生模块、半字节填充模块、CRC校验模块、选择器模块、脉冲逻辑发生模块以及系统控制逻辑模块。格雷码译码模块由一组异或门的组合逻辑构成,12位并行格雷码闸位值经译码得到12位并行二进制码闸位值。这12位二进制码按照每4比特一组分为3个半字节,作为SENT帧的数据1、数据2和数据3。同步字段发生模块是一个6比特的常数44。闸位计状态发生模块根据闸位计的状态产生4比特数据0(正常)或者8(故障)。半字节填充模块包括一组产生闸位值最高8比特的逻辑反相器和一个4比特减计数器,用于填充SENT帧中闸位数据值后面的3个半字节,即数据1的反、数据2的反以及减计数值。CRC校验模块产生帧的校验值。选择器在系统控制逻辑模块的控制下选择同步字段模块的输出、闸位计状态发生模块输出、12比特二进制闸位值、半字节填充模块的输出以及CRC校验模块的输出之一作为随后的脉冲逻辑发生模块的输入。脉冲逻辑发生模块先产生5个时钟的低电平,然后根据6比特输入的值产生比输入值多7的时钟数的高电平。以上所有模块在系统控制逻辑模块下控制。CRC校验采用多项式是x4+x3+x2+1,初始种子为0101。CRC校验模块采用如下图3所示电路实现。开始校验前寄存器预置成CRC3=0CRC2=1CRC1=0CRC0=1,数据从Data端输入,经过24比特时钟后从4个寄存器取出4比特校验结果[CRC3CRC2CRC1CRC0]。图3SENT帧4比特CRC计算电路
3仿真与测试
选用Intel公司MaxII系列CPLD,在EDA环境下对逻辑进行仿真,波形如图4a所示。图中显示了6个半字节的数据和它们的CRC校验结果,数据0xFFF00E的CRC校验结果是0x04,数据0xFFF00D的CRC校验结果是0x07,相应的SENT帧输出显示在随后一行,可以观察到帧同步头、状态、数据以及校验字段对应的波形,经测量逻辑正确。仿真正确后将逻辑载入CPLD中,使用RigolDS6104示波器对CPLD输出SENT信号波形进行测量,如图4b所示。实验中时钟为250kHz,即时钟周期是4μs。低电平持续时间5个时钟,占用时间20μs。同步头正脉冲占用51个时钟,约200μs。图中显示的波形是状态正常,数据为0xFFF00E,相应的校验字是0x04产生的波形。为了测量所设计的正确性,对所产生的SENT帧进行解码还原出闸位值显示。测试方案如图5a所示。使用AVR单片机接收SENT信号进行解码,并将转换值上报给上位机进行存储展示。AVR单片机解码使用它具有的外部脉冲捕获功能,对收到的SENT信号中邻近的下降沿时间间隔计数,根据计数值得到高电平时间,从而对SENT进行解码恢复闸位信息。测试中让格雷码闸位计匀速转动,SENT解码结果由上位机不间断显示。实验使用的是南京水利水文自动化研究所的12位格雷码闸位计,图5b是在上位机上显示的闸位值解码结果,闸位从0开始均匀增加,当达到最大值4095后变为0重新开始。图5闸位计SENT接口测试方案(a)和测试结果(b)
4结束语
本文设计了一个用于并行格雷码闸位计的SENT接口转换装置,采用低功耗CPLD实现。经过仿真和实际测试,证明该SENT接口逻辑正确。使用SENT接口后大大减少闸位计现场布线以及采集器IO口的占用。
参考文献
[1]袁建军,许永祥,王张磊,等.一体化闸门技术在疏勒河灌区斗口计量的运用[J].中国农村水利水电,2018(1):23-25
[2]宦鸿兴,柏屏.基于AT89C52单片机的泵站现地监控单元设计[J].排灌机械,2006,24(3):12-16
[3]SAEinternationalsurfacevehicleinformationreportJ2716.SENT-Singleedgenibbletransmissionforautomotiveappli-cations[S].2010
[4]马楠,吴长坤.基于SENT协议的有刷直流电机控制系统设计[C]∥第九届全国信号和智能信息处理与应用学术会议,2015:275-278
[5]黄鹏,杜克奎,荣锋,等.基于自适应SENT协议的电机控制系统设计[J].天津工业大学学报,2016,35(2):83-88
作者:花再军 黄凤辰 陈钊 李建霓 单位:河海大学计算机与信息学院