摘要:以ARM Cortex-M3為核心的嵌入式處理器,配以C/OS-Ⅱ嵌入式操作系統(tǒng)和基于LabVIEW的PC構(gòu)成的嵌入式系統(tǒng),開發(fā)適合于嵌入式設(shè)備的以太網(wǎng)絡(luò)通信。該文還介紹了TCP協(xié)議,給出了硬件接口驅(qū)動程序的實現(xiàn),最終實現(xiàn)嵌入式以太網(wǎng)的數(shù)據(jù)傳輸。
關(guān)鍵詞:以太網(wǎng);LabVIEW C/OS-Ⅱ;嵌入式系統(tǒng);ARM Cortex-M3
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2010)03-580-02
Ethernet-embedded communication based on LabVIEW and Cortex-M3 microprocessor
ZHANG Wei
(School of Electronic and Information Engineering, Lanzhou Jiaotong University, Lanzhou 730070, China)
Abstract: Microprocessor based on ARM Cortex-M3, C/OS-Ⅱ operating system and PC based on LabVIEW compose of embedded system, research ethernet-embedded communication which is used for embedded equipment. Meanwhile, it introduces that TCP agreement, tell us how to carry out hardware interface drive. Finally, carry out data transmission based on Ethernet-embedded.
Key words: ethernet; LabVIEW C/OS-Ⅱ; embedded system; ARM Cortex-M3
在工業(yè)生產(chǎn)環(huán)境下,存在種監(jiān)控設(shè)備、檢測裝備等終端設(shè)備,其硬件基本都是基于嵌入式系統(tǒng)開發(fā)的。然而,在這些設(shè)備中存在很多參數(shù)的設(shè)置、數(shù)據(jù)傳輸?shù)葐栴}。為了解決這些集中的通信問題,此論文綜合闡述了系統(tǒng)的設(shè)計方案。整個系統(tǒng)以基于LabVIEW軟件平臺的PC機作為上位機的管理,通過LabVIEW的強大的功能實現(xiàn)通信、波形顯示等功能。而各種監(jiān)控設(shè)備和檢測裝備將圍繞Cortex-M3處理器為核心,基于C/OS-Ⅱ嵌入式操作系統(tǒng)和LabVIEW的TCP通信功能,綜合敘述TCP協(xié)議在本設(shè)計中的實現(xiàn)。
1 基于Cortex-M3處理器嵌入式以太網(wǎng)接口設(shè)計
1.1 LM3S8000系列處理器介紹
LM3S8000系列處理器是ARM公司于2006年專為工業(yè)設(shè)備的一款高性價比和高性能的微控制器解決方案。它能夠提供高效性能、廣泛的集成功能以及按照要求定位的選擇,適用于各種關(guān)注成本并明確要求具有的過程控制以及鏈接能力的應(yīng)用方案。它基于Cortex-M3 處理器內(nèi)核,采用哈佛結(jié)構(gòu),即內(nèi)部的指令和數(shù)據(jù)總線是相互獨立分開的,指令和數(shù)據(jù)可以從存儲器中同時讀取,對多個操作可以并行執(zhí)行,加快了應(yīng)用程序執(zhí)行速度。它結(jié)合了10/100以太網(wǎng)媒體訪問控制(MAC)以及物理層(PHY),標志著ARM Cortex-M3微控制器具備了集成連接能力,還是唯一系列同時集成了10/100以太網(wǎng)MAC和PHY物理層的ARM架構(gòu)MCU。
它是專為針對工業(yè)應(yīng)用方案設(shè)計的,這些應(yīng)用方案包括遠程監(jiān)控、電子販售機、測試和測量設(shè)備、網(wǎng)絡(luò)設(shè)備和交換機、工廠自動化、HVAC和建筑控制、游戲設(shè)備、運動控制、醫(yī)療器械、火警安防等。
1.2 LM3S8000處理器的以太網(wǎng)接口設(shè)計
LM3S8000系列CPU支持以太網(wǎng)接口,以太網(wǎng)通信需要通過一個網(wǎng)絡(luò)變換器,此設(shè)計采用HR6011680網(wǎng)絡(luò)變換器進行設(shè)計。它由一個完全集成的介質(zhì)訪問控制器(MAC)和網(wǎng)絡(luò)物理層(PHY)接口器件組成,遵循IEEE 802.3規(guī)范,支持10BASE-T和100BASE-TX標準。它具有全雙工和半雙工的10/100Mbps的工作模式、CRC錯誤拒絕控制、用戶可配置中斷、自動MDI/MDI-X交叉校驗、自動極性校正和10BASE-T信號接受等功能。其具體設(shè)計如圖1所示。
2 下位機LM3S8000芯片的以太網(wǎng)通信程序設(shè)計
2.1 以太網(wǎng)通信-TCP通信協(xié)議
所謂以太網(wǎng)通信,就是利用當(dāng)今世界上最流行的開放局域網(wǎng)Ethernet作為連接工業(yè)I/O控制模塊的通信網(wǎng)絡(luò)。在以太網(wǎng)中,所有計算機被連接一條同軸電纜上,采用具有沖突檢測的載波感應(yīng)多處訪問(CSMA/CD)方法,采用競爭機制和總線拓撲結(jié)構(gòu)。以太網(wǎng)通信采用的協(xié)議是IEEE802.3和TCP協(xié)議。因此,在以太網(wǎng)通信中,TCP協(xié)議作為以太網(wǎng)的一種基本通信標準,具有及其重要的作用。
2.2 基于LM3S系列處理器的C/OS-Ⅱ在IAR上的移植
C/OS-Ⅱ是基于優(yōu)先級的可搶先的硬實時內(nèi)核,它是一種專門的嵌入式設(shè)備設(shè)計的內(nèi)核,被移植到各種開發(fā)系統(tǒng)中。C/OS-Ⅱ只是一個實時操作系統(tǒng)內(nèi)核,它僅僅包含了任務(wù)調(diào)度,任務(wù)管理,時間管理,內(nèi)存管理和任務(wù)間的通信和同步等基本功能。它具有良好的可擴展性和源碼開放,適合于工業(yè)中的嵌入式實時操作系統(tǒng)。在IAR的移植過程中,必須配置以下的目錄移植:
User目錄存放用戶代碼與設(shè)置;如其中的Main.C文件是編寫任務(wù)的地方,OS_Cfg.H是C/OS-Ⅱ的配置文件;
Middleware用來存放用戶自己編寫的中間件,如:Uart0.C、Uart0.H串口通訊中間件等;
C/OS-ⅡSource目錄存放C/OS-Ⅱ針對LM3S微處理器的移植代碼;
Target目錄存放針對LM3S的初始化代碼;并且提供簡單的外設(shè)控制API函數(shù),方便用戶調(diào)試。
2.3 基于IAR操作系統(tǒng)的TCP通信程序設(shè)計(包括框圖流程、設(shè)計代碼)
TCP協(xié)議是傳輸控制協(xié)議,它是基于IP的面向連接的、端對端的可靠通信協(xié)議。因此,服務(wù)器和客戶端進行TCP通信的時候,必須運用Socket API接口函數(shù)來設(shè)置IP地址。此設(shè)計采用PC作為客戶端的模式進行對微處理器的訪問。在訪問過程中,通過接口函數(shù)需要進行監(jiān)聽連接、TCP接受函數(shù)、TCP發(fā)送函數(shù)、TCP連接確認函數(shù)、TCP連接關(guān)閉函數(shù)、SOCKET關(guān)閉函數(shù)等過程。其通訊過程如圖2所示。
此設(shè)計采用微處理器作為服務(wù)器端、PC作為客戶端的模式。Cortex-M3處理器在IAR實時操作系統(tǒng)下,必須對其進行連接函數(shù)的編寫,其部分程序如下:
s =* socket(0, 0, 0);//建立一個基于TCP通信的Socket
servaddr.sin_addr[0] = NetPort[0].My_Ip[0]; //設(shè)定本地SOCKET的IP地址servaddr.sin_addr[1] = NetPort[0].My_Ip[1];
servaddr.sin_addr[2] = NetPort[0].My_Ip[2];
servaddr.sin_addr[3] = NetPort[0].My_Ip[3];
servaddr.sin_port = 80;// 設(shè)定監(jiān)聽的本地端口
ei=bind((SOCKET*) s, (struct sockaddr*) servaddr,sizeof(servaddr));//綁定(服務(wù)器端)IP地址和監(jiān)聽端口
ei = listen((SOCKET *) s, 4);//監(jiān)聽的連接數(shù)是4個連接
Temp = accept((SOCKET *) s, (struct sockaddr *) cliaddr, addrlen );//接受客戶端的連接請求
recv(Temp, tempdata, 400, 0 );// 讀取數(shù)據(jù)
send(Temp, httpweb, sizeof(httpweb) - 1, 0 );//發(fā)送應(yīng)答
send(Temp, web, sizeof(web), 0 );//發(fā)送網(wǎng)頁
memset(tempdata, 0, 400);//清空接受緩存區(qū)
close(Temp);//斷開連接
微處理器與PC通過以太網(wǎng)口連接,通過LM-link或者其他調(diào)試器將此編寫好的程序下載到微處理器中,運行后并可訪問服務(wù)器中的網(wǎng)頁。
3 上位機PC的LabVIEW程序設(shè)計
3.1 LabVIEW軟件簡要介紹(功能優(yōu)勢)
LabVIEW軟件是美國國家儀器公司的基于圖形化G語言的開發(fā)環(huán)境,是利用PC計算機顯示器(CRT)的顯示功能模擬傳統(tǒng)儀器的控制面板,以多種形式表達輸出檢測結(jié)果,利用PC計算機強大的軟件功能實現(xiàn)信號數(shù)據(jù)的運算、分析、處理,由I/O接口設(shè)備完成信號的采集、測量與調(diào)理,從而完成各種測試功能的一種計算機系統(tǒng)。
3.2 LabVIEW軟件的TCP通信的程序設(shè)計
TCP通信協(xié)議是通過三次握手來初始化,目的是使數(shù)據(jù)段的發(fā)送和接送同步,告訴其他主機其一次可接受的數(shù)據(jù)量,并建立虛連接。三次握手的過程包括:初始化、接受主機的回復(fù)、請求發(fā)送數(shù)據(jù)。在此三個過程中,都可以采用LabVIEW軟件很容易實現(xiàn),其實現(xiàn)程序如圖3所示。
4 小結(jié)
TCP協(xié)議已經(jīng)成為最為流行及廣泛使用的以太網(wǎng)協(xié)議,Cortex-M3微處理器正在以其造價和功能上的優(yōu)勢,慢慢地占據(jù)大部分市場。因此,采用TCP協(xié)議對Cortex-M3微處理器和PC機進行以太網(wǎng)連接,對于工業(yè)的數(shù)據(jù)采集、數(shù)據(jù)通信和處理等過程是及其重要的研究。在遠程圖像監(jiān)控系統(tǒng)、遠程溫度監(jiān)控系統(tǒng)等各種工業(yè)方面,具有及其廣闊的應(yīng)用前景。
參考文獻:
[1] 楊樂平,李海濤,楊磊,等.LabVIEW程序設(shè)計與應(yīng)用[M]. 北京:電子工業(yè)出版社,2006.
[2] 陳錫輝,張銀鴻.LabVIEW8.2程序設(shè)計從入門到精通[M]. 北京:清華大學(xué)出版社,2007.
[3] 周立功.EasyARM8962實驗教程[M]. 廣州:廣州致遠電子有限公司,2006.
[4] 周立功.Cortex-M3開發(fā)指南—基于LM3S8000[M]. 廣州:廣州致遠電子有限公司,2006.
[5] 朱云芳,江樺.Protel 99SE電路設(shè)計與制板[M]. 北京:機械工業(yè)出版社,2007.
[6] 張新亮,孫軍強.LabVIEW驅(qū)動一般多功能接口卡的研究[J]. 儀器儀表學(xué)報,2000.
[7] LabVIEW User Manual. National Instruments. 2000.
[8] 段海龍,彭輝俊,程健. 基于ARM的嵌入式以太網(wǎng)通信的實現(xiàn)[J].網(wǎng)絡(luò)通信,2003.
[9] 吳明暉等.基于ARM的嵌入式系統(tǒng)開發(fā)與應(yīng)用[M].北京:人民郵電出版社,2004.
[10] RTL8019AS 用戶手冊[Z].Realtek Semi-conductor Co.Ltd.
[11] 何軒.基于ARM微處理器的嵌入式以太網(wǎng)接口[J].電子工程師,2005,31(1):72-74.
[12] 袁軍.以太網(wǎng)通信功能在ARM微處理器的實現(xiàn)[J].機電產(chǎn)品與創(chuàng)新,2004,17(5):68-70.
[13] Bentham Jeremy. 嵌入式系統(tǒng)Web服務(wù)器TCP/IPLean[M].陳向群 譯.北京:機械工業(yè)出版社,2003.