新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 矿用摄像机嵌入式CAN总线远程控制技术

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

作者:时间:2012-11-30来源:网络收藏

本协议以标准格式的11位标识符(ID10一ID0)为控制器、转接器地址,由于协议规定IDIO—ID4必须不能全为隐性1,因此有效地地址数为2032个。根据规定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协议,因此还要在控制器中设计控制协议到VIS—CA协议的转换。VISCA协议是公开的,此处只需将控制命令转换为VISCA协议的控制码通过串口发送即可。

4 软件设计

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

4.1 控制器地址配置与修改

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

方案采用了地址映射的方法。将摄像机地理位置与监控界面对应的地址称为逻辑地址,摄像机控制器的CAN标识符对应的地址称为物理地址。在上位机程序中建立一张逻辑地址与物理地址的对应表,并将其映射到转接器的程序地址表里,转接器根据表的状态变化实时修改控制器的物理地址。这样控制命令采用物理地址进行传输就不会影响上位机对摄像机地理位置的判断,只是控制器使用前必须在上位机设定一次逻辑地址与物理地址,修改时使用图3所示的控制器更新地址命令即可完成。这种方案的另一个优点就是不会引起手动设定时的地址冲突(可编写程序在设定地址前检查有无冲突)。

4.2 控制器软件设计

控制器软件由主程序、子程序和中断程序组成。主程序主要完成处理器的初始化。初始化内容主要包括:将P0.0、P0.1、P0.8、P0.9设置为串口功能,串口0工作为查询模式,串口1工作为中断模式,并设置其中断优先级及通信波特率,使能相应中断位;设置P0.2、P0.3为I C功能,禁止其中断功能;设置P0.7、P0.21为PWM功能,置P1.17、P1.19为通用I/O口功能;设置P0.23、P0.24为CAN控制器功能,工作为中断方式,读取存储在24C04中的控制器物理地址,根据该地址设置CAN控制器的滤波寄存器,使能CAN中断控制位;开全局中断控制;初始化完毕后主程序即进入循环等待过程。

子程序主要有:24C04读写子程序、摄像机模块控制命令发送子程序(该程序同时完成CAN控制命令到VISCA协议的转换)、工作台控制子程序、控制器地址修改子程序。

中断程序只有串口1中断和CAN中断。串口1开始通信进入中断后要先进行两次握手,然后接收4字节的地址值,前2个字节的高11位是逻辑地址,后2个字节的高11位是物理地址。再接收1字节的校验码,然后按接收的数据计算校验码是否正确,若正确则调用24C04读写子程序写入地址信息,若不正确返回发送错误信息,写入24C04时,若发生错误,返回写入错误信息,否则,返回写入正确信息。通信过程中若发生超时,则返回超时信息。CAN通信进入中断后先读取接收缓冲区的CAN报文,计算校验码。若校验码不正确则发送错误帧后返回;若正确则先调用摄像机模块控制命令发送子程序控制摄像机动作,再调用工作台控制子程序完成工作台控制,然后返回。

5 结束语

本文设计的摄像机CAN系统经试验测试运行稳定可靠,无摄像机和工作台失控、误动现象,适合在煤矿现场使用。虽然是控制的SONY摄像模块,但电路在后端改造后也可控制其他摄像模块。系统还可以在错误检测及操作系统移植方面进一步改进。该控制系统是煤矿现场总线的典型应用。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