中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

產(chǎn)品分類

當(dāng)前位置: 首頁(yè) > 傳感測(cè)量產(chǎn)品 > 數(shù)據(jù)采集產(chǎn)品 > 工控機(jī)

類型分類:
科普知識(shí)
數(shù)據(jù)分類:
工控機(jī)

TFTP協(xié)議在嵌入式系統(tǒng)中的實(shí)現(xiàn)

發(fā)布日期:2022-04-18 點(diǎn)擊率:95

    隨著Internet和PC時(shí)代的到來(lái),嵌入式系統(tǒng)成為當(dāng)前IT產(chǎn)業(yè)的焦點(diǎn)之一。在這種形勢(shì)下,家用電器等嵌入式設(shè)備的Internet網(wǎng)絡(luò)化就成了目前網(wǎng)絡(luò)發(fā)展的一個(gè)重要方向和必然結(jié)果。
    本文基于ARM核處理器的多嵌入式應(yīng)用綜合開(kāi)發(fā)平臺(tái),對(duì)嵌入式設(shè)備聯(lián)網(wǎng)的TCP/IP協(xié)議進(jìn)行了討論研究。
    1.引言
  
    嵌入式系統(tǒng)是繼IT網(wǎng)絡(luò)技術(shù)之后,又一個(gè)新的技術(shù)發(fā)展方向。由于嵌入式系統(tǒng)具有體積小、性能強(qiáng)、功耗低、可靠性高以及面向行業(yè)應(yīng)用的突出特征,目前己經(jīng)廣泛地應(yīng)用于軍事國(guó)防、消費(fèi)電子、網(wǎng)絡(luò)通信、工業(yè)控制等各個(gè)領(lǐng)域。隨著計(jì)算機(jī)技術(shù)與通信技術(shù)的發(fā)展,嵌入式系統(tǒng)的研究與開(kāi)發(fā)也有著越來(lái)越重要的實(shí)際意義。而ARM是業(yè)界領(lǐng)先的32位嵌入式RISC處理器技術(shù)提供商,占領(lǐng)了大約75%的市場(chǎng)。它可為一個(gè)完整系統(tǒng)的開(kāi)發(fā)提供全面的技術(shù)支持,技術(shù)具有性能高、成本低和能耗省的特點(diǎn)。ARM的微處理器核心正迅速地成為便攜式通信設(shè)備、手持計(jì)算、多媒體數(shù)字消費(fèi)和嵌入式解決方案市場(chǎng)中MSC批量生產(chǎn)的標(biāo)準(zhǔn)。
  
    在本項(xiàng)目中利用SAMSUNG公司的S3C44B0X與網(wǎng)絡(luò)控制芯片的結(jié)合實(shí)現(xiàn)了系統(tǒng)通過(guò)TFTP協(xié)議從PC機(jī)下載資源的功能。
    2.TFTP協(xié)議介紹

    a.TFTP與各種協(xié)議關(guān)系
  
    TFTP(Trivial File Transfer Protocol,簡(jiǎn)單文件傳輸協(xié)議)是TCP/IP協(xié)議族中的一個(gè)用來(lái)在客戶機(jī)與服務(wù)器之間進(jìn)行簡(jiǎn)單文件傳輸?shù)膮f(xié)議,提供不復(fù)雜、開(kāi)銷不大的文件傳輸服務(wù)。TFTP承載在UDP上,提供不可靠的數(shù)據(jù)流傳輸服務(wù),不提供存取授權(quán)與認(rèn)證機(jī)制,使用超時(shí)重傳方式來(lái)保證數(shù)據(jù)的到達(dá)。與FTP相比,TFTP協(xié)議要簡(jiǎn)單得多。現(xiàn)在最普遍使用的是第二版TFTP(TFTP Version 2,RFC1350)使用UDP 的67端口。

圖1 TFTP協(xié)議包頭次序
    因?yàn)門(mén)FTP使用UDP,而UDP又使用IP,IP可以還使用其它本地通信方法(一般為以太網(wǎng))。因此一個(gè)TFTP包中會(huì)有以下幾段:本地媒介頭,IP頭,數(shù)據(jù)報(bào)頭,TFTP頭,剩下的就是TFTP數(shù)據(jù)了,具體見(jiàn)圖(1)。TFTP在IP頭中不指定任何數(shù)據(jù),但是它使用UDP中的源和目標(biāo)端口以及包長(zhǎng)度域。由TFTP使用的包標(biāo)記(TID)在這里被用做端口,因此TID必須介于0到65,535之間。TFTP頭中包括兩字節(jié)的操作碼,這個(gè)碼指出了包的類型下面我們看看大體上的TFTP包格式。
    b. TFTP包介紹

      TFTP支持五種類型的包,分別如下:
      1 .Read request (RRQ)
      2 .Write request (WRQ)
      3 .Data (DATA)
      4 .Acknowledgment (ACK)
      5 .Error (ERROR)
      圖(2)顯示了TFTP各種包在IP包中的位置:

