新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 用MSP430實(shí)現(xiàn)的嵌入式因特網(wǎng)終端設(shè)計(jì)

用MSP430實(shí)現(xiàn)的嵌入式因特網(wǎng)終端設(shè)計(jì)

——
作者:武漢理工大學(xué) 鄭啟忠 朱宏輝 耿四軍 時(shí)間:2007-09-19 來源:21IC中國電子網(wǎng) 收藏

  【摘 要】本文詳細(xì)描述了用TI公司的單片機(jī)實(shí)現(xiàn)嵌入式的設(shè)計(jì),包括硬件和軟件兩大部分。微控制器控制控制器CS8900A實(shí)現(xiàn)本地局域網(wǎng)的功能,通過協(xié)議提供與進(jìn)行連接的應(yīng)用接口,使用該應(yīng)用接口,可以建立新的任務(wù)或改變現(xiàn)有的任務(wù),實(shí)現(xiàn)與中其它間的通信。在本文中,給出了硬件原理圖,說明了部分模塊的工作流程。

  【關(guān)鍵詞】因特網(wǎng);;

1. 介紹

  計(jì)算機(jī)通信系統(tǒng)尤其是因特網(wǎng)在日常生活中的作用越來越重要,并且呈加速發(fā)展的趨勢(shì)。如今,上網(wǎng)不再是個(gè)人電腦和網(wǎng)絡(luò)工作站的專利,很多用微控制器(或稱單片機(jī))控制的嵌入式系統(tǒng)也成為了因特網(wǎng)網(wǎng)絡(luò)節(jié)點(diǎn)中的一員,通常,這種嵌入式系統(tǒng)可稱為嵌入式因特網(wǎng)終端。試想,如果通過網(wǎng)頁瀏覽器,能夠完成對(duì)遠(yuǎn)處的微控制器控制,并能夠接收到微控制器采集的信號(hào),那將給人們的生活帶來很大的便利和極大地推動(dòng)生產(chǎn)力的發(fā)展。打個(gè)比方,如果通過辦公室的一臺(tái)連接到因特網(wǎng)的電腦和安裝在家里的嵌入式控制器,人們就可以了解到家里或者發(fā)生的一切,那么家居防盜等一系列問題將會(huì)等到很好的解決。

  MSP430是由于TI(Texas Instruments,美國德州儀器公司)開發(fā)的16位微處理器,其突出的特點(diǎn)是強(qiáng)調(diào)低功耗,非常適用于各種低功率要求的應(yīng)用,有多個(gè)系列和型號(hào)。由于其性價(jià)比比較高,所以,被廣泛應(yīng)用于家居自動(dòng)化,醫(yī)療設(shè)備,安防系統(tǒng),樓宇控制系統(tǒng)等許多領(lǐng)域當(dāng)中。本因特網(wǎng)終端設(shè)計(jì)方案中使用的MSP430F149是TI公司于2000年增加的MSP430F1X中的一員。

2. 協(xié)議基礎(chǔ)

  ISO(Internet Standard Organization,國際標(biāo)準(zhǔn)組織)于1981年提出了OSI(Open System Interconnect,開放系統(tǒng)互連)七層網(wǎng)絡(luò)模型。七層網(wǎng)絡(luò)模型的最大優(yōu)點(diǎn)是將服務(wù)、接口和協(xié)議這三個(gè)概念明確地區(qū)分開來:服務(wù)說明某一層為上一層提供一些什么功能,接口說明上一層如何使用下層的服務(wù),而協(xié)議涉及如何實(shí)現(xiàn)本層的服務(wù)。

  因特網(wǎng)采用的四層網(wǎng)絡(luò)模型是OSI七層網(wǎng)絡(luò)模型的一個(gè)子集,其具體的四層:應(yīng)用層、傳輸層、因特網(wǎng)層和網(wǎng)絡(luò)層,圖1為因特網(wǎng)的四層網(wǎng)絡(luò)模型與OSI七層網(wǎng)絡(luò)模型的對(duì)應(yīng)關(guān)系圖。因特網(wǎng)模型通過數(shù)據(jù)分段(Segment)中的序列號(hào)保證所有傳輸?shù)臄?shù)據(jù)可以在遠(yuǎn)端按照正常的次序進(jìn)行重組,而且通過確認(rèn)保證數(shù)據(jù)傳輸?shù)耐暾浴?/P>

