矿用摄像机嵌入式CAN总线远程控制技术
地址使用逻辑地址(详见控制器地址配置部分),数据的格式直接采用后面的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标识符对应的地址称为物理地址。在上位机程序中建立一张逻辑地址与物理地址的对应表,并将其映射到转接器的程序
远程控制 技术 总线 CAN 摄像机 嵌入式 矿用 相关文章:
- 当汽车联网后有这七件事可以干(12-16)
- 基于无线传感器网络的LED路灯远程控制系统(12-02)
- 基于GPRS及CAN总线的远程电机群控制(10-15)
- 基于Android平台的电热水器远程控制系统(09-12)
- 一种多用途的电力电子远程控制器设计(06-29)
- 基于80C51的开关磁阻电机远程控制系统的研究(11-30)