用于实时和嵌入式系统的TCP / IP通信

作者:Sam Mirsky, MathWorks


工业自动化、机械、机器人和其他行业中的许多嵌入式系统通过以太网或实时现场总线接口(如PROFIBUS或EtherCAT)进行数据通信。通常,嵌入式系统是网络的一部分,该网络包括通过TCP/IP提供数据的传感器或其他计算机。TCP/IP不适合实时操作,因为它是一种基于连接的协议,使用客户机/服务器模型,数据通过一系列请求和响应检索。

使用房屋的热模型作为示例,本文介绍了一种通过TCP / IP与其他设备通信的方法。该方法基于廉价的TCP / IP串行转换硬件。实时系统是XPC Target™,可启动内核,可实现Simulink的实时执行万博1manbetx®模型在一个单独的PC上。目标计算机是一个x86处理器英特尔®/ AMD®可以使用商用现成输入/输出接口卡的标准PC。

这里描述的连接方法可以使用任何实时或支持串行通信的嵌入式系统。万博1manbetx

选择转换器

外部硬件,即转换器,是通信设置中的关键部件。有许多类型的转换器可用,每一种都提供不同的特性和功能。选择最适合您的应用程序和通信设置的转换器,记住三个关键特性:

  • 连接数 - 某些转换器支持单个连接,而其他转换器提供多达32个与多个串行端口万博1manbetx的多个连接。
  • 波特率 - 我们看到波特率高达921kbaud的转换器。波特率较低的转换器较便宜,但它们的性能较慢。
  • 连接协议-转换器必须支持您的网络使用的协议,要么TTL串行,RS-232, RS-万博1manbetx422,或RS-485。

对于此示例,我们使用来自Neteon.net的GW212(图1)。GW212是用于诸如此类的应用程序的若干模型之一。关于卡片的尺寸,它在一侧有一个RJ-45插孔,另一侧是DB-9。

GW212每次支持一万博1manbetx个连接,可以作为TCP服务器接受连接,也可以作为TCP客户端请求连接。它支持万博1manbetxRS-232串行协议,速率为1200 bps至230 Kbps。它具有运行(内部固件)、LAN活动和COM活动的状态灯。

图1. GW212 TCP / IP串口转换器。

配置转换器

配置转换器涉及设置串行规范和TCP/IP参数,以及诸如速度、奇偶校验和停止位等标准串行设置。大多数转换器可以使用DOS窗口或Telnet应用程序、Web浏览器或提供的配置软件进行配置。

我们使用Telnet命令配置GW212。由于我们将获得国家海洋和大气管理局(NOAA)提供的温度数据,我们选择我们网站的TCP / IP地址,通过服务器端脚本检索来自NOAA网站的数据,然后设置转换到客户端模式。

测试转换器

最佳实践是在实时系统中实现命令之前,先在非实时系统中测试转换器。

要测试GW212,我们将其连接到Internet并使用Microsoft将其连接到桌面计算机上的串行端口®HyperTerminal,一个用于连接到其他计算机,Telnet站点,在线服务和主机的程序。我们发送HTTP命令获得和主机。几乎立即,检索相关数据(图2)。

图2。在Windows XP中测试TCP/IP消息。在超级终端窗口中看到的响应是来自服务器的“原始”响应。点击图像查看放大视图。

既然转换器正在运行,最终任务是解析从服务器返回的数据并在热模型中使用它。(在实际应用中,此数据可能是将以算法使用的传感器数据。)

在实时模拟中使用TCP / IP数据

将转换器连接到实时机器的串行端口后,我们使用NOAA的Live Oution Air温度(OAT)数据运行热模型(图3)。为效率,我们创建一个服务器端脚本,解析NOAA数据以简化实时任务。然后,XPC目标从我们服务器上的脚本请求数据。实时模型通过使FIFO读取标题“TEMP:”和终止字符串CR和LF(ASCII [13 10])检索感兴趣的数据。然后ASCII解码读取格式字符串“TEMP:%F \ r \ n”以获取OAT。

图3.房屋的热模型。点击图像查看放大视图。

外部空气温度由图4所示的子系统从互联网上获得。

图4。与xPC目标进行串行通信。点击图像查看放大视图。

仿真结果

在采集温度数据的两天里,温度从未超过25华氏度(3.9摄氏度)。正如模拟所示(图5),在这种情况下用电加热房子将是令人望而却步的——每天花费超过40美元,或每月1200美元。

图5.底板:内外温度,以华氏度为伍斯特,马达于2007年12月4日从上午9点到2007年12月6日上午9点到上午9:00。顶层情节:加热的估计成本house (in U.S. dollars). Click on image to see enlarged view.

在真实应用程序中使用转换器

因为串行通信的数据速率比以太网通信慢,所以本文描述的连接解决方案可能不适用于传输大量数据。不过,它确实可以很好地完成基本任务,比如从TCP/IP网络上的传感器或设备通信命令或状态数据。

它可以与支持串行但不是TCP / IP的任何实时设备一起使用,例如实时Windows Tar万博1manbetxget™或嵌入式处理器(例如TI C2000和MPC55X系列),只要串行电气接口是匹配。它还适用于任何TCP / IP网络上的双向通信。

承认

这个想法的灵感来自Tom Igoe的一篇文章,该文章描述了一种从互联网上获取空气质量数据的方法,使用Arduino微控制器和Lantronics TCP/IP到TTL串行转换器。然后微控制器驱动一个模拟仪表与脉宽调制(PWM)输出。

出版2008 - 91580v00

参考

  • 汤姆Igoe“净数据表”。制作,第11卷,第133-137页。

查看相关功能的文章

查看相关行业的文章