2.1 (Ethernet)[1]

  以太網(wǎng)是目前用得最廣泛的一種局域網(wǎng),它在因特網(wǎng)四層網(wǎng)絡(luò)模型當(dāng)中,屬于網(wǎng)絡(luò)層。以太網(wǎng)網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)具有相同的訪問網(wǎng)絡(luò)的權(quán)利,它們之間對(duì)網(wǎng)絡(luò)占用是通過具有沖突檢測(cè)的載波監(jiān)聽多路訪問( CSMA/CD )的方法來實(shí)現(xiàn)的。數(shù)據(jù)采用曼徹斯特編碼,網(wǎng)絡(luò)中的連接一般采用雙絞線或同軸電纜。以太網(wǎng)中每個(gè)節(jié)點(diǎn)具有一個(gè)48位、唯一編號(hào)的地址。每幀數(shù)據(jù)的最大長度為1518個(gè)字節(jié),第一個(gè)48位為目標(biāo)地址,第二個(gè)48位為數(shù)據(jù)源地址,然后是2個(gè)字節(jié)的數(shù)據(jù)幀類型值,在數(shù)據(jù)幀的最后,自動(dòng)生成4個(gè)字節(jié)的循環(huán)冗余碼校驗(yàn)(CRC)值,用于保證數(shù)據(jù)幀的完整性。

2.2傳輸控制協(xié)議TCP(Transmission Control Protocol)

  TCP提供了一種可靠的數(shù)據(jù)流服務(wù),盡管TCP是DARAP協(xié)議組中的一員,但它卻有很大的獨(dú)立性。它對(duì)下層網(wǎng)絡(luò)協(xié)議只有最基本的要求,很容易在不同的網(wǎng)絡(luò)上建成,因而非常流行。ISO/OSI運(yùn)輸層標(biāo)準(zhǔn)中的第四類TP-4就是以 TCP作為原型建立的。TCP可以在眾多的網(wǎng)絡(luò)上工作,可以提供虛擬電路服務(wù)和面向數(shù)據(jù)流的傳輸服務(wù)。用戶數(shù)據(jù)可以有序而且可靠的傳送。在一個(gè)分組可能發(fā)生丟失、破壞、重復(fù)、延遲或失序情況下,TCP服務(wù)可提供一種可靠的進(jìn)程間通信機(jī)制,協(xié)議可以自動(dòng)糾正各種差錯(cuò)。

2.3網(wǎng)際協(xié)議IP(Internet Protocol)

  第三層最重要的協(xié)議是IP。它將多個(gè)網(wǎng)絡(luò)聯(lián)成一個(gè)互連網(wǎng)。IP的工作是將一個(gè)以上的報(bào)文處理網(wǎng)絡(luò)聯(lián)成一個(gè)網(wǎng)際網(wǎng)。IP的基本任務(wù)是通過網(wǎng)際網(wǎng)傳送數(shù)據(jù)報(bào),各個(gè)IP數(shù)據(jù)報(bào)之間是相互獨(dú)立的。主機(jī)上的IP層基于數(shù)據(jù)鏈路層的服務(wù)向傳輸層提供服務(wù)。IP從源運(yùn)輸實(shí)體取得數(shù)據(jù),通過它的數(shù)據(jù)鏈路層服務(wù)傳給目的主機(jī)的IP層。網(wǎng)關(guān)通過下一網(wǎng)絡(luò)數(shù)據(jù)報(bào)傳到目的主機(jī)或下一網(wǎng)關(guān)。

2.4地址轉(zhuǎn)換協(xié)議ARP(Address Resolution Protocol)

  在網(wǎng)絡(luò)環(huán)境下,每個(gè)主機(jī)分配的組位IP地址只是一種邏輯地址,這樣在傳送時(shí)必須轉(zhuǎn)換成物理地址,ARP協(xié)議就是完成這一功能的。 ARP使主機(jī)可以找到同一物理網(wǎng)絡(luò)中任一物理主機(jī)的物理地址,只需給出該主機(jī)的網(wǎng)際地址即可??梢?,基本網(wǎng)絡(luò)的物理編址對(duì)網(wǎng)絡(luò)層服務(wù)是透明的。

