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