引 言
旋光仪是测定物质旋光度的仪器,通过旋光度的测定,可分析物质的浓度、含量、纯度等,广泛应用于制糖、制药、石油、食品、化工等工业部门及有关高等院校和科研单位。SGW-5多波长自动旋光仪利用平面偏振光和法拉弟磁光效应测量旋光物质在特定检测波长和温度下的旋光度。随着技术的发展和人们对旋光仪功能、性能要求的不断提高,研制了SGW-5多波长自动旋光仪。为了满足多波长自动旋光仪的设计要求,SGW-5采用了带WINCE嵌入式系统平板电脑和STM32单片机结合控制仪器。本文主要探讨基于WINCE嵌入式系统和STM32单片机的软件设计。
1 测量原理
光学零位原理:若使自然光依次经过理想起偏器和检偏器,以起偏器和检偏器的通光方向正交时作为零位,检偏器偏离正交位置的角度与入射检偏器的光强I之间的关系,由马吕斯定律可表示为


根据上述测量原理进行旋光度测定的SGW-5多波长自动旋光仪的仪器结构总框图如图 1所示。
![]() | 图 1 SGW-5结构总框图 Fig. 1 General diagram of SGW-5 Structure |
2 基于仪器控制系统的软件设计 2.1 SGW-5软件的总体设计
根据多波长自动旋光仪多种输入输出的功能要求和实时性很强的性能需求,SGW-5采用了带WINCE嵌入式系统的平板电脑和STM32单片机相结合的硬件系统(SGW-5硬件系统见图 2),并对该系统进行软件设计。
![]() | 图 2 硬件系统框图 Fig. 2 Block diagram of hardware system |
SGW-5软件总体上分平板电脑和STM32两部分设计,平板电脑程序框图见图 3,STM32程序框图见图 4,图 5是平板电脑的主操作界面。从这些图中可以看到:平板电脑的功能主要是输入(按键响应)和输出(显示数据、保存数据、导出文件等)。输入响应可分两个方面:(1)响应触摸屏按键,然后向STM32 发控制命令。主要响应“复测”、“清零”、“温控”及“测量参数”和“校正参数”页面上的按键操作。(2)响应触摸屏按键,然后执行操作。完成“报告”、“记录”、“信息”及“帮助”页面上的功能。包括数据记录的储存、浏览和删除、多种格式文件的导出、中英文信息的手写和软键盘输入、与PC机的通信等,并且在完成这些功能时,不影响测量的正常进行。平板电脑的程序设计满足了用户的功能要求。STM32程序完成的是实时性要求很高的脉冲记数、温度控制、温度读取等操作,这直接决定了SGW-5的示值误差、重复性、控温准确度等性能指标的实现。本文主要讨论STM32、平板电脑和PC机的软件设计。
![]() | 图 3 平板电脑程序框图 Fig. 3 Block diagram of flat computer |
![]() | 图 4 STM32程序框图 Fig. 4 Block diagram of STM32 |
![]() | 图 5 平板电脑主页面 Fig. 5 Main operating page of flat computer |
2.2 SGW-5几个有特点的软件设计 2.2.1 STM32软件设计
STM32软件设计的关键是:(1)脉冲计数不能发生漏记或多记的情况,这是仪器测量是否可靠的基础。因此,STM32的中断资源必须用于脉冲计数,其他的功能不能和脉冲计数争资源。(2)尽量简化仪器结构系统。
DS18B20温度传感器是单总线器件,具有体积小,硬件开销低,抗干扰能力强,精度高的优点。但时序要求高,使用DS18B20温度测量时,一般关闭中断系统,将单片机的所用资源交给它,直到测量完成后才开中断系统允许处理其它事情。由于SGW-5有脉冲计数、控温过程、RS232实时通信等功能,实时性要求都非常高,不可能在DS18B20读温度期间不工作,所以只能采用非中断方式读取DS18B20值完成了功能。采用这种方式的关键在于延时程序和DS18B20初始化程序的编制,SGW-5的程序采用非中断方式成功地读取了多种型号的DS18B20。
SGW-5是多波长旋光仪,和其他旋光仪相比增加了滤光片切换功能。六种波长的滤光片放置在一个盘上,在步进电机带动下自动切换滤光片即切换波长。这种切换装置的特点是:(1)机械机构简便,仅有一个光电传感器通过狭缝定位。(2)滤光片盘惯性较大。实际上,这也是波长切换软件设计的两个关键点,程序框图见图 6[ 2,3 ] 。
![]() | 图 6 步进电机控制程序框图 Fig. 6 Block diagram of step motor control |
通过对光电传感器的反复定位及步进电机不同转速、不同停止时间的控制,程序正确无误地完成了滤光片切换功能。
2.2.2 平板电脑软件设计平板电脑的厂家提供了组态软件,但该组态软件有两个不足:(1)数据类型中没有数组;(2)用组态软件不能保存数据。因此该组态软件的功能显然不能满足仪器设计要求,决定采用NCF编制平板电脑的程序。平板电脑软件设计的关键是显示和键盘响应要快速无误,程序调试要方便。
STM32每20 ms将计数数据传送给平板电脑显示一次,因此,利用文本框显示数据在WINCE系统下会有一种跳跃感。用图片框显示 数据可以达到没有跳跃感,但有内存泄露问题。而. net提供了垃圾收集机制,一般认为不需要考虑内存泄露问题,但实际使用证明至少在WINCE系统中内存泄露是存在的。SGW-5解决内存泄露的方法是:
(1)在全局变量处声明:Dim bmp1 As Bitmap
(2)在循环体外实例化:bmp1=New Bitmap(Pictbox1.Width,Pictbox1.Height)
(3)在循环体内完成数据显示(在字符串str1中):
Dim Myg1 As System.Drawing.Graphics
Dim Wordb As New SolidBrush(MyColor2)
Pictbox1.Image=bmp1
Myg1=Graphics.FromImage(bmp1)
Myg1.Clear(Color.Black)
Myg1.DrawString(str1,myfont1,Wordb,10,10)
Wordb.Dispose()
Myg1.Dispose()
(4)在循环体最后强制回收:
GC.Collect()
经上述过程就能动态、即时、快速地记录整个测量过程。
SGW-5对平板电脑程序调试时采用的方法是:将STM32和PC机的RS232口直接连接,用VS2005下的程序模拟调试,调试完成后稍改动几句语句即能在WINCE上使用。这样调试的好处是避免使用Platform Builder编译环境,避免定制WINCE内核,用这种方法调试NCF程序更方便快速[ 4,5 ]。VS2005下程序调试完成后,对SGW-5仅调整了两处:(1)调用了“coredll.dll” 函数库中的两个函数;(2)增加InputPanel控件调用软键盘。下面例子是调用软键盘并显示在屏幕右下角。