2.5 其它協(xié)議

  在因特網(wǎng)網(wǎng)絡(luò)協(xié)議當(dāng)中,還有其它相關(guān)的協(xié)議,如:反向地址轉(zhuǎn)換協(xié)議RARP(Reverse Address Resolution Protocol)、用戶數(shù)據(jù)報(bào)協(xié)議UDP(User Datagram Protocol)、網(wǎng)際控制報(bào)文協(xié)議ICMP(Internetwork control Message Protocol)、超文本傳輸協(xié)議(hypertext transfer protocol)等,它們?cè)谝蛱鼐W(wǎng)的數(shù)據(jù)交換當(dāng)中都有什么重要的作用,本文限于篇幅,不一一詳細(xì)介紹。

3. 硬件設(shè)計(jì)[1]

  本設(shè)計(jì)中所用到的兩個(gè)重要組件為TI公司的微處理器MSP430F149和Crystal公司的以太網(wǎng)控制器CS8900A,下面簡單介紹一下這兩個(gè)組件,再論述硬件實(shí)施方案。

3.1 MSP430F149[2]

  MSP430F149具有60K字節(jié)的FLASH存儲(chǔ)器和2K字節(jié)的RAM、看門狗定時(shí)器(Watchdog Timer)、6個(gè)8位的通用I/O口、12位A/D轉(zhuǎn)換器、2個(gè)串行通信接口和1個(gè)硬件乘法器等。MSP430F149的60K字節(jié)FLASH存儲(chǔ)器足以存儲(chǔ)網(wǎng)頁數(shù)據(jù), 6個(gè)通用I/O口既可以用來控制以太網(wǎng)控制器CS8900A,也可以用來執(zhí)行其它的用戶命令,12位A/D轉(zhuǎn)換器可以用來在終端采集數(shù)據(jù),然后再通過網(wǎng)絡(luò)發(fā)給用戶.

3.2 CS8900A[3]

  CS8900A低功耗的以太網(wǎng)控制器,被廣泛應(yīng)用于工控機(jī)中。其高集成度的設(shè)計(jì)(在應(yīng)用當(dāng)中只需要極少的外圍元件)和簡單容用的總線接口,非常適用于本設(shè)計(jì)。目前,許多的以太網(wǎng)控制器都只提供PCI(周邊元件擴(kuò)展接口)接口,而CS8900A可以直接和微控制器相連,所以,可以MSP430F149的I/O口來直接對(duì)CS8900A進(jìn)行控制,具體連接方式如圖2所示。另外,CS8900A可以直接3V供電,這有利于和MSP430F149之間的電平匹配。

3.3 MSP430F149與CS8900A的接口

  CS8900A有三種工作模式:I/O模式、存儲(chǔ)器模式和直接存儲(chǔ)器存儲(chǔ)模式,默認(rèn)為I/O模式,可通過程序使其工作于其它模式。CS8900A的各個(gè)工作模式各有優(yōu)缺點(diǎn),本設(shè)計(jì)當(dāng)中,采用的是它的I/O模式。CS8900A共有8個(gè)16位的I/O口,這8個(gè)I/O口與片內(nèi)的8個(gè)16位寄存器相對(duì)應(yīng)。如圖2所示,CS8900A采用8位的數(shù)據(jù)總線方式和MSP430F149的P5口相連,接口中共用到14個(gè)引腳。復(fù)位后,CS8900A默認(rèn)選擇I/O地址為0x300,并且一直保持該默認(rèn)地址工作。