圖2 TFTP協(xié)議數(shù)據(jù)包格式
    3.硬件實(shí)現(xiàn)
  
    系統(tǒng)使用了RTL8019AS 10M ISA網(wǎng)卡芯片接入以太網(wǎng)。RTL8019AS是一款性價(jià)比很高的網(wǎng)卡芯片:NE2000兼容,軟件移植性好;接口簡(jiǎn)單不用轉(zhuǎn)換芯片如PCI-ISA橋;價(jià)格便宜、帶寬充裕、較長(zhǎng)一段時(shí)間內(nèi)不會(huì)停產(chǎn)。8019有3種配置模式:跳線方式、即插即用P&P方式、串行Flash配置方式。串行模式不與NE2000兼容,P&P模式用在PC機(jī)中,這里用不上。只剩下跳線配置模式可用。系統(tǒng)的MCU選擇的三星公司的S3C44B0X芯片,S3C44B0x是基于ARM7TDMI核的處理器,沒(méi)有MMU,可以源代碼級(jí)跟蹤調(diào)試。44B0與RTL8019的電路設(shè)計(jì)相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,只需要連接數(shù)據(jù)線、地址選通、中斷等信號(hào)線。簡(jiǎn)略電路圖如圖(3):

           

圖3 RTL8019與S3C440X的接口電路
    4.軟件設(shè)計(jì)

      a.RTL8019驅(qū)動(dòng)程序
  RTL8019驅(qū)動(dòng)程序主要包括3個(gè)函數(shù) :
  i..RTL8019 初始化函數(shù)。要對(duì)網(wǎng)卡的工作參數(shù)進(jìn)行設(shè)置.以使網(wǎng)卡開(kāi)始工作。
  其主要工作包括:復(fù)位網(wǎng)絡(luò)芯片,設(shè)置MAC地址,設(shè)置組播地址,設(shè)置DMA傳輸參數(shù)等等。
  ii.收包函數(shù):從網(wǎng)絡(luò)中接收數(shù)據(jù)到緩沖區(qū)。
  iii.發(fā)包函數(shù):從緩沖區(qū)向網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)。
b.協(xié)議棧的實(shí)現(xiàn)
  TFTP的實(shí)現(xiàn)其實(shí)就是根據(jù)各種協(xié)議,對(duì)數(shù)據(jù)打包(當(dāng)發(fā)送數(shù)據(jù)時(shí))和解包(當(dāng)接收數(shù)據(jù)時(shí))。主函數(shù)主要部分如下

eth_init();//其主要是清空ARP緩沖區(qū).其中調(diào)用了一個(gè)功能函數(shù)[2]
arp_init();//清零
Mac_init();//設(shè)置MAC地址
ip_init(ip); //主要功能:設(shè)置ip地址
udp_init(); //初始化UDP協(xié)議
while (1) net_handle();//處理函數(shù)
  
    前5個(gè)函數(shù)主要是初始化工作接下來(lái)的int net_handle(void)就要開(kāi)始進(jìn)入網(wǎng)絡(luò)傳輸了,這里就是協(xié)議棧的核心了:

skb = alloc_skb(ETH_frame_LEN);//選擇一個(gè) SKB
if (eth_rcv(skb) != -1) {
eth_hdr = (struct ethhdr *)(skb->data);
skb_pull(skb, ETH_HLEN);
if (ntohs(eth_hdr->h_proto) == ETH_P_ARP)//是否為ARP包
arp_rcv_packet(skb); //是則進(jìn)行ARP包應(yīng)答
else if(ntohs(eth_hdr->h_proto) == ETH_P_IP) //是否為IP包
ip_rcv_packet(skb);//是則進(jìn)行IP包處理
  
    如果從MAC層收到一個(gè)以太網(wǎng)幀,先把收到的以太網(wǎng)幀轉(zhuǎn)變?yōu)橄鄳?yīng)的幀結(jié)構(gòu)再去掉其以太網(wǎng)偵頭部, 其中skb_pop(skb, ETH_HLEN)把數(shù)據(jù)指針往后移動(dòng)ETH_HLEN個(gè)字節(jié),而且真正的數(shù)據(jù)長(zhǎng)度也做相應(yīng)的變化..然后根據(jù)幀中的協(xié)議字段判斷其上層為什么協(xié)議.這里幀格式采用的是RFC894,如果其上層為arp協(xié)議,將去掉以太網(wǎng)頭部的數(shù)據(jù)交由ARP處理,同樣如果其上層協(xié)議為IP,也做類似的處理. arp_rcv_packet(skb)只處理的ARP請(qǐng)求消息,如果發(fā)現(xiàn)其為ARP請(qǐng)求,則發(fā)送ARP應(yīng)答. 接下來(lái)就是把這個(gè)ARP應(yīng)答包發(fā)出去,發(fā)送了ARP應(yīng)答后把剛才請(qǐng)求的者的MAC地址和其IP保存在本機(jī)中,其實(shí)現(xiàn)采用了簡(jiǎn)單循環(huán)區(qū),利用數(shù)組.首先檢查緩沖區(qū)中有無(wú)此項(xiàng),如果有則直接用該項(xiàng)的索引,如果沒(méi)有則重新分配索引, 把傳進(jìn)來(lái)的MAC 和IP 賦給新分配的索引 i,。
  
    如果MAC層發(fā)現(xiàn)收到的包上層協(xié)議為IP,則執(zhí)行[1]:
