摘 要: 利用ADμC831和TMS320F206的片上資源定義了完整的TEDS,并通過μIP協(xié)議建立了帶有CGI功能的嵌入式" title="的嵌入式">的嵌入式Web服務器,利用兩個芯片豐富的外部接口定義了TII標準接口,從而實現(xiàn)了基于IEEE1451.2標準的嵌入式Web接口模塊" title="接口模塊">接口模塊,為基于IEEE1451標準的嵌入式Web應用提供了一種簡單的實現(xiàn)方法。
關鍵詞: IEEE1451.2標準 TEDS TII接口 μIP協(xié)議 嵌入式Web服務器
為了實現(xiàn)控制總線的統(tǒng)一,在1997年和1999年IEEE先后頒布了IEEE1451.2標準和IEEE1451.1標準。IEEE1451.1標準定義了網(wǎng)絡獨立的信息模型,使傳感器/執(zhí)行器" title="執(zhí)行器">執(zhí)行器通過網(wǎng)絡匹配處理器NCAP(Network Capable Application Processor)連接到控制網(wǎng)絡;IEEE1451.2標準定義了一個智能變送器接口模塊STIM(Smart Transducer Interface Module),主要包括電子數(shù)據(jù)表單TEDS(Transducer Electronic Data Sheet)和與傳感器無關的標準接口TII(Transducer Independent Interface)。
目前,市場上基于IEEE1451標準的傳感器/執(zhí)行器不多,僅有的產品也只是借用了IEEE1451標準的部分內容,例如定義了部分的TEDS或是沒有完全按照標準定義TII接口。本設計嚴格按照IEEE1451.2標準,在ADμC831和TMS320F206上分別實現(xiàn)STIM模塊和NCAP模塊,并且定義了標準的TII接口。
1 接口模塊的硬件設計
1.1 ADμC831芯片
ADμC831單片機是美國AD公司出品的高性能微轉換器,集成了8通道的自校準12位ADC、2個支持PWM輸出的12位DAC以及與8051兼容的可編程8位MCU。片內資源為62KB的閃速" title="閃速">閃速程序存儲器、4KB的閃速數(shù)據(jù)存儲器以及2304B的RAM。片內集成看門狗定時器(WDT)、電源監(jiān)視器(PSM)和可用于溫度補償?shù)臏囟葌鞲衅鳌A硗?,為多處理器接口和I/O擴展提供了32條可編程的I/O線、I2C兼容的SPI和標準UART串行端口。
1.2 TMS320F206
TMS320F206芯片是美國TI公司生產的一款16位定點DSP,采用高性能靜態(tài)CMOS集成電路工藝制造。它操作靈活、性價比高,已廣泛應用于圖形圖像處理、語音處理、通信及儀器儀表等領域。
F206采用先進的改進型哈佛結構,其程序存儲器和數(shù)據(jù)存儲器具有各自的總線結構,結合四級流水線操作,兩條總線獨立編址、獨立訪問,可允許同時讀取數(shù)據(jù)和指令,從而使數(shù)據(jù)的吞吐率提高了一倍。F206集成了一個4.5K字的片內RAM存儲器、32K字的閃速FLASH存儲器,可用于存儲程序和數(shù)據(jù)文件。
1.3 總體設計
本設計嚴格遵循IEEE1451.2標準,采用高性能的單片機ADμC831實現(xiàn)STIM模塊的功能,在其上建立完整的TEDS,可以同時控制8路傳感器和2路執(zhí)行器;采用TMS320F206和以太網(wǎng)控制芯片RTL8019AS實現(xiàn)NCAP模塊的功能,在其上建立嵌入式Web服務器以響應遠程訪問;在兩個模塊之間設計2×5的標準TII接口,以實現(xiàn)兩個模塊的連接。其設計原理圖如圖1所示。
1.4 TII接口設計
TII是用于連接NCAP和STIM的點對點、時鐘同步的標準接口,共有10個引腳。本設計按照IEEE1451.2標準的定義,利用ADμC831、TMS320F206的I/O和中斷接口,實現(xiàn)了TII標準接口,其具體含義如表1所示。
其中NIOE在ADμC831端為從機選擇信號,當其低電平有效時表示處于從機狀態(tài),接收外部串行時鐘信號以實現(xiàn)數(shù)據(jù)同步傳輸,所以F206應通過IO3輸出低電平;F206通過IO2觸發(fā)ADμC831的INT0,在中斷程序中實現(xiàn)數(shù)據(jù)采集和執(zhí)行器控制;F206的/INT2端與STIM模塊斷開時為高電平,當與STIM模塊連接時,在STIM模塊上通過10kΩ電阻接地將之拉至低電平,從而觸發(fā)中斷,而在中斷程序中改寫標志位,使NCAP確認STIM的存在;當STIM模塊需要服務時,通過NINT通知F206的IO1,在NCAP模塊的主程序中會查詢此端口的狀態(tài)以判斷是否需要對STIM模塊服務。
2 STIM模塊中TEDS的定義
TEDS是IEEE1451.2標準的核心,它完整詳細地描述了STIM所支持的傳感器/執(zhí)行器的類型、操作和屬性,并具有自動識別這些傳感器/執(zhí)行器的能力。鑒于ADμC831內置了62KB的閃速程序存儲器、4KB的閃速數(shù)據(jù)存儲器以及2304B的RAM,資源豐富,所以在TEDS.c文件中完整地定義了TEDS的8個部分,具體定義如表2所示。
3 NCAP模塊的軟件設計
3.1 軟件設計方法
為了實現(xiàn)因特網(wǎng)連接,使用μIP協(xié)議實現(xiàn)底層網(wǎng)絡設備與上層應用程序之間的連接。本設計中μIP協(xié)議將ARP協(xié)議、IP協(xié)議、ICMP協(xié)議和TCP協(xié)議合為一個有機的整體,通過一系列接口函數(shù)" title="接口函數(shù)">接口函數(shù)與底層網(wǎng)絡設備和上層應用程序通信。μIP提供了μip_input()和μip_periodic()兩個接口函數(shù)給底層網(wǎng)絡設備,結合RTL8019AS建立與因特網(wǎng)的連接及數(shù)據(jù)傳輸;μIP向應用程序提供了一個接口函數(shù)UIP_APPCALL(),將其定義為嵌入式Web服務器程序,從而可以在處理網(wǎng)絡數(shù)據(jù)包時調用Web服務器程序,使遠端用戶通過Web瀏覽器(例如IE)便可對NCAP模塊上的數(shù)據(jù)進行讀取和改寫,從而實現(xiàn)對STIM模塊上的傳感器/執(zhí)行器的數(shù)據(jù)采集和控制。
為了實現(xiàn)對傳感器/執(zhí)行器的互動操作,在Web服務器上需要有運行外部程序的接口,即CGI(Common Gate Intergace),以便提供動態(tài)網(wǎng)頁。μIP提供的源代碼中包括一個WebServer示例,其中一個很小的腳本語言可以實現(xiàn)CGI的功能。這個腳本語言規(guī)定每一個腳本行以一個命令字符開頭,例如“i”、“t”、“c”、“?!被蛘摺?”,其語法規(guī)則是:
(1)“i”命令通知腳本解釋器從文件系統(tǒng)取出一個靜態(tài)文件并輸出到瀏覽器;
(2)“t”命令表示將隨后的一段文字輸出到瀏覽器;
(3)“c”命令用來從cgi.c中調用一個C函數(shù);
(4)“?!泵畋硎颈拘袨樽⑨屝?;
(5)“.”命令表示本行是最后一行腳本語言。
利用這個腳本語言生成的動態(tài)網(wǎng)頁的代碼示例如下:
/code /*表示代碼開始*/
i/ header.html /*將header.html文件輸出到瀏覽器*/
t〈H1〉測試頁面〈/H1〉 /*將“測試頁面”作為標題輸出到瀏覽器*/
c open /index.html /*調用open函數(shù),對index.html文件操作*/
./*表示本行是最后一行腳本語言,退出腳本解釋器*/
/endcode /*表示代碼結束*/
3.2 主程序的實現(xiàn)
NCAP模塊沒有使用嵌入式操作系統(tǒng),可以進一步節(jié)約資源。主程序采用中斷加輪詢的方式,除了看門狗WDT外,其余中斷(包括STIM模塊的觸發(fā)中斷)只設定標志位以控制程序流程。
在程序中輪詢有無網(wǎng)絡數(shù)據(jù)包輸入。如果沒有則檢測定時輪詢中斷是否發(fā)生,如果發(fā)生則調用μip_periodic()輪詢各連接,檢查是否有數(shù)據(jù)要發(fā)送,如果有則構造IP包并發(fā)送出去。
如果有數(shù)據(jù)包輸入則判斷數(shù)據(jù)包的種類,如果是ICMP包只需要把類型字段從“echo”類型改變?yōu)椤癳cho reply”類型,調整ICMP 校驗和,并互換IP 數(shù)據(jù)包頭中的目的地址和源地址,把包發(fā)回到發(fā)送方,從而實現(xiàn)對ping功能的支持。如果是TCP包,則利用μIP的μip_input()做相(接上頁)
應處理,并通過調用函數(shù)UIP_APPCALL()訪問Web服務器,在Web服務器上判斷是傳送靜態(tài)網(wǎng)頁還是通過CGI對傳感器/執(zhí)行器進行操作。
主程序的流程圖如圖2所示。
經(jīng)過實驗證明,合理利用ADμC831和F206的片上資源以及μIP協(xié)議的接口函數(shù),可以實現(xiàn)一個基于IEEE1451.2標準的、功能較為完善的嵌入式Web接口模塊。此模塊適用于智能儀器儀表和遠程控制系統(tǒng),為建立網(wǎng)絡測控系統(tǒng)提供一種簡便的實現(xiàn)方案。
參考文獻
1 The ADμC812 as an IEEE1451.2 STIM.MicroConverterTM Technical Note-uC003.www.analog.com/microconverter
2 鄧治國,張維新.μIP TCP/IP協(xié)議棧在51系列單片機上的應用.微計算機信息,2004;20(3):88~90
3 μIP0.9.協(xié)議棧網(wǎng)絡站點.http://dunkels.com/adam/uip/