基于μC/OS-Ⅲ和LwIP时栅位移传感器多模式网络接口设计

2019-09-19 07:44
测控技术 2019年7期
关键词:以太网嵌入式芯片

(重庆理工大学 机械检测技术与装备教育部工程研究中心,重庆 400054)

互联网技术日新月异,各类家电家具、仪器仪表均顺应互联网发展潮流,进军网络化、智能化方向。网络连接是实现各类设备互联、数据传输、信息共享、远程监控等功能的必需环节。另外,在互联网背景下,嵌入式系统技术的快速发展带动了各类嵌入式设备网络互连与协同工作的发展潮流,例如,传感器无线化、家电家居智能化、仪器仪表智能化。这些设备所采用网络连接协议中,TCP/IP协议是主流,其主要原因在于嵌入式系统结合TCP/IP协议不仅具有可实现系统与网络直连的功能,而且无需额外的网管设备,可减少入网环节,提高嵌入式设备实现通信的效率[1-3]。其中,在实现设备或系统网络连接的过程中,高效稳定的网络协议是保证系统设备性能的关键。嵌入式系统结合网络功能是嵌入式系统的发展趋势,这种类型的系统具有更为强大的功能,应用领域也越来越广。但是,大多数嵌入式设备使用的是经济型处理器,网络连接、数据传输效率等受限于内存和速度,可用资源有限进一步造成无法完全实现所有的TCP/IP协议,同时也不是必需的。LwIP是一种小型开源的TCP/IP协议栈,任何人都可以使用,可以在裸机环境中运行,它可以轻松移植到多任务操作系统,不仅能够实现TCP的主要功能,而且具有占用内存小的优点,适合在嵌入式系统中使用。μC/OS-Ⅲ则是专为嵌入式系统应用设计的基于优先级的抢先式多任务实时操作系统。开源代码、良好的实时性能和便携式切割包括任务管理和调度、任务之间的同步和通信、实现中断时钟管理和内存管理等任务,多年的实际应用验证了其稳定性和可靠性。

时栅位移传感器不同于传统的栅式位移传感器(如光栅、磁栅等),能够克服高精度机械刻线加工误差大、难度大,及生产成本高等缺点,可实现位移量的高精度测量[4-6]。然而,随着时栅位移传感器的产业化和市场需求的增加,时栅需要向网络化、智能化方向转型发展以满足市场需求,进一步稳固且拓展自身市场。在此过程中,以现代通信网络技术、智能传感技术、仪器仪表测控技术等为一体的新型时栅位移传感器顺势而生,该类型传感器具有高效、实时、稳定的传感器动态性能。基于此,在原理上沿袭以时间测量空间的思想,以ARM微处理器STM32F407和以太网、Wi-Fi、4G接口为平台,采用μC/OS-Ⅲ嵌入式操作系统和LwIP协议,使用协议栈提供的三个应用程序接口,实现嵌入式设备的网络通信功能,最终实现时栅传感器位移信息输出、传感器智能化联网、远程故障诊断、在线校正和大数据采集[7-8]。

1 时栅位移传感器的工作原理

时间位移传感器的工作原理如图1所示。三相交流电流以时间120°,分别送入空间对称的三相交流绕组,线圈架的中心放置Pa作为动测头,Pb作为固定定测头嵌入线圈架。根据电磁感应原理,移动动测头,则在定测头会产生相应的感应电动势:

(1)

式中,FX1为旋转磁场幅值,X=A,B,C。根据感应电动势叠加原理,三相感应电动势可求和得出基波,方程为

f=fA1+fB1+fC1=F1sin(ωt-α)

(2)

式中,F1为叠加成的空间磁场幅值的大小;ω为激励电流频率的大小;α为动测头由初始位置运动到所处位置角度的大小。

