計算機CAN-TCPIP網(wǎng)關的嵌入式WebServer研究_第1頁
計算機CAN-TCPIP網(wǎng)關的嵌入式WebServer研究_第2頁
計算機CAN-TCPIP網(wǎng)關的嵌入式WebServer研究_第3頁
計算機CAN-TCPIP網(wǎng)關的嵌入式WebServer研究_第4頁
計算機CAN-TCPIP網(wǎng)關的嵌入式WebServer研究_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、    計算機cantcpip網(wǎng)關的嵌入式webserver研究    肖飛 李巍摘要:介紹了計算機can、tcp/ip協(xié)議及其上開發(fā)的嵌入式can-tcp/ip網(wǎng)關,研究并實現(xiàn)了基于can-tcp/ip網(wǎng)關的嵌入式webserver。嵌入式can總線的web服務器大大提升了can-tcp/ip網(wǎng)關的易用性和實用性。關鍵詞:uclinux can-tcp/ip 嵌入式webserver一、can、tcp/ip概述can、tcp/ip是兩種應用非常廣泛的協(xié)議。tcp/ip是internet上廣為流行的協(xié)議,它是計算機之間的通信協(xié)議。但其傳輸方式和效率很難滿

2、足現(xiàn)場的要求。can是一種優(yōu)秀的現(xiàn)場總線,但遠程通訊卻又有許多不足。嵌入式產(chǎn)品的發(fā)展,尤其以源代碼開放為特征的linux的出現(xiàn),把 tcp/ip和can兩種優(yōu)勢技術相結合的嵌人式系統(tǒng)具有很高的性能和實用性。二、嵌入式can-tcp/ip的網(wǎng)關嵌入式can-tcp/ip的網(wǎng)關是在uclinux系統(tǒng)上開發(fā)出來的,它實現(xiàn)can總線與以太網(wǎng)tcp/ip協(xié)議的轉換,通過以太網(wǎng)能夠進行can發(fā)送和can接收,要求網(wǎng)絡上的一臺pc能通過應用軟件操作網(wǎng)關,實現(xiàn)can信息的收發(fā)。 在局域網(wǎng)中運行在pc上編寫的基于windows的can-tcp/ip以太網(wǎng)通訊程序,通過以太網(wǎng)連接目標板,實現(xiàn)對can網(wǎng)絡信息的接收

3、并顯示,以及向can網(wǎng)絡發(fā)送信息。can-tcp/ip網(wǎng)關的硬件結構如圖1所示。三、嵌入式webserver嵌入式webserver可實現(xiàn)can總線網(wǎng)絡設備的遠程監(jiān)控,網(wǎng)絡端的客戶程序就不需要單獨安裝,有瀏覽器就可以操作嵌入式can-tcp/ip的網(wǎng)關。我們在這里選擇了支持cgi又適合嵌入式系統(tǒng)的boa web server。boa是一個源代碼開放、執(zhí)行效率高的系統(tǒng)。uclinux的已經(jīng)包含了boa的源代碼。如果在特定的uclinux系統(tǒng)下實現(xiàn)boa,還需要對boa做一修改。四、嵌入式webserver在boa web server中的實現(xiàn)1.boa server配置boa server配置通

4、過對boa.conf 和mime.types 這兩個文件進行修改配置:(1)手動建目錄因為uclinux 默認的根文件系統(tǒng)romfs是只讀的,所以不能使用mkdir等命令來新建目錄,故應在編譯內(nèi)核前先建好要用到的目錄,這通過修改/uclinux-samsung/vendors/samsung/4510b/makefile 文件來實現(xiàn)。在romfs_dirs =bin dev etc home lib mnt proc usr var的后邊增加home/webhome/web/cgi-bin,修改完成后就可以編譯內(nèi)核,根文件系統(tǒng)被編譯好后,就包含了這些目錄。(2)指定web 服務器的根目錄路徑(

5、server_root)進入/uclinux-samsung/user/boa/src/目錄,通過修改define.h 文件中#define erver_root“/home”語句來指定server_root。也可以通過命令來實現(xiàn):boa-c /home/&。server_root可以覆蓋define.h 文件中所指定的。(3)修改boa.conf 文件在./uclinux-samsung/user/boa/src/boa.conf里修改:將user obodygroup ogroup改為user 0group 0;將documentroot/var/www改為documentroot

