1、导言
为了开发海洋资源,人类有必要首要了解海底环境。但是,海底环境十分复杂,对海底勘探的要求很高,深海环境下需求收集的参数比较多,包含深度、温度、盐度、PH值、溶解氧及各种化学元素等。
深海测控体系作业时需求接纳来自甲板操控中心的指令,一起要将收集到的数据反送到甲板操控中心,二者之间的最大通讯间隔大于5km,因而,它们之间的通讯要求很高。CAN总线与一般的通讯总线比较,它的数据通讯具有杰出的牢靠性、实时性和灵活性。CAN的直接通讯间隔最远可达10km(速率在5kb/s以下),报文选用短帧结构,传输时间短,受搅扰概率低,确保了数据出错率极低。为此,选用CAN总线作为通讯方法。
2、深海测控体系的根本组成
深海测控模块由二大部分组成:测控子模块和通讯子模块。测控子模块的首要功用是依据甲板操控中心的指令发动体系并完结参数提取、转化、数据处理、存储及发送等操作。通讯子模块的功用是完结甲板与水下测控体系的通讯。
测控子模块以Cygnal公司的C8051F020型单片机为中心,扩展信号调度电路及与CAN总线的接口。通讯子模块是Philips公司的SJA1000型CAN操控器。
2.1 测控子模块
深海测控子模块由微操控器体系和I/O体系组成。
微操控器是Cygnal公司的C8051F020型单片机。C8051F020选用CIP-51型微操控器内核及流水线指令结构,70%的指令履行时间为1个或2个体系时钟周期,峰值速度到达25MI/s,能满意深海环境下多路数据的快速收集与剖析。C8051F020型单片机内部集成1个12位8通道带可编程增益放大器的A/D转化器和1个8位8通道A/D转化器,能满意深海多路环境参数收集;2路12位电压输出D/A转化器;16位可编程守时/计数器阵列PCA可用于输出PWM以操控步进电机的作业;64个耐5V电压的通用I/O口可操控开关器材的发动和中止。
微操控器体系还包含了单片机的一些根本外围电路。体系还展开了1片容量达64Mbyte的串行Flash存储器,用以保存收集到的数据,以防止CAN通讯不畅时形成数据丢掉。运用时只需微操控器外接相应的传感器、继电器、电机等就可以完结各种环境下参数的收集及相应的操控
2.2 通讯子模块
SJA1000是PHILIPS公司推出的一款独立的CAN操控器,首要用于移动方针和一般工业环境中的区域网络操控。它是PCA82C200型CAN操控器(BasicCAN)的代替产品,而且增加了一种新的操作方法–PeliCAN,这种方法支撑具有许多新特征的CAN2.0B协议。
SJA1000的根本特征如下:
·引脚与PCA2C200型CAN操控器兼容。
·有扩展的接纳缓冲器(64字节,先进先出FIFO)。
·支撑CAN2.0A和CAN2.0B协议。
·支撑11位和29位标识码。
·通讯位速率可达1Mb/s。
·可与不同的微处理器接口。
·可编程的CAN输出驱动器装备。
SJA1000的引脚摆放如图1所示,首要引脚的功用如下所述。
AD7-AD0:地址数据复用线。
ALE/AS:ALE输入信号(Intel方法)或AS输入信号(Motorola方法)。
CS:片选信号,低电平答应拜访SJA1000。
RD/E:来自微操控器的RD信号(Intel方法)或E使能信号(Motorola方法)。
WR:来自微操控器的WR信号(Intel方法)或RD/WR使能信号(Motorola方法)。
CLKOUT:SJA1000发生用于微操控器的时钟输出信号;时钟信号由内置晶体振荡器经过可编程除法器发生;时钟除法寄存器中的时钟中止位能使该引脚无效。
VDD1和VSS1:逻辑电路5V电源和逻辑电路地。
XTAL:晶体振荡器放大器输入,外部晶体振荡器信号由该脚输入。
XTAL2:晶体振荡器放大器输出,当运用外部晶体振荡器信号时,该输出引脚有必要开路。
VDD3和VSS3:输出驱动5V电源和输出驱动地。
TX0和TX1:CAN输出驱动器0和1输出到物理总线。
INT:中止输出,用于触发微操控器中止;内部中止寄存器的任何方位位,INT将低电平输出;INT为开环输出;该引脚为低电平将电路从睡觉状况激活。
RST:复位输入,用于复位CAN接口(低电平有用)。
VDD2和VSS2:输入比较器5V电源和输入比较器地。
RX0和RX1:从物理CAN总线输入到SJA1000的输入比较器。
SJA1000与微处理器的接口十分简略,微处理器以拜访外部存储器的方法来拜访SJA1000。因为SJA1000的内部寄存器散布在接连的地址内,所以彻底可以把SJA1000当作外部RAM。在规划接口电路时,SJA1000的片选地址应与其他外部存储器的片选在逻辑上无抵触。
3、体系规划
SJA1000型CAN操控器兼容CAN2.0A和CAN2.0B二种规范。CAN2.0B具有二种不同的帧格局:规范帧和扩展帧,前者为11位标识符,后者为29位标识符。前者的标识符比后者的标识符少2个字节。深海测控体系的CAN节点数量少,只要上位机节点和水下测控中心节点,所以即便间隔比较远,对传输数据速度和牢靠性的影响也不是很大。
3.1 单片机与CAN操控器的硬件规划
图2为C8051F020型单片机与SJA1000型操控器的硬件衔接电路原理。SJA1000占用了0x8000-0x80FF的外部RAM空间。当单片机拜访以上空间时片选信号会选中SJA1000。
C8051F020有凹凸2个外部存储器接口。因而,SJA1000的AD0-AD7衔接到C8051F020的高端口P7口,CS衔接到基址为0x8000的外部存储器片选信号。当C8051F020拜访地址0x8000-0x80FF时,CPU可对SJA1000履行相应的读/写操作。SJA1000的RD、WR和ALE别离与C8051F020的对应引脚相连,INT接C8051F020的INT0引脚,所以C8051F020可经过中止方法拜访SJA1000。SJA1000的复位信号RST为低电平有用。C8051F020的AD0-AD7口用于地址/数据的输入/输出,将其装备为漏极开路方法,运用4.7kΩ上拉电阻器拉至5V。经过设置数字交叉开关,将C8051F020的外部中止引脚装备到P2.7口。
CAN可以运用多种物理介质,例如双绞线和光纤等。该规划方案选用双绞线。信号以差分电压传送,2条信号线为CAN_H和CAN_L,静态时为2.5V,此刻状况表明逻辑“1”,也叫做“隐性”。CAN_H比CAN_L高,表明逻辑“0”,称为“显性”,此刻CAN_H=3.5V,CAN_L=1.5V。TJA1050型CAN总线收发器是CAN协议操控器和物理总线之间的接口,CAN总线上二端节点须加60Ω电阻器和47nF电容器将信号吸收,以防止信号反射。为了增强CAN总线节点的抗搅扰才能,SJA1000的TX1与RX1经过6N137型高速光耦后与TJA1050相连。这样就很好地完结了总线上各CAN节点间的电气阻隔。其间,光耦部分电路的2个电源VCC和V_CAN有必要彻底阻隔,不然选用光耦便是失去了含义。电源的彻底阻隔可选用小功率电源阻隔模块和经过带多个5V阻隔输出的开关电源模块完结。
3.2 软件规划
通讯协议选用“ID+指令+数据+校验”的方法,其间ID为网络设备的标识符,选用ID.18-ID.20。标识符ID.21-ID.28作为固定指令,不参加检验滤波。数据表明通讯的具体内容。校验为1个字节,选用校验和的方法,因为CAN总线本身具有15位CRC校验,而且该体系节点数少,竞赛不会很剧烈,通讯牢靠性比较高。
软件规划思想为体系上电后C8051F020先对本身和SJA1000进行初始化以确认作业主频、波特率和输出特性等,然后接纳来自甲板上位机的操控指令,一起将获取的采样参数经过SJA1000传送到CAN总线上或备份到Flash存储器中;对SJA1000的初始化规划是要点,也是难点,有必要对写入每个寄存器的内容进行细心和全面考虑,不然体系将无法正常运转。可设上位机SJA1000适配卡的ACR为xx20,AMR为FF00。水下测控中心SJA1000的ACR为xx40,AMR为FF00。
遵从上述思路,选用C51编写了应用软件,下面是部分程序清单。
初始化部分:
void CAN_Init(void)
{ CANMODE=0x09;//进入复位方法,单向检验滤波,对SJA1000初始化
CANCDR=0x88; //挑选PeilCAN方法
CANIER=0x1A; //敞开接纳中止、超载中
因为深海测控体系对通讯的实时性要求很高,一旦接纳到甲板上传来的操控指令就有必要及时呼应,为此从CAN总线上接纳信息选用中止方法。即SJA1000无错地接纳到音讯后使INT变为低电平,下降沿触发C8051F020的外部中止0,使其进入中止服务程序。其流程如图3所所示。
假如要向CAN总线发送数据,则有必要将契合PeilCAN帧格局的一组数据写入SJA1000的发送缓冲区,然后调用发送子函数。这儿笔者选用查询方法来完结发送。流程如图4所示。
4、结束语
根据SJA1000型CAN操控器的深海测控体系根本上满意了功耗低、体积小、重量轻、易扩展的要求,一起与甲板上位机之间的通讯牢靠,彻底能满意深海勘探的需求,并能广泛应用于海洋油、气田作业,海洋污染监控和防治,海上渔业生产等,远景宽广。
责任编辑:gt