本发明属于机电控制,尤其涉及一种基于mcbsp与ssi绝对值编码器通信的电路及方法。
背景技术:
1、在工业自动化控制领域,微控制器(mcu)和高精度绝对值编码器是一对常见搭档。采用同步串行接口(synchronous serial interface,简称ssi)协议的绝对值编码器以其连接线少、抗干扰强的优势而得到广泛应用。
2、然而工业领域常见的微控制器芯片,例如ti公司的c2000系列mcu、意法半导体公司的stm32系列mcu,并没有提供专用的ssi接口来适配ssi绝对值编码器。
3、目前,微控制器获取ssi绝对值编码器数据的主要方式有三种:方式一、使用cpld或fpga与ssi编码器直接通信,然后通过总线把数据传给mcu。例如《传感器世界》杂志刊发的论文《多通道ssi接口绝对值编码器信号采集》,以arm为主控制器实现控制算法,fpga为辅助控制器实现6通道ssi绝对值编码器接口。该方法的缺点是需要增加fpga电路器件成本和布板尺寸,且设计人员需要具备一定的fpga编程能力。方式二、使用mcu的通用io口与ssi编码器通信。例如《现代电子技术》杂志刊发的论文《基于dsp的绝对式光电编码器串行接口设计》,用dsp的通用io口gpiof7循环发送高低电平模拟时钟信号,用端口gpiof6接收编码器数据。该方法的缺点是占用微处理器资源多,实施难度较大,同行实现困难。方法三、使用stm32微控制器的spi总线与ssi编码器通信。例如中国专利cn115391241《基于spi总线接收ssi接口编码器数据的系统及传输方法》。该方法的缺点是其仅能通过spi接口实现,对于芯片spi接口不够用的情况就无能为力。
技术实现思路
1、本发明的目的在于,为克服现有技术缺陷,提供了一种基于ti公司芯片的多通道缓冲串口(multi-channel buffered serial port,简称mcbsp)与ssi绝对值编码器通信的电路及方法,可读取总分辨率(单圈分辨率+多圈圈数)不大于31位的ssi协议绝对值编码器的数据。
2、本发明目的通过下述技术方案来实现:
3、一种基于mcbsp与ssi绝对值编码器通信的电路,所述编码器包括编码器时钟端和编码器数据端,其特征在于,所述电路包括:
4、微控制器,所述微控制器包括由芯片控制的多通道缓冲串口,所述多通道缓冲串口包括多通道缓冲串口时钟输出管脚和多通道缓冲串口数据输入管脚;
5、差分收发器,所述差分收发器包括由芯片控制的用于连接所述编码器时钟端的差分发送管脚、用于连接所述编码器数据端的差分接收管脚、用于连接所述多通道缓冲串口时钟输出管脚的单端接收管脚和用于连接所述多通道缓冲串口数据输入管脚的单端发送管脚。
6、进一步的,所述微控制器包括c2000系列mcu。
7、进一步的,本发明还提供了一种基于mcbsp与ssi绝对值编码器通信的方法,所述方法基于前述任一种电路实现,所述方法包括:
8、配置微控制器的多通道缓冲串口功能;
9、向微控制器的多通道缓冲串口数据发送寄存器写入任意数据,多通道缓冲串口时钟输出管脚产生的时钟信号经差分收发器传输至编码器;
10、读取微控制器的多通道缓冲串口数据接收寄存器,获得编码器回传给多通道缓冲串口数据输入管脚的缓存数据;
11、去除所述缓存数据的无效位后得到编码器数据。
12、进一步的,所述配置所述微控制器的多通道缓冲串口功能,具体包括:
13、配置微控制器的多通道缓冲串口时钟输出管脚和数据输入管脚为mcbsp模式;
14、配置多通道缓冲串口为spi主机模式,输入时钟为芯片的低速外设时钟,且发送时钟空闲时为高电平;
15、配置多通道缓冲串口的收发寄存器为单相帧单字,收发字长度为m,m为8、12、16、20、24、32之一且不小于(a+b+1),其中,a为编码器单圈分辨率,b为多圈编码器圈数。
16、进一步的,所述读取微控制器的多通道缓冲串口数据接收寄存器获得缓存数据具体包括:
17、当多通道缓冲串口的收发字长度m不大于16位时,编码器回传数据存储在第一数据接收寄存器中,读取第一数据接收寄存器获得缓存数据;
18、当多通道缓冲串口的收发字长度m大于16位时,编码器回传数据的高位存储在第二数据接收寄存器、低位存储在第一数据接收寄存器中,依次读取第二数据接收寄存器和第一数据接收寄存器获得32位的缓存数据。
19、进一步的,所述去除所述缓存数据无效位的方法具体包括:
20、当接收数据对齐方式为右对齐时,将所述缓存数据右移[m-(a+b+1)]位得到移位数据;
21、当接收数据对齐方式为左对齐时,将所述缓存数据右移[16(m/16+1)-(a+b+1)]位得到移位数据;
22、移位数据的低(a+b)位即为去除无效位后的编码器数据。
23、本发明的有益效果在于:
24、本发明提供的基于mcbsp与ssi绝对值编码器通信的电路及方法,相比现行用fpga电路处理ssi接口,能降低实现难度,节省器件成本,减小电路布板;相比io口模拟ssi协议与编码器通信,占用微处理器资源少,实施难度小。该方法适用于ti公司带mcbsp接口的芯片,可在芯片spi接口资源不足时与总分辨率(单圈分辨率+多圈圈数)不大于31位的ssi绝对值编码器通信。
1.一种基于mcbsp与ssi绝对值编码器通信的电路,所述编码器包括编码器时钟端和编码器数据端,其特征在于,所述电路包括:
2.如权利要求1所述的基于mcbsp与ssi绝对值编码器通信的电路,其特征在于,所述微控制器包括c2000系列mcu。
3.一种基于mcbsp与ssi绝对值编码器通信的方法,其特征在于,所述方法基于权利要求1或2所述的电路实现,所述方法包括:
4.如权利要求3所述的基于mcbsp与ssi绝对值编码器通信的方法,其特征在于,配置微控制器的多通道缓冲串口功能具体包括:
5.如权利要求4所述的基于mcbsp与ssi绝对值编码器通信的方法,其特征在于,所述读取微控制器的多通道缓冲串口数据接收寄存器获得缓存数据具体包括:
6.如权利要求5所述的基于mcbsp与ssi绝对值编码器通信的方法,其特征在于,所述去除所述缓存数据无效位的方法具体包括: