技术文章及通讯

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

作者:Sam Mirsky, MathWorks


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

本文以房屋的热模型为例,描述了一种通过TCP/IP与其他设备通信的方法。该方法基于使用廉价的TCP/ ip到串行转换硬件。实时系统是xPC Target™,它是一个可引导的内核,可以实现Simulink的实时执行金宝app®模型在单独的PC上。目标计算机是Intel的x86处理器®/ AMD®可以使用商用现货输入/输出接口卡的标准PC。

这里描述的连通性方法可以用于任何实时或支持串行通信的嵌入式系统。金宝app

选择转换器

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

  • 连接数量-一些转换器支持单个连接,而其他转换器提供多达32个多个连接与多个串金宝app行端口。
  • 波特率—我们已经看到波特率高达921kbaud的转换器。波特率较低的转换器价格较低,但其性能较慢。
  • 连接协议—转换器必须支持网络使用的协议,包括TTL串行、RS-232、RS-422金宝app或RS-485。

对于这个例子,我们使用了来自net.net的GW212(图1)。GW212是适用于这样一个应用程序的几种模型之一。它大约有一副纸牌那么大,一边是RJ-45插孔,另一边是DB-9插孔。

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

tcp_fig1_w.gif
图1。GW212 TCP/ ip -串行转换器。

配置转换器

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

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

测试转换器

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

为了测试GW212,我们使用Microsoft将其连接到Internet和桌面计算机的串口®超级终端,用于连接到其他计算机、Telnet站点、在线服务和主机的程序。我们发送http命令GET和HOST。相关数据几乎立即被检索(图2)。

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

现在转换器开始工作了,最后的任务是解析从服务器返回的数据,并在热模型中使用它。(在实际应用中,这些数据可能是算法中使用的传感器数据。)

基于TCP/IP数据的实时仿真

在将转换器连接到实时机器的串口后,我们使用来自NOAA的实时室外空气温度(OAT)数据运行热模型(图3)。为了提高效率,我们创建了一个服务器端脚本来解析NOAA数据以简化实时任务。xPC Target然后从我们服务器上的脚本请求数据。实时模型通过使FIFO读报头“Temp:”和终止字符串CR和LF (ASCII[13 10])来检索感兴趣的数据。然后ASCII Decode读取格式字符串“Temp: %f\r\n”以获得OAT。

tcp_fig3_w.gif
图3。房子的热模型。点击图片查看放大视图。

室外空气温度由Internet获取,子系统如图4所示。

tcp_fig4_w.gif
图4。与xPC目标的串行通信。点击图片查看放大视图。

仿真结果

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

tcp_fig5_w.gif
图5。底部图:内部和外部温度,华氏度,伍斯特,马萨诸塞州从2007年12月4日上午9:00到2007年12月6日上午9:00。上图:房屋供暖的估计费用(美元)。点击图片查看放大视图。

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

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

它可以用于任何支持串行但不支持TCP/IP的实时设备,如实时Windows Target™或金宝app嵌入式处理器(如TI C2000和MPC55x系列),只要匹配串行电接口。它还可以在任何TCP/IP网络上进行双向通信。

确认

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

发布于2008年- 91580v00

参考文献

  • Tom Igoe“网络数据仪表。”Make,卷11,133-137页。

查看相关功能的文章

查看相关行业的文章