3.4 系統(tǒng)硬件原理

  整個(gè)系統(tǒng)的硬件原理如圖2所示,下面詳細(xì)分析圖中的各個(gè)模塊。

  CS8900A的XTAL1(97)引腳和XTAL2(98)引腳接一20MHz的晶振,由于其片內(nèi)XTAL處集成了電容,所以,不需要外接電容。CS8900A的復(fù)位引腳為高有效,在芯片上電工作時(shí),需要一個(gè)復(fù)位信號(hào),這由R9和C17提供聯(lián)合提供。CS8900A有兩個(gè)不同的LED控制引腳:LANLED(100)引腳和LINKLED(99)引腳,用于控制LED以顯示CS8900A的工作狀態(tài)。LANLED引腳接一個(gè)紅色LED(D1),當(dāng)CS8900A接收或發(fā)送數(shù)據(jù)時(shí),該引腳輸出低電平,點(diǎn)亮紅色LED。LINKLED接一個(gè)黃色LED(D2),當(dāng)CS8900A和工作的以太網(wǎng)絡(luò)連接時(shí),黃色LED點(diǎn)亮。

  和MSP430F149有關(guān)的電路,除了上述的和CS8900A連接的部分外,還有JTAG(Joint Test Action Group)接口、晶振和復(fù)位電路。其中,JTAG接口用于編程和調(diào)試,用一個(gè)14引腳的接頭引出了TCK、TDI、TDO/TDI四個(gè)用于編程和調(diào)試的引腳,可直接和MSP430的調(diào)試工具FET(FLASH Emulation Tool)相連。用戶也可以通過電平轉(zhuǎn)換芯片MAX3221把MSP430F149的串行通信口也引出,以實(shí)現(xiàn)需要的功能。MSP430F149時(shí)鐘電路部分,需要接一個(gè)8MHz的晶振和兩個(gè)15pF的電容。

  整個(gè)系統(tǒng)由3.3V的電源供電,綠色LED(D4)為整個(gè)系統(tǒng)的電源指示燈。為了系統(tǒng)擴(kuò)展的需要,也可以把MSP430F149所有未用到的I/O引腳都用接頭引出。

  進(jìn)行PCB(印制電路板)設(shè)計(jì)時(shí),通過旁路電容濾波,以給MSP430F149和CS8900A提供穩(wěn)壓的電源信號(hào)。為了得到更好的系統(tǒng)性能和減小電磁干擾,最好能夠把PCB布置為四層板。

3.5 CS8900A與局域網(wǎng)的接口

  CS8900A片內(nèi)集成了一個(gè)10M的以太網(wǎng)收發(fā)器,其片內(nèi)集成了所有用于和局域網(wǎng)通信的模擬和數(shù)字電路,其可通過一個(gè)電磁隔離器E2023直接和局域網(wǎng)相連。電阻R1用于連接兩根接收線,和兩根發(fā)送線相連的電阻R2和R3則用于阻抗匹配。RJ45為網(wǎng)絡(luò)接頭,其可接10M或100的網(wǎng)絡(luò)集線器(hub)。

4. 軟件設(shè)計(jì)

  本設(shè)計(jì)的軟件部分主要分為四大部分:以太網(wǎng)模塊、TCP/IP模塊、API(應(yīng)用程序接口)和HTTP(超文本傳輸協(xié)議)服務(wù)模塊,全部程序用C語言編寫(便于與其它微控制器系統(tǒng)的接口的擴(kuò)展),并通過IAR Workbench for MSP430 V2.10編譯。

4.1 以太網(wǎng)模塊

  以太網(wǎng)部分程序的主要作用是對(duì)以太網(wǎng)控制器CS8900A進(jìn)行驅(qū)動(dòng)、以函數(shù)的形式給其它模塊提供讀寫CS8900A寄存器的接口、產(chǎn)生讀寫CS8900A的時(shí)鐘等。以太網(wǎng)程序包含了網(wǎng)絡(luò)接口的各種配置,其中,最重要的是,MAC(介質(zhì)訪問控制)地址的配置。MAC地址共48位,在程序中用6個(gè)無符號(hào)整型變量存儲(chǔ)MAC地址值,每個(gè)MAC地址值必需為唯一的,并且不能是0xFFFFFFFFFFFF。

  以太網(wǎng)控制器的配置過程如下:在系統(tǒng)上電后,首先調(diào)用函數(shù)Init8900()進(jìn)行以太網(wǎng)控制器CS8900A的初始化配置,然后CS8900A被復(fù)位,MSP430F149把本機(jī)的MAC地址以配置序列字的形式發(fā)給CS8900A,CS8900A把MAC地址存儲(chǔ)在寄存器中。配置完成后,MSP430F149就可以對(duì)CS8900A讀寫數(shù)據(jù)了。

