999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

計算機CAN—TCPIP網關的嵌入式WebServer研究

2018-01-24 11:40:50肖飛李巍
新教育時代·教師版 2018年48期
關鍵詞:嵌入式程序

肖飛 李巍

摘要:介紹了計算機CAN、TCP/IP協議及其上開發的嵌入式CAN-TCP/IP網關,研究并實現了基于CAN-TCP/IP網關的嵌入式WebServer。嵌入式CAN總線的Web服務器大大提升了CAN-TCP/IP網關的易用性和實用性。

關鍵詞:uClinux CAN-TCP/IP 嵌入式WebServer

一、CAN、TCP/IP概述

CAN、TCP/IP是兩種應用非常廣泛的協議。TCP/IP是internet上廣為流行的協議,它是計算機之間的通信協議。但其傳輸方式和效率很難滿足現場的要求。CAN是一種優秀的現場總線,但遠程通訊卻又有許多不足。嵌入式產品的發展,尤其以源代碼開放為特征的Linux的出現,把 TCP/IP和CAN兩種優勢技術相結合的嵌人式系統具有很高的性能和實用性。

二、嵌入式CAN-TCP/IP的網關

嵌入式CAN-TCP/IP的網關是在uClinux系統上開發出來的,它實現CAN總線與以太網TCP/IP協議的轉換,通過以太網能夠進行CAN發送和CAN接收,要求網絡上的一臺PC能通過應用軟件操作網關,實現CAN信息的收發。 在局域網中運行在PC上編寫的基于Windows的CAN-TCP/IP以太網通訊程序,通過以太網連接目標板,實現對CAN網絡信息的接收并顯示,以及向CAN網絡發送信息。CAN-TCP/IP網關的硬件結構如圖1所示。

三、嵌入式WebServer

嵌入式WebServer可實現CAN總線網絡設備的遠程監控,網絡端的客戶程序就不需要單獨安裝,有瀏覽器就可以操作嵌入式CAN-TCP/IP的網關。我們在這里選擇了支持CGI又適合嵌入式系統的Boa Web Server。Boa是一個源代碼開放、執行效率高的系統。uClinux的已經包含了boa的源代碼。如果在特定的uClinux系統下實現Boa,還需要對Boa做一修改。

四、嵌入式WebServer在Boa Web Server中的實現

1.Boa Server配置

Boa Server配置通過對boa.conf 和mime.types 這兩個文件進行修改配置:

(1)手動建目錄

因為uClinux 默認的根文件系統romfs是只讀的,所以不能使用mkdir等命令來新建目錄,故應在編譯內核前先建好要用到的目錄,這通過修改/uclinux-samsung/vendors/Samsung/4510b/makefile 文件來實現。在ROMFS_DIRS =bin dev etc home lib mnt proc usr var的后邊增加home/webhome/web/cgi-bin,修改完成后就可以編譯內核,根文件系統被編譯好后,就包含了這些目錄。

(2)指定Web 服務器的根目錄路徑(SERVER_ROOT)

進入/uclinux-samsung/user/boa/src/目錄,通過修改define.h 文件中#define ERVER_ROOT“/home”語句來指定SERVER_ROOT。也可以通過命令來實現:boa-c /home/&。SERVER_ROOT可以覆蓋define.h 文件中所指定的。

(3)修改boa.conf 文件

在./uclinux-samsung/user/boa/src/boa.conf里修改:

將user obody

Group ogroup

改為User 0

Group 0;

將DocumentRoot/var/www改為DocumentRoot/home/web, web服務器的文檔根目錄為/home/web ;

將MimeTypes /etc/mime.types改為MimeTypes /home/web/mime.types;

默認主頁和C G I 程序所在的目錄,即

DirectoryIndexindex.htm

ScriptAlias /cgi-bin/ /home/web/cgi-bin/

boa.conf 文件和mime.types這兩個文件放到Web服務器根目錄下,所以把最后的bao.conf和mime.types拷貝到“./uclinux-samsung/romfs/home/”目錄下。然后在/uclinux-samsung/Vendors/Samsung/4510b/inittab里修改,在inet:unknown:/bin/inetd后加入:boa:unknown:/bin/boac/home。

配置完成后,把內核重新編譯, Boa選項要被選中。然后把內核下載到開發板,啟動uClinux,完成IP配置,Open Boa Web Server,網頁就可以通過IP來訪問了。

2.CGI簡介

CGI通過了一個用來執行外部程序的通道,能夠實現服務器和瀏覽器的交互。CGI 程序其實是一個外部程序,可以把它編譯成可執行文件,然后運行在服務端,結構如圖2所示。

用戶輸入的數據通過瀏覽器送到Web服務器,Web服務器使用stdin 將數據送給CGI 程序, CGI 程序被執行后,存放數據的文檔可能會被訪問到,最后使用stdout 輸出HTML 形式的結果文件,在瀏覽器端顯示Web 服務器送回的數據。

我們的CGI 程序用C語言來編寫。考慮到uClinux不支持數據庫存儲,我們把數據保存在文件中,CGI可以查詢這些文件。

設備在uClinux中也是被作為文件來訪問的,所以在CGI程序中也可以對如sja1000 CAN等設備進行讀寫,即CAN發送和CAN接收操作。

3.編寫Web頁面

Web頁面就是一個HTML網頁文件,要求內嵌表單。編寫Web頁面時,要由ACTION屬性來指定相關的CGI程序,如:ACTION=cgi-bin/CanServer ;由MOTHOD屬性來指明所用的提交數據的方法,即METHOD = POST(GET也可)。將該文件放到/home/web目錄下。這個頁面即是其他瀏覽器進行訪問設備的IP地址而出現的頁面。

