精密工程测量仪器及数据处理

2017-08-30 00:01周红霞杨文菊
计算机测量与控制 2017年7期
关键词:驱动程序串口键盘

周红霞,梁 娟,杨文菊

(1.新疆工业职业技术学院 能源与电气工程系,乌鲁木齐 830022;2.新疆职业大学 机械电子工程学院,乌鲁木齐 830013)

精密工程测量仪器及数据处理

周红霞1,梁 娟1,杨文菊2

(1.新疆工业职业技术学院 能源与电气工程系,乌鲁木齐 830022;2.新疆职业大学 机械电子工程学院,乌鲁木齐 830013)

针对某精密工程测量仪器中的测控系统采集外设信息、分析处理测量的数据,并集中控制各设备的需求,从系统的整体设计考虑,实现了该系统控制器的硬件电路设计以及驱动程序开发。系统硬件采用ARM9处理器AT91RM9200芯片作为控制器的核心,对控制器进行了各部分电路的设计,同时基于实际需求完成应用程序的设计并对系统的测角误差进行分析,推导其形成机理。为了提高测量精度和方便操作,分析了系统横轴倾斜、竖轴倾斜、视准轴倾斜等引起的测量误差,通过建立数学模型、同时采用电子补偿器对系统进行补偿和校正。

ARM;CAN总线;Linux;测角误差;电子补偿器

0 引言

目前,工程测量仪器的外围设备较多,而已有产品采用星型拓扑,致使接线关系复杂,通信协议繁多,系统的生产和维护十分不便。此外,大量的连线也会导致故障急剧增加,因此需要考虑采用更为合理的拓扑结构,将众多的设备简洁的连接起来。现场总线技术实现了控制层和现场总线设备层之间的数据传输,在保证传输实时性的情况下实现信息的可靠性和开放性。本文将研究现场总线技术应用于测控系统的可行性。设计的测控系统主要用于某测地仪器中,采用寻北仪获取方向角,以北斗用户机等方式获取地理坐标,并利用测距组件获取距离信息和数字测角装置测量角度,实时地向控制终端提供信息。

1 系统总体设计

1.1 系统的功能和设计要求

系统主要用于某测地仪器中,其基本工作原理为:采用寻北仪获取方向角,以北斗等定位方式获取所在位置地理坐标,并利用数字测角测距装置得到角度距离,最后经解算向终端提供目标信息。系统的整体框如图1所示。

图1 系统整体功能框图

根据系统的设计要求,进行硬件系统选型和软件系统选型。系统的具体功能有:

(1)与北斗用户机通信,确定系统所在位置地理坐标;

(2)与寻北仪通信,获取初始北向;

(3)采集测角部件信号,获取对瞄光轴的角度;

(4)与测距组件通信,获取系统至目标的距离;

(5)将角度和距离信息发送至红外热像仪,便于红外热像仪在夜间测量;

(6)结合上述信息完成坐标解算、目标位置参数等的计算,计算完成后将上述信息发送给控制终端;

(7)通过键盘和显示屏进行人机交互;

(8)系统完成操控和数据记录;

(9)完成系统故障与状态的检测。

1.2 系统控制器硬件方案设计

系统组成框图即如图2所示。

图2 系统控制器的组成

1.2.1 AT91RM9200最小系统

处理器最小系统是整个系统控制和数据处理的核心电路模块,这部分电路是AT91RM9200芯片能够正常运行的最小电路系统,包括中央处理AT91RM9200、处理器启动模式选择电路、存储运行时数据的存储器SDRAM、可掉电保存数据的NANDFlash和NorFlash。

1.2.2 电源模块

通过24 V直流电源或电源适配器接入系统。考虑到体积和成本等方面的原因,因此,系统选择低压差线性稳压器(LDO型)电源产生I/O电压3.3 V、利用开关电源产生串口的5 V以及光电编码器的12 V。

1.2.3 复位模块

AT91RM9200中稳定的Reset信号由该系统中的复位电路所提供。设计采用的是常见RC复位电路,该电路完全满足系统高可靠的复位要求。

1.2.4 串口扩展模块

