嵌入式目标模块
嵌入式目标模块(精选8篇)
嵌入式目标模块 第1篇
太阳能作为重要的新能源,具有清洁无污染、储量巨大、便于利用等优点;LED(发光二极管)照明系统具有寿命长、发光效率高等优点,也开始广泛应用于照明;太阳能LED照明系统集中了太阳能和LED的诸多优点,具有很好的市场前景。但其具有自身的缺陷:太阳能电池板输出伏安特性(V-I)曲线为非线性,只有工作在特定电压下才能输出最大功率,需要进行最大功率点跟踪(MPPT)控制;LED灯的伏安特性曲线近似为指数函数,因此对控制精度要求较高,否则容易损坏;蓄电池作为储能元件,需要可靠合理的充放电管理策略,才能延长其使用寿命。
本文根据上述问题,分别进行了MPPT控制研究、LED恒流控制研究和蓄电池充放电策略研究,采用MATLAB/Simulink进行系统主电路和控制算法综合仿真,得出较为理想的控制效果和控制参数,并对控制模型进行移植,利用Embedded Target for TI C2000 DSP嵌入式目标模块生成控制代码,由TMS320F2812 DSP进行实际系统控制,从而将仿真控制算法在实际系统中快速准确地实现。
2 系统控制要求分析与实现方法
太阳能LED照明系统包括光伏阵列、蓄电池、LED阵列灯和控制器几个部分。其控制器需实现整个系统充放电控制,对光伏阵列、蓄电池和LED灯工作状态进行实时检测,并实现充放电切换过程,既要保证光伏阵列最大功率输出,又要保证蓄电池使用寿命和LED灯安全工作。
2.1 MPPT控制的优化实现
目前MPPT控制研究较多,方法各异,控制效果各不相同,因此需要选取一种适合实际系统的合理方法。根据文献[1-3],选取适合小型独立系统的干扰观测法,并对其进行改进,完全可以满足控制需要。
传统的干扰观测法在光伏系统中应用最为广泛,能快速准确进行MPPT控制,但存在最大功率点附近反复振荡和特殊情况下误判断的问题,如光照强度剧烈变化[3,4]。
通过对传统方法的扰动步长Δs进行动态调整,即当外界条件变化剧烈时,适当加大扰动步长和控制周期,当系统运行接近稳态时,减小扰动步长和控制周期,可提高系统动稳态精度,有效避免传统方法的反复振荡。
同时,通过变步长方法,可以在检测到功率变化值ΔP较大时,锁定扰动步长为0,当系统处于相对稳定之后继续最大功率点搜索,即可有效解决传统方法的误判断现象。
2.2 LED灯恒流控制的优化实现
LED灯负载伏安特性曲线近似为一指数函数,在额定功率附近di/d U比值非常大,对系统控制要求较高[5],若采用单环控制,系统阶数低,LED负载电压电流动态响应和稳态精度不可兼顾,很难保证效果。为此根据实际控制系统需要,建立恒电流双环控制模型框图如图1所示:
系统通过Iset设置运行参考电流,控制系统由电压电流传感器获得采样数据,经系统框图算法最终输出PWM脉冲作用于开关器件MOSFET门极以实现系统控制。
采用恒电流双环控制,提高了系统阶数,并且以参考电流为最终控制对象,有利于提高LED负载电流平滑稳定。
2.3 系统充放电策略选取
蓄电池在使用过程中,充放电策略对其寿命具有重要影响[6,7]。由于系统需要尽可能最大功率输出并储存以充分利用光伏阵列,因此充电策略需要既满足MPPT需求,也能解决蓄电池寿命问题。选取以下充电策略可以满足要求:
MPPT充电控制:在电池端电压低于设定值Vset时,采用MPPT控制进行最大功率充电,尽可能保证光伏阵列输出最大功率,提高光伏阵列利用率;
限功率充电控制:当蓄电池端电压达到Vset时,采用限功率充电控制,设定充电功率PPset,此时充电电流iP小于MPPT充电电流iMPP,系统不再进行MPPT控制;
浮充控制:当蓄电池端电压接近饱和电压Vf时,系统进一步降低充电电流,严格控制充电电压Vc=Vf,进入小电流浮充阶段,最终完成整个充电过程。
2.4 基于嵌入式目标模块的控制程序生成
根据MATLAB/Simulink仿真模型,利用Simulink中Embedded Target for TI C2000模块,对控制算法进行移植,并加入e Zdsp模块对DSP资源进行配置,即可快速编译生成控制系统中TMS320F2812DSP的控制代码。由于采用了算法移植,使仿真结果能快速准确地在实际系统中得到验证,并依据仿真结果可对控制算法进行快速修改,大大提高效率[8]。
3 仿真和实验
在MATLAB/Simulink仿真中,建立如图2的主电路模型,主要由Buck主电路、传感器和光伏阵列模型组成。
建立变步长的改进干扰观测法MPPT控制的Simulink模型如图3所示:
根据图2和图3模型进行MPPT控制仿真,设置额定功率300W的光伏阵列模型在不同时刻改变光照强度分别为900、800、700、1000W/m2作为动态光照扰动,环境温度设定为25℃,仿真波形如图4所示。
图4(a)中,在光照强度快速变化时,光伏阵列输出电压只有微弱波动,而输出电流变化明显,与理想MPPT跟踪效果完全吻合;电流波形动态响应时间短、稳态波动小,体现出很好的控制性能。图4(b)中,系统从开始运行经过一段时间即稳定运行在最大功率点附近,当光照强度剧烈变化时,能快速准确运行在新的最大功率点处;波形中同一光照强度下的运行点变化范围较小,充分解决了干扰观测法在最大功率点附近反复振荡扰动和光照剧烈变化出现误判断的问题。
基于Simulink建立如图5的LED负载放电电路模型,系统中VS1、VS2、CS1、CS2分别为电压、电流传感器,电路将蓄电池经Boost电路升压后接LED负载,控制程序利用图1所示控制算法根据采样数据最终输出PWM脉宽信号作用于MOSFET以实现系统控制。
设置LED启动参考电流为0.5A,在0.6s时改变参考电流为0.6A进行系统动稳态性能仿真,其负载电压电流波形如图6所示。
图6中,LED启动电流不带有尖峰,可充分保护其免遭因尖峰电压导致瞬间过流而造成的损坏。在改变参考电流后,输出电流波形超调很小,动态响应相对较快,稳态精度较高。
根据以上模型,采用300W光伏电池、蓄电池组和50W LED灯构建实际系统,建立系统主电路和TMS320F2812控制板,采用嵌入式目标模块生成控制代码[8],最终由DSP实现系统控制,系统MPPT运行和LED负载启动时电压电流实验波形如图7所示。
图7(a)的波形为在光照强度发生剧烈变化时光伏阵列输出电压电流实验波形。波形在光照发生剧烈变化时,光伏阵列输出电压微弱变化,但电流发生明显变化,充分体现MPPT控制算法能快速准确地进行控制,动态响应较快,稳态误差较小。
LED灯负载属于半导体器件,瞬间过压或过流就会导致损毁,因此实验中控制好启动过程,尽可能减小电压尖峰、电流毛刺尤为重要。图7(b)中设定LED灯启动时参考电流值为0.4A,波形显示LED负载在启动时平滑稳定,没有电压尖峰和电流毛刺产生,可保证LED灯安全稳定运行,控制性能较为理想。
基于以上研究,太阳能LED照明控制器实际装置如图8所示。
4 结论
1)建立了太阳能LED照明控制系统的主电路MATLAB/Simulink仿真模型,在仿真结果基础上实现了太阳能LED照明系统控制器。
2)对变步长的改进干扰观测法进行仿真,并在实际系统中加以实现,由图4可知系统MPPT控制中,光照突变时动态响应速度快,稳态运行电压电流波动小、跟踪曲线吻合好,体现稳态精度高的特点,有效解决了传统干扰观测法的频繁扰动和误判断问题;建立了LED灯恒电流双环控制模型,有效解决了LED负载因过流而瞬间损坏的问题,控制精度较高,动稳态性能较理想。
3)基于MATLAB/Simulink嵌入式目标模块e Zdsp进行控制程序快速生成,将仿真模型和参数快速应用于太阳能LED照明控制系统,提高了系统开发的快速性、准确性,为基于DSP控制系统的实现与开发提供了一种快速途径。
参考文献
[1]Salas V,Olías E,Barrado A,et al.Review of the maxi-mum power point tracking algorithms for stand-alone pho-tovoltaic systems[J].Solar Energy Materials&SolarCells,2006,90(11):1555-1578.
[2]Desai H P,Patel H K.Maximum power point algorithm inPV generation:an overview[A].IEEE PEDS'07[C].2007.624-630.
[3]Femia N,Petrone G,Spagnuolo G,et al.Perturb and ob-serve MPPT technique robustness improved[A].IEEEInternational Symposium on Industrial Electronics[C].2004.845-850.
[4]Femia N,Petrone G,Spagnuolo G,et al.Optimizingsampling rate of P&O MPPT technique[J].IEEE Trans.on Aerospace and Electronic Systems,2007,43(3):934-950.
[5]冯博,赵争鸣,张颖超,等(Feng Bo,Zhao Zhengming,Zhang Yinchao,et al.).基于滑模控制的LED恒流电源研究(Research on constant current source for LEDbased on sliding mode control)[J].电工电能新技术(Adv.Tech.of Elec.Eng.&Energy),2008,27(4):9-13.
[6]Wu Libo,Zhao Zhengming,Liu Jianzheng,et al.Imple-mentation of a stand-alone photovoltaic lighting systemwith maximum power point tracking and high pressure so-dium lamp[A].IEEE Power Electronics and Drive Sys-tems[C].2003.1570-1573.
[7]吴理博,赵争鸣,刘建政,等(Wu Libo,Zhao Zheng-ming,Liu Jianzheng,et al.).独立光伏照明系统中的能量管理控制(A novel energy management and controlfor stand-alone photovoltaic lighting system)[J].中国电机工程学报(Proc.CSEE),2005,25(22):68-72.
嵌入式目标模块 第2篇
2.1 系统平台测试
这部分包括硬件电路测试、操作系统及底层驱动程序的测试等。硬件电路的测试需要用专门的测试工具进行测试。这里不再多述。操作系统和底层驱动程序的测试主要包括测试操作系统的任务调度、实时性能、通信端口的数据传输率。该阶段测试完成后,系统应为一个完整的嵌入式系统平台,用户只需添加应用程序即可完成特定的任务。
2.2 模块测试
把大型的嵌入式软件系统划分为若干个相对较小的任务模块,由不同的程序员分别同时对其进行编码。编码完成后,把各个模块集成起来前,必须对单个模块进行测试。由于没有其它数据模块进行数据传递的支持,该阶段测试一段是在宿主机上进行的(宿主机有丰富的资源和方便的调试环境)。此阶段主要是进行白盒测试,尽可能地测试每一个函数、每一个条件分支、每一个程序语句,提高代码测试的覆盖率。由于只有单个模块正确才有整体集成的必要性,因此,单个模块测试时测试一定要充分、完整。模块测试阶段,测试用例的构造不但要测试系统正常的运行情况,还要进行边界测试。边界测试就是进行某一数据变量的最大值和最小值的测试,同时进行越界测试,即输入不该输入的数据变量测试系统的运行情况。理想的嵌入式系统是不应该由用户的信息交互导致死机的,这也是嵌入式设计的一个基本要求。因此,不论进行何种测试,系统死机都该被作为测试错误处理。在模块测试阶段,由模块化编程的基本思想,根据模块内部的紧凑程序,也可以把大的模块划分成小的模块。在程序内部,小模块之间数据传递的入口设计接口函数,用于快速地定位错误。用此模块嵌套的思想进行软件测试,需要模块内部结构清晰,数据链路简单。
2.3 集成测试
单个软件模块测试正确之后,将所有模块集成起来进行测试。本阶段主要是找出各模块之间数据传递和系统组成后的逻辑结构的错误。在宿主机上采用黑盒与白盒相结合的方法进行测试,要最大限度地模拟实际运行环境,可以屏蔽掉一些不影响系统执行的和数据传递的难以模拟的函数。集成测试是模块化设计软件的测试优点充分体现的阶段。集成测试前,应该由程序员根据模块之间的数据的输入输出编写模块接口函数,这需要负责不同软件模块的程序员共同协调完成,然后将模块接口函数集成到接收数据模块的入口处。由前面的分析可知,单链路数据传递的软件模块集成测试时容易定位错误所在的软件模块。一个软件模块的数据不一定只有另外一个模块提供,即软件模块的数据链路不一定只是单链路的,测试时可以把复杂链路结构的数据传递划分为单链路结构数据传送进行错误定位。修改输出数据的软件模块时,可能导致输入数据的软件模块引入新的错误,因此在这里引入关联矩阵确定修改某一模块后需要重要测试的模块。
假定模块化设计的嵌入式系统软件由软件模块Ai(i=1,2,…,m,n)组成,m表示矩阵的行号,n表示矩阵的列号。图5所示的矩阵即为其关联矩阵。
在关联矩阵中,Aij=1表示Aj接受了Ai输出的数据,故修改了Ai重新测试Ai的同时也需重新测试Aj。
集成测试是在拥有程序设计文档、程序结构和数据结构时,对软件模块在集成中出现的错误进行测试。集成测试时,根据模块接口函数定位错误修改代码,根据关联矩阵确定重新测试的软件模块。图6给出了模块化设计的嵌入式软件集成测试模型。
2.4 系统测试
集成测试完成后,退出宿主机测试环境,把系统移植到目标机上来,完成应用到现场环境中,从用户的角度对系统进行黑盒测试,验证每一项具体的功能。由于测试者对程序内容程序执行情况一无所知,因此本测试阶段的错误定位比较困难。系统测试阶段应该进行意外测试和破坏性测试,即测试系统正常执行情况下不该发生的激发活动和人为的破坏性的测试,进一步验证系统性能。系统测试阶段不应该确定错误后立即修改代码,应根据一定的错误
发生频率,确定测试周期,在每个测试周期结束时修改代码,进行反复测试;否则,不但增加了完全测试的任务量,而且降低了测试的可信度。
2.5 测试结果分析
测试结果的分析可以定位错误,指导程序员修改代码,同时指出测试进行的程序并进一步指明测试方向。测试结果的分析是一个由测试结果和测试预得结果进行分析、比较和定位错误的过程。测试结果的分析是一次测试的最后环节,分析时应该考虑软件的运行环境和实际运行环境的差异以及各种外界因素的影响等。
2.6 测试用例的构造与管理
测试用例是为了测试目标程序设计的包括输入项和预得结果的一种文件,根据测试环境和测试目标程序的不同,可分为某种格式的文档或某种输入行为(如一次按键)等。测试用例的构造要尽可能覆盖所有可能的取值范围,使测试尽可能地覆盖所有程序代码,提高代码的测试覆盖率,同时又不作多余、重复和无意义的测试。在嵌入式软件测试的不同阶段,要构造不同的测试用例;在系统平台测试阶段,要构造针对系统任务调度、实时性能和底层驱动程序的测试用例;在模块测试阶段,应构造针对某一模块进行测试的测试用例;在集成测试阶段,针对系统集成时数据传递、结构斜接的问题构造相应的测试用例;在系统测试阶段,要构造针对某项功能的或多项功能结合在一起的测试用例,或使用已经在同类产品上已经验证正确的测试用例。测试用例是可复用的。此外大型的软件开发过程中,测试用例的种类繁多,应该按一定的方法进行管理。用数据库的来管理测试用例是一个很好的选择。根据测试阶段将测试用例进行划分,然后用关键字唯一确定。这样在使用、修改和保存测试用例时都很方便,直接用查询的方式就可以调出测试用例。
3 数控系统软件测试
本数控系统采用ARM7处理器,操作系统采用μC/OS实时操作系统,是一个典型的嵌入式系统。由于数控系统较为复杂,开发过程中将任务进行了详细的划分,软件的开发采用模块化开发。模块的划分及数据流向如图7所示。
根据图7所示的软件模块和数据流向可构造关联矩阵,如图8所示。
开发过程中,几个模块由不同的程序员分别进行编码,分别由程序员进行模块测试,并按白盒测试的方法进行覆盖测试。最后集成测试前,根据关联矩阵,程序员协作编写了模块接口函数F(A1-A2)、F(A1-A4)、F(A1-A5)、F(A1-A6)、F(F2-A3)、F(A3-A4)、F(A4-A5)、F(F5-A6)、F(A6-A2),然后根据图6所示的测试模型和图8所示的关联矩阵对系统进行了集成测试。分析可知,一些关键模块,如译码模块和刀补模块的测试代码覆盖率达到90%之上。图9所示的整个系统经过系统测试之后性能稳定,图10为其加工的零件,目前该系统已经小批量生产。
4 结论
嵌入式目标模块 第3篇
Modbus应用层协议由美国Modicon公司(现为施耐德电气旗下品牌)于1979年开发的,用于实现其PLC产品与上位机的通信。由于其简单易用,得到了广大工业自动化仪器仪表企业的采纳与支持,实际上已成为了业界标准。Modbus协议包括ASCII、RTU、TCP等。这些年来,随着PLC的不断发展,网络通讯功能要求越来越高。一方面,网络化,集成化的要求,使得PLC需要越来越多的接入到计算机监控网络中,作为网络的一个节点。另一方面,智能仪表应用越来越广,因此要求PLC具备较多的现场总线接口,能直接与智能仪表进行通讯。鉴于此,1999年施奈德电气发布了Modbus TCP协议,使得以太网上的Modbus设备可以通过502端口进行通信[1]。
2 模块总体设计
本模块采用基于C o r t e x-M 3内核的新一代A R M LPC1758为CPU主控芯片,工作频率为100MHz。它内置高速存储器(高达5 1 2 K字节的闪存和6 4 K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。同时集成多个标准和先进的通信接口:I2C、SPI、I2S、SDIO、USART、USB Host/Device/OTG、CAN、Ethernet MIC等。本模块硬件结构如图1所示:
CPU通过PHY向以太网总线传输Modbus TCP数据,向RS232或RS485总线传输Modbus RTU数据。考虑工业现场应用,串口接口和LAN接口均需要隔离,才能保证电气上,可靠稳定。支持ISP下载,便于模块生产。JTAG只有在研发调试时用到。拨码配置主要配置工作模式,IP地址,波特率。
3 硬件设计
CPU LPC1758芯片自身并不集成以太网PHY,而提供了使用R M I I(简化的媒体独立接口)协议和片上MIIM(媒体独立接口管理)串行总线、还有MDIO(管理数据输入/输出)来实现与片外以太网P H Y之间的连接。本设计采用DP83848C物理层P H Y芯片,它是美国国家半导体公司生产的一款鲁棒性好、功能全、功耗低的10/100Mbps单路物理层(PHY)器件。它支持MII(介质无关接口)和RMII(精简的介质无关接口),使设计更简单灵活;同时,支持10BASE~T和100BASE-TX以太网外设,对其他标准以太网解决方案有良好的兼容性和通用性[2]。
图2为LPC1758和DP83848C之间的接口电路,图3为DP83848C驱动输出隔离电路。
PCB布局方面,精度为1%的电阻和100nF的去耦电容应靠近P H Y器件放置,并通过最短的路径到电源。两对差分信号(TD和RD)应平行走线,避免短截,且尽量保证长度匹配,这样可以避免共模噪声和EMI辐射。理想情况下,信号线上不应有交叉或者通孔,同时,差分线应尽可能走在一面。
4 软件设计
本模块设计结构,从功能上可以设计成两种工作模式:Modbus TCP从站模式,Modbus TCP主站模式。Modbus TCP从站模式,是把以太网总线Modbus TCP请求转化成串口总线Modbus RTU请求,也就是以太网设备从PLC读出数据;Modbus TCP主站模式,是把串口总线Modbus RTU请求转化成以太网Modbus TCP请求,也就是P L C从以太网设备读入数据。下面以M o d b u s TCP从站模式为例。
4.1 模块配置
模块配置主要是通过8位拨码开关实现,通过这拨码开关配置模块的工作模式,以太网IP地址,串口RTU地址,波特率。如表1所示。
4.2 以太网驱动开发
表1拨码功能配置表
驱动开发包括两部份:芯片物理层驱动(MAC,PHY)和T C P/I P协议层驱动。芯片物理层驱动主要是对L P C 1 7 5 8的以太网控制器和P H Y芯片的初始化和控制输入输出的函数化打包,以便供T C P/I P协议层驱动调用。TCP/IP协议层驱动开发需要参考TCP/IP标准协议,下图4比较清晰明了的介绍TCP/IP协议状态变化图[3]。
对于从站模式(服务器模式),每一个TCP请求连接对应一组状态图,把这些状态归纳入一个结构体,然后再创建结构体链表,系统程序通过维护监测链表,可以实现多客户端同时请求通讯。
4.3 Modbus TCP和Modbus RTU协议开发
参考Modbus TCP和Modbus RTU协议标准,不难实现P L C与本模块的Modbus RTU以及本模块与外部以太网设备的Modbus TCP数据通讯。然后在本模块程序内部完成数据包的Modbus TCP和Modbus R T U之间数据转换,采用透明传输方式,即把从一个端口接收出来的数据转换后立即从另一个端口输出去。Modbus TCP相比Modbus RTU报文格式,多了六个字节的前缀,少了后面的C R C校验,它是采用TCP/IP和链路层(以太网)校验和机制来校验分组交换的准确性。
4.4 模块状态监测
模块状态监测包括:系统运行状态,Modbus RTU通讯状态,Modbus TCP连接状态、通讯状态,以及通讯异常报警。
4.5 通讯测试
实验平台采用NA200 PLC挂载本模块,然后通过网络交叉线和PC电脑相连,利用网上免费网络调试工具SocketTool2进行通讯测试。先在SocketTool2建立客户端,然后连接,发送测试通讯数据十六进制000000000006500600C90055,查看是否有数据返回。
5 结束语
本文设计的Modbus TCP通讯模块,能和现有PLC稳定连接,从成本、性能上都将是个比较好的选择。前文介绍的是以从站模式为例,对于主站模式,可以P L C利用串口对通讯模块设置通讯请求的从站信息(IP地址等)。在不改变硬件的基础之上,通过软件升级,可以把模块功能更加完善。比如:满足通讯模式一主多从、一从多主、以及自定义通讯的现场应用需求。同时本文提出的思路也可以作为一种通用方案,推广到类似的产品开发中。
参考文献
[1]王啸东.PLC网络化控制系统设计[J].河南科技,2011,(7):59-61.
[2]宋鑫,郭勇,谢兴红.RMII模式以太网PHY芯片DP83848C的应用[J].单片机与嵌入式系统应用,2010,(8):50-53.
嵌入式系统的无线通信模块研究 第4篇
随着社会生产生活自动化程度的提高, 需要远程监控, 操作和维护的设备越来越多。按照传统方式进行分散维护和人工操作, 不仅浪费人力, 物力, 而且可靠性差, 已经不能适应社会发展的需要。为确保各种远程终端系统的高效稳定运行, 对系统的维护管理工作提出了新的更高的要求。而另一方面Internet已经成为社会的基础设施之一, 如果将各种远程终端系统接入Internet, 则可以通过网络进行过程监督和指令发布。
利用GPRS网络的嵌入式系统的无线通信模块, 使得各种嵌入式终端接入Internet, 可以方便快捷的对各地的嵌入式终端进行过程控制和信息发布。
2 嵌入式系统的无线通信技术的发展历程
从二十世纪七十年代人们就开始研究无线通信, 到二十世纪八十年代的无线通信技术是和以太局域网发展联系密切, 遵循了IEEE802.3标准, 虽然比“有线”使用起来方便灵活, 但直接架构于802.3上的无线网产品存在着易受其他微波噪声干扰, 性能不稳定, 传输速率低且不易升级。1997年IEEE通过了802.11标准, 无线通信和有线通信协议开始兼容。
随着嵌入式操作系统的发展, 以及无线通信技术的进一步普及, 以嵌入式操作系统为平台的无线通信技术越来越受到重视【1】, 目前运用在嵌入式系统中的无线通信方法有:
2.1 红外
红外线是波长在750nm至1mm之间的电磁波, 频率高于微波而低于可见光, 是一种人的眼眼看不到的光线。红外传输功能比较单一, 采用点对点的传输方式, 无线, 距离不能太远, 在路径上也不能绕弯, 要对准方向, 且中间不能有障碍物比如不能穿墙而过, 无法控制信息传输的进度。目前无线电波和微波已被广泛应用在长距离的无线通信中, 但由于红外线的波长较短, 对障碍物的衍射能力差, 只适合应用在需要短距离无线通信场合点对点的直线数据传输。
2.2 蓝牙
蓝牙, Bluetooth, 也是一种短距离无线通讯技术【2】。开发之初技术即被定位为允许不同工业领域之间的协调工作, 实现各不同领域系统之间的良好交流, 例如计算机, 手机和掌上电脑, 汽车等不同行业产品之间的通信。
蓝牙相比红外传输距离长, 蓝牙传输加强信号可达100米, 速度也快, 在使用范围方面, 红外线技术一般适合于低成本、跨平台、点对点高速数据连接, 尤其是嵌入式系统, 而蓝牙就不同了, 蓝牙技术是作为一种“电缆替代”的技术提出来的, 可应用设备的范围非常广。
2.3 Zig Bee无线数据传输技术
Zigbee是IEEE802.15.4协议【3】的代名词, 基于此协议的短距离, 低功耗的无线通信技术。主要用于自动控制和远程控制领域。在家庭自动化控制和工业遥测遥控领域, 相比蓝牙技术组网技术复杂, 组网规模小, 距离短, 规模小的特点, Zigbee是一种新兴的近距离、低复杂度、低功耗、低数据速率、低成本的无线网络技术。
2.4 无线局域网
无线局域网是应用于局域网组建的无线通信技术, 无线局域网络采用射频RF的技术取代双绞线, 使局域网中的网络设备具有灵活性和移动性, 使局域网的组建和维护方便快捷, 使局域网的规划和调整简单容易, 使局域网容易扩展, 给网络用户带来了更多的快捷。
无线局域网的应用领域是很广泛的, 也应用在各种嵌入式系统中, 多是人们生活领域中的嵌入式系统。
2.5 蜂窝网络
主要有第二代移动通信中的GSM, GPRS和CDMA技术, 第三代的TD-SCDMA, CDMA2000和WCDMA【4】。
GSM全球移动通讯系统, 是继第一代模拟移动通信系统之后的第二代移动通信技术。模拟移动通信系统不能实现全球通用, 因此从欧洲电信运营部门研制泛欧数字移动通信系统的技术规范开始, 美国等渐渐研制出通用的移动通信技术标准, 直至现在全球通用的GSM通信系统。
GPRS通用无线分组业务。GPRS作为在GSM网络上发展的数据传输业务, 是现有GSM网络向第三代移动通信演变的过渡技术, 它在许多方面都具有显著的优势。
CDMA码分多址技术, CDMA采用与TDMA, FDMA不同的码分多址原理允许所有用户同时使用全部频带, 其系统容量和话音质量在蜂窝系统中是最优的, 它将是未来无线通信的主要技术。
总之, 无线通信领域各种技术的互补性日趋鲜明。这主要表现在不同的接入技术具有不同的覆盖范围, 不同的适用区域, 不同的技术特点, 不同的接入速率。
3 基于GPRS的嵌入式系统的无线数据通信技术现状与发展趋势
自从GPRS无线通信技术从2002年正式投入商用以来, 尤其是在和各种嵌入式系统终端设备结合后, 它的应用领域越来越广泛, 已经不单是用在电信营运方面了, 近几年来GPRS无线通信技术已经用在了电力负荷管理系统, 工业生产中的废水处理系统, 路灯监控系统, 自来水的抄表收费系统等等, 这些都是GPRS和嵌入式控制系统的综合应用, 给人们生活带来的极大地方便。嵌入式系统基于GPRS进行的无线数据通信技术日趋成熟。
尽管如此但是还是有很大的发展空间, 像物联网技术发展的智能家居, 智能医疗, 智能交通等等都可以使用移动网络来进行嵌入式系统和中心服务器端的通信。
4 嵌入式系统的无线数据通信的关键技术
研究过程中用到的关键技术主要包括GPRS终端的硬件电路设计、基于GPRS的通信协议的设计及基于Linux操作系统的终端应用程序的设计等。
GPRS终端的硬件电路设计包括选择何种微处理器, 何种Flash存储器和串口通信模块以及它们之间的连接。需要考虑程序存储器中存放的信息, 微处理器采用的指令集, 以及通信模块的各个技术指标比如传输速率等等。
通信协议的设计是重点内容, GPRS技术是移动通信技术和IP技术相结合的产物, 数据在传输过程中遵循TCP/IP协议, 中心服务器端有固定的IP地址, 而被监控终端的IP地址是浮动的, 因此通信协议的设计是基于GPRS移动网络的通信协议设计。
中心服务器端应用程序的开发设计可以采用可视化编程语言Visual C++开发, 提供一个可视化的操作界面, 以便直观、方便、快捷地了解远程数据终端传输数据的状态, 实现与GPRS终端的通信。
具体工作过程有:研究ARM7系列微处理器芯片的指令, 以完成Boot Loader功能;建立交叉编译开发环境, 在基于ARM7核心的硬件平台上移植Linux操作系统, 并进行配置编译;研究无线模块的AT指令集;研究PPP协议的工作过程;研究中心服务器端应用程序的开发, 完成GPRS终端的软件功能。
5 嵌入式系统的无线数据通信研究成果的应用前景
中国的GPRS网络是目前世界最大的移动通信网络, 覆盖全国的网络成为一种可持续利用和开发的资源。嵌入式系统无线通信技术的应用领域非常广阔人们会发现, 被移动信息化武装起来的智能家庭, 智能商业, 智能交通陆续呈现在我们的面前, 融入生活中的每一个角落。随着越来越多的无线通信功能的设备进入我们的生活, 开发出性价比高的GPRS无线通信平台有着重要的意义。
6 结论
随着嵌入式操作系统的继续发展, 以及无线通信技术的进一步普及, 以嵌入式操作系统为平台, 依赖于无线网络数据传输的移动终端逐渐成为IT新的发展趋势。
摘要:随着社会生产生活自动化智能化程度的提高, 需要远程监控, 操作和维护的设备越来越多。如何将各种嵌入式终端无线接入Internet, 对各地的嵌入式终端进行过程控制和信息发布, 是实现自动控制的关键。基于GPRS网络的嵌入式系统无线通信技术可以方便快捷的将各地的嵌入式终端接入Internet。
关键词:嵌入式系统,无线通信,GPRS网络
参考文献
[1]张培仁.嵌入式微处理器原理、系统设计与应用[M].北京:清华大学出版社, 2007:2.
[2]金纯.蓝牙技术[M].北京:电子工业出版社, 2001:65-129.
[3]瞿雷.zigBee技术及应用[M].北京:北京航空航天大学出版社, 2007:20.
基于NiosⅡ的嵌入式Web模块 第5篇
互联网络是一种覆盖率极广、协议完善、功能强大的通信方式,它已成为社会重要的基础信息设施。具有互联网接口的智能化设备越来越多,这已是各种基于微处理器的嵌入式应用的发展趋势。然而,目前仍有众多的智能化设备不具备互联网接入功能。这些大量的智能设备由于不同的应用场合或是独立运行或是采用不同的通信方式,比如RS-485、电流环、LonWorks、CAN等来构建各自的通信网[1],由于这些通信方式所限,此类通信网通常都被限制在有限的范围之内,而且不同通信网中的设备之间无法取得联系,从而使这些智能化设备的应用被限制在一个很小的范围内。
为了解决这一问题,本文设计了一种基于NiosⅡ的通用Web模块,作为浏览器与具体应用之间的接口,用于实现将这些智能化设备接入互联网。
1 硬件设计
SOPC(片上可编程系统)是Altera公司提出的SOC(片上系统)解决方案,具有灵活的设计方式、可裁剪、可扩充、可升级、高效等特点,被越来越多的电子系统设计所采用。NiosⅡ是Altera公司推出的32位RISC(精简指令集计算机)嵌入式处理器,是SOPC的核心[2]。
本文所介绍的嵌入式Web模块采用基于FPGA的NiosⅡ软核处理器进行设计。系统的总体框图如图1所示。
图中EPCS16用来保存配置数据,系统上电后,FPGA芯片与EPCS16之间通过SPI接口,经过简单的握手操作之后,EPCS16中的数据送到FPGA芯片中完成芯片配置,生成NiosⅡ微处理器及其他硬件接口电路。本设计中将NiosⅡ处理器的复位地址指向Flash存储器HY29LV160,因此,当FPGA芯片配置完成系统自动复位后,就开始执行Flash存储器中的引导程序(CFI Flash bootloader),该引导程序将程序加载到RAM芯片IS61LV25616(256 k16位)中运行,以提高系统运行速度。此外,Flash存储器还用来构成简单的文件系统,保存网页、图片等。SJA1000是Philips公司推出的一种支持CAN2.0B协议的高性能CAN总线控制器[3],它通过简单的CAN逻辑接口与NiosⅡ系统通信,在CAN总线收发器PCA82C250的配合下,将CAN总线上的相关设备通过嵌入式Web模块接入互联网。DM9000A是DAVICOM公司推出的一款高速网络控制器,在设计中,DM9000A作为NiosⅡ的一个外部设备经逻辑接口电路与Avalon总线相连,从而将本模块接入互联网。
图2所示是一个为实现此系统而定制的NiosⅡ处理器模块。主要端口包括系统时钟、复位信号、外部设备片选信号、读信号、写信号、中断信号、数据总线、地址总线等。
2 软件设计
本设计中软件部分比较复杂,主要包括实时内核的移植、网络协议栈设计和应用程序设计,下面分别进行介绍。
2.1 实时内核的选择及任务设计
为了保证Web模块能够稳定、可靠地运行,需要一个性能良好的TCP/IP协议栈。为了更好地满足TCP/IP运行时的调度要求,需要一个实时、稳定的内核。μC/OS-Ⅱ是一种可移植、可裁减、可固化的实时内核,有很好的稳定性和可靠性;同时,Altera公司已经把它移植到NiosⅡ微处理器上,在NiosⅡ IDE(集成开发环境)中,仅需要对最大任务数、最低优先级及消息、邮箱等进行简单的设置后,就可以方便地使用μC/OS-Ⅱ,因此选用μC/OS-Ⅱ作为实时内核。基于实时内核的嵌入式系统的软件通常由若干中断服务程序和任务构成,在本设计中根据嵌入式实时操作系统任务划分的原则[4],结合系统要实现的功能,可划分出以下几个主要任务:
a)系统初始化任务。该任务系统复位后运行一次,主要完成DM9000A、SJA1000等的初始化工作。
b)串行通信任务。
c)2个与网络协议等相关的任务。
d)2个与CAN总线驱动相关的任务,这2个任务分别负责信息发送和接收。
当SJA1000的/INT出现中断时,执行中断服务程序,在中断服务程序中判断中断的来源,然后向相应的任务发送信号,激活相关任务的执行。其中CAN总线数据接收任务代码如下(NIOS II IDE环境下):
2.2 嵌入式TCP/IP协议的实现
LwIP是瑞士计算机科学院Adam Dunkels等人开发的一套用于嵌入式系统的开放源代码TCP/IP协议栈,Altera公司将LwIP集成到NiosⅡIDE中,在μC/OS-Ⅱ的支持下使用方便,因此选用LwIP实现TCP/IP协议。在本设计中有2个与LwIP相关的任务,即被协议栈使用的主任务和数据接收任务,其中主任务的功能是停止对邮箱中消息的等待,当一个新的数据包到达时,产生中断,中断服务程序清除中断标志,并发送消息到信箱;信箱中新的消息激活数据接收任务完成数据接收工作。
2.3 简单的CGI
为了在网页上动态地根据当前设备的状态显示不同的内容,可以有不同的实现方法,比如令计算机上的浏览器每秒向网络模块申请刷新一次页面,网络模块接到申请后立即更新页面并重新发送,或者用URL(统一资源定位)来实现,但是这些方法都不是协议族标准。在本设计中使用了动态生成网页的CGI(公共网关接口)技术。CGI是连接外部应用程序到Web服务器的标准,与HTML不同,CGI程序的运行是实时、动态的。鉴于完整的CGI实现过于复杂,设计中仅完成了简单的CGI部分,用以实现浏览器与Web模块之间的简单命令交互。
3 结束语
本文介绍了一种基于NiosⅡ的嵌入式Web模块的设计,该模块作为浏览器与具体应用之间的接口,用于解决不带互联网接入功能的智能化设备的互联网接入问题。设计中利用CGI技术实现了浏览器与Web模块之间的简单交互,实现了网页的动态生成。本文所设计Web模块在Altera的DE2开发板上进行了实验验证,实验结果表明该设计是切实可行的。
参考文献
[1]李朝清.PC机及单片机数据通信技术[M].北京:北京航空航天大学出版社,2000.
[2]李兰英.NiosⅡ嵌入式软核SOPC设计原理及应用[M].北京:北京航空航天大学出版社,2006.
[3]熊善清.基于单片机C8051F040的CAN通讯程序设计[J].通信电源技术,2005,22(4):36-38.
嵌入式目标模块 第6篇
关键词:Ethercat,实时工业以太网,ARM,嵌入式模块
随着微电子技术的发展,数字通信网络延伸到工业过程现场,现场总线技术占领工业通信领域。而随之而来的工业以太网也正在加快步伐要在通信领域中占有一席之地。EtherCAT(以太网控制自动化技术)以其速度更快、接线更灵活、组态更简单、成本更低、定时及同步、适用于各种场合等特点表现出在工业通信中的优势。
1 EtherCAT工业以太网
1.1 EtherCAT的系统组成及运行原理
EtherCAT是一种实时工业以太网技术,充分利用了以太网的全双工特性。采用了主从模式介质访问控制(MAC)方式,主站发送以太网帧给各个从站,从站从数据帧中抽取数据或将数据插入数据帧。这些从站可以直接处理接受的报文,然后将该报文输到下一个EtherCAT从站。当该数据帧经过所有从站并与从站进行数据交换后,由EtheCAT系统中末端从站将数据帧返回,并由第一个从站作为响应报文将其发送给控制单元。EtherCAT线性拓扑结构的系统运行原理图如图1所示。
1.2 EtherCAT协议
EtherCAT以标准以太网技术为基础,在MAC(媒体访问层)增加了一个确定性调度的软件层,该软件层实现了通信周期内的数据帧的传输。EtherCAT采用标准的IEEE802-3以太网帧,帧结构如图2所示。EtherCAT在标准以太网帧结构中使用了一个特殊的以太网帧类型0x88A4,采用这种方式可以使控制数据直接写入以太网帧内,并且可以与遵守其他协议的以太网帧在同一网络中并行。一个EtherCAT帧中可以包含若干个EtherCAT子报文,每个报文都服务于一块逻辑过程映像区的特定内存区域,由FMMU(Fieldbus Memory Management Unit)寄存器和SM (SyncManager)寄存器定义,该区域最大可达4GB字节。在报文头中由8位命令区数据决定主站对从站的寻址方式,由于数据链独立于物理顺序,因此可以对EtherCAT从站进行任意的编址。
1.3 EtherCAT性能
EtherCAT整个协议处理过程可以全部在硬件中进行。1000个分布式I/O数据的刷新周期仅为30μs,其中包括端子循环时间。通过一个以太网帧,可以交换高达1486字节的过程数据,几乎相当于12000个数字量I/O。同时,分布时钟(DC, Distributed Clock)可以使所有EtherCAT设备使用相同的系统时间,从而控制各设备任务的同步执行,在多轴运动控制中,可以保证轴之间的同步时间偏差小于1微妙。
2 基于PC机的主站与从站的通讯测试
2.1 赫优讯嵌入式模块介绍
本文完成所需的赫优讯嵌入式模块,硬件部分包括:CIF 50-DB-COM-ABC(Com模块的PCI载板),CIF 50-DB-COM-CA(Com模块的开发板),Comx CA-RE(EtherCAT从站模块)。软件部分:TwinCAT(主站配置工具),SYCON.NET(对从站进行通讯初始配置),CifX Test(协议通讯测试软件)。
TwinCAT是基于PC的PLC和运动控制系统,一般用于编程、诊断和系统配置;TwinCAT全面支持EtherCAT,与EtherCAT相结合,为标准化应用提供了一套易于配置和诊断的自动化系统。TwinCAT 几乎支持所有的现场总线和所有通用的通讯方式,并且整合优化。SyCon是通用的系统配置工具,适用于所有PC板卡。
2.2 基于PC机的EtherCAT主/从站通讯测试
EtherCAT 主站是由软件TwinCAT模拟而成的,从站是专门的赫优讯嵌入式模块搭载在PCI载板上的,主站与从站通过一根普通的网线既可以连接,系统配置的流程图如图3所示。
测试结果如图4所示。
可以看到,主站可以向从站不断地发送数据,从站也可以向主站返回数据,并且更新速度非常快,同时在赫优讯嵌入式从站模块中,可以通过Sycon.NET软件下载不同的实时以太网的通信协议,配置成不同的网络功能,方便适合不同场合的要求,比如PROFIBUS,PROFINET等等,其为设计成能够完成多协议功能的从站提供可能。
3 主站/从站通信平台搭建
主站:采用一般的工控机,带有标准的以太网接口卡,这样可以处理任务复杂、数据量大的工程,主站可以根据实际要求开发满足EtherCAT通讯协议的应用程序,而本文直接利用的是TwinCAT软件,TwinCAT功能强大,只需要配置不同协议固件,就可以满足从站的通讯协议,与从站进行通讯,正如上述测试一样。配置简单,易用,适合本文平台搭建所用。
从站:采用ARM微控制器作为从站控制平台 ,操作系统使用Linux系统,具体实现需要ARM与赫优讯嵌入式模块Comx CA-RE的硬件连接,即与从站模块带有15针的接口,包括数据线、地址线、控制线的连接。以及在Linux环境下编写驱动程序,完成对赫优讯从站模块驱动,这样同样可以通过下载不同的协议类型,实现不同的实时工业以太网,ARM的I/O可以对现场的设备进行实时控制。从站的硬件连接图如图5所示。
按这种方式搭建的平台也就是实现用ARM控制器代替PC完成对EtherCAT从站硬件的驱动和协议的下载。当然,主站也可以采用ARM代替PC机,完成不同的任务要求。
在这样的平台上,就可以实现主站与从站的实时数据通讯。主从站之间交换的数据主要分两种形式:一种是周期性数据;另一种是非周期性数据。周期性过程数据通信通常使用FMMU进行逻辑寻址,主站可以逻辑读、写或读写命令同时操作多个从站。在周期性数据通信模式下,主站和从站可以有多种同步运行模式。主站同步模式:周期性模式、DC模式。从站同步模式:自由运行、同步与数据输入或输出事件、同步于分布时钟同步事件。非周期性数据采用邮箱方式传输,此时一端写入数据到内存,且只有此段内存写满后另一端才能开始从内存中读取数据,并且只能当内存中的数据全部读出时,才能重新写入数据。邮箱通信出错时,应答数据会返回一种错误类型。针对这两种数据通信方式,从站程序可以对非周期性数据通信采用查询方式,对周期性通信采用中断方式。当然,EtherCAT另一个优点就是传输、处理速度非常快,Ethercat整个协议处理过程全部在从站模块中进行,减轻主站的负担,可以使主站更有能力调控整个从站的数据处理,控制、监控每一个从站,完成对设备的有效快速控制。比如1000个分布式I/O数据的刷新周期仅为30μs,其中包括端子循环时间。通过一个以太网帧,可以交换高达1486字节的过程数据,几乎相当于12000个数字量I/O。同时,分布时钟(DC, Distributed Clock)可以使所有EtherCAT设备使用相同的系统时间,从而控制各设备任务的同步执行,在多轴运动控制中,可以保证轴之间的同步时间偏差小于1微妙。因此EtherCAT的应用前景广泛。
4 结束语
本文方法是实现主站与从站通讯所搭建的一种硬件平台,通过采用Ethecat实时以太网通信与控制系统可以实现大型建筑内的电气设备的联网监控,并且通过与外网连接实现远程监控。由于EtherCAT通讯与控制系统价格低,也可以应用于一般智能家居中。EtherCAT的实时性已经是非常高,一般的应用场合都可以满足实时性的要求,如果要处理大量数据,可以在主站加入数据调度算法,合理分配数据优先级,有效利用通道的空间,再次提高EtherCAT通信的实时性。
参考文献
[1]邓梧鹏.基于赫优讯嵌入式模块EtherCAT从站设备的设计[J].国内机电一体化技术,2009(1):23-45.
[2]吴爱国,梁瑾,等.工业以太网的发展现状[J].信息与控制,2003(32):458-466.
[3]EtherCAT技术组.EtherCAT-以太网现场总线[EB/OL].ht-tp://www.ethercat.org/en/ethercat.html.
[4]德国倍福公司.实时以太网:I/O层超高速以太网[J].工业以太网与现场总线.
[5]向乾亮,辛志远,等.实时以太网EtherCAT技术在电力系统中的应用[J].继电器,2008(11):42-45.
[6]徐皑东,王宏等.工业以太网实时通信技术[J].信息与控制,2005(34):60-65.
[7]廖春科,罗莉,何鸿君.基于优先级的访存调度算法研究[J].计算机与数字工程,2009(9).
[8]单春荣,刘艳强,等.工业以太网现场总线EtherCAT及驱动程序设计[J].制造业自动化,2007(11):79-82.
[9]缪学勤.论六种实时以太网的通信协议[J].自动化仪表,2005,26(4):1-6.
嵌入式目标模块 第7篇
本文以计 算机技术 为基础 , 实现通过 以太网对 分布式仪器 设备进行 管理 ,并能够通 过统一的 命令对各 个仪器设备 进行控制 。
LXI[1]仪器设备 的主要功 能包括了 网络通信 功能和传统 仪器的测 试测量功 能。但是 ,目前大部 分仪器设 备都是基于RS232、USB、GPIB等仪器总 线的 , 直接将其 改造成LXI仪器设备 是比较困 难的 , 通过嵌入 式转接模块 , 即代理服 务器将具 有RS232、USB、VXI等接口的 仪器设备连 接到以太 网中 ,使其具有LXI协议规定 的网络通信 功能 ;仪器程控 命令SCPI[2]面向的是 测量功能 的描述 , 不是直接 描述仪器 的操作 , 能够使用 同样的命 令和参数 ,控制具有 相同功能 的仪器。 而传统的 仪器设备 传输的控制 命令是各 厂商自己 规定的仪 器命令 ,不具有统一 的信息格 式和语法 结构 , 在此本文 将对非SCPI标准命令与 标准SCPI命令进行 解析和对 比 , 最后实现 两者之间的 转化。
本文使用 基于ARM Cortex -M3内核的LPC1768处理器的嵌 入式LXI代理模块 [3], 实现USB接口和以 太网接口的 桥接 , 将支持USB接口的可 编程仪器 接入以太网 , 便于计算 机远端访 问和管理 [4], 并解决标 准SCPI命令语言和 非标准仪 器命令语 言的编程 和解析 ,进行二者之 间的转换 ,实现仪器 语言的标 准化。
1 嵌 入式 LXI 代理模块的研究
1 . 1 LXI 标 准
LXI基于LAN的标准 , 是继GPIB、VXI、PXI等传统仪器 接口的新 一代总线 技术。LXI标准根据 同步与触 发方式的不 同 ,将LXI仪器分为3种基本类 型A、B、C类 :C类是最简 单最基本 的一类 , 没有对触 发作出特 殊要求 ,是局域网 一致性的 实现 ,该类通过SCPI命令可以 实现仪器与 计算机之 间的信息 交互 ;B类在具有C类的全部功 能之外 , 加入了IEEE 1588精密时钟 同步协议 ;A类除了具有B类的全部功能外,还加入硬件触发总线[5]。
1 . 2 嵌 入 式 代 理 模 块
嵌入式代 理是指在LPC1768微处理器 以及外围 电路所组成 的ARM板子上 ,运行代理 服务器程 序 ,支持网络管 理协议SNMP, 同时支持USB与LAN互相通信 ,传输测量命 令和数据 ,实现对测 试设备的 网络管理 。
嵌入式代 理模块完 成的主要 功能如下 : 硬件方面 ,需要满足LXI C类规范 ; 软件方面 作为服务 器端 , 接收目标服 务器的命 令 ,以现场设 备即客户 端能够识 别的格式传 输测量数 据命令给 客户端 , 客户端返 回测量数 据后 ,代理服务 器以真正 的目标服 务器能够 识别的格 式回传给目 标服务器 ; 当接收客 户端传达 的命令 , 测量设备的 参数作出 相应的修 改 ;而客户端 主要是时 刻向服务 器汇报当前 现场仪器 的状态 ,将突发的 异常信号 反馈给服务 器 ,做出相应 处理。具 体代理模 块在整个 测试系统 中所处的位 置如图1所示。
本文中硬 件基于ARM Cortex-M3处理器 , 代理软件是 运行在以ARM Cortex-M3为处理器 的嵌入式 计算机上的 。代理软 件构成了 服务器 ,主要是实 现网络管 理分布式设 备以及传 输仪器命 令数据的 功能。具 体的物理 模块如图2所示。
2 系统硬件平台的搭建
本系统主 要由LXI代理模块 、LXI总线设备 仪器、路由器 和装有Lab VIEW 2010的PC构成。通 过路由器 可以完成多 个LXI总线设备 仪器与PC间的数据 通信。PC作为系统的 控制器 , 主要完成 与仪器之 间的通信 , 并把以太网 的数据格 式转换成USB的数据格 式 , 同时在这 个过程中实 现非标准SCPI命令与标 准SCPI命令之间 的转换。LXI代理模块 主要完成 将不具有LXI总线C类设备特性 的仪器接 入到以太 网中 , 实现LAN通信功能 以及C类设备的 触发同步 功能。LXI代理模块 的硬件结 构如图3所示。
从图3可以看出,该硬件平台包括ARM芯片LPC1768以及外围 功能电路 模块。外 围电路模 块有电源 、以太网接口 、USB接口、复位 系统、JTAG接口等[6]。这些模 块协同工作 ,最终实现 将LXI总线设备 仪器接入 以太网中 的功能。
3 系统软件设计与实现
3 . 1 系 统 软 件 整 体 设 计
软件主要 由以下四部 分组成 , 具体结构 图如图4所示。
( 1 ) μC / OS - II操作系统的 移植 ;
( 2 ) 以太网协 议栈的移 植 ;
( 3 ) USB - HOST驱动程序 的编写 ;
( 4 ) 标准SCPI命令与非 标准SCPI命令之间 的转换。
由于论文 篇幅有限 ,软件设计 的前三部 分不作详 细叙述 ,下面仅介 绍SCPI命令转换 部分的软 件实现。
3 . 2 SCPI 命 令 转 换 实 现
3 . 2 . 1 SCPI 简 介
SCPI是基于IEEE488.2标准的测 量仪器程 控命令 [7],对程控命 令的数据 格式、响应 消息、语法 结构、关键 词定义的方 式给出了 标准化的 定义 , 其目的是 能够统一 使用该命令 系统控制 不同厂家 的程控仪 器。SCPI的通信模型 如图5所示。
3 . 2 . 2 SCPI 命 令 与 示 波 器 命 令 间 的 转 换
本课题所 使用的是 泰克TDS2000系列的示 波器 , 首先需要找 出示波器 和SCPI命令中功 能相同命 令的对应关 系 ,然后通过 软件程序 的转换 ,将输入的SCPI命令在LXI代理模块 上通过内 部的转换 直接转换 成示波器 可以识别的 命令 ,传输给示 波器后 ,控制示波 器。
实现示波 器的编程 命令与标 准SCPI命令的相 互转换是本 文需要做 的主要工 作。具体 实现的过 程是 ,在嵌入式LXI代理模块 上 ,USB接口和以 太网接口 调通的工作 完成之后 , 实现类似SCPI标准的示 波器编程 命令转换成 标准SCPI命令的相 关代码。 整个通信 的过程具 体如图6所示。
从上图中 可以看出PC ( 即控制器 ) 与嵌入式LXI代理模块是 通过以太 网接口相 连 ,而LXI代理模块 又通过USB接口和示 波器相连 , 从硬件上 实现了LXI C类标准 ; 将μC/OSII系统移植 于代理模 块中 , 用于代理 服务器任务 调度的管 理 ,驱动层实 现了USB主机驱动 和USBTMC协议 , 便于传输 仪器控制 命令 , 以太网通 信方面进行 了Socket编程的移 植 ,在以太网 和USB接口能够 相互通信的 基础上 , 将以太网 传输过来 的SCPI标准命令转 换为类似SCPI标准的示 波器命令 , 又以USB的包格式传 输给示波 器。
编程部分 首先需要 实现的是 将SCPI命令树 [9]进行存储 , 为了实现 存储、插 入、删除 、遍历的 快速便捷 操作 ,本文将按 照二叉树 的存储方 式 [8]将命令树 存储到程序 当中 ,当以太网 将SCPI命令发给 代理模块 时 , 代理模块通 过uc Udp Data Buff() 接收命令 , 并对其进 行解析查 找匹配的命 令 ,取出对应 的命令号 ,并从结构 体Comd Id中得到对应 的示波器 命令 , 处理器再 通过usb Data Buff() 将这个命令 传给USB接口 , 发送给示 波器 , 示波器可 以直接识别 ,然后返回 相应的应 答。
4 测试方案及结果
4 . 1 测 试 方 案
在测试命 令转换功 能时 , 首先必须 明确是通 过控制器在 上位机上 给设备发 送命令 ,设备收到 命令之后 能够成功地 做出相应 的应答。 实现的环 境是 : 将计算机 与LXI代理模块 通过以太 网相连 , 将代理模 块的USB接口与仪器 设备相连 ,而本文所 指的设备 是泰克公 司的示波器TDS2014B, 该设备支 持USBTMC协议 ( 即非标准SCPI命令 )。
测试的方 法是在PC(控制器 ) 上运行Lab VIEW编写的上位 机界面 [10], 这个界面 是建立在UDP通信协议 上的。代理 需要建立 两个任务 :一个是以 太网数据 和USB数据转换 任务 , 另一个是 标准SCPI命令与非 标准SCPI命令之间 转换的任 务。这两 种转换都 是双向的 ,发送和接收 的格式都 是一样的 , 转换的过 程在由程 序实现 ,最终将返回 的数据显 示在接收 数据区。
4 . 2 测 试 过 程 及 结 果
命令之间 的成功转 换是建立 在以太网 和USB数据格式转 换的基础 上 ,PC通过以太 网在PC端发送标 准SCPI命令数据 包给代理 模块 , 代理模块 将该命令 转换成示波 器识别的 命令 , 并通过USB接口发送 给示波器 ,最后代理 模块需要 将示波器 返回的信 息发给PC。图7显示了发 送给示波 器的测量 命令MEASure [:SCALar]:VOLTage : FREQuency ? , 用于测量 示波器当 前电压的 频率值 ,这是一条 标准的SCPI命令 ,所对应的 示波器执 行的命令是MEASUrement:IMMed:TYPe FREQuency,MEASUrement : IMMed : VALue ? 。示波器 返回的值 同样如图7所示 ,测得的频 率是1 k Hz, 可以说明 完成了查 询类命令 的转换功能 。
对于控制 命令中还 有一类是 设置命令 , 设置命令 的直观表现 是发送的 命令没有 返回数据 ,但是示波 器面板上的 相应设置 会实现 ,这样实现 了控制器 对设备的 远程控制。 这里发送 的命令是 将示波器 的面板语 言设置成 英文的,标准的SCPI命令是SYSTem:LANGuage <ENGLish>,而示波器 相对应的 这条命令 是LANGuage ENGLish。在上位机 界面的发 送数据区 输入该SCPI标准指令 并发送 ,示波器接 收代理模 块转换的 指令后 ,示波器面 板的语言由 中文变成 了英文 , 这样即可 说明标准 的SCPI设置类命令 转换成示 波器的命 令是成功 的。
5 结 论
本文在基 于LPC1768 Cortex-M3系列微处 理器的基础 上 , 结合μC/OS -II嵌入式操 作系统组 成了一个 将USB接口仪器 接入以太 网中的代 理平台 , 实现了通 过标准SCPI命令网络 远程控制 仪器设备 的功能。 本平台能够 使非LXI接口的仪 器仪表接 入到支持LXI标准的仪器 仪表系统 中 , 并且能同 时使用SCPI标准可编 程仪器命令 对设备进 行统一管 理 ,具有较强 的通用性 。
摘要:为了使非LXI(LAN e Xtensions for Instrumentation)接口的仪器仪表可以接入到支持LXI标准的仪器仪表系统中,并且能够同时使用SCPI(Standard Commands for Programmable Instruments,SCPI)标准可编程仪器命令对设备进行统一管理,提出一种基于嵌入式LXI代理模块的SCPI命令转换方法。通过对USB数据包流图的捕获,验证了USB主机驱动的编程是成功的,并且通过上位机发送查询和控制命令,实现了LXI接口规范以及SCPI命令与厂家自定义命令之间的转换。
嵌入式目标模块 第8篇
随着互关键词联网技术和网络通信技术的飞速发展, 人们可以通过Web方式来了解周围的一切。32位嵌入式微处理器的出现, 其良好的处理能力, 使嵌入式Web的成为现实, 管理人员和维护
人员可以通过网络进行远程监控, 给工作带来很大方便。而且TCP/IP网络通信质量稳定, 由于TCP/IP网络是基于复杂环境设计的, 具有自动纠错功能, 所以通信质量非常稳定, 不受外部环境干扰。
铁路产品一直把安全放在第一位, 不管是硬件还是软件, 在设计过程中必须首先要考虑安全防护, 即使设备损坏也不能影响正常行车。在设计过程中不仅要考虑自己产品本身的安全, 这需要设计人员非常熟悉铁路产品设计规范, 如硬件PCB板布线规范, 软件代码规范等;而且还要考虑外界对产品的危害及防护, 如电磁干扰、感应雷等。
1轨道电路采集模块硬件设计
本模块采用TI公司Stellaris系列32位ARM Cortex-M3微处理器LM3S6432, 该处理器最高频率达到50MHZ, 片上具有96K快速单周期片上闪存及32K SARAM内存, 可高效处理数据。该处理器采用LQFP-100封装, 并集成了片上10/100MB以太网MAC和PHY, 从而能够最大限度的节省空间。模块硬件结构如图1。
采集模块在轨测盘采集轨道电路信号, 在采集前端增加衰耗电阻、保险丝、TVS管等保护, 然后通过PT43B001互感器进行隔离, 该互感器是无源电流型互感器, 采用电磁隔离原理, 具有隔离耐压高, 精度高, 温漂小, 线性好, 响应快等特点。互感器后端经过放大电路、滤波电路后供ARM处理器进行采集。
EEPROM采用ATMEL公司生产的AT24C02, 该芯片具有256字节存储空间, 用来存放轨道电路采集模块的系数及数据。AT24C02兼容I2C总线, 通过I2C总线同LM3S6432进行数据交换。
SDRAM数据存储器采用SAMSUNG公司的K4S561632C, 它具有高性价比, 存储容量大, 读取速度快等特点。
JTAG (Joint Test Action Group) 是一种国际标准测试协议, LM3S6432具有片内JTAG和调试电路, 通过JTAG接口可对片内所有部件进行访问。
LM3S6432片上集成以太网MAC和PHY, 以太网接口处增加了HY601680网络变压器, 它的作用主要是: (1) 使差分信号进行电平耦合, 增强信号, 使传输更远 (2) 使芯片与外部隔离, 用于防雷击。
2轨道电路采集模块软件设计
轨道电路采集模块的主要功能是实时采集轨道电路上的频率、轨道电压和相位角信息, 并且对信息进行处理后发送至以太网。轨道电路采集模块有固定的IP地址, 通过以太网访问相应模块的IP地址, 同模块进行交互, 通过网页可以校正采集模块的系数及零漂, 可以看到当前模块所采集轨道电路的电压及相位角。轨道电路采集模块具有故障自诊断功能, 故障信息上报功能。轨道电路采集模块在软件设计中主要有以下两个关键技术点:
(1) 嵌入式操作系统Free RTOS:它属于轻量级的操作系统, 而且是完全免费的操作系统, 并具有源码公开、可移植、可裁减、调度策略灵活的特点。使用操作系统更有效地利用CPU的资源, 简化应用软件的设计, 缩短系统开发时间, 更好地保证系统的实时性和可靠性。轨道电路采
集模块就是通过操作系统把实时采集任务、处理信息任务、TCP-IP任务和故障诊断任务之间进行切换来完成模块的功能。
(2) Lw IP:它是完全开源的TCP/IP协议栈, 是Light Weight (轻型) IP协议。Lw IP支持UDP协议、TCP协议、ICMP协议、PPP和DHCP协议等。它实现的重点是在保持协议主要功能的基础上减少对RAM的占用, 一般它只需要几百字节的RAM和40K左右的ROM就可以运行, 这使Lw IP协议栈适合在低端的嵌入式系统中使用。在轨道电路采集模块中使用的是TCP/IP协议, 该协议在LWIP中收发数据流程如图2。
在Lw IP中需要使用信号量、消息队列和创建新线程函数等操作, 因此使用Free RTOS系统能够更方便、更可靠的满足Lw IP。在使用Lw IP时, 需要注意两方面内容: (1) 熟悉关键数据结构和函数, 比如Pbuf、Netbuf、Netconn数据类型和netconn_new () 、netconn_bind () 、netconn_listen () 、netconn_write () 、netconn_recv () 等操作函数。 (2) 在通信传输方面, Lw IP使用信号量进行通信, 需要实现信号量结构体struct sys_semt和处理函数sys_sem_new () 、sys_sem_signal等;Lw IP使用邮箱来缓冲、传递数据报文, 因此要实现消息队列结构sys_mbox_t以及相应的操作函数sys_mbox_new () 、sys_mbox_post () sys_arch_mbox_fetch () 等。Free RTOS嵌入式操作系统已经实现了信号量和消息队列等操作, 因此只要把上面的函数按照Free RTOS格式来操作就可以实现其功能。LWIP还提供了提高应用程序性能的回调接口 (Raw API) , 使得设计更加方便和快捷, 轨道电路采集模块网络方面设计按照如下流程 (如图3) 。
嵌入式目标模块
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。