張小磊,徐俊臣,胡軼群,邱文博,王亞丁
(國(guó)家海洋技術(shù)中心,天津 300112)
在海洋自動(dòng)觀測(cè)領(lǐng)域,隨著大規(guī)模集成電路技術(shù)和微處理器技術(shù)的快速發(fā)展,各種形式的測(cè)量傳感器和海洋觀測(cè)儀器已經(jīng)實(shí)現(xiàn)了高度的數(shù)字化和自動(dòng)化(蔡樹(shù)群等,2007)。而近年來(lái)計(jì)算機(jī)網(wǎng)絡(luò)尤其是物聯(lián)網(wǎng)技術(shù)的高速發(fā)展(李四海等,2012),已經(jīng)成為信息化時(shí)代的核心,網(wǎng)絡(luò)通訊技術(shù)的發(fā)展不僅深入到人們的工作和生活,也為自動(dòng)觀測(cè)設(shè)備提供了一種通用、快速、經(jīng)濟(jì)的標(biāo)準(zhǔn)接口和數(shù)據(jù)傳輸通道(沈蘇彬等,2009)。具有網(wǎng)絡(luò)接口的海洋觀測(cè)儀器不僅可以方便和其他設(shè)備以及計(jì)算機(jī)系統(tǒng)連接,便于系統(tǒng)集成和數(shù)據(jù)共享,更可以憑借因特網(wǎng)這一高速通道實(shí)現(xiàn)遠(yuǎn)程設(shè)備管理和數(shù)據(jù)通訊,極大擴(kuò)展了設(shè)備的通訊范圍和應(yīng)用靈活性(李嘉等,2001)。因此,網(wǎng)絡(luò)化和智能化已經(jīng)成為自動(dòng)觀測(cè)設(shè)備的一種發(fā)展趨勢(shì)。
目前大多數(shù)自動(dòng)儀器設(shè)備實(shí)現(xiàn)網(wǎng)絡(luò)接入可以采用以下方式,第一種是基于單片機(jī)和以太網(wǎng)控制芯片來(lái)實(shí)現(xiàn)(劉亞萍等,2010),這種方式硬件電路簡(jiǎn)單,僅需兩個(gè)主要芯片,價(jià)格低,但由于單片機(jī)的資源和性能所限,網(wǎng)絡(luò)通訊能力受到一定制約,同時(shí)對(duì)軟件設(shè)計(jì)人員的要求較高,需要熟練掌握TCP/IP 網(wǎng)絡(luò)協(xié)議,代碼設(shè)計(jì)工作量和難度都較大;第二種方式是采用高端ARM 芯片并移植網(wǎng)絡(luò)操作系統(tǒng)(徐榮珍等,2006),使用操作系統(tǒng)提供網(wǎng)絡(luò)功能,這種方式需要較高的硬件電路配置以運(yùn)行操作系統(tǒng),并需要專(zhuān)業(yè)人員負(fù)責(zé)網(wǎng)絡(luò)操作系統(tǒng)的移植,系統(tǒng)功耗較大且成本較高。
本文介紹的基于W7100A 芯片來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)接口設(shè)計(jì),網(wǎng)絡(luò)部分采用高集成度的工業(yè)級(jí)單芯片設(shè)計(jì),具有硬件電路簡(jiǎn)單、功耗及成本低、工業(yè)級(jí)設(shè)計(jì)、尤其適應(yīng)海洋工作環(huán)境的特點(diǎn),同時(shí)由于芯片內(nèi)置硬件TCP/IP 協(xié)議,極大地簡(jiǎn)化了軟件設(shè)計(jì)難度,軟件設(shè)計(jì)人員無(wú)需過(guò)多的了解復(fù)雜的TCP/IP協(xié)議,只需具有一定的socket 編程基礎(chǔ)即可實(shí)現(xiàn)網(wǎng)絡(luò)編程。
W7100A 是韓國(guó)WIZnet 公司在原網(wǎng)絡(luò)協(xié)議芯片W5100 的基礎(chǔ)上于2011年推出的新一代網(wǎng)絡(luò)芯片,該芯片在原有硬件TCP/IP 協(xié)議棧、MAC 層和物理層接口的基礎(chǔ)上,為方便嵌入式設(shè)備應(yīng)用而集成了高速微控制器和大容量程序及數(shù)據(jù)存儲(chǔ)器,可單芯片構(gòu)成網(wǎng)絡(luò)接口,非常適合應(yīng)用于自動(dòng)化儀器設(shè)備尤其是沒(méi)有網(wǎng)絡(luò)操作系統(tǒng)支持的現(xiàn)場(chǎng)觀測(cè)儀器設(shè)備的網(wǎng)絡(luò)通信模塊設(shè)計(jì)。
圖1 為網(wǎng)絡(luò)接口的電路原理圖,該模塊設(shè)計(jì)為通用接口模塊,實(shí)現(xiàn)了標(biāo)準(zhǔn)RS-232 串行數(shù)據(jù)接口到TCP/IP 網(wǎng)絡(luò)接口的協(xié)議轉(zhuǎn)換。任何具有標(biāo)準(zhǔn)RS-232 接口的儀器設(shè)備無(wú)需做任何改動(dòng),就可通過(guò)該模塊實(shí)現(xiàn)網(wǎng)絡(luò)接入。硬件電路設(shè)計(jì)要點(diǎn)如下:
圖1 網(wǎng)絡(luò)接口電路原理圖
(1) 為降低模塊功耗提高供電效率,模塊采用開(kāi)關(guān)電源設(shè)計(jì),開(kāi)關(guān)電源芯片選取LM2594,供電范圍可達(dá)直流(5-30) V,其輸出電壓為3.3 V,效率高達(dá)80%,模塊內(nèi)全部芯片均選用3.3 V 供電,為減小開(kāi)關(guān)電源的輸出噪聲,電源系統(tǒng)增加了電源濾波設(shè)計(jì);
(2) W7100A 芯片的UART 接口信號(hào)通過(guò)電平變換電路MAX3243 構(gòu)成標(biāo)準(zhǔn)RS-232 接口,該接口有兩個(gè)功能,當(dāng)控制線(xiàn)RTS 有效時(shí)(高電平)可以與觀測(cè)儀器的通訊接口相接實(shí)現(xiàn)網(wǎng)絡(luò)通訊應(yīng)用,當(dāng)控制線(xiàn)RTS 無(wú)效時(shí)(低電平) 可以通過(guò)此接口實(shí)現(xiàn)網(wǎng)絡(luò)參數(shù)的設(shè)置與查詢(xún);
(3) 網(wǎng)絡(luò)變壓器13F60 實(shí)現(xiàn)W7100A 芯片的網(wǎng)絡(luò)輸入輸出信號(hào)的隔離,構(gòu)成模塊的網(wǎng)絡(luò)接口。由于網(wǎng)絡(luò)通訊速度高達(dá)100 M,為減小電干擾,W7100A 芯片的網(wǎng)絡(luò)數(shù)據(jù)輸入和輸出的兩對(duì)信號(hào)線(xiàn)要分別平行布放且不要與其他連線(xiàn)交叉;
(4) 芯片24MAC402 通過(guò)I2C 接口與W7100A芯片相連接,該芯片實(shí)現(xiàn)兩個(gè)功能,其一該芯片內(nèi)部具有一組全世界唯一的48bit 的MAC 地址(物理地址) 供W7100A 讀取使用,以保證網(wǎng)卡在因特網(wǎng)中的唯一性和合法性,確保不會(huì)造成地址沖突,其二該芯片具有256 字節(jié)的EEPROM 存儲(chǔ)器,用來(lái)保存網(wǎng)絡(luò)通訊參數(shù)如網(wǎng)關(guān)地址、子網(wǎng)掩碼、本機(jī)IP 地址、本機(jī)端口號(hào)、服務(wù)器IP 地址、服務(wù)器端口號(hào)和通訊方式設(shè)置等;
(5) 為了方便使用和調(diào)試,模塊設(shè)計(jì)有POW、LINK、RTD 和TCP 共四個(gè)指示燈,分別用來(lái)指示電源是否正常、網(wǎng)絡(luò)連接是否正常、是否有網(wǎng)絡(luò)數(shù)據(jù)接收或發(fā)送和TCP 連接是否已經(jīng)建立;
(6) 模塊軟件運(yùn)行在W7100A 內(nèi)部,具備較好的抗干擾能力,但海洋觀測(cè)現(xiàn)場(chǎng)(如海洋站、調(diào)查船) 具有大功率雷達(dá)等電子設(shè)備,電磁環(huán)境較為惡劣。為保證系統(tǒng)在海洋觀測(cè)現(xiàn)場(chǎng)的可靠性和穩(wěn)定性,模塊設(shè)計(jì)有專(zhuān)用的復(fù)位電路MAX809R,當(dāng)觀測(cè)系統(tǒng)電源出現(xiàn)不穩(wěn)定的情況下,確保系統(tǒng)的正確復(fù)位和恢復(fù)運(yùn)行,同時(shí)配合使用芯片內(nèi)部看門(mén)狗的使用,確保軟件的穩(wěn)定運(yùn)行。
系統(tǒng)軟件由自檢模塊、串口通訊模塊、參數(shù)設(shè)置查詢(xún)模塊、網(wǎng)絡(luò)連接通訊模塊組成。系統(tǒng)的軟件流程如圖2。模塊具有兩種運(yùn)行模式,即設(shè)置模式和工作模式,運(yùn)行模式取決于串口的RTS 信號(hào)。當(dāng)RTS 信號(hào)無(wú)效時(shí),運(yùn)行在設(shè)置模式,此時(shí)上位機(jī)可通過(guò)串口設(shè)置和查詢(xún)模塊的網(wǎng)絡(luò)工作參數(shù);當(dāng)RTS 信號(hào)有效時(shí),運(yùn)行在工作模式,實(shí)現(xiàn)網(wǎng)絡(luò)連接和通訊功能。
自檢模塊由I2C 接口讀寫(xiě)等程序組成,可以完成24MAC402 芯片MAC 地址讀取以及該芯片256字節(jié)的EEPROM 存儲(chǔ)器的讀寫(xiě)操作。當(dāng)I2C 接口不能正常工作時(shí),該模塊提示系統(tǒng)故障報(bào)警。串口通訊模塊由串口初始化程序、串口接收程序和串口發(fā)送程序組成。參數(shù)設(shè)置查詢(xún)模塊在設(shè)置模式下分析串口命令,完成新參數(shù)的存儲(chǔ)和當(dāng)前參數(shù)的查詢(xún)。網(wǎng)絡(luò)模塊連接和通訊模塊負(fù)責(zé)網(wǎng)絡(luò)連接的建立、維護(hù)和指示,同時(shí)負(fù)責(zé)網(wǎng)絡(luò)數(shù)據(jù)的接收和發(fā)送。
圖2 軟件流程圖
基于W7100A 芯片的網(wǎng)絡(luò)接口模塊可以同時(shí)支持8 個(gè)socket 通道,在軟件的控制下,每一個(gè)socket 通道都可任意設(shè)置使用TCP 通訊協(xié)議和UDP 通訊協(xié)議,極大地提高了應(yīng)用的靈活性。基于海洋觀測(cè)數(shù)據(jù)的重要性,軟件使用高可靠傳輸?shù)腡CP 協(xié)議(Andrew,2004)。在TCP 模式下,本模塊既可以以客戶(hù)端的形式主動(dòng)與遠(yuǎn)端的服務(wù)器建立網(wǎng)絡(luò)連接,又可以以服務(wù)器的形式等待與遠(yuǎn)端的客戶(hù)端建立網(wǎng)絡(luò)連接,待連接建立成功后就可以與遠(yuǎn)端的設(shè)備通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)據(jù)的雙向透明傳輸。
由于W7100A 芯片內(nèi)部集成了TCP/IP 硬件協(xié)議棧,因此軟件設(shè)計(jì)人員無(wú)需對(duì)復(fù)雜龐大的協(xié)議棧有深入的了解,直接在單片機(jī)上用socket 編程就可實(shí)現(xiàn)網(wǎng)絡(luò)通訊,極大簡(jiǎn)化了用戶(hù)軟件設(shè)計(jì)工作。用戶(hù)僅需發(fā)出初始化、連接網(wǎng)絡(luò)、接收數(shù)據(jù)、發(fā)送數(shù)據(jù)、斷開(kāi)連接、檢查狀態(tài)等命令即可實(shí)現(xiàn)網(wǎng)絡(luò)通訊功能。同時(shí)芯片內(nèi)部集成的TCP/IP 核內(nèi)包含了16 KB 的發(fā)送緩沖區(qū)和16 KB 的接收緩沖區(qū),用戶(hù)可以根據(jù)自己的數(shù)據(jù)量的大小為各個(gè)socket 靈活分配緩沖區(qū)的大小,提高數(shù)據(jù)吞吐量,改善通訊效率。
當(dāng)模塊工作在客戶(hù)端模式時(shí),軟件設(shè)計(jì)流程圖如圖3 所示,模塊初始化完畢后按照預(yù)先設(shè)置的服務(wù)器參數(shù)建立并維護(hù)與服務(wù)器的網(wǎng)絡(luò)連接,當(dāng)連接失敗或網(wǎng)絡(luò)連接斷開(kāi)時(shí),軟件控制模塊自動(dòng)重新建立連接,同時(shí)在網(wǎng)絡(luò)連接正常的條件下在儀器設(shè)備和網(wǎng)絡(luò)間透明傳輸數(shù)據(jù)。
數(shù)據(jù)發(fā)送程序負(fù)責(zé)檢查相應(yīng)socket 發(fā)送緩沖區(qū)是否有足夠的存儲(chǔ)空間并將需要發(fā)送的數(shù)據(jù)直接放入發(fā)送緩沖區(qū)內(nèi);數(shù)據(jù)接收程序負(fù)責(zé)檢查相應(yīng)socket 接收緩沖區(qū)是否有已經(jīng)收到數(shù)據(jù)并迅速取出數(shù)據(jù)。
圖3 客戶(hù)端模式軟件流程圖
當(dāng)模塊工作在TCP 服務(wù)器模式時(shí),模塊初始化完成后進(jìn)入監(jiān)聽(tīng)狀態(tài),等待遠(yuǎn)端的客戶(hù)端的連接請(qǐng)求。當(dāng)收到客戶(hù)端的連接請(qǐng)求后建立TCP 連接并傳輸數(shù)據(jù),網(wǎng)絡(luò)連接的維護(hù)和數(shù)據(jù)傳輸與客戶(hù)端模式相同。本模塊支持同時(shí)可最多建立八個(gè)服務(wù)連接。
海洋觀測(cè)儀器的工作環(huán)境較為惡劣,高溫、低溫、高濕、供電能力差,有些地方無(wú)人值守,因此海洋觀測(cè)儀器的設(shè)計(jì)上除了滿(mǎn)足測(cè)量功能以外,還要有較高的可靠性、低功耗、環(huán)境適應(yīng)性。
4.1.1 通訊性能測(cè)試
模塊的RS-232 接口與PC 機(jī)的標(biāo)準(zhǔn)串口連接并且運(yùn)行SSCOM3.2 串口調(diào)試助手軟件;串口設(shè)置為速率57 600 bps,8 位數(shù)據(jù)位,1 位停止位,無(wú)校驗(yàn)位;模塊的網(wǎng)絡(luò)接口連接到PC 機(jī)的網(wǎng)口,運(yùn)行TCP&UDP1.02 測(cè)試工具,PC 機(jī)工作在服務(wù)器模式,被測(cè)模塊工作在客戶(hù)端模式。測(cè)試的方法是串口向網(wǎng)口每100 ms 發(fā)送300Byte 的數(shù)據(jù),該速率滿(mǎn)足大部分海洋儀器的應(yīng)用需求,同時(shí)網(wǎng)口向串口也以同樣的速率發(fā)送數(shù)據(jù)。實(shí)驗(yàn)結(jié)果數(shù)據(jù)如表1 所示,數(shù)據(jù)傳輸穩(wěn)定無(wú)差錯(cuò)。
表1 實(shí)驗(yàn)測(cè)試數(shù)據(jù)
4.1.2 模塊功耗測(cè)試
在網(wǎng)絡(luò)模塊正常通訊的條件下,分別給模塊加入不同的工作電壓,功耗測(cè)量結(jié)果如表2 所示,結(jié)果顯示模塊的整體功耗小于等于0.7 瓦。
表2 網(wǎng)絡(luò)模塊功耗測(cè)試
4.1.3 環(huán)境適應(yīng)測(cè)試
海洋儀器的環(huán)境試驗(yàn)按《HY 016.1-016.15—1992 海洋儀器基本環(huán)境試驗(yàn)方法》執(zhí)行。試驗(yàn)項(xiàng)目包括低溫試驗(yàn)、低溫貯存、高溫試驗(yàn)、高溫貯存、震動(dòng)試驗(yàn)、沖擊試驗(yàn)和交變濕熱試驗(yàn)?;赪7100A 芯片的網(wǎng)絡(luò)接口模塊與XZY3 型自動(dòng)水文氣象站一起通過(guò)了上述試驗(yàn)項(xiàng)目。其中低溫試驗(yàn)和高溫試驗(yàn)過(guò)程如下。
將網(wǎng)絡(luò)通訊模塊置于環(huán)境試驗(yàn)箱中,在溫度降至-35 ℃后保持2 h,然后進(jìn)行加電測(cè)試,網(wǎng)絡(luò)模塊數(shù)據(jù)通訊正常且無(wú)數(shù)據(jù)丟失;同樣將網(wǎng)絡(luò)通訊模塊置于環(huán)境試驗(yàn)箱中,在溫度升至+50 ℃后保持2 h,然后進(jìn)行加電測(cè)試,網(wǎng)絡(luò)模塊數(shù)據(jù)通訊正常進(jìn)行無(wú)數(shù)據(jù)丟失,滿(mǎn)足海洋儀器對(duì)工作環(huán)境的實(shí)際需求。
圖4 是網(wǎng)絡(luò)通訊模塊在福建海洋預(yù)報(bào)臺(tái)潮汐監(jiān)測(cè)系統(tǒng)中的應(yīng)用。
在此項(xiàng)應(yīng)用中,共有13 個(gè)水位站分布在福建省內(nèi)各個(gè)觀測(cè)點(diǎn),分別通過(guò)網(wǎng)絡(luò)模塊接入海洋觀測(cè)專(zhuān)網(wǎng)中。這些觀測(cè)站點(diǎn)均為無(wú)人值守站點(diǎn),采用太陽(yáng)能蓄電池組供電,現(xiàn)場(chǎng)環(huán)境和供電條件較差,對(duì)設(shè)備的穩(wěn)定性、功耗和環(huán)境適應(yīng)性要求較高。系統(tǒng)運(yùn)行時(shí)每個(gè)水位站每分鐘實(shí)時(shí)傳輸觀測(cè)數(shù)據(jù)到省數(shù)據(jù)中心,每次傳輸?shù)臄?shù)據(jù)大小276 字節(jié)。通過(guò)統(tǒng)計(jì)系統(tǒng)運(yùn)行的時(shí)間和所接收的字節(jié)數(shù)可以推斷出傳輸成功率。
圖4 福建海洋預(yù)報(bào)臺(tái)潮汐監(jiān)測(cè)系統(tǒng)
早期設(shè)備中的網(wǎng)絡(luò)通訊模塊為某型進(jìn)口產(chǎn)品,分別對(duì)進(jìn)口產(chǎn)品和本網(wǎng)絡(luò)模塊的運(yùn)行情況進(jìn)行統(tǒng)計(jì)分析對(duì)比,其結(jié)果如表3 所示。
表3 本網(wǎng)絡(luò)模塊與某進(jìn)口產(chǎn)品的對(duì)比
通過(guò)與進(jìn)口產(chǎn)品比較,基于W7100A 芯片的網(wǎng)絡(luò)接口模塊的優(yōu)勢(shì)明顯。首先,其功耗僅為進(jìn)口產(chǎn)品的三分之一,適合電池供電的產(chǎn)品使用;其次,由于增加了軟件心跳包功能,模塊在任何情況下都能判斷與服務(wù)器的連接狀況,具有很高的可靠性,數(shù)據(jù)傳輸成功率明顯高于進(jìn)口產(chǎn)品,適合無(wú)人值守應(yīng)用。此外,網(wǎng)絡(luò)通訊模塊滿(mǎn)足海洋儀器的工作環(huán)境,運(yùn)行期間無(wú)故障出現(xiàn),適合在惡劣環(huán)境下使用。
以W7100A 芯片為核心設(shè)計(jì)的網(wǎng)絡(luò)接口通用模塊,具有如下特點(diǎn):可以通過(guò)標(biāo)準(zhǔn)串口控制RTS信號(hào)來(lái)切換模塊的運(yùn)行模式,因此可以通過(guò)軟件來(lái)實(shí)現(xiàn)設(shè)備運(yùn)行模式的切換;具有極低的功耗,非常適合應(yīng)用于供電能力有限的工作環(huán)境中,尤其是應(yīng)用在海洋無(wú)人站中需要太陽(yáng)能供電的條件下;設(shè)備中所有的器件都達(dá)到工業(yè)級(jí)水平,適應(yīng)海洋中的惡劣環(huán)境,設(shè)備工作溫度范圍廣,最低可在-35 ℃環(huán)境下工作。該設(shè)備經(jīng)歷了海洋觀測(cè)無(wú)人站惡劣環(huán)境的實(shí)際考驗(yàn),并通過(guò)與同類(lèi)其他產(chǎn)品進(jìn)行對(duì)比,較其他產(chǎn)品更適合應(yīng)用于海洋儀器中。模塊化的設(shè)計(jì),方便設(shè)備集成使用或直接移植到海洋儀器內(nèi)部,使海洋儀器快速實(shí)現(xiàn)網(wǎng)絡(luò)接口功能,具有良好的應(yīng)用前景。
Andrew,2004.計(jì)算機(jī)網(wǎng)絡(luò).北京:清華大學(xué)出版社.
蔡樹(shù)群,張文靜,王盛安,2007.海洋環(huán)境觀測(cè)技術(shù)研究進(jìn)展.熱帶海洋學(xué)報(bào),26(3):76-81.
李嘉,楊佃福,2001.引入以太網(wǎng)技術(shù)是現(xiàn)場(chǎng)總線(xiàn)技術(shù)發(fā)展的一個(gè)必然趨勢(shì).自動(dòng)化儀表,22(5):1-4.
李四海,張峰,2012.物聯(lián)網(wǎng)技術(shù)綜述及海洋信息化發(fā)展對(duì)策.海洋通報(bào),31(3):354-359.
劉亞萍,甄國(guó)涌,劉東海,2010.基于MSP430 和DM9000 的以太網(wǎng)接口設(shè)計(jì).自動(dòng)化與儀表,25(7):17-20.
沈蘇彬,范曲立,宗平,2009.物聯(lián)網(wǎng)的體系結(jié)構(gòu)與相關(guān)技術(shù)研究.南京郵電大學(xué)學(xué)報(bào),29(6):1-11.
徐榮珍,李加文,郭偉,等,2006.基于μClinux 的串口/以太網(wǎng)數(shù)據(jù)轉(zhuǎn)換設(shè)備開(kāi)發(fā).計(jì)算機(jī)工程,32(17):265-267.