3.2 通信设计

CAN网络能否正常工作很大程度上取决于基于CAN总线的发送和接收程序能否正确设计。跟大多数的通信过程一样,CAN的发送和接收也分为查询和中断两种方式。在本系统中,发送采用查询方式,接收采用中断方式。发送时用户只需将待发送的数据按特定格式组合成一帧报文,送入SJA1000的发送缓存区中,然后启动SJA1000发送即可。其间需要对CAN总线的发送缓存区状态进行判断。发送流程如图4。

在PeliCAN模式中,SJA1000有8个不同的中断,接收中断是其中的一个。一旦CAN产生中断,SJA1000就将中断输出设为低电平,直到主控制器通过读SJA1000的中断寄存器对中断采取相应措施,或释放接收缓存器后产生接收中断。在主控制器完成该动作后,SJA1000将输出中断跳到高电平。处理中断请求的握手信号或两个中断之间的高电平脉冲要求主控制器的中断由电平触发。中断接收的流程如图5所示。相比发送子程序而言,它除了进行单纯的数据帧接收之外,还要对中断运行寄存器中允许引起中断的各种错误(比如总线脱落、错误报警、接收溢出等)进行判断并作相应处理。在波动仿生推进器的应用里,设置了接收中断和数据溢出中断,并在主程序里定时检测总线状态,如果发现总线脱离,则对SJA1000进行复位处理。

3.3 电机协调控制设计

实现水下波动仿生推进器的多电机独立控制设计方案

波动仿生推进器单柔性长鳍的波动控制要求其多电机系统按照设定的波动参数带动多个鳍条形成相应的波形。由于采用了高性能的伺服电机及驱动器,我们可以很精确的控制电机的运行速度,故在形成了各电机之间按设定波长要求的相位差之后,只要保持各个电机之间速度的严格同步,就可以实现多个电机之间的协调运转。为此,需要在各个电机控制节点里预先设置一些相关的控制原语,如电机原点定位、相位调整、速度设定、方向设定以及停机等基本电机控制指令。主控模块PC/104通过对这些控制原语的合理调用,便可实现各种类型的波形。

另一种更合理可靠的方法是,各电机控制节点采集伺服电机上增量编码器的角度脉冲信号,经过解析将角度数字信号送往PC/104。在每个控制周期内,PC/104对这些角度信号进行综合处理,通过一定的协调机制来实时修改对电机的控制量。由于CAN总线在一定条件下其最高通信速率可达1Mbps,通过设定适当的控制周期,可以满足本系统的需要。

4、 结论

本文设计的CAN总线系统在波动仿生推进器的波动控制中得到了成功应用。与基于RS-232总线的控制系统相比,本系统在通信的可靠性和快速性上体现出了较大优势。在通信速率为250Kbps以及13个底层节点的情况下,通过实际反复的静水和航行试验表明其通信效果完全可以满足系统的需要,同时该CAN总线系统也具备良好的波形控制和状态监测功能。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查