6、/home/web, web服務器的文檔根目錄為/home/web ;將mimetypes /etc/mime.types改為mimetypes /home/web/mime.types;默認主頁和c g i 程序所在的目錄,即directoryindexindex.htmscriptalias /cgi-bin/ /home/web/cgi-bin/boa.conf 文件和mime.types這兩個文件放到web服務器根目錄下,所以把最后的bao.conf和mime.types拷貝到“./uclinux-samsung/romfs/home/”目錄下。然后在/uclinux-samsung/

7、vendors/samsung/4510b/inittab里修改,在inet:unknown:/bin/inetd后加入:boa:unknown:/bin/boac/home。配置完成后,把內(nèi)核重新編譯, boa選項要被選中。然后把內(nèi)核下載到開發(fā)板,啟動uclinux,完成ip配置,open boa web server,網(wǎng)頁就可以通過ip來訪問了。2.cgi簡介cgi通過了一個用來執(zhí)行外部程序的通道,能夠實現(xiàn)服務器和瀏覽器的交互。cgi 程序其實是一個外部程序,可以把它編譯成可執(zhí)行文件,然后運行在服務端,結構如圖2所示。用戶輸入的數(shù)據(jù)通過瀏覽器送到web服務器,web服務器使用stdin 將

8、數(shù)據(jù)送給cgi 程序, cgi 程序被執(zhí)行后,存放數(shù)據(jù)的文檔可能會被訪問到,最后使用stdout 輸出html 形式的結果文件,在瀏覽器端顯示web 服務器送回的數(shù)據(jù)。我們的cgi 程序用c語言來編寫。考慮到uclinux不支持數(shù)據(jù)庫存儲,我們把數(shù)據(jù)保存在文件中,cgi可以查詢這些文件。設備在uclinux中也是被作為文件來訪問的,所以在cgi程序中也可以對如sja1000 can等設備進行讀寫,即can發(fā)送和can接收操作。3.編寫web頁面web頁面就是一個html網(wǎng)頁文件,要求內(nèi)嵌表單。編寫web頁面時,要由action屬性來指定相關的cgi程序,如:action=cgi-bin/can

9、server ;由mothod屬性來指明所用的提交數(shù)據(jù)的方法,即method = post(get也可)。將該文件放到/home/web目錄下。這個頁面即是其他瀏覽器進行訪問設備的ip地址而出現(xiàn)的頁面。4.編寫cgi程序cgi 程序可以分為3個部分:數(shù)據(jù)的接收通過post方法或get方法從提交的表單中獲??; url編碼的解碼; html源代碼用用printf( )函數(shù)來產(chǎn)生,并將經(jīng)過解碼后的數(shù)據(jù)正確地返回給瀏覽器。最后把編寫好的cgi程序編譯成二進制文件放在cgibin/目錄下。下面介紹我們編寫的cgi程序cantcp.c的核心部分,它完成can信息接收并顯示到瀏覽器中。主要包括讀取can接收

10、信息和輸出html數(shù)據(jù)流兩部分。sjadev = open(“/dev/sja1000”,o_rdwr); /打開sja1000設備if ( sjadev = -1 ) printf(“cannt open file “); exit(0);read(sjadev,buf,13); /讀取sja1000設備,將獲取的can信息存入buffor (i = 0; i < 13;i+)itos(bufi,strbuf+i); /can數(shù)據(jù)整形轉換為字符串close(sja1000); /關閉can設備printf(“content-type:text/htmlnn”);printf(“n”);

11、 /html文件開始標志printf(“n”); /html文件頭部信息printf(“n”);/標題信息printf(“n”);printf(“n”);printf(“sja1000 can 設備接收信息顯示n”);printf(“can_id0: %sn”, strbuf0); /顯示can_id0printf(“can_id1: %sn”, strbuf1); /顯示can_id0printf(“can_data7: %sn”, strbuf12); /顯示can_data7printf(“n”);printf(“n”);fflush(stdout); /將上述html信息以數(shù)據(jù)流送出exit(0); /程序結束結語嵌入式uclinux下的webserver提升了can-tcp/ip網(wǎng)關的易用性。本文研究使用的boa webserver服務器是一個小型的web服務器,能夠同時處理的客戶端連接數(shù)量有限??梢詫hhttpd或其他的webserver進行研究并移植到uclinux系統(tǒng)中,更好地實現(xiàn)其產(chǎn)品化。參考文獻1楊甜甜.tcp/ip網(wǎng)絡與can網(wǎng)絡網(wǎng)關的設計與實現(xiàn)j.文藝生活·文藝理論2015(4):287-287.2安妮,董俊.基于嵌入式的現(xiàn)場總線和tc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論