1、 一种基于 ARM及 FPGA的新型智能化航迹仪的设计 摘要:实现了一种全集成可变带宽中频宽带低通滤波器,讨论分析了跨导放大器 -电容 (OTA C)连续时间型滤波器的结构、设计和具体实现,使用外部可编程电路对所设计滤波器带宽进行控制,并利用 ADS 软件进行电路设计和仿真验证。仿真结果表明,该滤波器带宽的可调范围为 1 26 MHz,阻带抑制率大于 35 dB,带内波纹小于 0 5 dB,采用 1 8 V电源, TSMC 0 18m CMOS 工艺库仿真,功耗小于 21 mW,频响曲线接近理想状态。关键词: Butte 航迹仪是舰船导航系统中的主要配套设备之一,它能根据陀螺罗经、计程仪提供的
2、航向航程信息或其他导航设备提供的定位信息,在海图上自动连续地绘制出船舶航行的航迹与标记。航迹仪具备的绘制航线导航功能,可使航海人员非常直观的了解到己船位置、偏航程度及未来海域的安全程度。 随着计算机技术的发展,智能化航迹仪的发展趋势是进一步拓宽功能、缩小体积、降低功耗、减少成本、提高可靠性,而传统的航迹仪系统不完全具备上述功能,存在局限性。 1 航迹仪工作原理 航迹仪的工作过程是在计算机控制下进行的。首先,使键盘处于开放 状态,通过移笔键和自检键简单检查绘图功能;然后,由综导显控台装海图并向航迹仪发出装海图命令,由此航迹仪自动进入跟踪状态。船舶航迹的实时标绘是通过实时接收由综导显控台发送的纬度
3、、经度值及各种绘图命令,通过数学模型的解算及直线插补运算后,产生步进电机的控制脉冲序列,经功放电路驱动电动机执行,再经机械转换变成绘笔在图面上运动。 传统的航迹仪系统有一定的局限性,存在有待改进之处: (1)传统的航迹仪系统的接口、控制、传动等部分采用分立式设计,占用了大量的空间,且价格较贵。 (2)随着导航数据信息化程度的提高,设 备间的通讯越发频繁,信息量亦随之增大,使用单一的串行口通讯已不能满足系统要求。(3)航迹仪与综导台使用同一操作界面,缺少独立的人机交互系统。 (4)传统的航迹仪为开环系统,无检测反馈装置,影响了走笔的精度。 (5)接口板的设计动态初始化要求严格,不能完全满足实时性
4、要求。另外,传统航迹仪传动部分的振动及噪音较大,从另一方面影响了绘笔的精度。新型智能化航迹仪的设计对以上问题给出了解决方案。 2 航迹仪系统的硬件设计 2.1 硬件系统的总体构成 航迹仪微机控制系统是以 ARM 处理器 S3C44B0X 模块为中心的控 制系统。系统由以下几部分组成:基于 ARM 处理器 S3C44B0X 的开发板, STN 型 320像素 X240行 LCD彩色液晶触摸屏,基于 FPGA元件 XC2S50的接口板,步进电机驱动及控制电路,步进电动机,数字化板。系统的硬件结构如图 1所示。 2.2 S3C44B0X 主板 传统的航迹仪采用嵌入式 PC/104 模块为核心控制系统
5、。系统的接口、控制、传动等部分采用分立式设计,占用的空间较大,且价格昂贵。因此在改进设计中使用基于 Samsung公司生产的 ARM处理器 S3C44B0X芯片。由于使用基于芯片开发的主板提高设计开发的灵活性,为本系统所专用,因此所用接口、外设均为自主设计的电路,节省了不必要的开销。这种设计提高了系统的响应速度,降低了成本。另外, S3C44B0X 自带 LCD 控制器,能够保证改进设计中触摸屏显示部分的顺利实现。 S3C44B0X 主板主要包括 CPU 模块及其辅助电路、存储器系统模块、通信模块、系统调试模块、人机接口模块及扩展总线部分。 主板外接 CAN 总线控制器及总线驱动器等设备,接收
6、 CAN 总线上由综合导航显控台发送的实时位置、航向 信息;通过人机接口接收到的触摸屏发送的控制信息,经处理后将控制命令(主要是控制脉冲频率、脉冲个数、开始停止等命令)通过扩展 I/O 口发送给接口板,另外,将显示信息发送给 LCD 触摸显示屏。 2.3 XC2S50 接口板 传统航迹仪使用接口板 CDT800,其中包括 Am9513 计数器与PD71055I/O 接口。 CDT800 为成品接口板,其计数器 Am9513 相关资料相对有限,且动态初始化要求严格,在实际应用过程中,对系统资源的占用过大,严重影响系统的实时性。在改进设计中,采用基于 Xilinx 公司生产的 FPGA元件 XC2
7、S50 的接口板。这种设计提高了系统的集成化,保证了实时性,使得硬件的设计开发更加简便。 XC2S50 接口板包括 FPGA 芯片 XC2S50、配置芯片 18V01、输出驱动芯片 SN74LS244 及外部接口电路。其原理图见图 2。 接口板的主要功能是:接收 S3C44B0X 主板通过数据总线发送的数据命令信息 (包括: X、 Y 方向的分频值、脉冲个数、运行方向,以及开始 /终止运行、抬落笔、报警等),经 FPGA 芯片 XC2S50 处理后,转化为相应频率的脉 冲信号;再经输出驱动芯片 SN74LS244,通过接口 HJY 传递给 X、Y向的步进电机驱动器。运行程序通过 JTAG 口或
8、 DOWNLOAD 口烧写入配置芯片 18V01 中。 2.4 步进电机及其驱动器 对于航迹仪系统,标绘精度是极其重要的一项技术指标,而电机及传动机构的精度则对其产生直接影响。 航迹仪控制系统对快速性及定位精度均有很高的要求。考虑到系统是针对数字量及位移的控制系统,因此选用步进电机作为其执行元件。步进电机是一种将电脉冲转换成相应角位移的电机元件,当外加一个脉冲信号于电机的控制装置时,其转 轴就转过一个固定的角度(步距角),即前进了一步。 系统要求绘笔绘制大量细小折线,这就要求电机工作在低频区且需要频繁地执行起动、停止、调速等操作。因此步进电机极易出现低频振荡,产生工作噪音,影响绘笔的稳定性及标
9、绘精度。因此,改进方案采用了先进的细分驱动器,大大降低了低频振荡。 本设计选用 RORZE公司生产的 5相混合式步进电机 M56853D及相应的 5相细分步步进电机驱动器 RD 0534M。 步进电机 M56853D 各技术参数: 最大静转矩 Mk=8.0kgcm ;电流 I=3.5A/相 ;转子转动惯量Jr=0.240gcmS2 ;步距角(整步时) b= 0.72 ;容许径向负载 10.5kg;容许轴向负载 1.5kg;转子齿数 Zr=100。 细分驱动器 RD 0534M 各技术参数: 供电电压 DC18V 40V;细分数选用 m 80;最大响应频率fMAX=500kpps,则可获得最大转
10、速 nMAX=60000/m=750r/min 改进后航迹仪系统电机步距角变为原系统的 1/80,步距分辨率及控制脉冲频率均得到提高。提高后的控制脉冲频率大大超过了自由振动频率f0,从而避免了 系统的低频振荡。 2.5 电磁感应式数字化板 传统的航迹仪为开环系统,无检测反馈装置。改进设计中增添了数字化板。这一反馈模块,构成了一套完整的闭环控制系统,增强了稳定性,降低了误差。 数字化板的工作原理:在标绘仪的绘图平板上布上导线形成格栅,把电磁发射线圈安装到绘笔上,此时把线圈圆心和绘笔圆心标定在同一直线上;绘笔在平板上绘图,而线圈不断发射磁场脉冲,导线切割磁场产生感应电流,通过接收电路和信号处理电路
11、得到绘笔在绘图平台上的相对位置(绘笔位置)。把电磁感应定位得到的位置作为绘笔当前真实位置, 此位置通过 UART 口反馈给 S3C44B0X 控制器。目标位置与该位置进行比较,得到需要的位置差量,计算后作出响应的位置补偿调整。数字化板工作原理如图 3 所示。 3 航迹仪系统的软件设计 3.1 S3C44B0X 主板部分的软件设计 操作系统是控制和管理计算机软硬件资源、合理组织计算机工作流程、方便用户的程序集合。航迹仪功能的完成,很大程度上取决于操作系统软件平台的选择和应用程序的编制。在航迹仪的设计中,软件平台选用基于 Tonardo 集成开发环境的实时操作系统 VxWorks,应用程序则采用V
12、xWorks 支持的标准 C 语言编制。 主板软件系统主要由主程序、命令解释部分、底层部分组成。其中,主程序到命令解释部分的调用通过函数 shibie( )进行;命令解释部分到底层部分的调用通过函数 zxcb( )进行。 3.1.1 主程序 主程序主要对综导台命令和触摸屏命令进行管理、调度。程序执行过程中查询随机命令数和推位命令数这两个变量。变量小于等于零时,没有综导台命令,程序查询触摸屏有无按下及键值,执行响应操作。当两个变量大于零,说明有了综导台命令,就会自动进入跟踪状态 。在跟踪状态,不响应触摸屏命令,控制程序只查询有无随机命令及推位命令,转入响应的命令解释程序。 3.1.2 命令解释部
13、分 命令解释部分主要功能:通过函数 shibie( )对每一条命令进行识别及格式检查。对于随机命令和推位命令,每从 CAN 总线上接收一条命令,相应的命令条数加 1。每执行完一条,相应的命令条数减 1,同时指向下一条。只要这两个变量不为零,就说明有综导台命令未处理。通过检查随机命令数和推位命令数,即可按先后次序顺次执行所有命令。 本部分中还包括海图坐标转换程序,其主要功能:主板接收装海 图命令的同时,会读取 CAN 总线上由综导台发送的海图信息,包括海图类型(墨卡托或高斯海图)、大小、比例等。程序根据这些信息,将海图上的经纬度值折算成 XY 轴坐标,以便于底层的直线差补程序将 XY 坐标量转换
14、成步进电机的走步脉冲数。 3.1.3 底层部分 底层包括所有的画线、写标记符等绘笔执行动作的程序,及与硬件有关的 I/O 操作子程序、中断服务程序。下面介绍几个主要的程序。 (1)直线差补程序 线段是航迹仪绘制的基本图形,其他各种曲线都是以线段逼近的。设线段终点到起点坐标长度分量分别为 x 、 y 。 令 X、 Y 向步进电动机同时起动,同时停止,分别以均匀速度 Vx、 Vy 运动。这样,即。其中 T 代表电机运行时间, Vx、 Vy 分别为 X、 Y向电机速度, fx、 fy 分别为运转频率,k为步进电机脉冲当量。 程序设计中,已知 X、 Y向的增量 ?驻 x、 ?驻 y,选增量大的方向的走
15、步频率为最大走步频率 f1=fM,另一方向频率即为 f2=fMy/x 。已知两个方向的走步频率,由接口板计数器的初始频率 12MHz 可计算出 X、 Y 向的分频值;已知的脉冲当量可求出 X、 Y 向各自需要的走步脉冲数。将分频值、脉冲数及开始 /停止等控制信息传送给接口板, 使其产生相应频率的脉冲信号,以控制步进电机,即可实现航迹仪的直线差补功能。 (2)CAN 总线通讯任务模块 设计中采用 PHILIPS 公司的 CAN 总线控制器 SJA1000, CAN 总线驱动器选用 82C250。 综导台将导航数据通过 CAN 总线发送给航迹仪。通讯模块主要实现对航迹仪数据报文接收、解析等。当有
16、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 作为一