动测头和定测头都输出带有相位的行波信号,行波信号经过时栅信号处理系统可以得出动测头的位移信息。时栅信号处理系统对行波信号的处理过程包括:首先将行波信号经过放大、低通滤波以及过零比较电路输出方波信号,该方波信号和同频参考信号相减得出相位差,再对两路方波信号的上升沿进行捕获,经过高频时钟脉冲插补最终可分别得到时间Ti、T0以及信号周期T。经过角位移解算,即可得出时栅角位移θ的大小。其中,W表示时栅对极的节距值。

θ=(Ti-T0)/T×W

(3)

图1 时栅位移传感器原理图

2 系统方案设计

笔者设计了一种高速率、高精度和智能化的时栅系统。该系统具有双CPU,分别为STM32F4微控制器和DSP数字信号处理器。其中,STM32F4芯片负责控制整个系统的运行以及与外部的通信;DSP芯片完成时栅数据采集及分析处理、误差修正等功能。不同芯片要求的工作电压有所差异,整个系统涉及不同大小的工作电压,这些电压由专门的电源电路模块提供,在电压稳定的条件下,系统进行初始化工作。此后由STM32F4微控制器向AD9959输入控制字输出两路正交激励信号。该信号功率小,需要进行功率放大等处理以便于驱动时栅传感器位移测量系统。将满足需求的两路正交激励信号通入对应的激励绕组中,动测头运动后感应线圈输出相应的感应信号,感应信号经过放大、滤波、隔离、整形等环节后输入DSP中进行后续的数据采集及处理。这一环节若有误差产生可反馈输出到STM32F4进一步控制传感器感应信号传输及处理,对误差进行修正处理,同时该过程中的误差数据可通过Ethernet、Wi-Fi、4G三种网络接口输出,同步传输至系统终端显示,便于实验人员对数据进行相关分析。整个系统可以实现对时栅测量系统各模块的监控,并且可以为相关人员提供数据分析支撑,终端部分可以对时栅测量过程中所产生的各项数据进行分析诊断,实现了时栅的网络化和智能化。系统总体设计框图如图2所示。

3 硬件设计

3.1 信号处理模块

信号贯穿整个时栅测量、信号处理系统,具体包括时栅激励信号、时栅感应信号、时栅信号处理系统中各环节的输出输入信号。信号传输和处理的过程中,信号误差不可避免,并且信号处理和传输环节的增加会增加信号产生误差的可能性。为了实时掌握时栅系统各环节信号的状态、分析信号的误差来源以及高效完成信号误差修正,最终达到精确测量位移的目的。采用分环节采集信号的方法,将信号传递的系统分解为具体环节,对每环节都进行数据实时采集,实时掌握信号的变化情况。当信号发生变化产生误差时,可以对所采集的信号进行分析,环环相扣,分析误差来源,可精确定位信号发生了偏差时所处环节。误差定位完成后,可随之有针对性地进行误差修正。实时监控信号数据、定位误差位置,及时完成修正,同时把各个环节的数据采集发送到上位机,对其大数据分析,实时掌握整个时栅系统的运行情况,这些可在很大程度上提高时栅测量位移的效率和精度。信号处理框图如图3所示。

图3 信号处理框图

3.2 以太网模块

以太网模块的接口电路采用Microchip公司的ENC28J60芯片,该芯片功能强大、扩展功能多。例如:支持一个内部的DMA控制器,具有独立的外设接口的以太网控制器[7-8]。使用该芯片可以解决因数据包过大而引起的数据丢失的问题,并且数据包传输速率大,可达10 MB/s。另外由于它满足全部IEEE 802.3网络协议标准,还具有为任何设备提供以太网接口控制器的强大功能。

3.3 Wi-Fi模块

Wi-Fi接口芯片采用上海庆科公司开发的高速率串口ESP8266,该芯片尤其适用于串口设备的无线网络,在集成了TCP/IP协议栈和Wi-Fi驱动的基础上做到了高速率传输[9-10]。STM32F4芯片和一个使用SDIO接口的Wi-Fi芯片是Wi-Fi模块的主体,STM32芯片的Flash存储Wi-Fi驱动程序。外部设备对数据通信的控制则可以通过操作UATA接口实现。

3.4 4G模块

