在工业自动化、机械、机器人和其他工业领域中,许多嵌入式系统是通过以太网,或者是实时现场总线,如PROFIBUS,抑或EtherCAT,来完成数据间的相互通讯。通常,嵌入式系统是网络中的一部分,而网络中一般包括传感器及通过TCP/IP通讯的计算机。TCP/IP是计算机通信的一组协议,数据的交互通过一系列的请求与应答来完成。
以室温模型作为例子,文章将会描述模型通过TCP/IP与其它设备通讯的方法。通讯的方法是基于低成本的TCP/IP到串行转换的硬件。实时系统是xPC,它能使Simulink模型实时运行在独立的PC上。目标计算机是x86处理器Intel/AMD标准的PC,带有输入/输出接口卡。
在这里所描述的连接方法适用于任何支持串行通讯的实时或嵌入式系统。
选择一款变换器
选择一款与你的应用程序和通讯设备最匹配的变换器,主要从连接的数量、波特率和连接协议这三方面考虑。对于文中的例子,我们选择GW212CONTROL ENGINEERING China版权所有,如图1所示。
图1 GW212 TCP/IP-to-serial变换器
配置变换器
配置变换器包括设置串行规格和TCP/IP参数。这里,我们使用t
测试变换器
变换器最好先在非实时系统中测试。为了测试GW212,我们将它连接到Internet和台式机的串口上控制工程网版权所有,然后发送http命令GET和HOST,几乎同时,收到了相应的数据。
既然变换器正常工作,最后的任务就是解析从服务器返回的数据,并使用在温度模型上。
图2 测试TCP/IP的信息
在实时仿真中使用TCP/IP数据
将变换器连接到实时仿真机的串口上控制工程网版权所有,然后运行如图3的室温模型,模型中的OAT(外界空气温度)既是取自NOAA。为了提高效率,我们创建了服务器端脚本去解析NOAA数据,以简化实时任务。接着xPC通过服务器上的脚本请求获取数据。再由实时模型取回感兴趣的数据。OAT数据是通过如图4所示的子系统从Internet获取的。
图3 室温模型
仿真结果
从获取的温度数据可以看出温度从来没有超过25度,所以图5所示的仿真结果表明在这种条件下用电器加热屋子是有限制的——一天的费用是40多美元。
在实时应用中使用变换器
由于串口通讯的速度要比以太网通讯慢CONTROL ENGINEERING China版权所有,所以文中所描述的连接方案在传输大量数据时是不合适的。但是,对于基层任务却不失为一个好的方法,比如与TCP/IP网络上的传感器或设备交互命令或状态数据等。
文中所述的方法适用于任何不支持TCP/IP而支持串口通讯的实时设备,比如Real-Time Windows Target或是嵌入式处理器(如TI C2000和MPC55x系列),只要串口的电气接口匹配就可以。
图4:室内室外温度(华氏温度,从2007.12.4日早上9点到2007.12.6日早上9点)上图:加热屋子的估计费用(美元)