一种基于ARM的新型智能化航迹仪的设计
时间:11-03
来源:互联网
点击:
2.5 电磁感应式数字化板
传统的航迹仪为开环系统,无检测反馈装置。改进设计中增添了数字化板。这一反馈模块,构成了一套完整的闭环控制系统,增强了稳定性,降低了误差。
数字化板的工作原理:在标绘仪的绘图平板上布上导线形成格栅,把电磁发射线圈安装到绘笔上,此时把线圈圆心和绘笔圆心标定在同一直线上;绘笔在平板上绘图,而线圈不断发射磁场脉冲,导线切割磁场产生感应电流,通过接收电路和信号处理电路得到绘笔在绘图平台上的相对位置(绘笔位置)。把电磁感应定位得到的位置作为绘笔当前真实位置,此位置通过UART口反馈给S3C44B0X控制器。目标位置与该位置进行比较,得到需要的位置差量,计算后作出响应的位置补偿调整。数字化板工作原理如图3所示。
3 航迹仪系统的软件设计
3.1 S3C44B0X主板部分的软件设计
操作系统是控制和管理计算机软硬件资源、合理组织计算机工作流程、方便用户的程序集合。航迹仪功能的完成,很大程度上取决于操作系统软件平台的选择和应用程序的编制。在航迹仪的设计中,软件平台选用基于Tonardo集成开发环境的实时操作系统VxWorks,应用程序则采用VxWorks支持的标准C语言编制。
主板软件系统主要由主程序、命令解释部分、底层部分组成。其中,主程序到命令解释部分的调用通过函数shibie( )进行;命令解释部分到底层部分的调用通过函数zxcb( )进行。
3.1.1 主程序
主程序主要对综导台命令和触摸屏命令进行管理、调度。程序执行过程中查询随机命令数和推位命令数这两个变量。变量小于等于零时,没有综导台命令,程序查询触摸屏有无按下及键值,执行响应操作。当两个变量大于零,说明有了综导台命令,就会自动进入跟踪状态。在跟踪状态,不响应触摸屏命令,控制程序只查询有无随机命令及推位命令,转入响应的命令解释程序。
3.1.2 命令解释部分
命令解释部分主要功能:通过函数shibie( )对每一条命令进行识别及格式检查。对于随机命令和推位命令,每从CAN总线上接收一条命令,相应的命令条数加1。每执行完一条,相应的命令条数减1,同时指向下一条。只要这两个变量不为零,就说明有综导台命令未处理。通过检查随机命令数和推位命令数,即可按先后次序顺次执行所有命令。
本部分中还包括海图坐标转换程序,其主要功能:主板接收装海图命令的同时,会读取CAN总线上由综导台发送的海图信息,包括海图类型(墨卡托或高斯海图)、大小、比例等。程序根据这些信息,将海图上的经纬度值折算成XY轴坐标,以便于底层的直线差补程序将XY坐标量转换成步进电机的走步脉冲数。
3.1.3 底层部分
底层包括所有的画线、写标记符等绘笔执行动作的程序,及与硬件有关的I/O操作子程序、中断服务程序。下面介绍几个主要的程序。
(1)直线差补程序
线段是航迹仪绘制的基本图形,其他各种曲线都是以线段逼近的。设线段终点到起点坐标长度分量分别为Δx、Δy。令X、Y向步进电动机同时起动,同时停止,分别以均匀速度Vx、Vy运动。这样 ,即 。其中T代表电机运行时间,Vx、Vy分别为X、Y向电机速度,fx、fy分别为运转频率,k为步进电机脉冲当量。
程序设计中,已知X、Y向的增量?驻x、?驻y,选增量大的方向的走步频率为最大走步频率f1=fM,另一方向频率即为f2=fM×Δy/Δx。已知两个方向的走步频率,由接口板计数器的初始频率12MHz可计算出X、Y向的分频值;已知的脉冲当量可求出X、Y向各自需要的走步脉冲数。将分频值、脉冲数及开始/停止等控制信息传送给接口板,使其产生相应频率的脉冲信号,以控制步进电机,即可实现航迹仪的直线差补功能。
(2)CAN总线通讯任务模块
设计中采用PHILIPS公司的CAN总线控制器SJA1000,CAN总线驱动器选用82C250。
综导台将导航数据通过CAN总线发送给航迹仪。通讯模块主要实现对航迹仪数据报文接收、解析等。当有CAN报文到达,SJA1000产生中断释放信号量。设备工作任务中轮询等待信号量接收CAN报文。对接收的CAN报文,首先存入CAN接收数据结构,解析后读入航迹仪数据结构。CAN接收数据结构在接收CAN报文时临时分配。在报文解析过程中,接收的报文通常为BCD码,因此要将其还原为ASCII码。解析过程中,若出现格式错误,则置错误状态标志。
(3)LCD屏显示及触摸程序
本设计采用SHARP公司的144.78mm、LM057QC1T01型STN彩色液晶显示器,其显示格式为320像素(×3)×240行,即显示屏每行有320个像素点,共240行,每个像素点由RGB(红、绿、篮)三种颜色组成。
LCD触摸屏程序主要分为显示任务FsceShow,触摸屏查询任务TouchCheck,触摸屏状态查询任务TouchStateCheck。TouchCheck入口函数Touch_check( )查询触摸屏中断,TouchStateCheckt( )查询触摸屏状态改变,FaceShow执行响应,显示图形。程序框图如图4所示。
(4)位置补偿模块
如前文所述,在步进电机运行完一次由运行到静止的过程后,把目标位置与从数字化板发送的实际位置做差比较得到的位置差量Δd作为一次操作补偿。其特点是在一次绘图过程中有两次电机的开始和停止,补偿速度慢,但所绘的是近似真实的图形。程序框图如图5所示。
传统的航迹仪为开环系统,无检测反馈装置。改进设计中增添了数字化板。这一反馈模块,构成了一套完整的闭环控制系统,增强了稳定性,降低了误差。
数字化板的工作原理:在标绘仪的绘图平板上布上导线形成格栅,把电磁发射线圈安装到绘笔上,此时把线圈圆心和绘笔圆心标定在同一直线上;绘笔在平板上绘图,而线圈不断发射磁场脉冲,导线切割磁场产生感应电流,通过接收电路和信号处理电路得到绘笔在绘图平台上的相对位置(绘笔位置)。把电磁感应定位得到的位置作为绘笔当前真实位置,此位置通过UART口反馈给S3C44B0X控制器。目标位置与该位置进行比较,得到需要的位置差量,计算后作出响应的位置补偿调整。数字化板工作原理如图3所示。
3 航迹仪系统的软件设计
3.1 S3C44B0X主板部分的软件设计
操作系统是控制和管理计算机软硬件资源、合理组织计算机工作流程、方便用户的程序集合。航迹仪功能的完成,很大程度上取决于操作系统软件平台的选择和应用程序的编制。在航迹仪的设计中,软件平台选用基于Tonardo集成开发环境的实时操作系统VxWorks,应用程序则采用VxWorks支持的标准C语言编制。
主板软件系统主要由主程序、命令解释部分、底层部分组成。其中,主程序到命令解释部分的调用通过函数shibie( )进行;命令解释部分到底层部分的调用通过函数zxcb( )进行。
3.1.1 主程序
主程序主要对综导台命令和触摸屏命令进行管理、调度。程序执行过程中查询随机命令数和推位命令数这两个变量。变量小于等于零时,没有综导台命令,程序查询触摸屏有无按下及键值,执行响应操作。当两个变量大于零,说明有了综导台命令,就会自动进入跟踪状态。在跟踪状态,不响应触摸屏命令,控制程序只查询有无随机命令及推位命令,转入响应的命令解释程序。
3.1.2 命令解释部分
命令解释部分主要功能:通过函数shibie( )对每一条命令进行识别及格式检查。对于随机命令和推位命令,每从CAN总线上接收一条命令,相应的命令条数加1。每执行完一条,相应的命令条数减1,同时指向下一条。只要这两个变量不为零,就说明有综导台命令未处理。通过检查随机命令数和推位命令数,即可按先后次序顺次执行所有命令。
本部分中还包括海图坐标转换程序,其主要功能:主板接收装海图命令的同时,会读取CAN总线上由综导台发送的海图信息,包括海图类型(墨卡托或高斯海图)、大小、比例等。程序根据这些信息,将海图上的经纬度值折算成XY轴坐标,以便于底层的直线差补程序将XY坐标量转换成步进电机的走步脉冲数。
3.1.3 底层部分
底层包括所有的画线、写标记符等绘笔执行动作的程序,及与硬件有关的I/O操作子程序、中断服务程序。下面介绍几个主要的程序。
(1)直线差补程序
线段是航迹仪绘制的基本图形,其他各种曲线都是以线段逼近的。设线段终点到起点坐标长度分量分别为Δx、Δy。令X、Y向步进电动机同时起动,同时停止,分别以均匀速度Vx、Vy运动。这样 ,即 。其中T代表电机运行时间,Vx、Vy分别为X、Y向电机速度,fx、fy分别为运转频率,k为步进电机脉冲当量。
程序设计中,已知X、Y向的增量?驻x、?驻y,选增量大的方向的走步频率为最大走步频率f1=fM,另一方向频率即为f2=fM×Δy/Δx。已知两个方向的走步频率,由接口板计数器的初始频率12MHz可计算出X、Y向的分频值;已知的脉冲当量可求出X、Y向各自需要的走步脉冲数。将分频值、脉冲数及开始/停止等控制信息传送给接口板,使其产生相应频率的脉冲信号,以控制步进电机,即可实现航迹仪的直线差补功能。
(2)CAN总线通讯任务模块
设计中采用PHILIPS公司的CAN总线控制器SJA1000,CAN总线驱动器选用82C250。
综导台将导航数据通过CAN总线发送给航迹仪。通讯模块主要实现对航迹仪数据报文接收、解析等。当有CAN报文到达,SJA1000产生中断释放信号量。设备工作任务中轮询等待信号量接收CAN报文。对接收的CAN报文,首先存入CAN接收数据结构,解析后读入航迹仪数据结构。CAN接收数据结构在接收CAN报文时临时分配。在报文解析过程中,接收的报文通常为BCD码,因此要将其还原为ASCII码。解析过程中,若出现格式错误,则置错误状态标志。
(3)LCD屏显示及触摸程序
本设计采用SHARP公司的144.78mm、LM057QC1T01型STN彩色液晶显示器,其显示格式为320像素(×3)×240行,即显示屏每行有320个像素点,共240行,每个像素点由RGB(红、绿、篮)三种颜色组成。
LCD触摸屏程序主要分为显示任务FsceShow,触摸屏查询任务TouchCheck,触摸屏状态查询任务TouchStateCheck。TouchCheck入口函数Touch_check( )查询触摸屏中断,TouchStateCheckt( )查询触摸屏状态改变,FaceShow执行响应,显示图形。程序框图如图4所示。
(4)位置补偿模块
如前文所述,在步进电机运行完一次由运行到静止的过程后,把目标位置与从数字化板发送的实际位置做差比较得到的位置差量Δd作为一次操作补偿。其特点是在一次绘图过程中有两次电机的开始和停止,补偿速度慢,但所绘的是近似真实的图形。程序框图如图5所示。
步进电机 电路 电动机 ARM LCD 触摸屏 FPGA 嵌入式 总线 CAN总线 Xilinx 电流 VxWorks C语言 显示器 VHDL 相关文章:
- 单片机控制步进电机驱动器工作原理(10-19)
- 基于FPGA的步进电机控制器设计(02-12)
- 基于单片机的步进电机控制系统设计(09-13)
- 步进电机及驱动器的正确选择方法(10-01)
- 新的步进电机控制器/驱动器简化步进电机系统设计(10-29)
- 基于Beckhoff嵌入式PC控制器的步进电机群控系统设计(11-10)