采用LPC2210的網(wǎng)絡(luò )化智能溫度傳感器系統設計
3 系統軟件分析本文引用地址:http://dyxdggzs.com/article/161009.htm
3.1 總體設計
系統開(kāi)發(fā)采用的是ARM公司的ADS1.2作為開(kāi)發(fā)編譯環(huán)境。移植了μC/OS—II操作系統,主要采用C語(yǔ)言編寫(xiě)。將μC/OS—II移植到ARM處理器上,需要修改3個(gè)與ARM體系結構相關(guān)的文件:OS_CPU.H、0S_CPU_A.ASM、OS_CPU_C.C。具體移植請參考相關(guān)書(shū)籍。
程序首先調用OSinit()初始化μC/OS—II,完成對操作系統內部一些變量、數據結構和宏定義的初始化。在開(kāi)始多任務(wù)之前,還需建立一個(gè)名為T(mén)ask0()的任務(wù),這一點(diǎn)是非常重要的,否則用戶(hù)的應用程序就會(huì )崩潰。主任務(wù)中首先調用TargeTInit()函數將目標板初始化,模板中包含這個(gè)初始化函數,它完成對板上硬件的一些初始化工作。之后啟動(dòng)多任務(wù)環(huán)境,創(chuàng )建3個(gè)任務(wù)來(lái)實(shí)現系統最終的目標。這3個(gè)任務(wù)包括:傳感器對溫度的采集和處理;溫度比較與液晶顯示;建立Web服務(wù)器。下面對設計過(guò)程中比較關(guān)鍵問(wèn)題進(jìn)行詳細的闡述。
3.2 軟件設計中的關(guān)鍵技術(shù)問(wèn)題
在對傳感器數據采集的軟件編程中,采用的是單線(xiàn)總線(xiàn)協(xié)議。通過(guò)單線(xiàn)總線(xiàn)訪(fǎng)問(wèn)DSl8820的協(xié)議包括:初始化DSl8820、ROM操作命令、存儲器操作命令和讀數據/處理數據。
根據DSl8820的初始化時(shí)序、寫(xiě)時(shí)序和讀時(shí)序,分別編寫(xiě)3個(gè)子程序:Init_DSl8820為初始化子程序;WriteOneChar為寫(xiě)(命令或數據)子程序;ReadOneChar為讀數據子程序。所有的數據讀/寫(xiě)均由最低位開(kāi)始。
該系統的讀字節子程序的流程如圖4所示。
溫度傳感器采集的關(guān)鍵任務(wù)程序代碼如下:
3.2.2 Web服務(wù)器的建立
要在微處理器中建立Web服務(wù)器,主要需要實(shí)現TCP/IP協(xié)議棧的移植。設計中主要采用ZLG/IP軟件包,它是廣州周立功單片機發(fā)展有限公司開(kāi)發(fā)的面向嵌入式系統開(kāi)發(fā)的TCP/IP協(xié)議棧,是ZLG系列中間件的重要成員之一。ZLG/IP提供實(shí)現Internet網(wǎng)絡(luò )上IP接點(diǎn)的功能,是一種高性能的嵌入式TCP/IP協(xié)議棧軟件。它使用μC/OS—II實(shí)時(shí)操作系統的信號機制來(lái)實(shí)現一個(gè)多任務(wù)并行、可重入的協(xié)議棧,完全使用ANSI C編寫(xiě),可以像μC/OS—II那樣支持多種CPU。ZLG/IP還具有層次清晰、易于升級和修改等特點(diǎn)。該ZLG/IP軟件包具體可見(jiàn)參考文獻。
ZLG/IP采用模塊化層次結構設計,其結構如圖5所示。
評論