if(ntohs(eth_hdr->h_proto) == ETH_P_IP)
ip_rcv_packet(skb);
  
    首先檢查接受者是不是本機(jī)IP,通過(guò)檢查后,去掉IP頭部,再檢查其上層協(xié)議類型,如果為UDP,則將包轉(zhuǎn)交給上層的UDP協(xié)議處理其中udp_rcv_packet(skb)先去掉UDP頭部,再檢查其對(duì)應(yīng)的上層協(xié)議,這里只實(shí)現(xiàn)了TFTP協(xié)議,對(duì)應(yīng)語(yǔ)句為skb_pop(skb, sizeof(struct udphdr));
if (ntohs(udp_hdr->dest) == TFTP)
tftp_rcv_packet(skb);

    其中tftp_rcv_packet(skb)根據(jù)TFTP頭部中操作類型而采取不同的動(dòng)作.對(duì)應(yīng)代碼為:
switch (ntohs(tftp_hdr->th_opcode)) {
/* 只處理寫(xiě)請(qǐng)求和DATA */
case WRQ:
tftp_rcv_wrq(skb); break;
case data:
tftp_rcv_data(skb); break;
…}
  
    其中tftp_rcv_wrq(skb)先得到請(qǐng)求者的IP和PORT,再發(fā)送塊編號(hào)為0的ACK包.然后為數(shù)據(jù)傳輸做些初始化工作,具體為設(shè)置接受緩沖區(qū)和接受數(shù)據(jù)長(zhǎng)度。:因?yàn)門(mén)FTP是包裝在UDP里面的,所以首先欲留出UDP頭部的空間,這里要注意的是在UDP層除了為自己留空間外其又會(huì)欲留出IP頭的空間,而在IP層除了為自己留空間外其又會(huì)欲留出MAC頭的空間.如此便留出了整個(gè)協(xié)議棧所要求的頭部空間.調(diào)用關(guān)系為
  udp_skb_reserve(skb)—ip_skb_reserve(skb)—eth_skb_reserve(skb);
  
    然后該函數(shù)按照ACK包的格式(在

下一篇: PLC、DCS、FCS三大控

上一篇: 索爾維全系列Solef?PV

中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

      9000px;">

          在线成人小视频| 欧美日韩亚洲高清一区二区| 久久疯狂做爰流白浆xx| 成人av在线资源网| 国产露脸91国语对白| www.亚洲激情.com| 精品久久久久一区| 舔着乳尖日韩一区| 欧美三级视频在线观看| ...xxx性欧美| 91丨九色丨蝌蚪丨老版| 国产精品美女久久久久av爽李琼| 美女视频黄a大片欧美| 777亚洲妇女| 亚洲成av人片在线| 一本一道波多野结衣一区二区| 日韩精品一区二区三区在线| 亚洲一区二区三区在线| 日本韩国一区二区| 国产精品初高中害羞小美女文| 国产成人免费av在线| 日韩欧美卡一卡二| 久久精品国产一区二区| 日韩电影一区二区三区四区| 麻豆精品蜜桃视频网站| 一区二区三区加勒比av| 久久综合九色综合97_久久久| 日本精品视频一区二区三区| 精品国产一区二区三区忘忧草| 日韩1区2区3区| 亚洲精品乱码久久久久久久久| 久久精品网站免费观看| 日韩一区二区视频在线观看| 欧美三级视频在线观看| 在线精品视频小说1| 色综合久久天天| 欧美亚洲一区二区三区四区| 亚洲国产视频网站| 亚洲h动漫在线| 日本aⅴ免费视频一区二区三区| 亚洲第一成年网| 久久久久久久精| 欧美精品日韩一区| 91九色最新地址| www.一区二区| 国产成人av电影在线| 天堂久久久久va久久久久| 亚洲你懂的在线视频| 亚洲国产精品高清| 久久精品欧美一区二区三区麻豆| 九九久久精品视频| 欧美成人性战久久| 成人app在线| 1024成人网| 色欧美片视频在线观看| 91精品一区二区三区在线观看| 色悠悠久久综合| 在线观看视频欧美| 成熟亚洲日本毛茸茸凸凹| 2021久久国产精品不只是精品| 欧美日本精品一区二区三区| 在线观看免费视频综合| 91黄色免费版| 欧美一区二区美女| 精品国产3级a| 亚洲美女精品一区| 日本成人超碰在线观看| 国产精品久久久一区麻豆最新章节| 日韩欧美在线观看一区二区三区| 一本久久a久久精品亚洲| 欧美日韩黄视频| 亚洲欧洲国产专区| 亚洲风情在线资源站| 国产真实乱对白精彩久久| 国产91精品在线观看| 欧美中文字幕亚洲一区二区va在线 | 精品免费视频一区二区| 国产欧美1区2区3区| 亚洲免费av在线| 国产成人亚洲综合a∨婷婷| a在线播放不卡| 久久一区二区视频| 亚洲三级久久久| 国产麻豆午夜三级精品| 欧美日韩国产成人在线91| 最新国产精品久久精品| 激情综合五月婷婷| 日韩精品中文字幕在线一区| 一级特黄大欧美久久久| av成人动漫在线观看| 国产精品白丝在线| 福利视频网站一区二区三区| 日韩一区二区视频| 伊人婷婷欧美激情| 成人av网址在线| 国产精品高潮呻吟| 国产精品18久久久久久久久| 亚洲综合在线观看视频| 欧美日韩国产首页在线观看| 亚洲午夜免费视频| 精品国产乱码久久久久久老虎| 亚洲国产成人av网| 欧美中文字幕一区二区三区| 视频一区视频二区中文| 国产精品久久精品日日| 精品av久久707| 欧美日韩国产区一| 极品少妇xxxx偷拍精品少妇| 国产三级精品视频| 91色在线porny| 麻豆国产精品官网| 国产精品成人网| 日韩一区二区精品在线观看| 成人午夜电影网站| 久久色.com| 在线成人免费视频| 国产白丝网站精品污在线入口| ...xxx性欧美| 欧美电影免费观看高清完整版 | 麻豆成人免费电影| 久久―日本道色综合久久| 成人精品电影在线观看| 欧美午夜精品一区二区三区| 亚洲黄色性网站| 美日韩一区二区三区| 久久久午夜精品理论片中文字幕| 26uuu精品一区二区在线观看| 99国产欧美另类久久久精品| 91在线国内视频| 在线观看91视频| 国产精品18久久久久久久网站| 亚洲一级在线观看| 日韩欧美精品在线视频| 欧美成人激情免费网| 国产精品一区二区在线播放| 91精品午夜视频| 欧美一级电影网站| 久久久国产精品不卡| 欧美经典一区二区| 亚洲人成精品久久久久久| 五月婷婷久久综合| 成人一区二区三区中文字幕| 色综合中文字幕国产| 91在线精品秘密一区二区| 久久99国产精品久久| 在线观看免费视频综合| av男人天堂一区| 精品久久久久久久一区二区蜜臀| 久久精品亚洲麻豆av一区二区| 国产一区二区三区高清播放| 制服丝袜在线91| 亚洲成人综合网站| 久久久一区二区| 成人黄色a**站在线观看| 亚洲成人在线免费| 亚洲另类一区二区| 国产一区二区三区四区五区美女| 日韩精品免费视频人成| 欧美一区二区三区四区久久| 欧美综合亚洲图片综合区| 色一情一乱一乱一91av| av一二三不卡影片| jizzjizzjizz欧美| 色又黄又爽网站www久久| 91福利在线观看| 91豆麻精品91久久久久久| 欧美性三三影院| 欧美日韩和欧美的一区二区| 欧美日本一区二区三区四区| 国产一区二区三区观看| 成熟亚洲日本毛茸茸凸凹| 99精品视频在线观看| 欧美日韩国产天堂| 日韩免费高清电影| 国产精品不卡在线| 亚洲成精国产精品女| 国产成人a级片| 色偷偷一区二区三区| 亚洲视频一区二区在线观看| 日韩制服丝袜先锋影音| 国产一区二区电影| 欧美高清性hdvideosex| 26uuu国产在线精品一区二区| 亚洲精品视频在线观看免费| 亚洲444eee在线观看| 99久久婷婷国产精品综合| 在线不卡免费欧美| 国产亚洲综合在线| 亚洲一区二区精品3399| 日韩欧美一区在线观看| 91国产免费观看| 精品国产乱码久久久久久牛牛| 亚洲国产精品视频| 国产黑丝在线一区二区三区| 制服丝袜日韩国产| 国产精品电影一区二区三区| 国产成人夜色高潮福利影视| 欧美亚洲国产bt| 亚洲激情成人在线| 国产成人鲁色资源国产91色综|