在4G通信接口设计中,采用的是SIMCOM公司生产的工业级双频芯片SIM900,该芯片具有功耗低、供电范围宽(3.2~4.8 V)、支持回声抑制算法等特点,性价比很高。RS232以及LVTTL串口,带硬件流控制使得该芯片可十分方便、快捷地与所开发产品进行连接、调试,电脑输出电压满足其工作要求,也可与单片机等实现直接连接,使用语音、短信、数据传输功能[9-10]。这些功能使得4G通信模块能够很好地与时栅系统和外部中断进行连接,实现GPRS传输、语音通话和短信通信等功能。

4 软件设计

4.1 μC/OS-Ⅲ操作系统的移植

实时嵌入式操作系统μC/OS-Ⅲ包括资源同步、资源管理和任务间相互通信等功能,最多可以支持64个任务,且对所运行任务进行优先级设置,方便用户调用[11-12]。同时,它还能够实时测量其操作性能,能够等待多个信号量和消息队列,任务之间的通信可采用信号量和消息邮箱方式完成,而这些功能在其他实时内核中是不存在的。

处理器STM32F407在移植μC/OS-Ⅲ源代码时,有些内容需要修改,有些则保留。对于不需要修改的文件,可以通过在项目目录中添加相应文件实现。而对于需要修改源代码的文件(OS_CPU.C、COS_CPU.H及OS_CPU_A.ASM),具体情况是:① OS_CPU.C文件中需要修改OSTaskStkInit函数来保证任务跳转到正确执行语句的地方,采用入口地址对LR和PC进行初始化;② OS_CPU.H头文件中修改与编译器相关的数据类型以及改写与处理器相关的少量代码段;③ OS_CPU_A.ASM汇编文件中有4个函数需要修改OSSstartHighRdy、OSCtxSw、OSIntCtxSw和OSTickISR。在操作系统开始计划任务之前,OSSstartHighRdy函数仅执行一次。OSCtxSW是任务切换函数。汇编函数OSIntCtxSW是一个中断级任务切换功能。系统时钟节拍的中断服务函数是OSTickISR。

4.2 LwIP协议栈的移植

LwIP协议是由Adam Dunkels开发的小型开放源码TCP/IP协议栈,操作系统不是其必要的运行条件,适合在嵌入式系统中使用[13]。LwIP需要修改与操作系统相关的部分,由于时栅信息是用信号量通信,则需要修改sys_arch.h、sys_arch.c中参数,来实现信号量结构体sys_sem_t和相关的信号量,包括sys_sem_new( )、sys_sem_free( )、sys_sem_signal( )、sys_arch_sem_wait( )等函数,这样形成信号量的建立、释放、发送和等待接收功能。与CPU或编译器相关的部分LwIP的修改中,还需要修改/include/arch目录下cc.h和lwipopts.h文件中的有关参数,使得数据长度、字的高低位顺序等的宏定义发生相应的变化。netconn API应用程序设计流程图如图4所示。

图4 netconn API应用程序设计

4.3 以太网模块设计

关于以太网模块设计,主要介绍ENC28J60接收数据的过程。ENC28J60首先需要进行初始化,在初始化完成之后再发送和接收MAC帧来实现数据的通信。

具体过程如下:首先需要设置接收缓冲器的指针,打开数据包接收功能;缓冲区自动接收数据包,在此过程中会过滤不符合数据帧格式的数据包;解析数据包。中断服务程序则用于对数据报头进行分析,对不同类型的数据包(ARP包、ICMP包、UDP包)分别进行处理,然后读取数据包数据。ENC28J60的接收数据过程,如图5所示。

4.4 Wi-Fi模块设计

Wi-Fi模块的主要工作流程如下:首先检测station的连接状态,若没有连接成功,则一直循环查询station状态,若连接成功,成功状态需要等待2s左右再设置DHCP网络协议。其次就是检测配置转态,若配置失败,则会一直循环查询其配置状态,直到配置成功后再设置espconn参数。参数配置完成之后对回调函数进行注册连接,建立TCP侦听,查询是否有数据[13-14]。

