Cortex-M3平臺(tái)上lwIP+AJAX的Web嵌入式應(yīng)用
摘要:本文基于lwIP以太網(wǎng)協(xié)議棧將AJAX動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)技術(shù)應(yīng)用于嵌入式Cortex-M3平臺(tái),實(shí)現(xiàn)Web嵌入式應(yīng)用。相比于CGI技術(shù),AJAX實(shí)現(xiàn)簡(jiǎn)易,移植性強(qiáng),可支持傳統(tǒng)IE或是手機(jī)等不同的網(wǎng)頁(yè)訪問(wèn)終端用戶(hù)。所選Cortex-M3平臺(tái)內(nèi)部集成PHY,lwIP協(xié)議棧及實(shí)時(shí)操作系統(tǒng)FreeRTOS均是開(kāi)源、免費(fèi),整個(gè)系統(tǒng)成本在60RMB以?xún)?nèi),對(duì)于成本較敏感的網(wǎng)絡(luò)互聯(lián)產(chǎn)品提供了一種解決方案,并給出了硬件原理圖及軟件代碼。
本文引用地址:http://cafeforensic.com/article/146836.htm引言
嵌入式系統(tǒng)是融合了SoC半導(dǎo)體技術(shù)、電子技術(shù)、計(jì)算機(jī)技術(shù),針對(duì)具體應(yīng)用硬件軟件均量身定制的計(jì)算機(jī)系統(tǒng)。低成本、高可靠性、高靈活性、高集成性使得嵌入式產(chǎn)品在工業(yè)領(lǐng)域獲得了巨大的發(fā)展契機(jī)。嵌入式產(chǎn)品一般服務(wù)于工業(yè)現(xiàn)場(chǎng),通過(guò)RS232、RS485、或是CAN等通信接口與外界互聯(lián)通信。如今伴隨著Internet技術(shù)的成熟,帶寬的日益提高,公共場(chǎng)所無(wú)線網(wǎng)絡(luò)覆蓋,智能手機(jī)日益普及,網(wǎng)絡(luò)化、信息化的要求越來(lái)越受到關(guān)注,Internet網(wǎng)絡(luò)互聯(lián)成為必然的趨勢(shì)[1]。
目前在實(shí)際應(yīng)用中支持Internet應(yīng)用的嵌入式系統(tǒng)產(chǎn)品,主要是通過(guò)ARM9平臺(tái)實(shí)現(xiàn),如Samsung S3C2442或是ATMEL AT91SAM9G25平臺(tái),操作系統(tǒng)一般是用Linux,網(wǎng)絡(luò)開(kāi)發(fā)則多是采用傳統(tǒng)的CGI(Common Gateway Interface)技術(shù)[2]。此種解決方案在成本上過(guò)高,僅一顆ARM9處理器就將近70RMB,對(duì)于成本敏感的產(chǎn)品無(wú)法承擔(dān);CGI維護(hù)復(fù)雜,運(yùn)行效率低下,每響應(yīng)一個(gè)客戶(hù)就會(huì)打開(kāi)一個(gè)新的進(jìn)程,當(dāng)用戶(hù)訪問(wèn)數(shù)量增大時(shí),會(huì)嚴(yán)重地?fù)p耗系統(tǒng)資源,大幅度地降低系統(tǒng)性能,訪問(wèn)數(shù)據(jù)庫(kù)的程序也不容易編寫(xiě),這也就是最近幾年來(lái)隨著各種新的后臺(tái)技術(shù)的誕生,CGI應(yīng)用在Internet上越來(lái)越少的原因,CGI方式不適合訪問(wèn)量大的應(yīng)用[3]。
基于此現(xiàn)狀,本文給出了一個(gè)TI Cortex-M3平臺(tái)上,運(yùn)用AJAX(Asynchronous JavaScript and XML)技術(shù)實(shí)現(xiàn)Web嵌入式應(yīng)用方案。Cortex-M3平臺(tái)成本和性能介于ARM9和MCU之間一類(lèi)處理器,而TI Cortex-M3是目前市場(chǎng)上唯一內(nèi)部集成PHY,這可進(jìn)一步降低方案硬件成本。操作系統(tǒng)采用開(kāi)源的FreeRTOS,相對(duì)Linux,F(xiàn)reeRTOS小巧精致,對(duì)硬件Flash和RAM需求極小,5KB Flash和0.6KB RAM便可運(yùn)行,相對(duì)于μC/OS-II商業(yè)操作系統(tǒng),F(xiàn)reeRTOS則是完全免費(fèi)。TCP/IP協(xié)議棧采用瑞典開(kāi)源免費(fèi)的lwIP(Light Weight IP),一般它只需要0.5KB的RAM和7KB左右的Flash就可以運(yùn)行[4];網(wǎng)絡(luò)開(kāi)發(fā)采用AJAX技術(shù),AJAX是一種基于客戶(hù)端瀏覽器的語(yǔ)言[5],使用AJAX的最大優(yōu)點(diǎn)就是能在不刷新整個(gè)頁(yè)面的前提下維護(hù)數(shù)據(jù)。這使得Web應(yīng)用程序更為迅捷地響應(yīng)用戶(hù)交互,并避免了在網(wǎng)絡(luò)上發(fā)送那些沒(méi)有改變的信息[6]。由于采用了高性?xún)r(jià)比處理器平臺(tái)和免費(fèi)開(kāi)源的系統(tǒng)軟件,整個(gè)系統(tǒng)成本可控制在60RMB以?xún)?nèi),為成本較敏感的網(wǎng)絡(luò)互聯(lián)產(chǎn)品提供了一種解決方案。
系統(tǒng)硬件設(shè)計(jì)
TI推出的Cortex-M3 LM3S9D96,提供豐富的片內(nèi)外設(shè):片上集成512KB Flash,96KB RAM,18通道ADC,1個(gè)USB(OTG),2通道SPI,2路CAN,3通道UART,1路10/100M Ethernet,內(nèi)部集成PHY,看門(mén)狗,支持EPI、NVIC和DMA,65個(gè)通用IO,處理速度80MHz,ROM固化了FreeRTOS操作系統(tǒng),Bootloader及常用外設(shè)操作接口函數(shù)庫(kù),方便快速高效產(chǎn)品開(kāi)發(fā)。
基于LM3S9D96平臺(tái)的硬件系統(tǒng)框圖如圖1所示?! ?/p>
(1)PowerMode:系統(tǒng)工作電源,采用DC5V,由外置Adaptor設(shè)備提供。整個(gè)系統(tǒng)的電源包括:5V,3.3V及5V_ISO(用于RS485通信電源)。
(2)RS4851/RS4852:系統(tǒng)通過(guò)RS4851或RS4851接口電路實(shí)時(shí)采集現(xiàn)場(chǎng)設(shè)備運(yùn)行數(shù)據(jù)。
(3)LEDs:通過(guò)4個(gè)LED指示一些重要功能模塊的工作狀態(tài),如5V電源,RS4851,RS4852及LAN的通信狀態(tài)等。
(4)LAN:實(shí)現(xiàn)標(biāo)準(zhǔn)TCP/IP互聯(lián)網(wǎng)通信。
(5)Clock:為整個(gè)系統(tǒng)提供時(shí)鐘源。
(6)JTAG:軟件開(kāi)發(fā)調(diào)試接口。
(7)EEPROM:采用512Kb SPI接口式EEPROM,存儲(chǔ)一些采集到的重要運(yùn)行數(shù)據(jù)及系統(tǒng)配制參數(shù)如IP地址,子網(wǎng)掩碼,網(wǎng)關(guān)及DNS服務(wù)器,Internet時(shí)間服務(wù)器,時(shí)區(qū)等。
(8)Recover:恢復(fù)出廠設(shè)置,當(dāng)上電時(shí)按住此鍵可使系統(tǒng)所有參數(shù)恢復(fù)到出廠默認(rèn)值。
(9)Reset:系統(tǒng)復(fù)位電路。
linux相關(guān)文章:linux教程
評(píng)論