系统需要5个串口分别与测距通信组件、定位装置、定向装置、红外热像仪和控制终端通信,但是AT91RM9200除了一个调试用串口Debug UART,最多只能提供4个独立的串口控制器。因此,本系统采用串口扩展芯片来扩展串口。

本系统利用16C554芯片进行串口扩展,1片16C554可方便的扩展成四个串行口,并利用三八译码器实现四个串口的地址译码选通。在PC主机端,设计开发了Linux设备驱动程序,,从而使得应用程序能以访问处理器自带串口的方式访问扩展串口。

1.2.5 CAN总线模块

系统考虑选择CAN总线的拓扑结构来提高其可靠性。利用AT91RM9200的外部总线扩展CAN总线接口芯片,并通过CAN总线收发器与物理总线相连,实现与外围设备的通信。

CAN控制器必须通过CAN总线收发器与物理总线相连,本文选用PCA82C250为CAN控制器与物理总线之间的接口。它主要为CAN总线高速通讯(高达1Mbps)应用而设计,与CAN网络的CANH和CANL实现物理相连,使得各节点能够与网络进行良好的交互。用差分接收,降低射频干扰(RFI),能够抗宽范围的共模干扰,抗电磁干扰(EMI),未上电的节点对总线无影响。

为了进一步提高抗干扰的能力,采用6N137高速光偶对总线信号进行隔离。由于光耦部分的电路所采用的两个电源必须完全隔离,否则采用光耦也就失去了意义,所以采用5-5V的电源隔离模块(B0505S)将CAN总线部分的电源和地线与其它数字电路的电源和地线隔离,分别给6N137两端供电。

1.2.6 并口扩展模块

由于AT91RM9200本身的I/O口有限,在与光编通信上,采用通用的82C55配合CPLD进行并口的扩充,使得AT91RM9200的I/O资源得到合理充分的利用。扩展出来的并口用来连接光电编码器,以实现方位信息采集。

系统需要外接两个15位并行数据输入的设备,系统中采用2片82C55实现两个并行输入设备信号的分时读入。而在AT91RM9200一侧,则分配8位数据线DB[7:0]分时读入2片82C55的数据,从而达到了分时读入高低向和水平向2个并行输入设备信息的目的。因为处理器与并行输入设备数据传递的速度远远大于并行输入设备的机械角速度,所以,这样分时读取数据的方法完全满足并行输入设备测量的实时性。

1.2.7 键盘接口模块

键盘是系统在测量时输入操作指令或数据的硬件,系统采用矩阵式接口设计,既能节约系统资源,同时降低系统成本。即使用AT91RM9200的通用GPIO口作为矩阵键盘的硬件接口,编写相应的驱动程序以实现键盘输入功能。

AT91RM9200的PB0到PB12作为与矩阵键盘的接口。其中PB[2:0]成为一组,作为3*10矩阵键盘的行电路RK[3:1];PB[12:3]成为一组,作为3*10矩阵键盘的列电路SK[10:1],与键盘的列电路和行电路相连接。按键的识别通常采用中断或轮询的方式获取,本设计中使用轮询的方式识别按键,当系统工作时,键盘驱动程序定时查询键盘。当有键按下时,根据电平值判断按下键位所在的行和列,据此生成键盘扫描值送给应用程序处理,从而实现按键输入的功能。

1.2.8 显示器接口模块

在业界被公认的能够代替液晶的显示技术是OLED技术,该技术显示屏的视角特性、发光亮度、色彩度等许多方面都优于液晶显示器。因此选用OLED显示屏作为系统的显示终端,相应的接口电路使用AT91RM9200的通用GPIO口。接口电路如图3所示。

图3 显示屏与AT91RM9200接口电路

图3中3.3 V接显示屏的逻辑电源VDD管脚,PA[4:0]接显示屏的控制引脚,PB[29:22]接显示屏的八位数据线D[7:0]。

1.3 系统控制器驱动程序方案设计

