|
4 系统软件设计 下位机软件用汇编语言编写,主要包括检测和通信程序、显示和中断程序;上位机软件含界面测控程序、通信程序和误差修正程序。 (1)检测、通信程序 系统启动后先对数据存储单元清零,并使计数器开始计数,计数期间反复调用显示程序,当计数达到设定的时间后程序自动转入中断服务程序,对检测的数据进行处理,并判别是否给出报警信号,然后开始下一轮计数。 下位机平时处于数据采集状态,每次将采集的动态最大侧滑量和内外滑标志保存在单片机内数据缓冲区的两个存储单元中。当汽车通过滑板后,存储单元中的数据将不再变化,单片机通过检测存储单元中的数据变化情况判断汽车通过后,自动转入通信程序将检测数据传给上位机。为提高系统工作效率,通信采用中断与查询相结合的方式编程,单片机通信流程图机先将内(外)滑标志作为握手信号传给上位机申请中断,并检测串口等待微机回答,若回答正确,则向上位机发送有效数据,若在一定时间内未收到上位机的正确回答,则清数据缓冲区,返回数据采集状态。单片机检测通信流程见图4—1。 (2)显示和中断程序 显示程序先将二进制数码转换成BCD码,然后分别将个、十、百位的数据送P1.6~P1.4口,使每位数据轮流显示600 s,同时给出测滑方向显示信号。 中断服务程序将复位后第一次得到的频率作为中心频率送入指定单元保存,其后每次测得的频率都与中心频率比较,结果大于零置外滑标志,否则置内滑标志,并将最大的比较结果送数据缓冲区保存。中断服务程序流程如图4—2所示。 (3)上位机的编程[2] 在Windows环境下,上位机的操作系统完全接管了各种硬件资源,一般不允许用户直接控制串行口的中断管理。VB为用户提供了一个进行计算机串口通信管理的MScomm控件,该控件可实现串行通信的数据发送和接收,并对串口状态及串口通信的信息格式和协议进行设置。在发送或接收数据过程中,MScomm自动触发ONcomm事件,用户可通过编程访问CommEvent属性,了解通信事件的类型,并添加处理代码,进行串口的相关处理。根据单片机的数据传送方式,上位机接收侧滑标志后,先将其保存,再向下位机发送握手回答标志,并等待100 ms后取走串口输入缓冲器中的数据。 为提高检测精度,我们在上位机利用高级语言编程对位移的非线性误差进行了有效补偿。根据实验数据[3]可得传感器输出频率与探头位移量的非线性关系曲线,从中点将该曲线分为两段,并采用“最小二乘法”求得两条拟合直线以替代非线性曲线,这样可使拟合误差进一步减小。程序由检测数据的内、外滑标志先判定那条拟合直线取代非线性曲线,然后按相应的直线方程求出补偿后的位移量x’,上位机误差处理流程如图4—3所示。 5 结束语 系统硬件设计实现了数据的快速采集,软件设计则保证了测量结果的高精度,系统的满量程离散误差和中心频率的随机误差可通过软件消除,量化误差可通过倍频技术而减小,传感器的非线性误差可控制在0.01 mm以下,频漂误差及动态误差可分别控制在0.003和0.05 mm/m以下,实验表明,系统总误差小于0.114 mm/m,完全满足侧滑仪设计要求。系统还可通过上位机设置相关程序参数,以适用于不同规格(0.5 m、0.8 m、1 m)的侧滑台。
|
|