CAN控制器在深海测控中的应用
遵循上述思路,笔者采用C51编写了应用软件,下面是部分程序清单。
初始化部分:
voidCAN_Init(void)
{CANMODE=0x09;//进入复位模式,单向验收滤波,对SJA1000初始化
CANCDR=0x88;//选择PeilCAN模式
CANIER=0x1A;//开放接收中断、超载中
由于深海测控系统对通信的实时性要求很高,一旦接收到甲板上传来的控制命令就必须及时响应,为此从CAN总线上接收信息采用中断方式。即SJA1000无错地接收到消息后使INT变为低电平,下降沿触发C8051F020的外部中断0,使其进入中断服务程序。其流程如图3所所示。

如果要向CAN总线发送数据,则必须将符合PeilCAN帧格式的一组数据写入SJA1000的发送缓冲区,然后调用发送子函数。这里笔者采用查询方式来实现发送。流程如图4所示。

4结束语
基于SJA1000型CAN控制器的深海测控系统基本上满足了功耗低、体积小、重量轻、易扩展的要求,同时与甲板上位机之间的通信可靠,完全能满足深海探测的需要,并能广泛应用于海洋油、气田作业,海洋污染监控和防治,海上渔业生产等,前景广阔。
评论