用MSP430實現(xiàn)的嵌入式因特網(wǎng)終端設計
430F149工作狀態(tài)的標志量,該 函數(shù)的工作流程如圖3所示。函數(shù)DoNetworkStuff()被調用得周期越短,系統(tǒng)執(zhí)行TCP/IP協(xié)議的性能越好。 為了更好的協(xié)調接發(fā)和發(fā)送的數(shù)據(jù),給TCP/IP模塊在SRAM中分配了三個緩沖區(qū),TxFrame1、TxFrame2和 RxTCPBuffer。其中,TxFrame1的主要作用是給要發(fā)送的TCP數(shù)據(jù)幀(包括以太網(wǎng)、IP、TCP幀頭)提供緩沖內存; TxFrame2的主要作用是給TCP非數(shù)據(jù)幀(包括以太網(wǎng)、IP、TCP幀頭)和ARP、CIMP協(xié)議幀提供緩沖內存;RxTCPBuffer 給接收到的TCP數(shù)據(jù)提供緩沖內存。所分配的緩沖區(qū)越大,收發(fā)速度越快,因為這樣可以減少因緩沖區(qū)不足造成的 滯后。 可以通過主動或被動的方式調用函數(shù)TCPPassiveOpen()或TCPActiveOpen()建立網(wǎng)絡通信連接。函數(shù) TCPPassiveOpen()函數(shù)的作用主要是用于檢測到有數(shù)據(jù)包送入時,把數(shù)據(jù)包送入緩沖區(qū),函數(shù)TCPActiveOpen()的 主要作用是,把要發(fā)送的數(shù)據(jù)包送入緩沖區(qū)。在主動發(fā)送數(shù)據(jù)包之前,先設置要接收該數(shù)據(jù)包的MAC地址,并把本 機地址包含進數(shù)據(jù)包。一旦連接建立完成,就可以開始發(fā)送數(shù)據(jù),可以通過相應的接口函數(shù)讀出連接的狀態(tài)。當數(shù) 據(jù)發(fā)送完畢,可以通過函數(shù)TCPClose()關閉連接。 在數(shù)據(jù)包收發(fā)的過程當中,不同的任務需要不同的處理時間,這個時間可以使用MSP430F149的定時器Timer_A 來提供,不過必須注意的是,在使用定時器Timer_A之前,必須進行初始化,這點同使用其它微控制器是相似的。 為了減少數(shù)據(jù)包發(fā)送不成功造成的錯誤,當接收機接收到數(shù)據(jù)后,其應當返回一個接收正確信號,當發(fā)送機超過設 定時間,仍接收不到正確的接收信號時,TCP/IP模塊自動進行數(shù)據(jù)包重發(fā),這個過程可以通過相應的變量和函數(shù)來 實現(xiàn)。 雖然,各個公司的軟件處理TCP/IP協(xié)議的程序不盡相同,但幸運的是,各個公司在TCP/IP協(xié)議上的兼容性都非 常好,因此,只要用戶按照TCP/IP協(xié)議進行程序編寫,不同的程序間的通信應該不存在多大的問題。 4.3 API(應用編程接口) 為了使用戶既能夠使用現(xiàn)在的應用,也能夠建立適用自己要求的嵌入式應用,在整個軟件的編制過程中,應當 留一下API函數(shù),以便于用戶無需對TCP/IP協(xié)議有過多的了解也能夠在原有程序的基礎上進行二次開發(fā)。本軟件充 分考慮了這一點,給用戶留出了很多AIP函數(shù),主要的有,TCPClose()、TCPReleaseRxBuffer()和 TCPTransmitTxBuffer()等。其中,函數(shù)TCPClose()的主要用處是用于關閉打開了的連接,在關閉連接之前,發(fā)送 的數(shù)據(jù)包還留在發(fā)送緩沖區(qū)中以保證正確發(fā)送,連接關閉之后,用戶要重新建立連接的話,必須重新設置IP地下、 重新分配I/O口和重新建立連接。TCPReleaseRxBuffer()的主要作用是,在讀出緩沖區(qū)的數(shù)據(jù)之后,調用此函數(shù), 無需再保存已正確讀出的數(shù)據(jù)包,這樣就可以騰出緩沖區(qū)用于存放新的數(shù)據(jù)包。用戶可以使用函數(shù) TCPTransmitTxBuffer()通過已建立的連接發(fā)送數(shù)據(jù),但是,在使用該函數(shù)前,用戶要先檢查 SOCK_TX_BUF_RELEASED標志,確定是否有可用的發(fā)送緩沖區(qū)。本設計中,還提供了檢查連接狀態(tài)和收發(fā)狀態(tài)的變量 (標志),如SOK_ACTIVE、SOCK_CONNEDTED等。 4.4 HTTP應用 在進行以上的工作之后,用戶就可以建立HTTP服務器,通過TCP/IP協(xié)議,實現(xiàn)不同的微控制器或工作站之間的 通信。HTML(超文本鏈接標示語言)網(wǎng)頁數(shù)據(jù)可以保存在MSP430F149的片內FLASH存儲器中。網(wǎng)頁能夠完成接收數(shù) 據(jù)、發(fā)送網(wǎng)頁數(shù)據(jù)、關閉連接和等待其它應用進行連接等。并且,用戶建立的網(wǎng)頁,能夠動態(tài)實時的進行數(shù)據(jù)更 新。當然,無論是在普通計算機或微控制器上運行HTML網(wǎng)頁應用程序,要實現(xiàn)和其它計算機進行通信,都必須如前 所述,設置單一、有效的MAC地址。 5. 結束語 隨著網(wǎng)絡技術的發(fā)展,需要進行網(wǎng)絡連接和通信的微型嵌入式因特網(wǎng)終端越來越多,這不僅可以應用于日常生 活中,也可以應用于許多工業(yè)現(xiàn)場,特別是在那些分散、共享數(shù)據(jù)或需要共享某些信息的工業(yè)現(xiàn)場嵌入式網(wǎng)絡終端 的技術優(yōu)質更加明顯。此外,MSP430系列單片機的功耗非常低,很好的解決了在某些特殊場合下的電源問題。由此 可見,本文所論述的設計方案具有很大的應用前景。 |