4.2 TCP/IP模塊

  TCP/IP模塊是整個(gè)系統(tǒng)軟件的關(guān)鍵,定義了使用網(wǎng)絡(luò)來收發(fā)數(shù)據(jù)的協(xié)議,使用以太網(wǎng)模塊所提供的各種讀寫函數(shù)來接收或發(fā)送數(shù)據(jù),并給應(yīng)用層提供簡單易用的API接口。

  TCP/IP模塊中,最重要的函數(shù)是DoNetworkStuff(),該函數(shù)的主要作用是進(jìn)行TCP事件處理,應(yīng)該周期性地被用戶程序調(diào)用。在函數(shù)DoNetworkStuff()中,定義了一些用于標(biāo)志以CS8900A和MSP430F149工作狀態(tài)的標(biāo)志量,該函數(shù)的工作流程如圖3所示。函數(shù)DoNetworkStuff()被調(diào)用得周期越短,系統(tǒng)執(zhí)行TCP/IP協(xié)議的性能越好。

  為了更好的協(xié)調(diào)接發(fā)和發(fā)送的數(shù)據(jù),給TCP/IP模塊在SRAM中分配了三個(gè)緩沖區(qū),TxFrame1、TxFrame2和RxTCPBuffer。其中,TxFrame1的主要作用是給要發(fā)送的TCP數(shù)據(jù)幀(包括以太網(wǎng)、IP、TCP幀頭)提供緩沖內(nèi)存;TxFrame2的主要作用是給TCP非數(shù)據(jù)幀(包括以太網(wǎng)、IP、TCP幀頭)和ARP、CIMP協(xié)議幀提供緩沖內(nèi)存;RxTCPBuffer給接收到的TCP數(shù)據(jù)提供緩沖內(nèi)存。所分配的緩沖區(qū)越大,收發(fā)速度越快,因?yàn)檫@樣可以減少因緩沖區(qū)不足造成的滯后。

  可以通過主動(dòng)或被動(dòng)的方式調(diào)用函數(shù)TCPPassiveOpen()或TCPActiveOpen()建立網(wǎng)絡(luò)通信連接。函數(shù)TCPPassiveOpen()函數(shù)的作用主要是用于檢測(cè)到有數(shù)據(jù)包送入時(shí),把數(shù)據(jù)包送入緩沖區(qū),函數(shù)TCPActiveOpen()的主要作用是,把要發(fā)送的數(shù)據(jù)包送入緩沖區(qū)。在主動(dòng)發(fā)送數(shù)據(jù)包之前,先設(shè)置要接收該數(shù)據(jù)包的MAC地址,并把本機(jī)地址包含進(jìn)數(shù)據(jù)包。一旦連接建立完成,就可以開始發(fā)送數(shù)據(jù),可以通過相應(yīng)的接口函數(shù)讀出連接的狀態(tài)。當(dāng)數(shù)據(jù)發(fā)送完畢,可以通過函數(shù)TCPClose()關(guān)閉連接。

  在數(shù)據(jù)包收發(fā)的過程當(dāng)中,不同的任務(wù)需要不同的處理時(shí)間,這個(gè)時(shí)間可以使用MSP430F149的定時(shí)器Timer_A來提供,不過必須注意的是,在使用定時(shí)器Timer_A之前,必須進(jìn)行初始化,這點(diǎn)同使用其它微控制器是相似的。為了減少數(shù)據(jù)包發(fā)送不成功造成的錯(cuò)誤,當(dāng)接收機(jī)接收到數(shù)據(jù)后,其應(yīng)當(dāng)返回一個(gè)接收正確信號(hào),當(dāng)發(fā)送機(jī)超過設(shè)定時(shí)間,仍接收不到正確的接收信號(hào)時(shí),TCP/IP模塊自動(dòng)進(jìn)行數(shù)據(jù)包重發(fā),這個(gè)過程可以通過相應(yīng)的變量和函數(shù)來實(shí)現(xiàn)。

  雖然,各個(gè)公司的軟件處理TCP/IP協(xié)議的程序不盡相同,但幸運(yùn)的是,各個(gè)公司在TCP/IP協(xié)議上的兼容性都非常好,因此,只要用戶按照TCP/IP協(xié)議進(jìn)行程序編寫,不同的程序間的通信應(yīng)該不存在多大的問題。

