用MSP430實現(xiàn)的嵌入式因特網(wǎng)終端設計
1. 介紹 計算機通信系統(tǒng)尤其是因特網(wǎng)在日常生活中的作用越來越重要,并且呈加速發(fā)展的趨勢。如今,上網(wǎng)不再是個 人電腦和網(wǎng)絡工作站的專利,很多用微控制器(或稱單片機)控制的嵌入式系統(tǒng)也成為了因特網(wǎng)網(wǎng)絡節(jié)點中的一 員,通常,這種嵌入式系統(tǒng)可稱為嵌入式因特網(wǎng)終端。試想,如果通過網(wǎng)頁瀏覽器,能夠完成對遠處的微控制器控 制,并能夠接收到微控制器采集的信號,那將給人們的生活帶來很大的便利和極大地推動生產(chǎn)力的發(fā)展。打個比 方,如果通過辦公室的一臺連接到因特網(wǎng)的電腦和安裝在家里的嵌入式控制器,人們就可以了解到家里或者發(fā)生的 一切,那么家居防盜等一系列問題將會等到很好的解決。 MSP430是由于TI(Texas Instruments,美國德州儀器公司)開發(fā)的16位微處理器,其突出的特點是強調(diào)低功 耗,非常適用于各種低功率要求的應用,有多個系列和型號。由于其性價比比較高,所以,被廣泛應用于家居自動 化,醫(yī)療設備,安防系統(tǒng),樓宇控制系統(tǒng)等許多領(lǐng)域當中。本因特網(wǎng)終端設計方案中使用的MSP430F149是TI公司于 2000年增加的MSP430F1X中的一員。 2. 協(xié)議基礎(chǔ) ISO(Internet Standard Organization,國際標準組織)于1981年提出了OSI(Open System Interconnect, 開放系統(tǒng)互連)七層網(wǎng)絡模型。七層網(wǎng)絡模型的******優(yōu)點是將服務、接口和協(xié)議這三個概念明確地區(qū)分開來:服務 說明某一層為上一層提供一些什么功能,接口說明上一層如何使用下層的服務,而協(xié)議涉及如何實現(xiàn)本層的服務。 因特網(wǎng)采用的四層網(wǎng)絡模型是OSI七層網(wǎng)絡模型的一個子集,其具體的四層:應用層、傳輸層、因特網(wǎng)層和網(wǎng) 絡層,圖1為因特網(wǎng)的四層網(wǎng)絡模型與OSI七層網(wǎng)絡模型的對應關(guān)系圖。因特網(wǎng)模型通過數(shù)據(jù)分段(Segment)中的序 列號保證所有傳輸?shù)臄?shù)據(jù)可以在遠端按照正常的次序進行重組,而且通過確認保證數(shù)據(jù)傳輸?shù)耐暾浴?BR> 2.1 以太網(wǎng)(Ethernet)[1] 以太網(wǎng)是目前用得最廣泛的一種局域網(wǎng),它在因特網(wǎng)四層網(wǎng)絡模型當中,屬于網(wǎng)絡層。以太網(wǎng)網(wǎng)絡中的每個節(jié) 點具有相同的訪問網(wǎng)絡的權(quán)利,它們之間對網(wǎng)絡占用是通過具有沖突檢測的載波監(jiān)聽多路訪問( CSMA/CD )的方法 來實現(xiàn)的。數(shù)據(jù)采用曼徹斯特編碼,網(wǎng)絡中的連接一般采用雙絞線或同軸電纜。以太網(wǎng)中每個節(jié)點具有一個48位、 唯一編號的地址。每幀數(shù)據(jù)的******長度為1518個字節(jié),第一個48位為目標地址,第二個48位為數(shù)據(jù)源地址,然后是 2個字節(jié)的數(shù)據(jù)幀類型值,在數(shù)據(jù)幀的最后,自動生成4個字節(jié)的循環(huán)冗余碼校驗(CRC)值,用于保證數(shù)據(jù)幀的完 整性。 2.2傳輸控制協(xié)議TCP(Transmission Control Protocol) TCP提供了一種可靠的數(shù)據(jù)流服務,盡管TCP是DARAP協(xié)議組中的一員,但它卻有很大的獨立性。它對下層網(wǎng)絡 協(xié)議只有最基本的要求,很容易在不同的網(wǎng)絡上建成,因而非常流行。ISO/OSI運輸層標準中的第四類TP-4就是以 TCP作為原型建立的。TCP可以在眾多的網(wǎng)絡上工作,可以提供虛擬電路服務和面向數(shù)據(jù)流的傳輸服務。用戶數(shù)據(jù)可 以有序而且可靠的傳送。在一個分組可能發(fā)生丟失、破壞、重復、延遲或失序情況下,TCP服務可提供一種可靠的 進程間通信機制,協(xié)議可以自動糾正各種差錯。 2.3網(wǎng)際協(xié)議IP(Internet Protocol) 第三層最重要的協(xié)議是IP。它將多個網(wǎng)絡聯(lián)成一個互連網(wǎng)。IP的工作是將一個以上的報文處理網(wǎng)絡聯(lián)成一個網(wǎng) 際網(wǎng)。IP的基本任務是通過網(wǎng)際網(wǎng)傳送數(shù)據(jù)報,各個IP數(shù)據(jù)報之間是相互獨立的。主機上的IP層基于數(shù)據(jù)鏈路層的 服務向傳輸層提供服務。IP從源運輸實體取得數(shù)據(jù),通過它的數(shù)據(jù)鏈路層服務傳給目的主機的IP層。網(wǎng)關(guān)通過下一 網(wǎng)絡數(shù)據(jù)報傳到目的主機或下一網(wǎng)關(guān)。 2.4地址轉(zhuǎn)換協(xié)議ARP(Address Resolution Protocol) 在TCP/IP網(wǎng)絡環(huán)境下,每個主機分配的組位IP地址只是一種邏輯地址,這樣在傳送時必須轉(zhuǎn)換成物理地址, ARP協(xié)議就是完成這一功能的。 ARP使主機可以找到同一物理網(wǎng)絡中任一物理主機的物理地址,只需給出該主機 的網(wǎng)際地址即可??梢?,基本網(wǎng)絡的物理編址對網(wǎng)絡層服務是透明的。 2.5 其它協(xié)議 在因特網(wǎng)網(wǎng)絡協(xié)議當中,還有其它相關(guān)的協(xié)議,如:反向地址轉(zhuǎn)換協(xié)議RARP(Reverse Address Resolution Protocol)、用戶數(shù)據(jù)報協(xié)議UDP(User Datagram Protocol)、網(wǎng)際控制報文協(xié)議ICMP(Internetwork control Message Protocol)、超文本傳輸協(xié)議(hypertext transfer protocol)等,它們在因特網(wǎng)的數(shù)據(jù)交換當中都有什么 重要的作用,本文限于篇幅,不一一詳細介紹。 3. 硬件設計[1] 本設計中所用到的兩個重要組件為TI公司的微處理器MSP430F149和Crystal公司的以太網(wǎng)控制器CS8900A,下面 簡單介紹一下這兩個組件,再論述硬件實施方案。 3.1 MSP430F149[2] MSP430F149具有60K字節(jié)的FLASH存儲器和2K字節(jié)的RAM、看門狗定時器(Watchdog Timer)、6個8位的通用I/O 口、12位A/D轉(zhuǎn)換器、2個串行通信接口和1個硬件乘法器等。MSP430F149的60K字節(jié)FLASH存儲器足以存儲網(wǎng)頁數(shù) 據(jù), 6個通用I/O口既可以用來控制以太網(wǎng)控制器CS8900A,也可以用來執(zhí)行其它的用戶命令,12位A/D轉(zhuǎn)換器可以 用來在終端采集數(shù)據(jù),然后再通過網(wǎng)絡發(fā)給用戶. 3.2 CS8900A[3] CS8900A低功耗的以太網(wǎng)控制器,被廣泛應用于工控機中。其高集成度的設計(在應用當中只需要極少的外圍 元件)和簡單容用的總線接口,非常適用于本設計。目前,許多的以太網(wǎng)控制器都只提供PCI(周邊元件擴展接 口)接口,而CS8900A可以直接和微控制器相連,所以,可以MSP430F149的I/O口來直接對CS8900A進行控制,具體 連接方式如圖2所示。另外,CS8900A可以直接3V供電,這有利于和MSP430F149之間的電平匹配。 3.3 MSP430F149與CS8900A的接口 CS8900A有三種工作模式:I/O模式、存儲器模式和直接存儲器存儲模式,默認為I/O模式,可通過程序使其工 作于其它模式。CS8900A的各個工作模式各有優(yōu)缺點,本設計當中,采用的是它的I/O模式。CS8900A共有8個16位的 I/O口,這8個I/O口與片內(nèi)的8個16位寄存器相對應。如圖2所示,CS8900A采用8位的數(shù)據(jù)總線方式和MSP430F149的 P5口相連,接口中共用到14個引腳。復位后,CS8900A默認選擇I/O地址為0x300,并且一直保持該默認地址工作。 3.4 系統(tǒng)硬件原理 整個系統(tǒng)的硬件原理如圖2所示,下面詳細分析圖中的各個模塊。 CS8900A的XTAL1(97)引腳和XTAL2(98)引腳接一20MHz的晶振,由于其片內(nèi)XTAL處集成了電容,所以,不需要外 接電容。CS8900A的復位引腳為高有效,在芯片上電工作時,需要一個復位信號,這由R9和C17提供聯(lián)合提供。 CS8900A有兩個不同的LED控制引腳:LANLED(100)引腳和LINKLED(99)引腳,用于控制LED以顯示CS8900A的工作狀 態(tài)。LANLED引腳接一個紅色LED(D1),當CS8900A接收或發(fā)送數(shù)據(jù)時,該引腳輸出低電平,點亮紅色LED。LINKLED接 一個黃色LED(D2),當CS8900A和工作的以太網(wǎng)絡連接時,黃色LED點亮。 和MSP430F149有關(guān)的電路,除了上述的和CS8900A連接的部分外,還有JTAG(Joint Test Action Group)接口、 晶振和復位電路。其中,JTAG接口用于編程和調(diào)試,用一個14引腳的接頭引出了TCK、TDI、TDO/TDI四個用于編程 和調(diào)試的引腳,可直接和MSP430的調(diào)試工具FET(FLASH Emulation Tool)相連。用戶也可以通過電平轉(zhuǎn)換芯片 MAX3221把MSP430F149的串行通信口也引出,以實現(xiàn)需要的功能。MSP430F149時鐘電路部分,需要接一個8MHz的晶 振和兩個15pF的電容。 整個系統(tǒng)由3.3V的電源供電,綠色LED(D4)為整個系統(tǒng)的電源指示燈。為了系統(tǒng)擴展的需要,也可以把 MSP430F149所有未用到的I/O引腳都用接頭引出。 進行PCB(印制電路板)設計時,通過旁路電容濾波,以給MSP430F149和CS8900A提供穩(wěn)壓的電源信號。為了得到 更好的系統(tǒng)性能和減小電磁干擾,最好能夠把PCB布置為四層板。 3.5 CS8900A與局域網(wǎng)的接口 CS8900A片內(nèi)集成了一個10M的以太網(wǎng)收發(fā)器,其片內(nèi)集成了所有用于和局域網(wǎng)通信的模擬和數(shù)字電路,其可通 過一個電磁隔離器E2023直接和局域網(wǎng)相連。電阻R1用于連接兩根接收線,和兩根發(fā)送線相連的電阻R2和R3則用于 阻抗匹配。RJ45為網(wǎng)絡接頭,其可接10M或100的網(wǎng)絡集線器(hub)。 4. 軟件設計 本設計的軟件部分主要分為四大部分:以太網(wǎng)模塊、TCP/IP模塊、API(應用程序接口)和HTTP(超文本傳輸協(xié) 議)服務模塊,全部程序用C語言編寫(便于與其它微控制器系統(tǒng)的接口的擴展),并通過IAR Workbench for MSP430 V2.10編譯。 4.1 以太網(wǎng)模塊 以太網(wǎng)部分程序的主要作用是對以太網(wǎng)控制器CS8900A進行驅(qū)動、以函數(shù)的形式給其它模塊提供讀寫CS8900A寄 存器的接口、產(chǎn)生讀寫CS8900A的時鐘等。以太網(wǎng)程序包含了網(wǎng)絡接口的各種配置,其中,最重要的是,MAC(介質(zhì) 訪問控制)地址的配置。MAC地址共48位,在程序中用6個無符號整型變量存儲MAC地址值,每個MAC地址值必需為唯 一的,并且不能是0xFFFFFFFFFFFF。 以太網(wǎng)控制器的配置過程如下:在系統(tǒng)上電后,首先調(diào)用函數(shù)Init8900()進行以太網(wǎng)控制器CS8900A的初始化 配置,然后CS8900A被復位,MSP430F149把本機的MAC地址以配置序列字的形式發(fā)給CS8900A,CS8900A把MAC地址存 儲在寄存器中。配置完成后,MSP430F149就可以對CS8900A讀寫數(shù)據(jù)了。 4.2 TCP/IP模塊 TCP/IP模塊是整個系統(tǒng)軟件的關(guān)鍵,定義了使用網(wǎng)絡來收發(fā)數(shù)據(jù)的協(xié)議,使用以太網(wǎng)模塊所提供的各種讀寫函 數(shù)來接收或發(fā)送數(shù)據(jù),并給應用層提供簡單易用的API接口。 TCP/IP模塊中,最重要的函數(shù)是DoNetworkStuff(),該函數(shù)的主要作用是進行TCP事件處理,應該周期性地被 用戶程序調(diào)用。在函數(shù)DoNetworkStuff()中,定義了一些用于標志以CS8900A和MSP |