本帖最后由 LEDyyds 于 2023-6-2 15:20 编辑
一、整体方案设计
整体方案如上图所示,处理器作为主控,通过RS485接口获取外部设备(如驱动器)指令,通过SPI/IIC读取角度传感器的角度值,电源通过RS485接口从驱动器端供电,处理器获取角度数据后进行数据结算处理,再通过RS485接口将数据包发送给外部驱动设备。此设计要求RS485接口的波特率较高,一般速率为2.5M的波特率,同时从驱动器获取指令到返回角度值时间较短,需要处理器快速处理。方案结构较为简单,但是对处理器的要求较为严格。
二、物料选型
处理器选用芯源的CW32F030F8单片机,原因是M0+的内核,32位的处理器,64MHz的主频,指令处理较快,可以在极短的时间内完成数据的接收-处理-发送。同时该芯片价格便宜,是用于产品出货量较大的产品,降低产品成本,增加市场竞争力。其次QFN20的封装尺寸很小,在PCB面子很小的电机编码器应用上具有很大的优势,能够大大节省PCB的面积,减小PCB的布局压力,同时广域的耐温也适合电机运行场合。因角度编码器的精度受安装等环境影响,使用前大多需要进行校准,64K的FLASH可用于储存校准所需数据,减少外部EEPRM的使用,节约成本。
磁角位置传感器拟采用麦歌恩的MT6825,采用SPI与CW32F030F8进行通信。
三、方案整体逻辑
整个系统在上电后完成时钟初始化,USART和SPI外设的初始化,同时还需要对传感器芯片进行初始化。如需校正数据,可在初始化后从FLASH中读取相应数据。初始化完成后等待外部驱动器发送指令,外部指令通过RS485总线接收,通过串口中断接收指令之后判断是否需要读取角度,如果是则启动SPI从角度传感器获取当前绝对位置信息,之后将数据打包成协议在通过RS485总线送出,之后等待下一次的驱动器指令。
四、要点
1.驱动器的指令频率较快,可能达到16K,每次的指令间隔最低只有62.5us,除去接收指令的时间,读取SPI总线数据要尽可能快,读取后数据处理也要尽可能快,之后还需要送出数据包,整个流程需要自己规划代码逻辑,防止时间不够引起驱动器报警。
2.由于角度传感器的应用场合在电机上,需要注意环境对编码器的干扰,防止对SPI或者RS485数据传输产生影响。
|