Linux对外围设备的管理继承了UNIX的风格,即将外设对象化、文件化,像操作文件一样来操作外围设备,在Linux系统的/dev目录下的每一个文件都代表连接在外围的一个设备。在Linux下对外设进行访问非常简单,直接对/dev目录下相应的设备文件进行读写就可以达到与读写设备端口相同的效果。Linux主要是通过设备文件的设备号来将设备文件与其对应的设备驱动程序关联起来。Linux操作系统源码中有相当大的部分就是各种通用设备的驱动程序,比如本系统控制器用到的以太网Linux系统就有很好的支持,但一些为特定系统定制的设备接口的驱动则需要单独编写,本系统中这类设备包括串口扩展接口、键盘接口、显示屏接口、并行输入设备接口和CAN总线接口。

1.4 系统应用程序方案设计

系统应用程序的主要功能是控制和协调系统各个设备,完成系统全部工作流程。应用程序是整个系统的核心和灵魂,因此程序的性能和研制质量是保证系统性能的前提条件。

控制器从北斗或其他方式获取控制器所在位置信息、从寻北仪获取初始北向信息、从测角装置获取对瞄光轴的角度信息、从测距组件获取控制器至目标的距离信息;结合这些信息需要完成目标位置参数、光轴角度等的计算,并将上述信息发送到终端;另外控制器能贮存相关参数,进行相关外设的故障诊断。

根据控制器功能和开发原则,应用层软件包括以下几个功能模块。

1.4.1 主模块

该模块是系统应用程序的核心模块,主要完成对用户命令的接收,实现对软件各模块的监控、调用,最终计算结果发送给控制终端。

1.4.2 定位模块

通过各种方式获取当前控制器坐标。

1.4.3 定向模块

通过方向测量装置获取控制器与目标间对瞄轴线的当前方位。

1.4.4 测距模块

和目标进行对瞄,获取对瞄轴线的高低方位角和水平方位角,以及控制器和目标的距离,为目标位置坐标解算做准备,同时将这些信息发送至红外装置,便于夜间测量。

1.4.5 发送模块

通过采集信息解算目标的位置信息,并按照一定的协议通过串口将位置、角度和方位信息发送给控制终端。

1.4.6 键盘和显示模块

键盘模块向下获取驱动程序得到的键值,根据集成控制系统软件的需要传递给顶层程序。显示屏模块是应用程序和OLED屏驱动程序的接口,为应用程序提供16*8和16*16象素的汉字和符号显示服务。

1.5 系统误差分析及其校正方案

系统能够正确测得水平方向值和垂直方向值的重要条件是视准轴、横轴、竖轴之间在测量时,应满足一定的几何关系,即视准轴与横轴正交、横轴水平、竖轴与铅垂线一致。当这些关系不能满足时,将分别引起视准轴误差、横轴倾斜误差和竖轴倾斜误差。

基于系统轴系误差对角度测量的影响规律,建立数学模型,分析研究系统的补偿与修正方法。根据电子补偿器的工作原理,结合系统的设计,对系统进行水平度盘和垂直度盘读数补偿、改正。

2 系统误差分析及其校正

2.1 电子改正

2.2 电子校正

由于系统对横轴倾斜也需要电子补偿技术,其补偿原理就是Hz=Hz0+acotZ,这样经电子补偿后仪器示值就直接是Hz和Z,而不再是Hz0和Z0了。由于电子补偿的计算公式是Hz=Hz0+acotZ,在系统的内存单元中存入准确的横轴倾斜误差值a是十分有必要的。

在系统中,也有相应的程序将横轴倾斜误差值a的获取以及存入完成实现。根据横轴倾斜的误差对水平正倒镜差Cr的影响公式Ch=-acotZ,水平正倒镜差值与天顶距有关。因此电子校正的步骤为:将校正横轴误差值的相关程序打开,对不同高低的两个目标按照相应步骤各做一次正倒镜观测,系统会根据两个不同的Cr近似计算出横轴误差值a并自动存入内存。之所以需要两个不同高低的目标点是因为还要把视准轴误差对水平正倒镜差的影响Cs区分出来。

2.3 电子补偿

通过对仪器整平精度的提高能够将竖轴倾斜误差的影响降低。不过较高的要求不能通过传统的水泡整平技术来实现,人眼的分辨力和人手的调整也都难以实现。