图5 ENC28J60接收数据包流程图

服务器在侦听到客户端发送数据状态,会立即建立和客户端之间的连接,并且开始接收其发送的数据,利用程序对所接收数据进行分类,判断是指令型数据还是信息类数据。发送指令型数据用于控制,利用Flash存储信息类数据。ESP8266工作处理函数流程图,如图6所示。

4.5 4G模块设计

关于4G模块,SIM900模块工作时需要先进行相关参数的初始化,然后通过采用USART串口实现波特率和STM32F4之间的同步。接下来进行SIM卡的注册,并且判断是否注册成功,一直查询注册状态直到注

图6 ESP8266工作处理函数流程图

册成功后才停止。注册成功后进入设置该芯片环节,芯片在被设置为休眠模式时可以有2种数据传输选择,分别为:TCP协议模式和短信模式。不同模式的数据传输方式不同,短信模式下工作流程为:首先设置为文本模式和设置接收号码,然后等待是否有数据要发送,若有数据发送则读取存储器中的数据,将信息发送给接收号码。则TCP协议模式的工作方式为:首先通过TCP协议的三次握手的方式,连接上时栅监控系统的端口号和IP地址。等待数据,若有数据需要进行发送,则进入存储器读取数据,并以GPRS网络进行发送,否则进入休眠模式。SIM900软件控制流程图,如图7所示。

图7 SIM900软件控制流程图

5 系统测试

图8为时栅多模式网络接口测试平台,主要包括:① 时栅传感器,测量位移;② 光栅,测量位移,结果作为真值;③ 大理石实验台,放置各实验装置,保证平稳性;④ 步进电机,精准控制光栅和时栅进行匀速运动,保证系统正常运行;⑤ 信号处理板,包括STM32F07ZGT6主控制电路、以太网、Wi-Fi、4G通信接口电路;⑥ 控制系统电气箱,为整个系统提供电源;⑦ 上位机界面,实时显示信号采集系统传输数据,信号曲线、传感器运行状态、历史数据等。

图8 时栅多模式网络接口测试平台

图9为时栅系统的服务器接收窗口,在PC机上显示。数据传输主要通过以太网或Wi-Fi接口实现,同时,也可将手机终端通过4G或者Wi-Fi接收到的数据传输给PC机进行显示处理,这种多样化的数据传输方式构成了整个系统多种网络模式数据传输模式。

图9 服务器接收窗口

该模式可解决由于不在测量现场或者不具备使用PC机的条件下而无法获悉时栅系统运行状态的难题。同时,PC机可存储较为大量的时栅信号等数据,可以作为各个时栅传感器运行过程数据的存储站,为实时掌握时栅运行状态、及时修正信号误差、收集时栅运行数据等提供良好条件。应了解每台时栅传感器的运行特性,有针对性地采用不同的故障诊断的方法,测试修正幅值、相位和频率,保证每台时栅都能够正常运行。幅值测试结果如图10所示,整个系统误差曲线如图11所示,误差范围为±2″。

图10 幅值测试数据

图11 系统误差曲线

6 结束语

通过采用基于Cortex-M4内核的微控制器STM32F407ZGT6硬件平台,充分利用μC/OS-Ⅲ实时操作系统和LwIP轻量型网络协议栈的特点,选择以太网、Wi-Fi、4G作为互联网通信多模式网络接口,实现传感器互联网功能,建立时栅位移传感器产品后台服务终端。并详细介绍了系统的总体构成,以及软硬件实现方法,整个系统能够实现远程故障诊断和校验,可极大提高时栅位移传感器智能化和数字化水平,促进时栅产业化。

猜你喜欢
以太网嵌入式芯片
芯片会议
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
人体微芯片
关于射频前端芯片研发与管理模式的思考
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
TS系列红外传感器在嵌入式控制系统中的应用
搭建基于Qt的嵌入式开发平台
谈实时以太网EtherCAT技术在变电站自动化中的应用
浅谈EPON与工业以太网在贵遵高速公路中的应用
万兆以太网在连徐高速公路通信系统改造中的应用