可以看到,经过两处调整,软键盘的选择、调用、隐藏在WINCE系统下很方便。
2.2.3 PC机软件设计SGW-5利用平板电脑的下载线作为向PC机实时上传数据的通讯线,这样就简化了仪器接口和PC机的接线。使单向下载线平板具有了双向数据通讯的功能。上位机通讯部份的程序如下:

这样既达到了实时通讯的效果又简化了仪器系统的设计。
3 结 论
SGW-5多波长自动旋光仪试制完成后各项性能指标[ 6 ]达到设计要求,通过了上海计量测试所的测试。经过设计、生产过程的调试检测,用户的使用,证明SGW-5软件设计是成功的,程序安全可靠,方法实用可行。
| [1] | 冯 林,金 涛,贾宏志,等.新型旋光仪测量原理的研究[J].光学仪器,2009,31(2):9-12. |
| [2] | 王永虹,徐 炜,郝立平.STM32系列ARM Cortex-m3微控制器原理与实践[M].北京:北京航空航天大学出版社,2008. |
| [3] | 李 宁.基于MDK的STM32处理器开发应用[M].北京:北京航空航天大学出版社,2008. |
| [4] | PHUNG S.Windows CE6.0嵌入式高级编程[M].张冬松,陈芳园,译.北京:清华大学出版社,2009. |
| [5] | 高 磊,王洪滨,张 欢.Windows CE系统开发高级编程与典型实例[M].北京:中国电力出版社,2011. |
| [6] | 许海滨,李宏宁,徐林丽,等.旋光检测中角度定位算法[J].光学仪器,2013,35(5):1-6. |
2014, Vol. 36
Issue (3): 247-252