随着电子技术的进步,将电子补偿器应用到仪器制造上,其意义在于可以减轻测量人员的工作量并提高测量精度,竖轴的倾斜状态αx、αy也可以实现实时测量。不过仪器中使用电子补偿器的目的并不是为了实现生硬的整平,而是为了实现仪器竖轴在倾斜状态下的误差补偿,以保证现测值并不因仪器竖轴倾斜而降低。

竖轴电子补偿计算程序是根据电子补偿器测得的αx、αy值和公式ΔHz=ay·cotZ、ΔZ=αx来实现的,这样经过电子补偿后仪器示值就直接是Hz和Z,而不再是Hz0和Z0了。

3 实验及分析

3.1 控制器硬件调试

首先将PCB板的电源模块部分焊接好,采用+24 V外接方式供电,无误后连接到板子上,用示波器测试系统的电源芯片输出。各输出电压正常、波形平稳则证明电源电路供电正常。

将最小系统连接到控制器单板上,检查无误后将时钟电路模块、复位电路模块焊接到单板上。用示波器观察振荡器的振荡频率32 kHz左右,由此证明时钟电路正常。

在查看复位电路的过程中,未按复位按钮时RESET端输出3.3 V高电平,不过在复位按钮按下之后变为低电平,想要恢复到高电平只需松开按钮,即复位电路正常。

3.2 控制器驱动程序调试

此部分主要是通过编写相应设备的测试程序来对设备操作,观察设备对用户操作的响应来判断对应外设接口是否工作正常。需要调试的外设接口主要是串口、CAN总线、并口、显示屏和键盘。

3.2.1 串口扩展驱动程序调试

此部分串口包括除调试串口之外的五个RS232串口,调试方法是通过PC上的串口助手软件模拟外设与本系统通信。

调试时串口底层相应程序出现异常:在/dev目录下储存着Linux中的串口设备文件,在开始运行驱动程序的过程中,在/dev目录下设备名无法建立,经分析调试排除了异常,最终实现了外设与系统之间的可靠通信。

3.2.2 CAN总线驱动程序调试

因为CAN总线设备驱动程序的接口是自己定义的,包括了一些非标准的ioctl,所以为了测试上述的驱动程序编写了一个专用的测试程序。经测试,CAN总线能够实现对标准帧和扩展帧,数据帧和远程帧等不同帧的通信功能。

3.2.3 并口驱动程序调试

系统并口驱动程序的调试方式是通过水平向光编和垂直向光编与本系统通信,在调试过程中,出现了无法响应光编的数据动态变化的异常现象,经进一步完善驱动程序后,系统实现了与光编的正常通信,并能实时地显示角度信息。

3.2.4 键盘驱动程序调试

键盘驱动程序是与应用程序的联调,通过运行应用程序,获取按键值的功能都在硬件平台上实现。

3.2.5 OLED显示屏驱动程序调试

OLED显示屏驱动程序的调试是结合字库函数编写测试程序,其中使用OLED_ioctl()函数进行显示中文或是英文字母的选择,并且设定当前的输出地址,接着使用OLED_write()函数将目标汉字或英文字母在字库中对应的数组结构写入OLED屏显示RAM,测试结果说明OLED屏能够正常显示。

3.3 系统应用程序调试

为了验证应用程序的可行性,编写的应用程序先在PC104嵌入式控制器上调试,今后近一步完善后可以直接在ARM嵌入式控制器上运行。定位模块中主要调试北斗通信,首先通过串口助手根据特定协议编写的应用程序来模拟实现,之后与实际北斗设备进行通信,与北斗设备通信界面如图4所示。

图4 与北斗设备通信界面

同样,定向模块、测距模块和发送模块也都是先用相应的串口模拟软件来模拟实现,再与实际的设备进行通信。通过对各个模块的调试及其整个应用程序在PC104上联调表明,整个软件系统达到了预期的功能目标。

3.4 系统测角误差测试

分别对系统未作电子校正和已作电子校正两种情况进行测试,具体方法是系统在盘左位自上而下获得几组垂直读数和水平读数,接着盘右位自上而下对应位置获得几组垂直读数和水平读数,测试数据见表1和表2。

表1 系统未作电子补偿水平误差测试表

表2 系统已作电子补偿水平误差测试表

