在工業自動化、機械、機器人和其他工業領域中,許多嵌入式系統是通過以太網,或者是實時現場
總線,如PROFIBUS,抑或EtherCAT,來完成數據間的相互通訊。通常,嵌入式系統是網絡中的一部分,而網絡中一般包括傳感器及通過TCP/IP通訊的計算機。TCP/IP是計算機通信的一組協議,數據的交互通過一系列的請求與應答來完成。
以室溫模型作為例子,文章將會描述模型通過TCP/IP與其它設備通訊的方法。通訊的方法是基于低成本的TCP/IP到串行轉換的硬件。實時系統是xPC,它能使Simulink模型實時運行在獨立的PC上。目標計算機是x86處理器Intel/AMD標準的PC,帶有輸入/輸出接口卡。
在這里所描述的連接方法適用于任何支持串行通訊的實時或嵌入式系統。
選擇一款變換器
選擇一款與你的應用程序和通訊設備最匹配的變換器,主要從連接的數量、波特率和連接協議這三方面考慮。對于文中的例子,我們選擇GW212,如圖1所示。
圖1 GW212 TCP/IP-to-serial變換器
配置變換器
配置變換器包括設置串行規格和TCP/IP參數。這里,我們使用telnet命令完成對GW212的配置。另外,選擇我們網站的TCP/IP地址,并設置變換器為客戶端模式,以便從NOAA(美國國家海洋的大氣局)網站通過服務器端腳本獲取數據。
測試變換器
變換器最好先在非實時系統中測試。為了測試GW212,我們將它連接到Internet和臺式機的串口上,然后發送http命令GET和HOST,幾乎同時,收到了相應的數據。
既然變換器正常工作,最后的任務就是解析從服務器返回的數據,并使用在溫度模型上。
圖2 測試TCP/IP的信息
在實時仿真中使用TCP/IP數據
將變換器連接到實時仿真機的串口上,然后運行如圖3的室溫模型,模型中的OAT(外界空氣溫度)既是取自NOAA。為了提高效率,我們創建了服務器端腳本去解析NOAA數據,以簡化實時任務。接著xPC通過服務器上的腳本請求獲取數據。再由實時模型取回感興趣的數據。OAT數據是通過如圖4所示的子系統從Internet獲取的。
圖3 室溫模型
仿真結果
從獲取的溫度數據可以看出溫度從來沒有超過25度,所以圖5所示的仿真結果表明在這種條件下用電器加熱屋子是有限制的——一天的費用是40多美元。
在實時應用中使用變換器
由于串口通訊的速度要比以太網通訊慢,所以文中所描述的連接方案在傳輸大量數據時是不合適的。但是,對于基層任務卻不失為一個好的方法,比如與TCP/IP網絡上的傳感器或設備交互命令或狀態數據等。
文中所述的方法適用于任何不支持TCP/IP而支持串口通訊的實時設備,比如Real-Time Windows Target或是嵌入式處理器(如TI C2000和MPC55x系列),只要串口的電氣接口匹配就可以。
圖4:室內室外溫度(華氏溫度,從2007.12.4日早上9點到2007.12.6日早上9點)上圖:加熱屋子的估計費用(美元)
(e