使用TCP/IP協(xié)議進(jìn)行實(shí)時(shí)嵌入式系統(tǒng)開發(fā)
在工業(yè)自動化、機(jī)械、機(jī)器人和其他工業(yè)領(lǐng)域中,許多嵌入式系統(tǒng)是通過以太網(wǎng),或者是實(shí)時(shí)現(xiàn)場總線,如PROFIBUS,抑或EtherCAT,來完成數(shù)據(jù)間的相互通訊。通常,嵌入式系統(tǒng)是網(wǎng)絡(luò)中的一部分,而網(wǎng)絡(luò)中一般包括傳感器及通過TCP/IP通訊的計(jì)算機(jī)。TCP/IP是計(jì)算機(jī)通信的一組協(xié)議,數(shù)據(jù)的交互通過一系列的請求與應(yīng)答來完成。
以室溫模型作為例子,文章將會描述模型通過TCP/IP與其它設(shè)備通訊的方法。通訊的方法是基于低成本的TCP/IP到串行轉(zhuǎn)換的硬件。實(shí)時(shí)系統(tǒng)是xPC,它能使Simulink模型實(shí)時(shí)運(yùn)行在獨(dú)立的PC上。目標(biāo)計(jì)算機(jī)是x86處理器Intel/AMD標(biāo)準(zhǔn)的PC,帶有輸入/輸出接口卡。
在這里所描述的連接方法適用于任何支持串行通訊的實(shí)時(shí)或嵌入式系統(tǒng)。
選擇一款變換器
選擇一款與你的應(yīng)用程序和通訊設(shè)備最匹配的變換器,主要從連接的數(shù)量、波特率和連接協(xié)議這三方面考慮。對于文中的例子,我們選擇GW212,如圖1所示。

圖1 GW212 TCP/IP-to-serial變換器
配置變換器
配置變換器包括設(shè)置串行規(guī)格和TCP/IP參數(shù)。這里,我們使用telnet命令完成對GW212的配置。另外,選擇我們網(wǎng)站的TCP/IP地址,并設(shè)置變換器為客戶端模式,以便從NOAA(美國國家海洋的大氣局)網(wǎng)站通過服務(wù)器端腳本獲取數(shù)據(jù)。
測試變換器
變換器最好先在非實(shí)時(shí)系統(tǒng)中測試。為了測試GW212,我們將它連接到Internet和臺式機(jī)的串口上,然后發(fā)送http命令GET和HOST,幾乎同時(shí),收到了相應(yīng)的數(shù)據(jù)。
既然變換器正常工作,最后的任務(wù)就是解析從服務(wù)器返回的數(shù)據(jù),并使用在溫度模型上。

圖2 測試TCP/IP的信息
在實(shí)時(shí)仿真中使用TCP/IP數(shù)據(jù)
將變換器連接到實(shí)時(shí)仿真機(jī)的串口上,然后運(yùn)行如圖3的室溫模型,模型中的OAT(外界空氣溫度)既是取自NOAA。為了提高效率,我們創(chuàng)建了服務(wù)器端腳本去解析NOAA數(shù)據(jù),以簡化實(shí)時(shí)任務(wù)。接著xPC通過服務(wù)器上的腳本請求獲取數(shù)據(jù)。再由實(shí)時(shí)模型取回感興趣的數(shù)據(jù)。OAT數(shù)據(jù)是通過如圖4所示的子系統(tǒng)從Internet獲取的。

圖3 室溫模型
仿真結(jié)果
從獲取的溫度數(shù)據(jù)可以看出溫度從來沒有超過25度,所以圖5所示的仿真結(jié)果表明在這種條件下用電器加熱屋子是有限制的——一天的費(fèi)用是40多美元。
在實(shí)時(shí)應(yīng)用中使用變換器
由于串口通訊的速度要比以太網(wǎng)通訊慢,所以文中所描述的連接方案在傳輸大量數(shù)據(jù)時(shí)是不合適的。但是,對于基層任務(wù)卻不失為一個(gè)好的方法,比如與TCP/IP網(wǎng)絡(luò)上的傳感器或設(shè)備交互命令或狀態(tài)數(shù)據(jù)等。
文中所述的方法適用于任何不支持TCP/IP而支持串口通訊的實(shí)時(shí)設(shè)備,比如Real-Time Windows Target或是嵌入式處理器(如TI C2000和MPC55x系列),只要串口的電氣接口匹配就可以。

圖4:室內(nèi)室外溫度(華氏溫度,從2007.12.4日早上9點(diǎn)到2007.12.6日早上9點(diǎn))上圖:加熱屋子的估計(jì)費(fèi)用(美元)
(end)