根据表中的数据可以看出当望远镜从垂直方向向水平方向转动,转动的角度越大即Z值越大,水平角的误差就越小。对系统进行电子校正后,系统虽然还存在一定的误差,但精度得到了很大的提高。

4 结论

本文针对某测地仪器中的测控系统采集外设信息,分析处理测量的数据,并集中控制各设备的需求,从系统的整体设计考虑,实现了该系统控制器的硬件电路设计以及驱动程序开发。通过对嵌入式ARM平台的应用实现系统控制器的设计,在功耗、成本控制、易用性、可靠性上优于原PC104平台的系统控制器,实现了系统控制器的小型化、集成化、智能化。同时嵌入式系统本身的可移植特点,使得只要根据系统的特殊要求,做较少的硬件改动即可应用到新的系统中。

针对现有系统外围设备较多,接线关系复杂,通信协议繁多,系统的生产和维护都十分不便的缺点,本系统采用更为合理的CAN总线结构,简便的链接各设备。该结构能够达到控制层和现场总线设备层间实现数据传输的目的,一方面保证了信息的开放性以及可靠性,另一方面保证了传输信息的实时性。为了使系统的测角精度得到有效保证,采用电子补偿装置和专门的方法对系统的误差进行校正和补偿,在控制器中潜入了数据处理和信息融合技术,使得系统的测量误差相对减少,而系统的可靠性得以增加。

[1] 张学珍,郭长和,姚化胜.浅析水准测量误差来源及控制措施[J].科技资讯,2015(14):68-68.

[2] 孙艳崇.经纬仪视准轴误差检验的几种方法及其区别[J].价值工程,2014(3):70-71.

[3] 张 昊,崔永俊,沈三民,等.基于CAN总线的传感器网络设计[J].计算机测量与控制,2013,21(11).

[4] 王雪荣.全站仪三轴误差检验探讨分析[J].科技展望,2016,26(28).

[5] 陈 瑛,宋俊磊,王典洪.CAN总线在野外地震数据传输中的应用[J].电子技术应用,2013,39(9):34-37.

[6] 吴益飞,王志宏,陈孟驰,等.基于CAN总线的一体化角位置检测装置设计与实现[J].计算机测量与控制,2013,21(9):2365-2368.

[7] 韩 彬.一种基于CAN总线的高精有度角度变送器[J].现代电子技术,2014,37;419(12):103-106.

[8] 王旭东,朱蕴璞.基于ARM多处理器的CAN总线分布式控制系统设计[J].国外电子测量技术,2015(5):52-55.

Precision Engineering Measurement Instrument and Data Processing

Zhou Hongxia1, Liang Juan1, Yang Wenju2

(1.Department of energy and electrical engineering&XinJiang Industrial Vocational and Technical College,Urumqi 830022,China; 2.School of Mechatronics Engineering,Xinjiang Vocational University, Urumqi 830013,China)

According to the measurement and control system of collecting peripheral information in a measuring instrument, measuring data analysis and processing, and centralized control of the equipment needs to consider from the overall design of the system, the hardware circuit design of the system controller and driver development. At the same time, the application program of the system is designed according to the actual demand, and the angle error of the system is analyzed. In order to facilitate the operation and improve the measurement accuracy, the system of collimation axis tilt angle error, horizontal axis tilt and vertical axis tilt caused are analyzed, a mathematical model is set up and solved, while the use of electronic compensator and compensate the system.

ARM; CAN Bus; Linux; Angular error; Electronic compensator

2017-03-10;

2017-03-31。

周红霞(1972-)女,甘肃武威人,讲师,主要从事测量工程方向的研究。

1671-4598(2017)07-0320-05

10.16526/j.cnki.11-4762/tp.2017.07.080

TM417

A

猜你喜欢
驱动程序串口键盘
你知道手机拨号键盘上为什么要有*和#吗?
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
键盘猫
浅谈AB PLC串口跟RFID传感器的通讯应用
Cлово месяца
ikbc R300机械键盘
阻止Windows Update更新驱动程序
计算机硬件设备驱动程序分析
船舶电子设备串口数据的软件共享方法
串口技术的实物调试和虚拟仿真联合教学模式