4.編寫CGI程序

CGI 程序可以分為3個部分:①數據的接收通過POST方法或GET方法從提交的表單中獲取;② URL編碼的解碼;③ HTML源代碼用用printf( )函數來產生,并將經過解碼后的數據正確地返回給瀏覽器。最后把編寫好的CGI程序編譯成二進制文件放在cgibin/目錄下。

下面介紹我們編寫的CGI程序CanTcp.c的核心部分,它完成CAN信息接收并顯示到瀏覽器中。主要包括讀取CAN接收信息和輸出HTML數據流兩部分。

sjadev = open(“/dev/sja1000”,O_RDWR); //打開sja1000設備

if ( sjadev == -1 ) { printf(“Cannt open file “); exit(0);}

read(sjadev,buf,13); //讀取sja1000設備,將獲取的CAN信息存入buf

for (i = 0; i < 13;i++)

itos(buf[i],strbuf+i); //CAN數據整形轉換為字符串

close(sja1000); //關閉CAN設備

printf(“Content-type:text/html\n\n”);

printf(“\n”); //HTML文件開始標志

printf(“\n”); //HTML文件頭部信息

printf(“HTML & CGI Script Demo Result\n”);//標題信息

printf(“

\n”);printf(“\n”);

printf(“

sja1000 CAN 設備接收信息顯示

\n”);

printf(“CAN_ID0: %s\n”, strbuf[0]); //顯示CAN_ID0

printf(“CAN_ID1: %s\n”, strbuf[1]); //顯示CAN_ID0

………………

printf(“CAN_DATA7: %s\n”, strbuf[12]); //顯示CAN_DATA7

printf(“

\n”);printf(“

\n”);

fflush(stdout); //將上述HTML信息以數據流送出

exit(0); //程序結束

結語

嵌入式uClinux下的WebServer提升了CAN-TCP/IP網關的易用性。本文研究使用的boa WebServer服務器是一個小型的Web服務器,能夠同時處理的客戶端連接數量有限。可以對thhttpd或其他的WebServer進行研究并移植到uClinux系統中,更好地實現其產品化。

參考文獻

[1]楊甜甜.TCP/IP網絡與CAN網絡網關的設計與實現[J].文藝生活·文藝理論2015(4):287-287.

[2]安妮,董俊.基于嵌入式的現場總線和TCP/IP協議轉換的技術研究[J].現代電子技術,2016,39,(1):16-19.

[3]趙衛.基于RS485總線的存儲器網絡化技術研究[J].計算機測量與控制,2017,25(10):206-208.

作者簡介

肖飛(1980.2—),男,漢族,湖北荊門人,黃岡師范學院計算機學院,高級工程師,武漢理工大學碩士研究生,主要從事計算機應用軟件開發與創新創業教育研究.

猜你喜歡
嵌入式程序
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發平臺
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
Altera加入嵌入式視覺聯盟
主站蜘蛛池模板: 亚洲精品无码日韩国产不卡| 特级毛片免费视频| 国产精品女在线观看| 91精品国产自产在线观看| 72种姿势欧美久久久久大黄蕉| 午夜小视频在线| 97青草最新免费精品视频| 三级视频中文字幕| 亚洲一区免费看| 久久99热这里只有精品免费看 | www.99在线观看| 99视频免费观看| 久久公开视频| 亚洲国产午夜精华无码福利| 国产精品9| 视频国产精品丝袜第一页| 中文字幕av无码不卡免费| 国产白浆一区二区三区视频在线| 日a本亚洲中文在线观看| 任我操在线视频| 亚洲天堂网视频| 热这里只有精品国产热门精品| 久热中文字幕在线| 在线视频精品一区| 午夜国产精品视频黄| 国产三级毛片| 亚洲va视频| 国产人人射| 欧美中文字幕一区二区三区| 亚洲系列无码专区偷窥无码| 伊人成人在线| 亚洲青涩在线| 69av在线| 人妻精品全国免费视频| 亚洲无码精彩视频在线观看| 国产免费久久精品44| 中文字幕永久在线看| 日韩欧美视频第一区在线观看| 毛片在线播放网址| 91小视频在线观看免费版高清| 亚洲精品天堂自在久久77| 国产精品主播| 国产欧美日韩在线一区| 丁香婷婷激情网| 亚洲精品无码AⅤ片青青在线观看| 青青草国产免费国产| 毛片免费视频| 国内精品视频在线| 99国产在线视频| 在线欧美一区| 国产99在线| 久久精品电影| 亚洲精品自产拍在线观看APP| 国产精品不卡片视频免费观看| h视频在线播放| 自拍偷拍欧美日韩| 国产精品视频白浆免费视频| 欧洲极品无码一区二区三区| 色哟哟国产精品| 一级毛片在线播放| 欧美一级夜夜爽| 亚洲精选高清无码| 中文字幕伦视频| 精品国产一区91在线| 亚洲婷婷在线视频| 日韩 欧美 小说 综合网 另类| 久久久黄色片| 99re视频在线| 欧美在线国产| 手机在线看片不卡中文字幕| 三上悠亚精品二区在线观看| 性喷潮久久久久久久久| 免费全部高H视频无码无遮掩| 操美女免费网站| 特级做a爰片毛片免费69| 免费一级全黄少妇性色生活片| 中日无码在线观看| 97se亚洲综合在线天天| 毛片在线播放网址| 日韩精品亚洲精品第一页| 国产午夜在线观看视频| 国产在线自在拍91精品黑人|