CAN总线在波动仿生推进器中的应用
差动发送能力,对CAN控制器提供差动接收能力。通过对82C250的8号管脚的不同设置,可使其工作于高速、待机、斜率等三种模式。
拨码开关地址输入电路用于对各个CAN节点的标识。上电后,单片机首先读取拨码开关的数值,并在CAN初始化中将其写入SJA1000的接收代码寄存器,作为该节点的标识码。电源监测与看门狗电路采用的是MAX813,它在系统上电时刻提供上电复位功能,在程序运行时提供看门狗监测和电源监测功能,并能够实现手动复位。
为进一步提高CAN总线的可靠性,在系统设计中采取了一系列的抗干扰措施。一方面将SJA1000与82C250通过高速光耦6N137相连,从而实现了CAN总线上各CAN节点的电气隔离。另一方面,在82C250与CAN物理总线的接口部分也采用一定的安全和抗干扰措施。比如,82C250的CANH和CANL引脚各自通过一个5Ω的电阻与CAN总线相连,可起到一定的限流作用,保护82C250免受过流的冲击;CANH和CANL与地之间分别并联一个30P的小电容,可以起到滤除总线上的高频干扰和一定的防电磁辐射的能力;CANH和CANL与地之间分别反接了一个保护二极管,这样,当CAN总线有较高的负电压时,通过二极管的短路可起到一定的过压保护作用。
另外,为了保护各CAN节点控制端不受电机端的影响,在单片机与电机接口处均采用了基于6N137的光电隔离方案。这样,当伺服电机端有大电压电流产生时,由于光耦的保护作用,不会对控制端产生较大影响。
在应用光电隔离方案时要注意的一个重要问题是要必须确保光耦两端的两个电源完全隔离,否则光电隔离将起不到其应有的保护作用。在本系统中,通过采用广州金升阳公司的小功率电源隔离模块B0505S-1W很好地实现了各电源之间的完全隔离。
3CAN网络的软件设计
CAN网络的软件主要包括三部分:初始化设计、通信设计、电机协调控制设计。下面从CAN控制节点的角度对它们进行说明。
3.1初始化设计
CAN网络的初始化包括对微控制器内部资源的初始化和CAN控制器SJA1000的初始化。微控制器的内部资源包括程序中使用的各控制变量、定时器、外部中断、串口等,需要在程序进入正常工作前对它们进行合理的设置。这里重点对SJA1000的初始化进行说明。
SJA1000的初始化只能在复位模式下进行。其主要内容包括工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器和接收代码寄存器的设置、波特率参数的设置、中断允许寄存器的设置等等。在完成SJA1000的初始化设置之后,应使SJA1000回到工作模式,进行正常的通信任务。图3是SJA1000的初始化流程图。需要特别引起注意的是,在同一个CAN网络中,各个CAN节点必须设置成相同的波特率,否则无法进行CAN通信。
3.2通信设计
CAN网络能否正常工作很大程度上取决于基于CAN总线的发送和接收程序能否正确设计。跟大多数的通信过程一样,CAN的发送和接收也分为查询和中断两种方式。在本系统中,发送采用查询方式,接收采用中断方式。发送时用户只需将待发送的数据按特定格式组合成一帧报文,送入SJA1000的发送缓存区中,然后启动SJA1000发送即可。其间需要对CAN总线的发送缓存区状态进行判断。发送流程如图4。
在PeliCAN模式中,SJA1000有8个不同的中断,接收中断是其中的一个。一旦CAN产生中断,SJA1000就将中断输出设为低电平,直到主控制器通过读SJA1000的中断寄存器对中断采取相应措施,或释放接收缓存器后产生接收中断。在主控制器完成该动作后,SJA1000将输出中断跳到高电平。处理中断请求的握手信号或两个中断之间的高电平脉冲要求主控制器的中断由电平触发。中断接收的流程如图5所示。相比发送子程序而言,它除了进行单纯的数据帧接收之外,还要对中断运行寄存器中允许引起中断的各种错误(比如总线脱落、错误报警、接收溢出等)进行判断并作相应处理。在波动仿生推进器的应用里,设置了接收中断和数据溢出中断,并在主程序里定时检测总线状态,如果发现总线脱离,则对SJA1000进行复位处理。
3.3电机协调控制设计
波动仿生推进器单柔性长鳍的波动控制要求其多电机系统按照设定的波动参数带动多个鳍条形成相应的波形。由于采用了高性能的伺服电机及驱动器,我们可以很精确的控制电机的运行速度,故在形成了各电机之间按设定波长要求的相位差之后,只要保持各个电机之间速度的严格同步,就可以实现多个电机之间的协调运转。为此,需要在各个电机控制节点里预先设置一些相关的控制原语,如电机原点定位、相位调整、速度设定、方向设定以及停机等基本电机控制指令。主控模块PC/104通过对这些控制原语的合理调用,便可实现各种类型的波形。
另一种更
- 基于CAN总线的RS-232串口设备远程通信(01-18)
- 现场总线CANbus与RS-485之间透明转换的实现(01-26)
- 支持CAN总线的电动车辅助逆变电源的设计(02-23)
- 单片机和MCP2510的CAN息线通信模块设计(05-03)
- CAN总线/RS232接口的设计(10-12)
- 机车空调逆变电源控制系统及其实现(06-21)