微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 矿用摄像机嵌入式CAN总线远程控制技术

矿用摄像机嵌入式CAN总线远程控制技术

时间:11-30 来源:互联网 点击:

地址使用逻辑地址(详见控制器地址配置部分),数据的格式直接采用后面的CAN数据格式,在数据之后加一个字节的校验和作为通信校验。鉴于串口通信的文献较多,此处不再赘述。

由于转接器里的控制命令要通过CAN总线远距离传输,而CAN V2.0B规范只规定了底层协议标准,并没有对高层协议做统一规定,因此高层的控制协议需要单独开发。CAN的报文由4个不同的帧类型表示和控制,即数据帧、远程帧、错误帧、过载帧。鉴于摄像机控制系统中控制命令不多,故本文采用数据帧的标准格式发送控制命令,这样做的优点是可以减少网络传输的数据量,提高控制系统响应的实时性。协议具体设置如图3所示,数据帧包括帧起始、仲裁域、控制域、数据域、CRC域、应答域以及帧结束共7个部分。其中帧起始、CRC域、应答域、帧结束4个部分在文献[5]中已经详细规定,此处从略。

图3 CAN控制数据报文帧格式图

本协议以标准格式的11位标识符(ID10一ID0)为控制器、转接器地址,由于CAN协议规定IDIO—ID4必须不能全为隐性1,因此有效地地址数为2032个。根据CAN规定RTR位在数据帧格式里必须为显性0,标识符和RTR位构成数据帧的仲裁域。需要指出的是由于仲裁域决定数据在总线上传输时的优先级,因此在设置时应将重要场所的摄像机配置为高优先级地址。控制域的r位是两位保留位,后面的DLC3一DLC0用于确定数据域的长度,本协议所需数据域为8字节,故控制域取值为:DLC3一DLC0=1000。

所有控制命令全部在数据域的8个字节中设置,其中最后1个字节Byte0用于决定发送的是控制器更新地址还是控制字节,当其取值O*O1时表示发送的是更新地址,且其前面的Bytel~Byte2的高1 1位表示逻辑地址,Byte3-Byte4的高11位表示原地址,Byte5-Byte6的高11位表示要更新的地址;当字节Byte0取值0x02时表示其前面的6个字节Bytel—Byte6是控制字节,控制字节的详细设置如图3下部所示。

① 字节Bytel。第7位控制摄像机电源开关,取值0控制电源开,取值1控制电源关闭;第6位控制摄像机缩放,取值0控制摄像机进行缩放,取值1维持原状不缩放且第0~5位的取值无意义;第5位表示在进行缩放时是缩还是放,0则缩,1则放;第4位取值0表示按标准格式缩放,取值1表示按可变格式缩放,且前面的第0~3位表示可变格式的控制,取值范围由低到高分8级,以二进制数0~7表示,等于8时表示按步进格式缩放,取其他值无意义。

②字节Byte2。用来控制摄像机的调焦,设置与Bytel相似,从略。

③字节Byte3。第7位是控制工作台移动的开关,取值0为开即进行移动,取值1则关闭工作台移动;第6—3位表示工作台移动的方向,取值0表示移动方向有效,1表示无效。

④字节Byte4的第7~4共4位控制工作台左右移动速度,第3—0共4位控制工作台上下移动速度,分9个等级,以二进制数0—8表示,取其他值无意义。需要说明的是:控制字节的Byte2第7位、Byte3低3位以及Byte5、Byte6在协议中没有使用,编程时全部取值1,Byte5、Byte6留作协议进行下一步拓展时使用。虽然CRC域可以实现校验,但是为了确保通信的可靠性,本协议仍以Byte7作校验码,校验码的计算方法为取Byte0~Byte6累加和的低8位。另外需要说明的是:由于工作台的控制采用PWM调速,所以分了4个方向、9个速度等级,由Byte4控制,上下、左右的速度等级可以取不同值对应不同的速度。

在本文中摄像模块的控制要使用SONY的VISCA协议,因此还要在控制器中设计CAN控制协议到VIS—CA协议的转换。VISCA协议是公开的,此处只需将控制命令转换为VISCA协议的控制码通过串口发送即可。

4 软件设计

控制系统软件包括上位机软件、转接器软件以及控制器软件。其中,上位机软件主要是设计控制界面,以及与转接器的串口通信。在此可基于微软的VS2008平台用C#语言开发上位机软件,该平台提供了串口的控件,程序编写相对简单,文献也较多,限于篇幅不再详述。以下重点说明控制器地址配置与修改方法以及控制器软件设计。

4.1 控制器地址配置与修改

当前市场上的监控摄像机控制器(解码器)地址设定都是采用DIP开关来完成的。这在实际煤矿现场使用时很不方便,若要改变地址就必须到现场去手动没定,而煤矿中有许多地方人员由于会带来安全问题不便出入。基于此,本文设计了地址可实时在上位机直接修改的方案,彻底抛掉了DIP开关。

方案采用了地址映射的方法。将摄像机地理位置与监控界面对应的地址称为逻辑地址,摄像机控制器的CAN标识符对应的地址称为物理地址。在上位机程序中建立一张逻辑地址与物理地址的对应表,并将其映射到转接器的程序

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top