4.3 API(應(yīng)用編程接口)

  為了使用戶既能夠使用現(xiàn)在的應(yīng)用,也能夠建立適用自己要求的嵌入式應(yīng)用,在整個(gè)軟件的編制過程中,應(yīng)當(dāng)留一下API函數(shù),以便于用戶無需對(duì)TCP/IP協(xié)議有過多的了解也能夠在原有程序的基礎(chǔ)上進(jìn)行二次開發(fā)。本軟件充分考慮了這一點(diǎn),給用戶留出了很多AIP函數(shù),主要的有,TCPClose()、TCPReleaseRxBuffer()和TCPTransmitTxBuffer()等。其中,函數(shù)TCPClose()的主要用處是用于關(guān)閉打開了的連接,在關(guān)閉連接之前,發(fā)送的數(shù)據(jù)包還留在發(fā)送緩沖區(qū)中以保證正確發(fā)送,連接關(guān)閉之后,用戶要重新建立連接的話,必須重新設(shè)置IP地下、重新分配I/O口和重新建立連接。TCPReleaseRxBuffer()的主要作用是,在讀出緩沖區(qū)的數(shù)據(jù)之后,調(diào)用此函數(shù),無需再保存已正確讀出的數(shù)據(jù)包,這樣就可以騰出緩沖區(qū)用于存放新的數(shù)據(jù)包。用戶可以使用函數(shù)TCPTransmitTxBuffer()通過已建立的連接發(fā)送數(shù)據(jù),但是,在使用該函數(shù)前,用戶要先檢查SOCK_TX_BUF_RELEASED標(biāo)志,確定是否有可用的發(fā)送緩沖區(qū)。本設(shè)計(jì)中,還提供了檢查連接狀態(tài)和收發(fā)狀態(tài)的變量(標(biāo)志),如SOK_ACTIVE、SOCK_CONNEDTED等。

4.4 HTTP應(yīng)用

  在進(jìn)行以上的工作之后,用戶就可以建立HTTP服務(wù)器,通過TCP/IP協(xié)議,實(shí)現(xiàn)不同的微控制器或工作站之間的通信。HTML(超文本鏈接標(biāo)示語言)網(wǎng)頁數(shù)據(jù)可以保存在MSP430F149的片內(nèi)FLASH存儲(chǔ)器中。網(wǎng)頁能夠完成接收數(shù)據(jù)、發(fā)送網(wǎng)頁數(shù)據(jù)、關(guān)閉連接和等待其它應(yīng)用進(jìn)行連接等。并且,用戶建立的網(wǎng)頁,能夠動(dòng)態(tài)實(shí)時(shí)的進(jìn)行數(shù)據(jù)更新。當(dāng)然,無論是在普通計(jì)算機(jī)或微控制器上運(yùn)行HTML網(wǎng)頁應(yīng)用程序,要實(shí)現(xiàn)和其它計(jì)算機(jī)進(jìn)行通信,都必須如前所述,設(shè)置單一、有效的MAC地址。

5. 結(jié)束語

  隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,需要進(jìn)行網(wǎng)絡(luò)連接和通信的微型嵌入式因特網(wǎng)終端越來越多,這不僅可以應(yīng)用于日常生活中,也可以應(yīng)用于許多工業(yè)現(xiàn)場(chǎng),特別是在那些分散、共享數(shù)據(jù)或需要共享某些信息的工業(yè)現(xiàn)場(chǎng)嵌入式網(wǎng)絡(luò)終端的技術(shù)優(yōu)質(zhì)更加明顯。此外,MSP430系列單片機(jī)的功耗非常低,很好的解決了在某些特殊場(chǎng)合下的電源問題。由此可見,本文所論述的設(shè)計(jì)方案具有很大的應(yīng)用前景。

參考文獻(xiàn)
[1] Texas Instruments. MSP430 Internet Connectivity[Z].2004.2
[2] Texas Instruments. MSP430x13x, MSP430x14x, MSP430x14x1 MIXED SIGNAL MICROCONTROLLER[Z].2000.7
[3] Cirrus Logic. CS8900A Product Data Sheet[Z] .2001.4

 

tcp/ip相關(guān)文章:tcp/ip是什么




評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