一种基于FPGA的BiSS-C通信协议方法

文档序号:9399268阅读:3193来源:国知局
一种基于FPGA的BiSS-C通信协议方法
【技术领域】
[0001]本发明属于传感器与控制卡之间传输通信的技术领域。
【背景技术】
[0002]BiSS通信协议是一种全双工同步串行总线通信协议,专门为满足实时、双向、高速的传感器通信而设计,在硬件上兼容工业标准SSI (同步串行接口协议)总线协议,其典型应用是在运动控制领域实现伺服驱动器与编码器通信,具有兼容性、低成本、稳定性等特点。而BiSS-C通信协议是单向的快速同步串行接口。FPGA是现场可编程逻辑器件,以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录到FPGA上进行测试,具有灵活性强等特点,FPGA产品现在已经广泛应用于通信、工业控制、测试测量等领域。现有BiSS-C通信协议在FPGA中占有资源多和线延迟处理等问题,BiSS-C通信协议在FPGA资源数需要大于1300个LE,并且每帧数据要进行一次线延迟补偿。

【发明内容】

[0003]本发明的目的是提供一种基于FPGA的BiSS-C通信协议方法,是为了解决现有BiSS-C通信协议在FPGA中占有资源多和线延迟处理等问题,BiSS-C通信协议在FPGA资源数需要大于1300个LE,并且每帧数据要进行一次线延迟补偿的问题。
[0004]所述的目的是通过以下方案实现的:所述的一种基于FPGA的BiSS-C通信协议方法,它的方法步骤为:
步骤一:FPGA模块I的锁相环首先产生300MHz的基准时钟,SLout空闲高电平时,MA开始发送时钟,根据300MHz的基准时钟,首先延迟固定时间T1,MA时钟一直置0,然后延迟固定时间T2,MA时钟一直置1,如果这位数据接收完成,从延迟固定时间Tl重新开始,一直到一帧数据接收完全,继续从第一步开始循环,这样就产生了 MA时钟信号,时钟信号MA通过RS422接口 2发送到外部光栅式传感器的时钟输入端;
步骤二:时钟信号MA的上升沿触发外部光栅式传感器的数据信号发送,数据信号通过外部光栅式传感器的读数头输出,通过差分线路传回到RS422接口 2 ;
步骤三:FPGA模块I判断每一帧数据信号的Start位是否为高电平和“O”位是否为低电平,如果不是,则继续等待下一帧数据,如果是,则每一个时钟MA的上升沿串口接收一位数据,直到最后一个字节的CRC检验位接收完成,再重新接收下一帧数据;
步骤四:将完整的一帧数据存储到FPGA模块I的双口 RAM储存器3内,当下一个完整的一帧数据接收完,双口 RAM储存器3内的原始数据将被覆盖刷新;
步骤五:双口 RAM储存器3内的数据实时的传送到DSP模块4内,DSP模块4先对CRC校验位进行判断,如果校验位错误,则去掉该数据,如果校验位正确,把上述数据信号的26位二进制位置数据提取出来,通过解算,在位置数据的基础上,加入报文头0x55和一个字节的CRC检验位,组成一帧数据发送给外部电机驱动器实现基于FPGA的BiSS-C通信协议的电机闭环控制。
[0005]本发明属于硬件解码,跟CPLD解码相比,FPGA解码能实现数据通信和寄存器两种功能,既能完成通信,又能存储数据,存储的数据用于其他程序的处理,而CPLD解码只能实现数据通信,无法对数据进行存储。软件解码虽然能够节约外部逻辑电路的成本,但MCU硬件模块的FIFO深度会问题会带来通信出错等问题。FPGA解码则完全避免了上述问题,并且通信速度快,每0.1ms完成一帧数据的发送与接收,误码的情况基本没有出现。
【附图说明】
[0006]图1是本发明方法涉及的电路结构简要示意图。
【具体实施方式】
[0007]【具体实施方式】一:结合图1所示,它的方法步骤为:
步骤一:FPGA模块I的锁相环首先产生300MHz的基准时钟,SLout空闲高电平时,MA开始发送时钟,根据300MHz的基准时钟,首先延迟固定时间T1,MA时钟一直置0,然后延迟固定时间T2,MA时钟一直置1,如果这位数据接收完成,从延迟固定时间Tl重新开始,一直到一帧数据接收完全,继续从第一步开始循环,这样就产生了 MA时钟信号,时钟信号MA通过RS422接口 2发送到外部光栅式传感器的时钟输入端;
步骤二:时钟信号MA的上升沿触发外部光栅式传感器的数据信号发送,数据信号通过外部光栅式传感器的读数头输出,通过差分线路传回到RS422接口 2 ;
步骤三:FPGA模块I判断每一帧数据信号的Start位是否为高电平和“O”位是否为低电平,如果不是,则继续等待下一帧数据,如果是,则每一个时钟MA的上升沿串口接收一位数据,直到最后一个字节的CRC检验位接收完成,再重新接收下一帧数据;
步骤四:将完整的一帧数据存储到FPGA模块I的双口 RAM储存器3内,当下一个完整的一帧数据接收完,双口 RAM储存器3内的原始数据将被覆盖刷新;
步骤五:双口 RAM储存器3内的数据实时的传送到DSP模块4内,DSP模块4先对CRC校验位进行判断,如果校验位错误,则去掉该数据,如果校验位正确,把上述数据信号的26位二进制位置数据提取出来,通过解算,在位置数据的基础上,加入报文头0x55和一个字节的CRC检验位,组成一帧数据发送给外部电机驱动器实现基于FPGA的BiSS-C通信协议的电机闭环控制。
[0008]FPGA模块I的型号为Altera公司的EP2S60F1020I4N ;RS422接口 2的核心芯片型号为Sipex公司的SP3490芯片;双口 RAM储存器3的型号为CYPRESS公司的CY14B108L芯片;DSP模块4的型号为TI公司6000系列的TMS320C6414。
[0009]工作原理:
在FPGA模块I上可连接一台主机,通过主机上的Quarter II 11.0软件实时观测,用CCS3.3软件对DSP模块4进行编程,在CCS3.3软件中可以观察外部光栅式传感器的当前角位置信息。
[0010]所述数据信号SLO的帧结构包括Ack、起始位、“O”位、数据位、误差位、警告位、CRC校验位和超时;Ack是读数头计算绝对位置的时间段,并且低电平有效;起始位一共I位且始终为高电平,“O”位一共I位且始终为低电平,二者表示发信号给通信模块开始传输数据;26位数据位表示当前绝对式圆光栅的角位置,为二进制格式;1位误差位低电平有效,置I表示位置信息正确,置O表示位置信息不可信;1位警告位低电平有效,置O表示光栅尺需要清理;CRC校验位一共6位;数据传输可能在位置信息采集周期之前完成,这时需要超时时间一直置1,直到位置信息采集周期结束。
【主权项】
1.一种基于FPGA的BiSS-C通信协议方法,其特征在于它的方法步骤为: 步骤一:FPGA模块(I)的锁相环首先产生300MHz的基准时钟,SLout空闲高电平时,MA开始发送时钟,根据300MHz的基准时钟,首先延迟固定时间T1,MA时钟一直置0,然后延迟固定时间T2,MA时钟一直置1,如果这位数据接收完成,从延迟固定时间Tl重新开始,一直到一帧数据接收完全,继续从第一步开始循环,这样就产生了 MA时钟信号,时钟信号MA通过RS422接口(2)发送到外部光栅式传感器的时钟输入端; 步骤二:时钟信号MA的上升沿触发外部光栅式传感器的数据信号发送,数据信号通过外部光栅式传感器的读数头输出,通过差分线路传回到RS422接口(2); 步骤三:FPGA模块(I)判断每一帧数据信号的Start位是否为高电平和“O”位是否为低电平,如果不是,则继续等待下一帧数据,如果是,则每一个时钟MA的上升沿串口接收一位数据,直到最后一个字节的CRC检验位接收完成,再重新接收下一帧数据; 步骤四:将完整的一帧数据存储到FPGA模块(I)的双口 RAM储存器(3)内,当下一个完整的一帧数据接收完,双口 RAM储存器(3)内的原始数据将被覆盖刷新; 步骤五:双口 RAM储存器(3)内的数据实时的传送到DSP模块(4)内,DSP模块(4)先对CRC校验位进行判断,如果校验位错误,则去掉该数据,如果校验位正确,把上述数据信号的26位二进制位置数据提取出来,通过解算,在位置数据的基础上,加入报文头0x55和一个字节的CRC检验位,组成一帧数据发送给外部电机驱动器实现基于FPGA的BiSS-C通信协议的电机闭环控制。
【专利摘要】一种基于FPGA的BiSS-C通信协议方法,本发明属于传感器与控制卡之间传输通信的技术领域。它的方法步骤一:FPGA模块的时钟信号MA通过RS422接口发送到外部光栅式传感器的时钟输入端;步骤二:时钟信号MA的上升沿触发外部光栅式传感器的数据信号发送;步骤三:FPGA模块判断每一帧数据信号的Start位是否为高电平和“0”位是否为低电平,如果不是,则继续等待下一帧数据,如果是,则每一个时钟MA的上升沿串口接收一位数据;步骤四:将完整的一帧数据存储到FPGA模块的双口RAM储存器内;步骤五:双口RAM储存器内的数据实时的传送到DSP模块内。本发明属于硬件解码,FPGA解码能实现数据通信和寄存器两种功能,既能完成通信,又能存储数据,存储的数据用于其他程序的处理。
【IPC分类】H04L29/06
【公开号】CN105119907
【申请号】CN201510433632
【发明人】陈兴林, 宋跃, 王一光, 张常江, 何良辰, 刘洋, 万勇利, 赵为志, 陈震宇, 韩记晓
【申请人】哈尔滨工业大学
【公开日】2015年12月2日
【申请日】2015年7月22日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1