多摩川串行绝对值编码器数据通讯的实现 下载本文

3.通过CPU高速串口DMA实现编码器数据通讯:

常规8位及16微处理器串口波特率通常最高只有256Kbit左右,而多摩川常规绝对值编码器需要的波特率为2.5M,部分编码器波特率为5M。所以只有少数高速32位微控制器支持。

这里以意法半导体的STM32F429为例讲解如何使用DMA通过串口实现编码数据通讯。 DMA一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过CPU,也不需要CPU干预。整个数据传输操作在一个称为\控制器\的控制下进行的。CPU除了在数据传输开始和结束时做一点处理外,在传输过程中CPU可以进行其他的工作。这样,在大部分时间里,CPU和输入输出都处于并行操作。因此,使整个系统的效率大大提高。

CPU的通用串行接口USART3作为编码器通讯接口,485发送接受使能端口使用PE11IO口控制。

USART1端口参数设置如下: 波特率:2.5M 开始位:1位 停止位:1位 数据位:8位 校验位:无 发送:使能 接收:使能

串口DMA发送:使能 串口DMA接收:使能

串口DMA通道发送端设置: 外设地址:串口数据寄存器 内存地址:发送数据内存地址

DMA传输方向:从存储器到外设 DMA数据传输长度:实际发送数据字节数 外设数据字长:1个字节 内存数据字长:1个字节

设置DMA的内存递增模式:为增量模式 DAM数据传输完成中断:开 串口DMA通道接收端设置: 外设地址:串口数据寄存器 内存地址:发送数据内存地址 DMA传输方向:从外设存储器到 DMA数据传输长度:实际接收数据字节数 外设数据字长:1个字节 内存数据字长:1个字节

设置DMA的内存递增模式:为增量模式 DAM数据传输完成中断:开 具体数据通讯流程如下:

总结:第一种方案使用AU5561串行转并行芯片适合系统无FPGA芯片厂商,常规伺服驱动器厂商可以采用第二种方案采用FPGA多摩川提供源代码,第三种方案适合MCU支持高速串口、DMA功能的产品。